Retrieved from http://sources.redhat.com/ml/binutils/2004-04/msg00646.html Fixes localealias.s:544: Error: junk at end of line, first unrecognized character is `,' when building glibc-2.3.2 with gcc-3.4.0 and binutils-2.15.90.0.3 Paths adjusted to match crosstool's patcher. Message-Id: m3n052qw2g.fsf@whitebox.m5r.de From: Andreas Schwab To: Nathan Sidwell Cc: Ian Lance Taylor , binutils at sources dot redhat dot com Date: Fri, 23 Apr 2004 22:27:19 +0200 Subject: Re: demand_empty_rest_of_line and ignore_rest_of_line Nathan Sidwell writes: > Index: read.c > =================================================================== > RCS file: /cvs/src/src/gas/read.c,v > retrieving revision 1.76 > diff -c -3 -p -r1.76 read.c > *** read.c 12 Mar 2004 17:48:12 -0000 1.76 > --- read.c 18 Mar 2004 09:56:05 -0000 > *************** read_a_source_file (char *name) > *** 1053,1059 **** > #endif > input_line_pointer--; > /* Report unknown char as ignored. */ > ! ignore_rest_of_line (); > } > > #ifdef md_after_pass_hook > --- 1053,1059 ---- > #endif > input_line_pointer--; > /* Report unknown char as ignored. */ > ! demand_empty_rest_of_line (); > } > > #ifdef md_after_pass_hook This means that the unknown character is no longer ignored, despite the comment. As a side effect a line starting with a line comment character not followed by APP in NO_APP mode now triggers an error instead of just a warning, breaking builds of glibc on m68k-linux. Earlier in read_a_source_file where #APP is handled there is another comment that claims that unknown comments are ignored, when in fact they aren't (only the initial line comment character is skipped). Note that the presence of #APP will mess up the line counters, but that appears to be difficult to fix. Andreas. 2004-04-23 Andreas Schwab * read.c (read_a_source_file): Ignore unknown text after line comment character. Fix misleading comment. --- a/gas/read.c +++ b/gas/read.c @@ -1008,10 +1008,14 @@ read_a_source_file (char *name) unsigned int new_length; char *tmp_buf = 0; - bump_line_counters (); s = input_line_pointer; if (strncmp (s, "APP\n", 4)) - continue; /* We ignore it */ + { + /* We ignore it */ + ignore_rest_of_line (); + continue; + } + bump_line_counters (); s += 4; sb_new (&sbuf); @@ -1110,7 +1114,7 @@ read_a_source_file (char *name) continue; #endif input_line_pointer--; - /* Report unknown char as ignored. */ + /* Report unknown char as error. */ demand_empty_rest_of_line (); }