------- Additional Comments From nickc at redhat dot com 2005-04-15 11:46 ------- Subject: Re: New: Error: Zero-length symbol is illegal
Hi Andreas, > The ia64 assembler is choking on `.file ""' with the error message > "Zero-length symbol is illegal". According to the GAS manual this should > be allowed. The problem is that gcc 3.4 and later now uses `.file ""' > instead > of `.file "<stdin>"' when input comes from stdin. Hmm, well the documentation does also say that the feature is only supported for backwards compatibility and may go away in the future. Still a patch for this problem seems fairly straight forward. Jan, Ian - what do you think of this ? Cheers Nick gas/ChangeLog 2005-04-15 Nick Clifton <[EMAIL PROTECTED]> PR gas/847 * read.c (s_app_file): Call tc_convert_file_name, if defined, before s_app_file_string. * config/tc-ia64.c (ia64_convert_file_name): Define. Convert empty file names into "<stdin>". * config/tc-ia64.h (tc_convert_file_name): Define. Index: gas/config/tc-ia64.c =================================================================== RCS file: /cvs/src/src/gas/config/tc-ia64.c,v retrieving revision 1.152 diff -c -3 -p -r1.152 tc-ia64.c *** gas/config/tc-ia64.c 5 Apr 2005 04:01:12 -0000 1.152 --- gas/config/tc-ia64.c 15 Apr 2005 11:39:41 -0000 *************** ia64_canonicalize_symbol_name (name) *** 8031,8036 **** --- 8031,8049 ---- return name; } + /* Avoid producing error messages about zero-length symbol names when + GCC produces directives like: + .file "" + by converting empty names into <stdin>. */ + + char * + ia64_convert_file_name (char * name) + { + if (name != NULL && * name == 0) + return "<stdin>"; + return name; + } + /* Return true if idesc is a conditional branch instruction. This excludes the modulo scheduled branches, and br.ia. Mod-sched branches are excluded because they always read/write resources regardless of the value of the Index: gas/config/tc-ia64.h =================================================================== RCS file: /cvs/src/src/gas/config/tc-ia64.h,v retrieving revision 1.38 diff -c -3 -p -r1.38 tc-ia64.h *** gas/config/tc-ia64.h 3 Mar 2005 11:47:52 -0000 1.38 --- gas/config/tc-ia64.h 15 Apr 2005 11:39:41 -0000 *************** extern void ia64_dwarf2_emit_offset PARA *** 120,125 **** --- 120,126 ---- extern void ia64_check_label PARAMS ((symbolS *)); extern int ia64_estimate_size_before_relax (fragS *, asection *); extern void ia64_convert_frag (fragS *); + extern char * ia64_convert_file_name (char *); #define md_end() ia64_end_of_source () #define md_start_line_hook() ia64_start_line () *************** extern void ia64_convert_frag (fragS *); *** 132,137 **** --- 133,139 ---- #define md_parse_name(s,e,c) ia64_parse_name (s, e, c) #define tc_canonicalize_symbol_name(s) ia64_canonicalize_symbol_name (s) #define tc_canonicalize_section_name(s) ia64_canonicalize_symbol_name (s) + #define tc_convert_file_name(s) ia64_convert_file_name (s) #define md_optimize_expr(l,o,r) ia64_optimize_expr (l, o, r) #define md_cons_align(n) ia64_cons_align (n) #define TC_FORCE_RELOCATION(f) ia64_force_relocation (f) -- http://sources.redhat.com/bugzilla/show_bug.cgi?id=847 ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is. _______________________________________________ bug-binutils mailing list bug-binutils@gnu.org http://lists.gnu.org/mailman/listinfo/bug-binutils