]> git.pld-linux.org Git - packages/crossppc-binutils.git/blobdiff - binutils-gasp.patch
- updated for 2.16.90.0.3
[packages/crossppc-binutils.git] / binutils-gasp.patch
index 7a477eddba0e2df65183adac3fd2cca524e0b118..9ff4b1331403a634b668bfb0ee94a6263667f92b 100644 (file)
@@ -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, &macro))
-+                        if (check_macro (s, &out, '\0', &err, &macro))
-                           {
-                             if (err != NULL)
-                               as_bad ("%s", err);
-@@ -1855,7 +1855,7 @@
+-  if (check_macro (line, &out, &err, &macro))
++  if (check_macro (line, &out, '\0', &err, &macro))
+     {
+       if (err != NULL)
+       as_bad ("%s", err);
+@@ -1978,7 +1978,7 @@
  
    sb_new (&out);
  
This page took 0.118598 seconds and 4 git commands to generate.