X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=binutils-gasp.patch;h=9ff4b1331403a634b668bfb0ee94a6263667f92b;hb=039c34b61f196924b9e011fb41ea024e646b5ad1;hp=7a477eddba0e2df65183adac3fd2cca524e0b118;hpb=0087dcf3f9da7ca48d5421edb3f977fecb1f19b1;p=packages%2Fcrossppc-binutils.git diff --git a/binutils-gasp.patch b/binutils-gasp.patch index 7a477ed..9ff4b13 100644 --- a/binutils-gasp.patch +++ b/binutils-gasp.patch @@ -36,89 +36,6 @@ diff -Nur binutils-2.13.90.0.18.orig/gas/Makefile.am binutils-2.13.90.0.18/gas/M write.o: write.c $(INCDIR)/symcat.h subsegs.h $(INCDIR)/obstack.h \ output-file.h dwarf2dbg.h +gasp.o: gasp.c $(INCDIR)/getopt.h $(INCDIR)/safe-ctype.h \ -+ sb.h macro.h $(INCDIR)/xregex.h $(INCDIR)/xregex2.h - itbl-ops.o: itbl-ops.c itbl-ops.h $(INCDIR)/symcat.h - e-crisaout.o: $(srcdir)/config/e-crisaout.c $(INCDIR)/symcat.h \ - emul-target.h -diff -Nur binutils-2.13.90.0.18.orig/gas/Makefile.in binutils-2.13.90.0.18/gas/Makefile.in ---- binutils-2.13.90.0.18.orig/gas/Makefile.in Sun Feb 2 03:21:17 2003 -+++ binutils-2.13.90.0.18/gas/Makefile.in Sun Feb 2 12:29:17 2003 -@@ -313,7 +313,7 @@ - write.c - - --CFILES = $(GAS_CFILES) itbl-ops.c -+CFILES = $(GAS_CFILES) gasp.c itbl-ops.c - - HFILES = \ - as.h \ -@@ -575,7 +575,8 @@ - - # Note: GASP is now deprecated and has been removed. It is still - # available in the CVS archive or older binutils releases if it is needed. --noinst_PROGRAMS = as-new -+# ...and it is needed for few packages in distribution. -+noinst_PROGRAMS = as-new gasp-new - noinst_SCRIPTS = $(GDBINIT) - EXTRA_SCRIPTS = .gdbinit - -@@ -624,6 +625,10 @@ - $(extra_objects) $(GASLIBS) $(INTLDEPS) - - -+gasp_new_SOURCES = gasp.c macro.c sb.c hash.c -+gasp_new_LDADD = ../libiberty/libiberty.a $(INTLLIBS) -+gasp_new_DEPENDENCIES = ../libiberty/libiberty.a $(INTLDEPS) -+ - EXPECT = `if [ -f $${rootme}/../expect/expect ] ; then \ - echo $${rootme}/../expect/expect ; \ - else echo expect ; fi` -@@ -2431,7 +2436,7 @@ - mkinstalldirs = $(SHELL) $(top_srcdir)/../mkinstalldirs - CONFIG_HEADER = config.h - CONFIG_CLEAN_FILES = ${GDBINIT} --noinst_PROGRAMS = as-new$(EXEEXT) -+noinst_PROGRAMS = as-new$(EXEEXT) gasp-new$(EXEEXT) - PROGRAMS = $(noinst_PROGRAMS) - - -@@ -2439,6 +2444,9 @@ - CPPFLAGS = @CPPFLAGS@ - LDFLAGS = @LDFLAGS@ - LIBS = @LIBS@ -+gasp_new_OBJECTS = gasp.$(OBJEXT) macro.$(OBJEXT) sb.$(OBJEXT) \ -+hash.$(OBJEXT) -+gasp_new_LDFLAGS = - itbl_test_OBJECTS = itbl-parse.$(OBJEXT) itbl-lex.$(OBJEXT) - itbl_test_DEPENDENCIES = itbl-tops.o itbl-test.o \ - ../libiberty/libiberty.a -@@ -2472,8 +2480,8 @@ - - TAR = tar - GZIP_ENV = --best --SOURCES = $(itbl_test_SOURCES) $(as_new_SOURCES) $(EXTRA_as_new_SOURCES) --OBJECTS = $(itbl_test_OBJECTS) $(as_new_OBJECTS) -+SOURCES = $(gasp_new_SOURCES) $(itbl_test_SOURCES) $(as_new_SOURCES) $(EXTRA_as_new_SOURCES) -+OBJECTS = $(gasp_new_OBJECTS) $(itbl_test_OBJECTS) $(as_new_OBJECTS) - - all: all-redirect - .SUFFIXES: -@@ -2576,6 +2584,10 @@ - - maintainer-clean-libtool: - -+gasp-new$(EXEEXT): $(gasp_new_OBJECTS) $(gasp_new_DEPENDENCIES) -+ @rm -f gasp-new$(EXEEXT) -+ $(LINK) $(gasp_new_LDFLAGS) $(gasp_new_OBJECTS) $(gasp_new_LDADD) $(LIBS) -+ - itbl-test$(EXEEXT): $(itbl_test_OBJECTS) $(itbl_test_DEPENDENCIES) - @rm -f itbl-test$(EXEEXT) - $(LINK) $(itbl_test_LDFLAGS) $(itbl_test_OBJECTS) $(itbl_test_LDADD) $(LIBS) -@@ -3326,6 +3338,8 @@ - $(INCDIR)/obstack.h subsegs.h struc-symbol.h - write.o: write.c $(INCDIR)/symcat.h subsegs.h $(INCDIR)/obstack.h \ - output-file.h dwarf2dbg.h -+gasp.o: gasp.c $(INCDIR)/getopt.h $(INCDIR)/safe-ctype.h \ + sb.h macro.h $(INCDIR)/xregex.h $(INCDIR)/xregex2.h itbl-ops.o: itbl-ops.c itbl-ops.h $(INCDIR)/symcat.h e-crisaout.o: $(srcdir)/config/e-crisaout.c $(INCDIR)/symcat.h \ @@ -131,37 +48,13 @@ diff -Nur binutils-2.13.90.0.18.orig/gas/doc/Makefile.am binutils-2.13.90.0.18/g man_MANS = as.1 -info_TEXINFOS = as.texinfo -+info_TEXINFOS = as.texinfo gasp.texi ++info_TEXINFOS = as.texinfo gasp.texinfo asconfig.texi: $(CONFIG).texi rm -f asconfig.texi -diff -Nur binutils-2.13.90.0.18.orig/gas/doc/Makefile.in binutils-2.13.90.0.18/gas/doc/Makefile.in ---- binutils-2.13.90.0.18.orig/gas/doc/Makefile.in Sun Feb 2 03:21:17 2003 -+++ binutils-2.13.90.0.18/gas/doc/Makefile.in Sun Feb 2 12:36:47 2003 -@@ -133,7 +133,7 @@ - - man_MANS = as.1 - --info_TEXINFOS = as.texinfo -+info_TEXINFOS = as.texinfo gasp.texi - - CPU_DOCS = \ - c-a29k.texi \ -@@ -182,9 +182,9 @@ - CONFIG_CLEAN_FILES = - TEXI2DVI = `if test -f $(top_srcdir)/../texinfo/util/texi2dvi; then echo $(top_srcdir)/../texinfo/util/texi2dvi; else echo texi2dvi; fi` - TEXINFO_TEX = $(top_srcdir)/../texinfo/texinfo.tex --INFO_DEPS = as.info -+INFO_DEPS = as.info gasp.info - DVIS = as.dvi --TEXINFOS = as.texinfo -+TEXINFOS = as.texinfo gasp.texi - man1dir = $(mandir)/man1 - MANS = $(man_MANS) - -diff -Nur binutils-2.13.90.0.18.orig/gas/doc/gasp.texi binutils-2.13.90.0.18/gas/doc/gasp.texi ---- binutils-2.13.90.0.18.orig/gas/doc/gasp.texi Thu Jan 1 01:00:00 1970 -+++ binutils-2.13.90.0.18/gas/doc/gasp.texi Wed Oct 30 05:09:13 2002 +diff -Nur binutils-2.14.90.0.7.orig/gas/doc/gasp.texinfo binutils-2.14.90.0.7/gas/doc/gasp.texinfo +--- binutils-2.14.90.0.7.orig/gas/doc/gasp.texinfo Thu Jan 1 01:00:00 1970 ++++ binutils-2.14.90.0.7/gas/doc/gasp.texinfo Wed Oct 30 05:09:13 2002 @@ -0,0 +1,1456 @@ +\input texinfo @c -*- Texinfo -*- +@setfilename gasp.info @@ -1619,10 +1512,9 @@ diff -Nur binutils-2.13.90.0.18.orig/gas/doc/gasp.texi binutils-2.13.90.0.18/gas + +@contents +@bye -diff -Nur binutils-2.13.90.0.18.orig/gas/gasp.c binutils-2.13.90.0.18/gas/gasp.c ---- binutils-2.13.90.0.18.orig/gas/gasp.c Thu Jan 1 01:00:00 1970 -+++ binutils-2.13.90.0.18/gas/gasp.c Sun May 26 18:57:12 2002 -@@ -0,0 +1,3761 @@ +--- binutils-2.16.90.0.3/gas/gasp.c.orig 1970-01-01 01:00:00.000000000 +0100 ++++ binutils-2.16.90.0.3/gas/gasp.c 2005-05-12 00:24:19.559668480 +0200 +@@ -0,0 +1,3980 @@ +/* gasp.c - Gnu assembler preprocessor main program. + Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 + Free Software Foundation, Inc. @@ -1940,6 +1832,48 @@ diff -Nur binutils-2.13.90.0.18.orig/gas/gasp.c binutils-2.13.90.0.18/gas/gasp.c +static void show_usage PARAMS ((FILE *, int)); +static void show_help PARAMS ((void)); + ++/* --- functions recently removed from sb.c --- */ ++ ++/* put a null at the end of the sb at in and return the start of the ++ * string, so that it can be used as an arg to printf %s. */ ++ ++static char * ++sb_name (sb *in) ++{ ++ /* stick a null on the end of the string */ ++ sb_add_char (in, 0); ++ return in->ptr; ++} ++ ++/* print the sb at ptr to the output file */ ++ ++static void ++sb_print (FILE *outfile, sb *ptr) ++{ ++ int i; ++ int nc = 0; ++ ++ for (i = 0; i < ptr->len; i++) ++ { ++ if (nc) ++ { ++ fprintf (outfile, ","); ++ } ++ fprintf (outfile, "%d", ptr->ptr[i]); ++ nc = 1; ++ } ++} ++ ++/* print the sb at ptr to the output file */ ++ ++static void ++sb_print_at (FILE *outfile, int idx, sb *ptr) ++{ ++ int i; ++ for (i = idx; i < ptr->len; i++) ++ putc (ptr->ptr[i], outfile); ++} ++ +#define FATAL(x) \ + do \ + { \ @@ -1979,15 +1913,6 @@ diff -Nur binutils-2.13.90.0.18.orig/gas/gasp.c binutils-2.13.90.0.18/gas/gasp.c + else + exitcode = 0; + -+ if (stats) -+ { -+ int i; -+ for (i = 0; i < sb_max_power_two; i++) -+ { -+ fprintf (stderr, "strings size %8d : %d\n", -+ 1 << i, string_count[i]); -+ } -+ } + exit (exitcode); +} + @@ -2656,7 +2581,7 @@ diff -Nur binutils-2.13.90.0.18.orig/gas/gasp.c binutils-2.13.90.0.18/gas/gasp.c + sb *in; +{ + int online = 0; -+ int more = 1; ++ int more = 1, ch = 0; + + if (copysource) + { @@ -2667,7 +2592,7 @@ diff -Nur binutils-2.13.90.0.18.orig/gas/gasp.c binutils-2.13.90.0.18/gas/gasp.c + + while (1) + { -+ int ch = get (); ++ ch = get (); + + while (ch == '\r') + ch = get (); @@ -2709,7 +2634,7 @@ diff -Nur binutils-2.13.90.0.18.orig/gas/gasp.c binutils-2.13.90.0.18/gas/gasp.c + { + if (ch != EOF) + unget (ch); -+ break; ++ ch = '\n'; break; + } + } + else @@ -2719,7 +2644,7 @@ diff -Nur binutils-2.13.90.0.18.orig/gas/gasp.c binutils-2.13.90.0.18/gas/gasp.c + online++; + } + -+ return more; ++ return more ? ch : 0; +} + +/* Find a label from sb in and put it in out. */ @@ -4305,7 +4230,7 @@ diff -Nur binutils-2.13.90.0.18.orig/gas/gasp.c binutils-2.13.90.0.18/gas/gasp.c + const char *err; + int line = linecount (); + -+ err = define_macro (idx, in, &label, get_line, (const char **) NULL); ++ err = define_macro (idx, in, &label, get_line, "[gasp]", line, (const char **) NULL); + if (err != NULL) + ERROR ((stderr, _("macro at line %d: %s\n"), line - 1, err)); +} @@ -5384,39 +5309,219 @@ diff -Nur binutils-2.13.90.0.18.orig/gas/gasp.c binutils-2.13.90.0.18/gas/gasp.c + fprintf (stderr, _("\nPlease report this bug.\n")); + exit (1); +} -diff -Nur binutils-2.13.90.0.18.orig/gas/macro.c binutils-2.13.90.0.18/gas/macro.c ---- binutils-2.13.90.0.18.orig/gas/macro.c Sun Feb 2 03:21:18 2003 -+++ binutils-2.13.90.0.18/gas/macro.c Sun Feb 2 15:19:38 2003 -@@ -75,8 +75,8 @@ - static int sub_actual - PARAMS ((int, sb *, sb *, struct hash_control *, int, sb *, int)); ++ ++/* duplicated from as internals */ ++ ++static void ++identify (char *file) ++{ ++ static int identified; ++ ++ if (identified) ++ return; ++ identified++; ++ ++ if (file) ++ fprintf (stderr, "%s: ", file); ++ fprintf (stderr, _("Assembler messages:\n")); ++} ++ ++/* The number of warnings issued. */ ++static int warning_count; ++ ++/* The common portion of as_warn and as_warn_where. */ ++ ++static void ++as_warn_internal (char *file, unsigned int line, char *buffer) ++{ ++ ++warning_count; ++ ++ identify (file); ++ if (file) ++ fprintf (stderr, "%s:%u: ", file, line); ++ fprintf (stderr, _("Warning: ")); ++ fputs (buffer, stderr); ++ (void) putc ('\n', stderr); ++} ++ ++/* Send to stderr a string as a warning, and locate warning ++ in input file(s). ++ Please only use this for when we have some recovery action. ++ Please explain in string (which may have '\n's) what recovery was ++ done. */ ++ ++void ++as_warn (const char *format, ...) ++{ ++ va_list args; ++ char buffer[2000]; ++ ++ if (1 /*!flag_no_warnings*/) ++ { ++ va_start (args, format); ++ vsprintf (buffer, format, args); ++ va_end (args); ++ as_warn_internal ((char *) NULL, 0, buffer); ++ } ++} ++ ++/* Like as_bad but the file name and line number are passed in. ++ Unfortunately, we have to repeat the function in order to handle ++ the varargs correctly and portably. */ ++ ++void ++as_warn_where (char *file, unsigned int line, const char *format, ...) ++{ ++ va_list args; ++ char buffer[2000]; ++ ++ if (1 /*!flag_no_warnings*/) ++ { ++ va_start (args, format); ++ vsprintf (buffer, format, args); ++ va_end (args); ++ as_warn_internal (file, line, buffer); ++ } ++} ++ ++/* Nonzero if we've hit a 'bad error', and should not write an obj file, ++ and exit with a nonzero error code. */ ++ ++static int error_count; ++ ++/* The common portion of as_bad and as_bad_where. */ ++ ++static void ++as_bad_internal (char *file, unsigned int line, char *buffer) ++{ ++ ++error_count; ++ ++ identify (file); ++ if (file) ++ fprintf (stderr, "%s:%u: ", file, line); ++ fprintf (stderr, _("Error: ")); ++ fputs (buffer, stderr); ++ (void) putc ('\n', stderr); ++} ++ ++/* Send to stderr a string as a warning, and locate warning in input ++ file(s). Please us when there is no recovery, but we want to ++ continue processing but not produce an object file. ++ Please explain in string (which may have '\n's) what recovery was ++ done. */ ++ ++void ++as_bad (const char *format, ...) ++{ ++ va_list args; ++ char buffer[2000]; ++ ++ va_start (args, format); ++ vsprintf (buffer, format, args); ++ va_end (args); ++ ++ as_bad_internal ((char *) NULL, 0, buffer); ++} ++ ++/* Like as_bad but the file name and line number are passed in. ++ Unfortunately, we have to repeat the function in order to handle ++ the varargs correctly and portably. */ ++ ++void ++as_bad_where (char *file, unsigned int line, const char *format, ...) ++{ ++ va_list args; ++ char buffer[2000]; ++ ++ va_start (args, format); ++ vsprintf (buffer, format, args); ++ va_end (args); ++ ++ as_bad_internal (file, line, buffer); ++} ++ ++#ifndef LEX_AT ++/* The m88k unfortunately uses @ as a label beginner. */ ++#define LEX_AT 0 ++#endif ++ ++#ifndef LEX_BR ++/* The RS/6000 assembler uses {,},[,] as parts of symbol names. */ ++#define LEX_BR 0 ++#endif ++ ++#ifndef LEX_PCT ++/* The Delta 68k assembler permits % inside label names. */ ++#define LEX_PCT 0 ++#endif ++ ++#ifndef LEX_QM ++/* The PowerPC Windows NT assemblers permits ? inside label names. */ ++#define LEX_QM 0 ++#endif ++ ++#ifndef LEX_HASH ++/* The IA-64 assembler uses # as a suffix designating a symbol. We include ++ it in the symbol and strip it out in tc_canonicalize_symbol_name. */ ++#define LEX_HASH 0 ++#endif ++ ++#ifndef LEX_DOLLAR ++/* The a29k assembler does not permits labels to start with $. */ ++#define LEX_DOLLAR 3 ++#endif ++ ++#ifndef LEX_TILDE ++/* The Delta 68k assembler permits ~ at start of label names. */ ++#define LEX_TILDE 0 ++#endif ++ ++/* Used by is_... macros. our ctype[]. */ ++char lex_type[256] = { ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* @ABCDEFGHIJKLMNO */ ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* PQRSTUVWXYZ[\]^_ */ ++ 0, 0, 0, LEX_HASH, LEX_DOLLAR, LEX_PCT, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, /* _!"#$%&'()*+,-./ */ ++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, LEX_QM, /* 0123456789:;<=>? */ ++ LEX_AT, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, /* @ABCDEFGHIJKLMNO */ ++ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, LEX_BR, 0, LEX_BR, 0, 3, /* PQRSTUVWXYZ[\]^_ */ ++ 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, /* `abcdefghijklmno */ ++ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, LEX_BR, 0, LEX_BR, LEX_TILDE, 0, /* pqrstuvwxyz{|}~. */ ++ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, ++ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, ++ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, ++ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, ++ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, ++ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, ++ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, ++ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 ++}; +--- binutils-2.16.90.0.3/gas/macro.c.orig 2005-05-11 00:46:44.000000000 +0200 ++++ binutils-2.16.90.0.3/gas/macro.c 2005-05-12 00:09:50.205830352 +0200 +@@ -77,8 +77,8 @@ + static int get_apost_token (int, sb *, sb *, int); + static int sub_actual (int, sb *, sb *, struct hash_control *, int, sb *, int); static const char *macro_expand_body -- PARAMS ((sb *, sb *, formal_entry *, struct hash_control *, int)); --static const char *macro_expand PARAMS ((int, sb *, macro_entry *, sb *)); -+ PARAMS ((sb *, sb *, formal_entry *, struct hash_control *, int,int )); -+static const char *macro_expand PARAMS ((int, sb *, macro_entry *, sb *, int)); +- (sb *, sb *, formal_entry *, struct hash_control *, const macro_entry *); +-static const char *macro_expand (int, sb *, macro_entry *, sb *); ++ (sb *, sb *, formal_entry *, struct hash_control *, const macro_entry *, int); ++static const char *macro_expand (int, sb *, macro_entry *, sb *, int); + static void free_macro(macro_entry *); #define ISWHITE(x) ((x) == ' ' || (x) == '\t') - -@@ -653,11 +653,12 @@ - /* Expand the body of a macro. */ +@@ -762,7 +762,7 @@ static const char * --macro_expand_body (in, out, formals, formal_hash, locals) -+macro_expand_body (in, out, formals, formal_hash, comment_char, locals) - sb *in; - sb *out; - formal_entry *formals; - struct hash_control *formal_hash; -+ int comment_char; - int locals; + macro_expand_body (sb *in, sb *out, formal_entry *formals, +- struct hash_control *formal_hash, const macro_entry *macro) ++ struct hash_control *formal_hash, const macro_entry *macro, int comment_char) { sb t; -@@ -688,7 +689,14 @@ + int src = 0, inquote = 0, macro_line = 0; +@@ -794,7 +794,14 @@ else if (in->ptr[src] == '\\') { src++; -- if (in->ptr[src] == '(') +- if (src < in->len && in->ptr[src] == '(') + if (in->ptr[src] == comment_char && comment_char != '\0') + { + /* This is a comment, just drop the rest of the line. */ @@ -5424,20 +5529,20 @@ diff -Nur binutils-2.13.90.0.18.orig/gas/macro.c binutils-2.13.90.0.18/gas/macro + && in->ptr[src] != '\n') + src++; + } -+ else if (in->ptr[src] == '(') ++ else if (src < in->len && in->ptr[src] == '(') { /* Sub in till the next ')' literally. */ src++; -@@ -771,7 +779,7 @@ - formal_entry *f; - +@@ -875,7 +882,7 @@ + else + { src = sb_skip_white (src + 5, in); - while (in->ptr[src] != '\n') + while (in->ptr[src] != '\n' && in->ptr[src] != comment_char) { - static int loccnt; - char buf[20]; -@@ -798,6 +806,17 @@ + const char *name; + formal_entry *f = new_formal (); +@@ -911,6 +918,17 @@ } } } @@ -5455,21 +5560,16 @@ diff -Nur binutils-2.13.90.0.18.orig/gas/macro.c binutils-2.13.90.0.18/gas/macro else if (in->ptr[src] == '"' || (macro_mri && in->ptr[src] == '\'')) { -@@ -880,11 +899,12 @@ +@@ -992,7 +1010,7 @@ body. */ static const char * --macro_expand (idx, in, m, out) -+macro_expand (idx, in, m, out, comment_char) - int idx; - sb *in; - macro_entry *m; - sb *out; -+ int comment_char; +-macro_expand (int idx, sb *in, macro_entry *m, sb *out) ++macro_expand (int idx, sb *in, macro_entry *m, sb *out, int comment_char) { sb t; formal_entry *ptr; -@@ -934,7 +954,7 @@ +@@ -1038,7 +1056,7 @@ /* Peel off the actuals and store them away in the hash tables' actuals. */ idx = sb_skip_white (idx, in); @@ -5478,28 +5578,25 @@ diff -Nur binutils-2.13.90.0.18.orig/gas/macro.c binutils-2.13.90.0.18/gas/macro { int scan; -@@ -1036,7 +1056,7 @@ - sb_add_string (&ptr->actual, buffer); - } +@@ -1167,7 +1185,7 @@ + sb_add_string (&ptr->actual, buffer); + } -- err = macro_expand_body (&m->sub, out, m->formals, m->formal_hash, 1); -+ err = macro_expand_body (&m->sub, out, m->formals, m->formal_hash, comment_char, 1); - if (err != NULL) - return err; +- err = macro_expand_body (&m->sub, out, m->formals, m->formal_hash, m); ++ err = macro_expand_body (&m->sub, out, m->formals, m->formal_hash, m, comment_char); + } -@@ -1072,9 +1092,10 @@ + /* Discard any unnamed formal arguments. */ +@@ -1200,7 +1218,7 @@ *EXPAND. Return 1 if a macro is found, 0 otherwise. */ int --check_macro (line, expand, error, info) -+check_macro (line, expand, comment_char, error, info) - const char *line; - sb *expand; -+ int comment_char; - const char **error; - macro_entry **info; +-check_macro (const char *line, sb *expand, ++check_macro (const char *line, sb *expand, int comment_char, + const char **error, macro_entry **info) { -@@ -1112,7 +1133,7 @@ + const char *s; +@@ -1235,7 +1253,7 @@ sb_add_char (&line_sb, *s++); sb_new (expand); @@ -5508,22 +5605,16 @@ diff -Nur binutils-2.13.90.0.18.orig/gas/macro.c binutils-2.13.90.0.18/gas/macro sb_kill (&line_sb); -@@ -1137,12 +1158,13 @@ +@@ -1296,7 +1314,7 @@ success, or an error message otherwise. */ const char * --expand_irp (irpc, idx, in, out, get_line) -+expand_irp (irpc, idx, in, out, get_line, comment_char) - int irpc; - int idx; - sb *in; - sb *out; - int (*get_line) PARAMS ((sb *)); -+ int comment_char; +-expand_irp (int irpc, int idx, sb *in, sb *out, int (*get_line) (sb *)) ++expand_irp (int irpc, int idx, sb *in, sb *out, int (*get_line) (sb *), int comment_char) { - const char *mn; sb sub; -@@ -1180,10 +1202,10 @@ + formal_entry f; +@@ -1329,16 +1347,16 @@ sb_reset (out); idx = sb_skip_comma (idx, in); @@ -5532,11 +5623,9 @@ diff -Nur binutils-2.13.90.0.18.orig/gas/macro.c binutils-2.13.90.0.18/gas/macro { /* Expand once with a null string. */ - err = macro_expand_body (&sub, out, &f, h, 0); -+ err = macro_expand_body (&sub, out, &f, h, comment_char, 0); - if (err != NULL) - return err; ++ err = macro_expand_body (&sub, out, &f, h, 0, comment_char); } -@@ -1191,7 +1213,7 @@ + else { if (irpc && in->ptr[idx] == '"') ++idx; @@ -5544,8 +5633,8 @@ diff -Nur binutils-2.13.90.0.18.orig/gas/macro.c binutils-2.13.90.0.18/gas/macro + while (idx < in->len && in->ptr[idx] != comment_char) { if (!irpc) - idx = get_any_string (idx, in, &f.actual, 1, 0); -@@ -1202,7 +1224,7 @@ + idx = get_any_string (idx, in, &f.actual); +@@ -1349,7 +1367,7 @@ int nxt; nxt = sb_skip_white (idx + 1, in); @@ -5554,44 +5643,40 @@ diff -Nur binutils-2.13.90.0.18.orig/gas/macro.c binutils-2.13.90.0.18/gas/macro { idx = nxt; break; -@@ -1212,7 +1234,7 @@ +@@ -1359,7 +1377,7 @@ sb_add_char (&f.actual, in->ptr[idx]); ++idx; } - err = macro_expand_body (&sub, out, &f, h, 0); -+ err = macro_expand_body (&sub, out, &f, h, comment_char, 0); ++ err = macro_expand_body (&sub, out, &f, h, 0, comment_char); if (err != NULL) - return err; + break; if (!irpc) -diff -Nur binutils-2.13.90.0.18.orig/gas/macro.h binutils-2.13.90.0.18/gas/macro.h ---- binutils-2.13.90.0.18.orig/gas/macro.h Sun Feb 2 03:21:18 2003 -+++ binutils-2.13.90.0.18/gas/macro.h Sun Feb 2 15:23:24 2003 -@@ -79,10 +79,10 @@ +--- binutils-2.16.90.0.2/gas/macro.h.orig 2005-04-29 19:50:28.000000000 +0200 ++++ binutils-2.16.90.0.2/gas/macro.h 2005-05-02 11:06:23.979151360 +0200 +@@ -80,8 +80,8 @@ + extern void macro_mri_mode (int); extern const char *define_macro - PARAMS ((int, sb *, sb *, int (*) PARAMS ((sb *)), const char **)); - extern int check_macro -- PARAMS ((const char *, sb *, const char **, macro_entry **)); -+ PARAMS ((const char *, sb *, int, const char **, macro_entry **)); - extern void delete_macro - PARAMS ((const char *)); - extern const char *expand_irp -- PARAMS ((int, int, sb *, sb *, int (*) PARAMS ((sb *)))); -+ PARAMS ((int, int, sb *, sb *, int (*) PARAMS ((sb *)), int)); + (int, sb *, sb *, int (*) (sb *), char *, unsigned int, const char **); +-extern int check_macro (const char *, sb *, const char **, macro_entry **); ++extern int check_macro (const char *, sb *, int, const char **, macro_entry **); + extern void delete_macro (const char *); +-extern const char *expand_irp (int, int, sb *, sb *, int (*) (sb *)); ++extern const char *expand_irp (int, int, sb *, sb *, int (*) (sb *), int); #endif -diff -Nur binutils-2.13.90.0.18.orig/gas/read.c binutils-2.13.90.0.18/gas/read.c ---- binutils-2.13.90.0.18.orig/gas/read.c Sun Feb 2 03:21:18 2003 -+++ binutils-2.13.90.0.18/gas/read.c Sun Feb 2 15:26:06 2003 -@@ -862,7 +862,7 @@ - const char *err; - macro_entry *macro; +--- binutils-2.16.90.0.2/gas/read.c.orig 2005-04-29 19:50:28.000000000 +0200 ++++ binutils-2.16.90.0.2/gas/read.c 2005-05-02 11:06:53.579651400 +0200 +@@ -550,7 +550,7 @@ + const char *err; + macro_entry *macro; -- if (check_macro (s, &out, &err, ¯o)) -+ if (check_macro (s, &out, '\0', &err, ¯o)) - { - if (err != NULL) - as_bad ("%s", err); -@@ -1855,7 +1855,7 @@ +- if (check_macro (line, &out, &err, ¯o)) ++ if (check_macro (line, &out, '\0', &err, ¯o)) + { + if (err != NULL) + as_bad ("%s", err); +@@ -1978,7 +1978,7 @@ sb_new (&out);