home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 5 / FreshFish_July-August1994.bin / bbs / gnu / gcc-2.5.8-diffs.lha / src / diffs / gcc-2.5.8.diffs
Text File  |  1994-07-12  |  300KB  |  9,010 lines

  1. diff -rc --new-file /src/baseline/gcc-2.5.8/INSTALL gcc-2.5.8/INSTALL
  2. *** /src/baseline/gcc-2.5.8/INSTALL    Sat Nov 27 15:47:57 1993
  3. --- gcc-2.5.8/INSTALL    Tue Feb 22 11:26:44 1994
  4. ***************
  5. *** 518,536 ****
  6.             files do not exist, it means nothing needs to be added for a
  7.             given target or host.
  8.   
  9. !   4. The standard directory for installing GNU CC is `/usr/local/lib'.
  10.        If you want to install its files somewhere else, specify
  11.        `--prefix=DIR' when you run `configure'.  Here DIR is a directory
  12. !      name to use instead of `/usr/local' for all purposes with one
  13. !      exception: the directory `/usr/local/include' is searched for
  14.        header files no matter where you install the compiler.
  15.   
  16.     5. Specify `--local-prefix=DIR' if you want the compiler to search
  17.        directory `DIR/include' for header files *instead* of
  18. !      `/usr/local/include'.  (This is for systems that have different
  19.        conventions for where to put site-specific things.)
  20.   
  21. !      Unless you have a convention other than `/usr/local' for
  22.        site-specific files, it is a bad idea to specify `--local-prefix'.
  23.   
  24.     6. Make sure the Bison parser generator is installed.  (This is
  25. --- 518,536 ----
  26.             files do not exist, it means nothing needs to be added for a
  27.             given target or host.
  28.   
  29. !   4. The standard directory for installing GNU CC is `/gnu/lib'.
  30.        If you want to install its files somewhere else, specify
  31.        `--prefix=DIR' when you run `configure'.  Here DIR is a directory
  32. !      name to use instead of `/gnu' for all purposes with one
  33. !      exception: the directory `/gnu/include' is searched for
  34.        header files no matter where you install the compiler.
  35.   
  36.     5. Specify `--local-prefix=DIR' if you want the compiler to search
  37.        directory `DIR/include' for header files *instead* of
  38. !      `/gnu/include'.  (This is for systems that have different
  39.        conventions for where to put site-specific things.)
  40.   
  41. !      Unless you have a convention other than `/gnu' for
  42.        site-specific files, it is a bad idea to specify `--local-prefix'.
  43.   
  44.     6. Make sure the Bison parser generator is installed.  (This is
  45. ***************
  46. *** 582,588 ****
  47.        If you are building with a previous GNU C compiler, do not use
  48.        `CC=gcc' on the make command or by editing the Makefile.  Instead,
  49.        use a full pathname to specify the compiler, such as
  50. !      `CC=/usr/local/bin/gcc'.  This is because make might execute the
  51.        `gcc' in the current directory before all of the compiler
  52.        components have been built.
  53.   
  54. --- 582,588 ----
  55.        If you are building with a previous GNU C compiler, do not use
  56.        `CC=gcc' on the make command or by editing the Makefile.  Instead,
  57.        use a full pathname to specify the compiler, such as
  58. !      `CC=/gnu/bin/gcc'.  This is because make might execute the
  59.        `gcc' in the current directory before all of the compiler
  60.        components have been built.
  61.   
  62. ***************
  63. *** 707,720 ****
  64.   
  65.        This copies the files `cc1', `cpp' and `libgcc.a' to files `cc1',
  66.        `cpp' and `libgcc.a' in the directory
  67. !      `/usr/local/lib/gcc-lib/TARGET/VERSION', which is where the
  68.        compiler driver program looks for them.  Here TARGET is the target
  69.        machine type specified when you ran `configure', and VERSION is
  70.        the version number of GNU CC.  This naming scheme permits various
  71.        versions and/or cross-compilers to coexist.
  72.   
  73.        This also copies the driver program `xgcc' into
  74. !      `/usr/local/bin/gcc', so that it appears in typical execution
  75.        search paths.
  76.   
  77.        On some systems, this command causes recompilation of some files.
  78. --- 707,720 ----
  79.   
  80.        This copies the files `cc1', `cpp' and `libgcc.a' to files `cc1',
  81.        `cpp' and `libgcc.a' in the directory
  82. !      `/gnu/lib/gcc-lib/TARGET/VERSION', which is where the
  83.        compiler driver program looks for them.  Here TARGET is the target
  84.        machine type specified when you ran `configure', and VERSION is
  85.        the version number of GNU CC.  This naming scheme permits various
  86.        versions and/or cross-compilers to coexist.
  87.   
  88.        This also copies the driver program `xgcc' into
  89. !      `/gnu/bin/gcc', so that it appears in typical execution
  90.        search paths.
  91.   
  92.        On some systems, this command causes recompilation of some files.
  93. ***************
  94. *** 854,860 ****
  95.   ----------------------------------------
  96.   
  97.      If you have a cross-assembler and cross-linker available, you should
  98. ! install them now.  Put them in the directory `/usr/local/TARGET/bin'.
  99.   Here is a table of the tools you should put in this directory:
  100.   
  101.   `as'
  102. --- 854,860 ----
  103.   ----------------------------------------
  104.   
  105.      If you have a cross-assembler and cross-linker available, you should
  106. ! install them now.  Put them in the directory `/gnu/TARGET/bin'.
  107.   Here is a table of the tools you should put in this directory:
  108.   
  109.   `as'
  110. ***************
  111. *** 884,896 ****
  112.   
  113.      If you want to install libraries to use with the cross-compiler,
  114.   such as a standard C library, put them in the directory
  115. ! `/usr/local/TARGET/lib'; installation of GNU CC copies all all the
  116.   files in that subdirectory into the proper place for GNU CC to find
  117.   them and link with them.  Here's an example of copying some libraries
  118.   from a target machine:
  119.   
  120.        ftp TARGET-MACHINE
  121. !      lcd /usr/local/TARGET/lib
  122.        cd /lib
  123.        get libc.a
  124.        cd /usr/lib
  125. --- 884,896 ----
  126.   
  127.      If you want to install libraries to use with the cross-compiler,
  128.   such as a standard C library, put them in the directory
  129. ! `/gnu/TARGET/lib'; installation of GNU CC copies all all the
  130.   files in that subdirectory into the proper place for GNU CC to find
  131.   them and link with them.  Here's an example of copying some libraries
  132.   from a target machine:
  133.   
  134.        ftp TARGET-MACHINE
  135. !      lcd /gnu/TARGET/lib
  136.        cd /lib
  137.        get libc.a
  138.        cd /usr/lib
  139. ***************
  140. *** 903,916 ****
  141.   
  142.      Many targets require "start files" such as `crt0.o' and `crtn.o'
  143.   which are linked into each executable; these too should be placed in
  144. ! `/usr/local/TARGET/lib'.  There may be several alternatives for
  145.   `crt0.o', for use with profiling or other compilation options.  Check
  146.   your target's definition of `STARTFILE_SPEC' to find out what start
  147.   files it uses.  Here's an example of copying these files from a target
  148.   machine:
  149.   
  150.        ftp TARGET-MACHINE
  151. !      lcd /usr/local/TARGET/lib
  152.        prompt
  153.        cd /lib
  154.        mget *crt*.o
  155. --- 903,916 ----
  156.   
  157.      Many targets require "start files" such as `crt0.o' and `crtn.o'
  158.   which are linked into each executable; these too should be placed in
  159. ! `/gnu/TARGET/lib'.  There may be several alternatives for
  160.   `crt0.o', for use with profiling or other compilation options.  Check
  161.   your target's definition of `STARTFILE_SPEC' to find out what start
  162.   files it uses.  Here's an example of copying these files from a target
  163.   machine:
  164.   
  165.        ftp TARGET-MACHINE
  166. !      lcd /gnu/TARGET/lib
  167.        prompt
  168.        cd /lib
  169.        mget *crt*.o
  170. ***************
  171. *** 1023,1029 ****
  172.   cross-compiling.
  173.   
  174.      When you have found suitable header files, put them in
  175. ! `/usr/local/TARGET/include', before building the cross compiler.  Then
  176.   installation will run fixincludes properly and install the corrected
  177.   versions of the header files where the compiler will use them.
  178.   
  179. --- 1023,1029 ----
  180.   cross-compiling.
  181.   
  182.      When you have found suitable header files, put them in
  183. ! `/gnu/TARGET/include', before building the cross compiler.  Then
  184.   installation will run fixincludes properly and install the corrected
  185.   versions of the header files where the compiler will use them.
  186.   
  187. ***************
  188. *** 1040,1046 ****
  189.      Then, on the host machine, do this:
  190.   
  191.        ftp TARGET-MACHINE
  192. !      lcd /usr/local/TARGET/include
  193.        get tarfile
  194.        quit
  195.        tar xf tarfile
  196. --- 1040,1046 ----
  197.      Then, on the host machine, do this:
  198.   
  199.        ftp TARGET-MACHINE
  200. !      lcd /gnu/TARGET/include
  201.        get tarfile
  202.        quit
  203.        tar xf tarfile
  204. ***************
  205. *** 1098,1104 ****
  206.   `jaguar.cs.utah.edu' `dist' subdirectory.  You would need to install
  207.   GAS in the file
  208.   
  209. !      /usr/local/lib/gcc-lib/CONFIGURATION/GCCVERSION/as
  210.   
  211.   where CONFIGURATION is the configuration name (perhaps `hpNNN-hpux')
  212.   and GCCVERSION is the GNU CC version number.  Do this *before* starting
  213. --- 1098,1104 ----
  214.   `jaguar.cs.utah.edu' `dist' subdirectory.  You would need to install
  215.   GAS in the file
  216.   
  217. !      /gnu/lib/gcc-lib/CONFIGURATION/GCCVERSION/as
  218.   
  219.   where CONFIGURATION is the configuration name (perhaps `hpNNN-hpux')
  220.   and GCCVERSION is the GNU CC version number.  Do this *before* starting
  221. ***************
  222. *** 1618,1625 ****
  223.   target independent header files in that directory.
  224.   
  225.      `LOCAL_INCLUDE_DIR' is used only for a native compiler.  It is
  226. ! normally `/usr/local/include'.  GNU CC searches this directory so that
  227. ! users can install header files in `/usr/local/include'.
  228.   
  229.      `CROSS_INCLUDE_DIR' is used only for a cross compiler.  GNU CC
  230.   doesn't install anything there.
  231. --- 1618,1625 ----
  232.   target independent header files in that directory.
  233.   
  234.      `LOCAL_INCLUDE_DIR' is used only for a native compiler.  It is
  235. ! normally `/gnu/include'.  GNU CC searches this directory so that
  236. ! users can install header files in `/gnu/include'.
  237.   
  238.      `CROSS_INCLUDE_DIR' is used only for a cross compiler.  GNU CC
  239.   doesn't install anything there.
  240. diff -rc --new-file /src/baseline/gcc-2.5.8/Makefile.in gcc-2.5.8/Makefile.in
  241. *** /src/baseline/gcc-2.5.8/Makefile.in    Thu Dec 23 19:13:50 1993
  242. --- gcc-2.5.8/Makefile.in    Tue Feb 22 11:26:49 1994
  243. ***************
  244. *** 58,68 ****
  245.   AR_FLAGS = rc
  246.   SHELL = /bin/sh
  247.   # on sysV, define this as cp.
  248. ! INSTALL = install -c
  249.   # These permit overriding just for certain files.
  250.   INSTALL_PROGRAM = $(INSTALL)
  251.   INSTALL_DATA = $(INSTALL)
  252.   SYMLINK = ln -s
  253.   MAKEINFO = makeinfo
  254.   TEXI2DVI = texi2dvi
  255.   
  256. --- 58,71 ----
  257.   AR_FLAGS = rc
  258.   SHELL = /bin/sh
  259.   # on sysV, define this as cp.
  260. ! INSTALL = cp
  261.   # These permit overriding just for certain files.
  262.   INSTALL_PROGRAM = $(INSTALL)
  263.   INSTALL_DATA = $(INSTALL)
  264.   SYMLINK = ln -s
  265. + # Some systems don't support hardlinks.  For this case, a simple copy
  266. + # will achieve the same results for our purposes.
  267. + HARDLINK = ln
  268.   MAKEINFO = makeinfo
  269.   TEXI2DVI = texi2dvi
  270.   
  271. ***************
  272. *** 90,102 ****
  273.   OLDAR = ar
  274.   
  275.   # Target to use when installing include directory.  Either
  276. ! # install-headers-tar or install-headers-cpio.
  277.   INSTALL_HEADERS_DIR = install-headers-tar
  278.   
  279.   # The GCC to use for compiling libgcc2.a, enquire, and cross-test.
  280.   # Usually the one we just built.
  281.   # Don't use this as a dependency--use $(GCC_PASSES) or $(GCC_PARTS).
  282. ! GCC_FOR_TARGET = ./xgcc -B./
  283.   
  284.   # This is used instead of ALL_CFLAGS when compiling with GCC_FOR_TARGET.
  285.   # It omits XCFLAGS, and specifies -B./.
  286. --- 93,106 ----
  287.   OLDAR = ar
  288.   
  289.   # Target to use when installing include directory.  Either
  290. ! # install-headers-tar install-headers-cpio, or install-headers-cp.
  291.   INSTALL_HEADERS_DIR = install-headers-tar
  292.   
  293.   # The GCC to use for compiling libgcc2.a, enquire, and cross-test.
  294.   # Usually the one we just built.
  295.   # Don't use this as a dependency--use $(GCC_PASSES) or $(GCC_PARTS).
  296. ! XGCC = xgcc
  297. ! GCC_FOR_TARGET = ./$(XGCC) -B./
  298.   
  299.   # This is used instead of ALL_CFLAGS when compiling with GCC_FOR_TARGET.
  300.   # It omits XCFLAGS, and specifies -B./.
  301. ***************
  302. *** 141,152 ****
  303.   srcdir = .
  304.   # Common prefix for installation directories.
  305.   # NOTE: This directory must exist when you start installation.
  306. ! prefix = /usr/local
  307.   # Directory in which to put localized header files. On the systems with
  308.   # gcc as the native cc, `local_prefix' may not be `prefix' which is
  309.   # `/usr'.
  310.   # NOTE: local_prefix *should not* default from prefix.
  311. ! local_prefix = /usr/local
  312.   # Directory in which to put host dependent programs and libraries
  313.   exec_prefix = $(prefix)
  314.   # Directory in which to put the executable for the command `gcc'
  315. --- 145,159 ----
  316.   srcdir = .
  317.   # Common prefix for installation directories.
  318.   # NOTE: This directory must exist when you start installation.
  319. ! prefix = /gnu
  320.   # Directory in which to put localized header files. On the systems with
  321.   # gcc as the native cc, `local_prefix' may not be `prefix' which is
  322.   # `/usr'.
  323. + # Similar considerations apply for toolkits located on non-writable storage,
  324. + # such as CD-ROM, where we need a completely separate place to put local
  325. + # include files.
  326.   # NOTE: local_prefix *should not* default from prefix.
  327. ! local_prefix = /gnu
  328.   # Directory in which to put host dependent programs and libraries
  329.   exec_prefix = $(prefix)
  330.   # Directory in which to put the executable for the command `gcc'
  331. ***************
  332. *** 161,171 ****
  333.   # (But this currently agrees with what is in cross-make.)
  334.   assertdir = $(tooldir)/include
  335.   # where the info files go
  336. ! infodir = $(prefix)/info
  337.   # Extension (if any) to put in installed man-page filename.
  338.   manext = .1
  339.   # Directory in which to put man pages.
  340. ! mandir = $(prefix)/man/man1
  341.   # Directory in which to find other cross-compilation tools and headers.
  342.   # Used in install-cross.
  343.   tooldir = $(exec_prefix)/$(target)
  344. --- 168,178 ----
  345.   # (But this currently agrees with what is in cross-make.)
  346.   assertdir = $(tooldir)/include
  347.   # where the info files go
  348. ! infodir = /info
  349.   # Extension (if any) to put in installed man-page filename.
  350.   manext = .1
  351.   # Directory in which to put man pages.
  352. ! mandir = /man/man1
  353.   # Directory in which to find other cross-compilation tools and headers.
  354.   # Used in install-cross.
  355.   tooldir = $(exec_prefix)/$(target)
  356. ***************
  357. *** 549,555 ****
  358.       $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o xgcc gcc.o version.o $(LIBS)
  359.   
  360.   # Dump a specs file to make -B./ read these specs over installed ones.
  361. ! specs: xgcc
  362.       $(GCC_FOR_TARGET) -dumpspecs > specs
  363.   
  364.   # Create the compiler driver for g++.
  365. --- 556,562 ----
  366.       $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o xgcc gcc.o version.o $(LIBS)
  367.   
  368.   # Dump a specs file to make -B./ read these specs over installed ones.
  369. ! specs: xgcc xgccv
  370.       $(GCC_FOR_TARGET) -dumpspecs > specs
  371.   
  372.   # Create the compiler driver for g++.
  373. ***************
  374. *** 752,759 ****
  375.   # the second ar command tries to overwrite this file.  To avoid the error
  376.   # message from ar, we make sure all files are writable.
  377.       -(cd tmpcopy; chmod +w * > /dev/null 2>&1)
  378. !     (cd tmpcopy; $(AR) x ../$(LIBGCC2))
  379. !     (cd tmpcopy; $(AR) $(AR_FLAGS) ../tmplibgcc.a *.o)
  380.       rm -rf tmpcopy
  381.       -if $(RANLIB_TEST) ; then $(RANLIB) tmplibgcc.a; else true; fi
  382.   # Actually build it in tmplibgcc.a, then rename at end,
  383. --- 759,767 ----
  384.   # the second ar command tries to overwrite this file.  To avoid the error
  385.   # message from ar, we make sure all files are writable.
  386.       -(cd tmpcopy; chmod +w * > /dev/null 2>&1)
  387. ! # The "cd..; wait" makes sure that the lock on tmpcopy has time to disappear.
  388. !     (cd tmpcopy; $(AR) x ../$(LIBGCC2); cd ..; /c/wait 2)
  389. !     (cd tmpcopy; $(AR) $(AR_FLAGS) ../tmplibgcc.a *.o; cd ..; /c/wait 2)
  390.       rm -rf tmpcopy
  391.       -if $(RANLIB_TEST) ; then $(RANLIB) tmplibgcc.a; else true; fi
  392.   # Actually build it in tmplibgcc.a, then rename at end,
  393. ***************
  394. *** 770,779 ****
  395.       cd objc; \
  396.       $(MAKE) -f $${srcdir1}/objc/Makefile libobjc.a \
  397.         srcdir=$${srcdir1} tooldir=$(tooldir) AR="$(AR)" AR_FLAGS="$(AR_FLAGS)" \
  398. !       GCC_FOR_TARGET="$${thisdir1}/xgcc -B$${thisdir1}/" \
  399.         GCC_CFLAGS="$(GCC_CFLAGS)"
  400.       -rm -f libobjc.a
  401. !     ln objc/libobjc.a . >/dev/null 2>&1 || cp objc/libobjc.a .
  402.       -if $(RANLIB_TEST) ; then $(RANLIB) libobjc.a; else true; fi
  403.   
  404.   # This is used by objc/Makefile if the user runs that directly.
  405. --- 778,787 ----
  406.       cd objc; \
  407.       $(MAKE) -f $${srcdir1}/objc/Makefile libobjc.a \
  408.         srcdir=$${srcdir1} tooldir=$(tooldir) AR="$(AR)" AR_FLAGS="$(AR_FLAGS)" \
  409. !       GCC_FOR_TARGET="$${thisdir1}/$(XGCC) -B$${thisdir1}/" \
  410.         GCC_CFLAGS="$(GCC_CFLAGS)"
  411.       -rm -f libobjc.a
  412. !     cp objc/libobjc.a . >/dev/null 2>&1 || cp objc/libobjc.a .
  413.       -if $(RANLIB_TEST) ; then $(RANLIB) libobjc.a; else true; fi
  414.   
  415.   # This is used by objc/Makefile if the user runs that directly.
  416. ***************
  417. *** 783,789 ****
  418.       cd objc; \
  419.       $(MAKE) -f $$srcdir1/objc/Makefile libobjc.a \
  420.         srcdir=$$srcdir1 tooldir=$(tooldir) AR="$(AR)" AR_FLAGS="$(AR_FLAGS)" \
  421. !       GCC_FOR_TARGET="$$thisdir1/xgcc -B$$thisdir1/" \
  422.         GCC_CFLAGS="$(GCC_CFLAGS)"
  423.   
  424.   # Compile two additional files that are linked with every program
  425. --- 791,797 ----
  426.       cd objc; \
  427.       $(MAKE) -f $$srcdir1/objc/Makefile libobjc.a \
  428.         srcdir=$$srcdir1 tooldir=$(tooldir) AR="$(AR)" AR_FLAGS="$(AR_FLAGS)" \
  429. !       GCC_FOR_TARGET="$$thisdir1/$(XGCC) -B$$thisdir1/" \
  430.         GCC_CFLAGS="$(GCC_CFLAGS)"
  431.   
  432.   # Compile two additional files that are linked with every program
  433. ***************
  434. *** 872,878 ****
  435.   # To make a configuration always use collect2, set USE_COLLECT2 to ld.
  436.   ld: collect2
  437.       rm -f ld
  438. !     ln collect2 ld
  439.   
  440.   collect2 : collect2.o version.o $(LIBDEPS)
  441.   # Don't try modifying collect2 (aka ld) in place--it might be linking this.
  442. --- 880,886 ----
  443.   # To make a configuration always use collect2, set USE_COLLECT2 to ld.
  444.   ld: collect2
  445.       rm -f ld
  446. !     cp collect2 ld
  447.   
  448.   collect2 : collect2.o version.o $(LIBDEPS)
  449.   # Don't try modifying collect2 (aka ld) in place--it might be linking this.
  450. ***************
  451. *** 1383,1389 ****
  452.   # Making the preprocessor
  453.   cpp: cccp
  454.       -rm -f cpp
  455. !     ln cccp cpp
  456.   cccp: cccp.o cexp.o version.o $(LIBDEPS)
  457.       $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o cccp cccp.o cexp.o version.o $(LIBS)
  458.   cexp.o: $(srcdir)/cexp.c $(CONFIG_H)
  459. --- 1391,1397 ----
  460.   # Making the preprocessor
  461.   cpp: cccp
  462.       -rm -f cpp
  463. !     cp cccp cpp
  464.   cccp: cccp.o cexp.o version.o $(LIBDEPS)
  465.       $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o cccp cccp.o cexp.o version.o $(LIBS)
  466.   cexp.o: $(srcdir)/cexp.c $(CONFIG_H)
  467. ***************
  468. *** 1541,1547 ****
  469.         for dir in $(SYSTEM_HEADER_DIR) $(OTHER_FIXINCLUDES_DIRS); do \
  470.           if [ -d $$dir ]; \
  471.           then \
  472. !           $(srcdir)/$(FIXINCLUDES) include $$dir $(srcdir) "`pwd`/xgcc -B`pwd`/"; \
  473.           else true; fi; \
  474.         done; \
  475.       else true; \
  476. --- 1549,1555 ----
  477.         for dir in $(SYSTEM_HEADER_DIR) $(OTHER_FIXINCLUDES_DIRS); do \
  478.           if [ -d $$dir ]; \
  479.           then \
  480. !           $(srcdir)/$(FIXINCLUDES) include $$dir $(srcdir) "`pwd`/$(XGCC) -B`pwd`/"; \
  481.           else true; fi; \
  482.         done; \
  483.       else true; \
  484. ***************
  485. *** 1563,1569 ****
  486.       cd objc; \
  487.       $(MAKE) -f $${srcdir1}/objc/Makefile copy-headers \
  488.       srcdir=$${srcdir1} tooldir=$(tooldir) AR="$(AR)" AR_FLAGS="$(AR_FLAGS)" \
  489. !     GCC_FOR_TARGET="$${thisdir1}/xgcc -B$${thisdir1}/" \
  490.       GCC_CFLAGS="$(GCC_CFLAGS)" incinstalldir=$${thisdir1}/include
  491.       touch objc-headers
  492.   
  493. --- 1571,1577 ----
  494.       cd objc; \
  495.       $(MAKE) -f $${srcdir1}/objc/Makefile copy-headers \
  496.       srcdir=$${srcdir1} tooldir=$(tooldir) AR="$(AR)" AR_FLAGS="$(AR_FLAGS)" \
  497. !     GCC_FOR_TARGET="$${thisdir1}/$(XGCC) -B$${thisdir1}/" \
  498.       GCC_CFLAGS="$(GCC_CFLAGS)" incinstalldir=$${thisdir1}/include
  499.       touch objc-headers
  500.   
  501. ***************
  502. *** 1845,1864 ****
  503.           $(INSTALL_PROGRAM) g++-cross $(bindir)/$(target)-g++; \
  504.           chmod a+x $(bindir)/$(target)-g++; \
  505.           rm -f $(bindir)/$(target)-c++; \
  506. !         ln $(bindir)/$(target)-g++ $(bindir)/$(target)-c++; \
  507.         fi ; \
  508.       else \
  509.         rm -f $(bindir)/gcc; \
  510.         $(INSTALL_PROGRAM) xgcc $(bindir)/gcc; \
  511.         rm -f $(bindir)/$(target)-gcc-1; \
  512. !       ln $(bindir)/gcc $(bindir)/$(target)-gcc-1; \
  513.         mv $(bindir)/$(target)-gcc-1 $(bindir)/$(target)-gcc; \
  514.         if [ -f cc1plus ] ; then \
  515.           rm -f $(bindir)/g++; \
  516.           $(INSTALL_PROGRAM) g++ $(bindir)/g++; \
  517.           chmod a+x $(bindir)/g++; \
  518.           rm -f $(bindir)/c++; \
  519. !         ln $(bindir)/g++ $(bindir)/c++; \
  520.         fi ; \
  521.       fi
  522.   # Install protoize if it was compiled.
  523. --- 1853,1872 ----
  524.           $(INSTALL_PROGRAM) g++-cross $(bindir)/$(target)-g++; \
  525.           chmod a+x $(bindir)/$(target)-g++; \
  526.           rm -f $(bindir)/$(target)-c++; \
  527. !         $(HARDLINK) $(bindir)/$(target)-g++ $(bindir)/$(target)-c++; \
  528.         fi ; \
  529.       else \
  530.         rm -f $(bindir)/gcc; \
  531.         $(INSTALL_PROGRAM) xgcc $(bindir)/gcc; \
  532.         rm -f $(bindir)/$(target)-gcc-1; \
  533. !       $(HARDLINK) $(bindir)/gcc $(bindir)/$(target)-gcc-1; \
  534.         mv $(bindir)/$(target)-gcc-1 $(bindir)/$(target)-gcc; \
  535.         if [ -f cc1plus ] ; then \
  536.           rm -f $(bindir)/g++; \
  537.           $(INSTALL_PROGRAM) g++ $(bindir)/g++; \
  538.           chmod a+x $(bindir)/g++; \
  539.           rm -f $(bindir)/c++; \
  540. !         $(HARDLINK) $(bindir)/g++ $(bindir)/c++; \
  541.         fi ; \
  542.       fi
  543.   # Install protoize if it was compiled.
  544. ***************
  545. *** 1924,1930 ****
  546.           dest=`ls -ld $(libsubdir)/include/$$i | sed -n 's/.*-> //p'`; \
  547.           if expr "$$dest" : "$$dir.*" > /dev/null; then \
  548.             rm -f $(libsubdir)/include/$$i; \
  549. !           ln -s `echo $$i | sed "s|/[^/]*|/..|g" | sed 's|/..$$||'``echo "$$dest" | sed "s|$$dir||"` $(libsubdir)/include/$$i; \
  550.           fi; \
  551.         done; \
  552.       fi
  553. --- 1932,1938 ----
  554.           dest=`ls -ld $(libsubdir)/include/$$i | sed -n 's/.*-> //p'`; \
  555.           if expr "$$dest" : "$$dir.*" > /dev/null; then \
  556.             rm -f $(libsubdir)/include/$$i; \
  557. !           $(HARDLINK) -s `echo $$i | sed "s|/[^/]*|/..|g" | sed 's|/..$$||'``echo "$$dest" | sed "s|$$dir||"` $(libsubdir)/include/$$i; \
  558.           fi; \
  559.         done; \
  560.       fi
  561. ***************
  562. *** 1947,1952 ****
  563. --- 1955,1964 ----
  564.   install-headers-cpio: stmp-headers $(STMP_FIXPROTO) install-include-dir
  565.       cd include; find . -print | cpio -pdum $(libsubdir)/include
  566.   
  567. + # Install the include directory using simple recursive copy.
  568. + install-headers-cp: stmp-headers install-include-dir
  569. +     cd include; cp -r . $(libsubdir)/include
  570.   # Put assert.h where it won't override GNU libc's assert.h.
  571.   # It goes in a dir that is searched after GNU libc's headers;
  572.   # thus, the following conditionals are no longer needed.
  573. ***************
  574. *** 2034,2040 ****
  575.       mkdir tmp/config
  576.       mkdir tmp/objc
  577.       for file in *[0-9a-zA-Z+]; do \
  578. !       ln $$file tmp > /dev/null 2>&1 || cp $$file tmp; \
  579.       done
  580.       cd config; \
  581.       for file in *[0-9a-zA-Z+]; do \
  582. --- 2046,2052 ----
  583.       mkdir tmp/config
  584.       mkdir tmp/objc
  585.       for file in *[0-9a-zA-Z+]; do \
  586. !       $(HARDLINK) $$file tmp > /dev/null 2>&1 || cp $$file tmp; \
  587.       done
  588.       cd config; \
  589.       for file in *[0-9a-zA-Z+]; do \
  590. ***************
  591. *** 2042,2061 ****
  592.           mkdir ../tmp/config/$$file; \
  593.           cd $$file; \
  594.           for subfile in *[0-9a-zA-Z+]; do \
  595. !           ln $$subfile ../../tmp/config/$$file >/dev/null 2>&1 \
  596.             || cp $$subfile ../../tmp/config/$$file; \
  597.           done; \
  598.           cd ..; \
  599.         else \
  600. !         ln $$file ../tmp/config >/dev/null 2>&1 \
  601.           || cp $$file ../tmp/config; \
  602.         fi; \
  603.       done
  604.       cd objc; \
  605.       for file in *[0-9a-zA-Z+]; do \
  606. !       ln $$file ../tmp/objc >/dev/null 2>&1 || cp $$file ../tmp/objc; \
  607.       done
  608. !     ln .gdbinit tmp
  609.       mv tmp gcc-$(version)
  610.   # Get rid of everything we don't want in the distribution.
  611.       cd gcc-$(version); make -f Makefile.in extraclean
  612. --- 2054,2073 ----
  613.           mkdir ../tmp/config/$$file; \
  614.           cd $$file; \
  615.           for subfile in *[0-9a-zA-Z+]; do \
  616. !           $(HARDLINK) $$subfile ../../tmp/config/$$file >/dev/null 2>&1 \
  617.             || cp $$subfile ../../tmp/config/$$file; \
  618.           done; \
  619.           cd ..; \
  620.         else \
  621. !         $(HARDLINK) $$file ../tmp/config >/dev/null 2>&1 \
  622.           || cp $$file ../tmp/config; \
  623.         fi; \
  624.       done
  625.       cd objc; \
  626.       for file in *[0-9a-zA-Z+]; do \
  627. !       $(HARDLINK) $$file ../tmp/objc >/dev/null 2>&1 || cp $$file ../tmp/objc; \
  628.       done
  629. !     $(HARDLINK) .gdbinit tmp
  630.       mv tmp gcc-$(version)
  631.   # Get rid of everything we don't want in the distribution.
  632.       cd gcc-$(version); make -f Makefile.in extraclean
  633. ***************
  634. *** 2074,2090 ****
  635.   # in the intended test directory to make it a suitable test directory.
  636.   # THIS IS OBSOLETE; use the -srcdir operand in configure instead. 
  637.   maketest:
  638. !     ln -s $(DIR)/*.[chy] .
  639. !     ln -s $(DIR)/configure .
  640. !     ln -s $(DIR)/*.def .
  641.       -rm -f =*
  642. !     ln -s $(DIR)/.gdbinit .
  643. !     ln -s $(DIR)/$(FIXINCLUDES) .
  644. !     -ln -s $(DIR)/bison.simple .
  645. !     ln -s $(DIR)/config .
  646. !     ln -s $(DIR)/move-if-change .
  647.   # The then and else were swapped to avoid a problem on Ultrix.
  648. !     if [ ! -f Makefile ] ; then ln -s $(DIR)/Makefile .; else false; fi
  649.       -rm tm.h aux-output.c config.h md
  650.       make clean
  651.   # You must then run config to set up for compilation.
  652. --- 2086,2102 ----
  653.   # in the intended test directory to make it a suitable test directory.
  654.   # THIS IS OBSOLETE; use the -srcdir operand in configure instead. 
  655.   maketest:
  656. !     cp $(DIR)/*.[chy] .
  657. !     cp $(DIR)/configure .
  658. !     cp $(DIR)/*.def .
  659.       -rm -f =*
  660. !     cp $(DIR)/.gdbinit .
  661. !     cp $(DIR)/$(FIXINCLUDES) .
  662. !     -cp $(DIR)/bison.simple .
  663. !     cp $(DIR)/config .
  664. !     cp $(DIR)/move-if-change .
  665.   # The then and else were swapped to avoid a problem on Ultrix.
  666. !     if [ ! -f Makefile ] ; then cp $(DIR)/Makefile .; else false; fi
  667.       -rm tm.h aux-output.c config.h md
  668.       make clean
  669.   # You must then run config to set up for compilation.
  670. ***************
  671. *** 2100,2116 ****
  672.   # To prevent `make install' from compiling alloca.o and then relinking cc1
  673.   # because alloca.o is newer, we permit these recursive makes to compile
  674.   # alloca.o.  Then cc1 is newer, so it won't have to be relinked.
  675. !     $(MAKE) CC="stage1/xgcc -Bstage1/" CFLAGS="$(BOOT_CFLAGS)" LDFLAGS="$(BOOT_LDFLAGS)" libdir=$(libdir) LANGUAGES="$(LANGUAGES)"
  676.       $(MAKE) stage2
  677. !     $(MAKE) CC="stage2/xgcc -Bstage2/" CFLAGS="$(BOOT_CFLAGS)" LDFLAGS="$(BOOT_LDFLAGS)" libdir=$(libdir) LANGUAGES="$(LANGUAGES)"
  678.   
  679.   bootstrap2: force
  680. !     $(MAKE) CC="stage1/xgcc -Bstage1/" CFLAGS="$(BOOT_CFLAGS)" LDFLAGS="$(BOOT_LDFLAGS)" libdir=$(libdir) LANGUAGES="$(LANGUAGES)"
  681.       $(MAKE) stage2
  682. !     $(MAKE) CC="stage2/xgcc -Bstage2/" CFLAGS="$(BOOT_CFLAGS)" LDFLAGS="$(BOOT_LDFLAGS)" libdir=$(libdir) LANGUAGES="$(LANGUAGES)"
  683.   
  684.   bootstrap3: force
  685. !     $(MAKE) CC="stage2/xgcc -Bstage2/" CFLAGS="$(BOOT_CFLAGS)" LDFLAGS="$(BOOT_LDFLAGS)" libdir=$(libdir) LANGUAGES="$(LANGUAGES)"
  686.   
  687.   # Compare the object files in the current directory with those in the
  688.   # stage2 directory.
  689. --- 2112,2128 ----
  690.   # To prevent `make install' from compiling alloca.o and then relinking cc1
  691.   # because alloca.o is newer, we permit these recursive makes to compile
  692.   # alloca.o.  Then cc1 is newer, so it won't have to be relinked.
  693. !     $(MAKE) CC="stage1/$(XGCC) -Bstage1/" CFLAGS="$(BOOT_CFLAGS)" LDFLAGS="$(BOOT_LDFLAGS)" libdir=$(libdir) LANGUAGES="$(LANGUAGES)"
  694.       $(MAKE) stage2
  695. !     $(MAKE) CC="stage2/$(XGCC) -Bstage2/" CFLAGS="$(BOOT_CFLAGS)" LDFLAGS="$(BOOT_LDFLAGS)" libdir=$(libdir) LANGUAGES="$(LANGUAGES)"
  696.   
  697.   bootstrap2: force
  698. !     $(MAKE) CC="stage1/$(XGCC) -Bstage1/" CFLAGS="$(BOOT_CFLAGS)" LDFLAGS="$(BOOT_LDFLAGS)" libdir=$(libdir) LANGUAGES="$(LANGUAGES)"
  699.       $(MAKE) stage2
  700. !     $(MAKE) CC="stage2/$(XGCC) -Bstage2/" CFLAGS="$(BOOT_CFLAGS)" LDFLAGS="$(BOOT_LDFLAGS)" libdir=$(libdir) LANGUAGES="$(LANGUAGES)"
  701.   
  702.   bootstrap3: force
  703. !     $(MAKE) CC="stage2/$(XGCC) -Bstage2/" CFLAGS="$(BOOT_CFLAGS)" LDFLAGS="$(BOOT_LDFLAGS)" libdir=$(libdir) LANGUAGES="$(LANGUAGES)"
  704.   
  705.   # Compare the object files in the current directory with those in the
  706.   # stage2 directory.
  707. ***************
  708. *** 2134,2161 ****
  709.       -rm -f tmp-foo*
  710.   
  711.   # Copy the object files from a particular stage into a subdirectory.
  712. ! stage1: force
  713.       -if [ -d stage1 ] ; then true ; else mkdir stage1 ; fi
  714.       -mv $(STAGESTUFF) stage1
  715.       -rm -f stage1/libgcc.a
  716.       -cp libgcc.a stage1
  717.       -if $(RANLIB_TEST) ; then $(RANLIB) stage1/libgcc.a; else true; fi
  718.   
  719. ! stage2: force
  720.       -if [ -d stage2 ] ; then true ; else mkdir stage2 ; fi
  721.       -mv $(STAGESTUFF) stage2
  722.       -rm -f stage2/libgcc.a
  723.       -cp libgcc.a stage2
  724.       -if $(RANLIB_TEST) ; then $(RANLIB) stage2/libgcc.a; else true; fi
  725.   
  726. ! stage3: force
  727.       -if [ -d stage3 ] ; then true ; else mkdir stage3 ; fi
  728.       -mv $(STAGESTUFF) stage3
  729.       -rm -f stage3/libgcc.a
  730.       -cp libgcc.a stage3
  731.       -if $(RANLIB_TEST) ; then $(RANLIB) stage3/libgcc.a; else true; fi
  732.   
  733. ! stage4: force
  734.       -if [ -d stage4 ] ; then true ; else mkdir stage4 ; fi
  735.       -mv $(STAGESTUFF) stage4
  736.       -rm -f stage4/libgcc.a
  737. --- 2146,2173 ----
  738.       -rm -f tmp-foo*
  739.   
  740.   # Copy the object files from a particular stage into a subdirectory.
  741. ! stage1: force $(EXTRA_STAGE1_TARGETS)
  742.       -if [ -d stage1 ] ; then true ; else mkdir stage1 ; fi
  743.       -mv $(STAGESTUFF) stage1
  744.       -rm -f stage1/libgcc.a
  745.       -cp libgcc.a stage1
  746.       -if $(RANLIB_TEST) ; then $(RANLIB) stage1/libgcc.a; else true; fi
  747.   
  748. ! stage2: force $(EXTRA_STAGE2_TARGETS)
  749.       -if [ -d stage2 ] ; then true ; else mkdir stage2 ; fi
  750.       -mv $(STAGESTUFF) stage2
  751.       -rm -f stage2/libgcc.a
  752.       -cp libgcc.a stage2
  753.       -if $(RANLIB_TEST) ; then $(RANLIB) stage2/libgcc.a; else true; fi
  754.   
  755. ! stage3: force $(EXTRA_STAGE3_TARGETS)
  756.       -if [ -d stage3 ] ; then true ; else mkdir stage3 ; fi
  757.       -mv $(STAGESTUFF) stage3
  758.       -rm -f stage3/libgcc.a
  759.       -cp libgcc.a stage3
  760.       -if $(RANLIB_TEST) ; then $(RANLIB) stage3/libgcc.a; else true; fi
  761.   
  762. ! stage4: force $(EXTRA_STAGE4_TARGETS)
  763.       -if [ -d stage4 ] ; then true ; else mkdir stage4 ; fi
  764.       -mv $(STAGESTUFF) stage4
  765.       -rm -f stage4/libgcc.a
  766. diff -rc --new-file /src/baseline/gcc-2.5.8/Product-Info gcc-2.5.8/Product-Info
  767. *** /src/baseline/gcc-2.5.8/Product-Info    Thu Jan  1 00:00:00 1970
  768. --- gcc-2.5.8/Product-Info    Tue Jul 12 17:15:32 1994
  769. ***************
  770. *** 0 ****
  771. --- 1,22 ----
  772. + .name
  773. + gcc
  774. + .fullname
  775. + GNU C/C++/Objective-C compiler
  776. + .type
  777. + Compiler
  778. + .short
  779. + GNU C/C++/Obj-C compilers.
  780. + .description
  781. + The GNU C, C++, and Objective C compilers.  Includes all support for
  782. + compiling C, C++ and Objective C, including a run-time library for
  783. + Objective C.
  784. + .version
  785. + 2.5.8
  786. + .author
  787. + Free Software Foundation
  788. + .requirements
  789. + Amiga binaries require ixemul.library.
  790. + .distribution
  791. + GNU Public License
  792. + .described-by
  793. + Fred Fish (fnf@amigalib.com)
  794. diff -rc --new-file /src/baseline/gcc-2.5.8/README gcc-2.5.8/README
  795. *** /src/baseline/gcc-2.5.8/README    Sun Dec 12 07:50:02 1993
  796. --- gcc-2.5.8/README    Tue Feb 22 11:26:53 1994
  797. ***************
  798. *** 10,17 ****
  799.   copy of the installation information, as plain ASCII.
  800.   
  801.   Installing this package will create various files in subdirectories of
  802. ! /usr/local/lib, which are passes used by the compiler and a library
  803. ! named libgcc.a.  It will also create /usr/local/bin/gcc, which is
  804.   the user-level command to do a compilation.
  805.   
  806.   See the Bugs chapter of the GCC Manual for how to report bugs
  807. --- 10,17 ----
  808.   copy of the installation information, as plain ASCII.
  809.   
  810.   Installing this package will create various files in subdirectories of
  811. ! /gnu/lib, which are passes used by the compiler and a library
  812. ! named libgcc.a.  It will also create /gnu/bin/gcc, which is
  813.   the user-level command to do a compilation.
  814.   
  815.   See the Bugs chapter of the GCC Manual for how to report bugs
  816. diff -rc --new-file /src/baseline/gcc-2.5.8/bi-parser.c gcc-2.5.8/bi-parser.c
  817. *** /src/baseline/gcc-2.5.8/bi-parser.c    Sun Nov 14 23:57:34 1993
  818. --- gcc-2.5.8/bi-parser.c    Tue Feb 22 11:22:13 1994
  819. ***************
  820. *** 1,5 ****
  821.   
  822. ! /*  A Bison parser, made from bi-parser.y  */
  823.   
  824.   #define YYBISON 1  /* Identify Bison output.  */
  825.   
  826. --- 1,6 ----
  827.   
  828. ! /*  A Bison parser, made from bi-parser.y with Bison version GNU Bison version 1.22
  829. !   */
  830.   
  831.   #define YYBISON 1  /* Identify Bison output.  */
  832.   
  833. ***************
  834. *** 55,63 ****
  835. --- 56,66 ----
  836.   
  837.   #include <stdio.h>
  838.   
  839. + #ifndef __cplusplus
  840.   #ifndef __STDC__
  841.   #define const
  842.   #endif
  843. + #endif
  844.   
  845.   
  846.   
  847. ***************
  848. *** 96,101 ****
  849. --- 99,105 ----
  850.        2,     2,     2,     2,     2,     1,     2,     3,     4
  851.   };
  852.   
  853. + #if YYDEBUG != 0
  854.   static const short yyprhs[] = {     0,
  855.        0,     2,     4,     7,    18,    20,    24,    28,    34,    42,
  856.       52,    53,    55,    59,    60,    62,    66
  857. ***************
  858. *** 111,116 ****
  859. --- 115,122 ----
  860.        0,    16,     6,    15,     0,     4,     0
  861.   };
  862.   
  863. + #endif
  864.   #if YYDEBUG != 0
  865.   static const short yyrline[] = { 0,
  866.       59,    64,    66,    70,    75,    77,    81,    84,    86,    88,
  867. ***************
  868. *** 173,179 ****
  869.       -1,    12,    -1,    -1,    16
  870.   };
  871.   /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
  872. ! #line 3 "bison.simple"
  873.   
  874.   /* Skeleton output parser for bison,
  875.      Copyright (C) 1984, 1989, 1990 Bob Corbett and Richard Stallman
  876. --- 179,185 ----
  877.       -1,    12,    -1,    -1,    16
  878.   };
  879.   /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
  880. ! #line 3 "/usr/lib/bison.simple"
  881.   
  882.   /* Skeleton output parser for bison,
  883.      Copyright (C) 1984, 1989, 1990 Bob Corbett and Richard Stallman
  884. ***************
  885. *** 354,377 ****
  886.   #endif
  887.   #endif
  888.   
  889. ! #line 184 "bison.simple"
  890. ! /* The user can define YYPARSE_PARAM as the name of an argument to be passed
  891. !    into yyparse.  The argument should have type void *.
  892. !    It should actually point to an object.
  893. !    Grammar actions can access the variable by casting it
  894. !    to the proper pointer type.  */
  895. ! #ifdef YYPARSE_PARAM
  896. ! #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
  897. ! #else
  898. ! #define YYPARSE_PARAM
  899. ! #define YYPARSE_PARAM_DECL
  900. ! #endif
  901.   int
  902. ! yyparse(YYPARSE_PARAM)
  903. !      YYPARSE_PARAM_DECL
  904.   {
  905.     register int yystate;
  906.     register int yyn;
  907. --- 360,368 ----
  908.   #endif
  909.   #endif
  910.   
  911. ! #line 184 "/usr/lib/bison.simple"
  912.   int
  913. ! yyparse()
  914.   {
  915.     register int yystate;
  916.     register int yyn;
  917. ***************
  918. *** 710,716 ****
  919.       break;}
  920.   }
  921.      /* the action file gets copied in in place of this dollarsign */
  922. ! #line 480 "bison.simple"
  923.   
  924.     yyvsp -= yylen;
  925.     yyssp -= yylen;
  926. --- 701,707 ----
  927.       break;}
  928.   }
  929.      /* the action file gets copied in in place of this dollarsign */
  930. ! #line 465 "/usr/lib/bison.simple"
  931.   
  932.     yyvsp -= yylen;
  933.     yyssp -= yylen;
  934. diff -rc --new-file /src/baseline/gcc-2.5.8/c-parse.c gcc-2.5.8/c-parse.c
  935. *** /src/baseline/gcc-2.5.8/c-parse.c    Tue Nov 23 19:43:40 1993
  936. --- gcc-2.5.8/c-parse.c    Mon Apr 25 22:38:25 1994
  937. ***************
  938. *** 1,5 ****
  939.   
  940. ! /*  A Bison parser, made from c-parse.y  */
  941.   
  942.   #define    IDENTIFIER    258
  943.   #define    TYPENAME    259
  944. --- 1,8 ----
  945.   
  946. ! /*  A Bison parser, made from c-parse.y with Bison version GNU Bison version 1.22
  947. !   */
  948. ! #define YYBISON 1  /* Identify Bison output.  */
  949.   
  950.   #define    IDENTIFIER    258
  951.   #define    TYPENAME    259
  952. ***************
  953. *** 143,151 ****
  954. --- 146,156 ----
  955.   
  956.   #include <stdio.h>
  957.   
  958. + #ifndef __cplusplus
  959.   #ifndef __STDC__
  960.   #define const
  961.   #endif
  962. + #endif
  963.   
  964.   
  965.   
  966. ***************
  967. *** 190,196 ****
  968.       70,    71,    72,    73,    74,    75,    76
  969.   };
  970.   
  971. ! static const short yyrline[] = {     0,
  972.      218,   222,   235,   237,   237,   238,   240,   242,   243,   253,
  973.      259,   261,   263,   265,   267,   268,   269,   274,   280,   282,
  974.      283,   285,   290,   292,   293,   295,   300,   302,   303,   307,
  975. --- 195,363 ----
  976.       70,    71,    72,    73,    74,    75,    76
  977.   };
  978.   
  979. ! #if YYDEBUG != 0
  980. ! static const short yyprhs[] = {     0,
  981. !      0,     1,     3,     4,     7,     8,    12,    14,    16,    22,
  982. !     26,    31,    36,    39,    42,    45,    48,    50,    51,    52,
  983. !     60,    65,    66,    67,    75,    80,    81,    82,    89,    93,
  984. !     95,    97,    99,   101,   103,   105,   107,   109,   111,   113,
  985. !    114,   116,   118,   122,   124,   127,   128,   132,   135,   138,
  986. !    141,   146,   149,   154,   157,   160,   162,   167,   168,   176,
  987. !    178,   182,   186,   190,   194,   198,   202,   206,   210,   214,
  988. !    218,   222,   226,   230,   234,   240,   244,   248,   250,   252,
  989. !    254,   258,   262,   263,   268,   273,   278,   282,   286,   289,
  990. !    292,   294,   297,   298,   300,   303,   307,   309,   311,   314,
  991. !    317,   322,   327,   330,   333,   337,   339,   341,   344,   347,
  992. !    348,   353,   358,   362,   366,   369,   372,   375,   379,   380,
  993. !    383,   386,   388,   390,   393,   396,   399,   403,   404,   407,
  994. !    409,   411,   413,   418,   423,   425,   427,   429,   431,   435,
  995. !    437,   441,   442,   447,   448,   455,   459,   460,   467,   471,
  996. !    472,   479,   481,   485,   487,   489,   494,   499,   508,   510,
  997. !    511,   516,   518,   519,   522,   524,   528,   530,   531,   536,
  998. !    538,   539,   548,   549,   556,   557,   562,   563,   569,   570,
  999. !    574,   575,   579,   581,   583,   587,   591,   596,   600,   604,
  1000. !    606,   610,   615,   619,   623,   625,   629,   633,   637,   642,
  1001. !    646,   648,   649,   656,   661,   664,   665,   672,   677,   680,
  1002. !    681,   689,   690,   697,   700,   701,   703,   704,   706,   708,
  1003. !    711,   712,   716,   719,   723,   725,   729,   731,   733,   735,
  1004. !    739,   744,   751,   757,   759,   763,   765,   769,   772,   775,
  1005. !    776,   778,   780,   783,   784,   787,   791,   795,   798,   802,
  1006. !    807,   811,   814,   818,   821,   823,   826,   829,   830,   832,
  1007. !    835,   836,   837,   839,   841,   844,   848,   850,   853,   856,
  1008. !    863,   869,   875,   878,   881,   886,   887,   892,   893,   894,
  1009. !    898,   903,   907,   909,   911,   913,   915,   918,   919,   924,
  1010. !    926,   930,   931,   932,   940,   946,   949,   950,   951,   952,
  1011. !    965,   966,   973,   976,   979,   982,   986,   993,  1002,  1013,
  1012. !   1026,  1030,  1035,  1037,  1039,  1040,  1047,  1051,  1057,  1060,
  1013. !   1063,  1064,  1066,  1067,  1069,  1070,  1072,  1074,  1078,  1083,
  1014. !   1085,  1089,  1090,  1093,  1096,  1097,  1102,  1105,  1106,  1108,
  1015. !   1110,  1114,  1116,  1120,  1123,  1126,  1129,  1132,  1135,  1136,
  1016. !   1139,  1141,  1144,  1146,  1150,  1152
  1017. ! };
  1018. ! static const short yyrhs[] = {    -1,
  1019. !     86,     0,     0,    87,    89,     0,     0,    86,    88,    89,
  1020. !      0,    91,     0,    90,     0,    27,    60,   100,    77,    78,
  1021. !      0,   117,   127,    78,     0,   121,   117,   127,    78,     0,
  1022. !    119,   117,   126,    78,     0,   121,    78,     0,   119,    78,
  1023. !      0,     1,    78,     0,     1,    79,     0,    78,     0,     0,
  1024. !      0,   119,   117,   150,    92,   111,    93,   180,     0,   119,
  1025. !    117,   150,     1,     0,     0,     0,   121,   117,   153,    94,
  1026. !    111,    95,   180,     0,   121,   117,   153,     1,     0,     0,
  1027. !      0,   117,   153,    96,   111,    97,   180,     0,   117,   153,
  1028. !      1,     0,     3,     0,     4,     0,    44,     0,    50,     0,
  1029. !     49,     0,    55,     0,    56,     0,    80,     0,    81,     0,
  1030. !    102,     0,     0,   102,     0,   107,     0,   102,    82,   107,
  1031. !      0,   108,     0,    51,   105,     0,     0,    32,   104,   105,
  1032. !      0,    99,   105,     0,    41,    98,     0,    11,   103,     0,
  1033. !     11,    60,   168,    77,     0,    29,   103,     0,    29,    60,
  1034. !    168,    77,     0,    34,   105,     0,    35,   105,     0,   103,
  1035. !      0,    60,   168,    77,   105,     0,     0,    60,   168,    77,
  1036. !     83,   106,   138,    79,     0,   105,     0,   107,    49,   107,
  1037. !      0,   107,    50,   107,     0,   107,    51,   107,     0,   107,
  1038. !     52,   107,     0,   107,    53,   107,     0,   107,    47,   107,
  1039. !      0,   107,    48,   107,     0,   107,    46,   107,     0,   107,
  1040. !     45,   107,     0,   107,    44,   107,     0,   107,    42,   107,
  1041. !      0,   107,    43,   107,     0,   107,    41,   107,     0,   107,
  1042. !     40,   107,     0,   107,    38,   204,    39,   107,     0,   107,
  1043. !     37,   107,     0,   107,    36,   107,     0,     3,     0,     8,
  1044. !      0,   110,     0,    60,   100,    77,     0,    60,     1,    77,
  1045. !      0,     0,    60,   109,   181,    77,     0,   108,    60,   101,
  1046. !     77,     0,   108,    61,   100,    84,     0,   108,    59,    98,
  1047. !      0,   108,    58,    98,     0,   108,    55,     0,   108,    56,
  1048. !      0,     9,     0,   110,     9,     0,     0,   113,     0,   113,
  1049. !     10,     0,   186,   187,   114,     0,   112,     0,   175,     0,
  1050. !    113,   112,     0,   112,   175,     0,   119,   117,   126,    78,
  1051. !      0,   121,   117,   127,    78,     0,   119,    78,     0,   121,
  1052. !     78,     0,   186,   187,   118,     0,   115,     0,   175,     0,
  1053. !    116,   115,     0,   115,   175,     0,     0,   119,   117,   126,
  1054. !     78,     0,   121,   117,   127,    78,     0,   119,   117,   146,
  1055. !      0,   121,   117,   148,     0,   119,    78,     0,   121,    78,
  1056. !      0,   124,   120,     0,   121,   124,   120,     0,     0,   120,
  1057. !    125,     0,   120,     5,     0,     7,     0,     5,     0,   121,
  1058. !      7,     0,   121,     5,     0,   124,   123,     0,   170,   124,
  1059. !    123,     0,     0,   123,   125,     0,     6,     0,   154,     0,
  1060. !      4,     0,    28,    60,   100,    77,     0,    28,    60,   168,
  1061. !     77,     0,     6,     0,     7,     0,   154,     0,   129,     0,
  1062. !    126,    82,   129,     0,   131,     0,   127,    82,   129,     0,
  1063. !      0,    27,    60,   110,    77,     0,     0,   150,   128,   133,
  1064. !     37,   130,   136,     0,   150,   128,   133,     0,     0,   153,
  1065. !    128,   133,    37,   132,   136,     0,   153,   128,   133,     0,
  1066. !      0,    31,    60,    60,   134,    77,    77,     0,   135,     0,
  1067. !    134,    82,   135,     0,     3,     0,     7,     0,     3,    60,
  1068. !      3,    77,     0,     3,    60,     8,    77,     0,     3,    60,
  1069. !      3,    82,     8,    82,     8,    77,     0,   107,     0,     0,
  1070. !     83,   137,   138,    79,     0,     1,     0,     0,   139,   159,
  1071. !      0,   140,     0,   139,    82,   140,     0,   107,     0,     0,
  1072. !     83,   141,   138,    79,     0,     1,     0,     0,    61,   107,
  1073. !     10,   107,    84,    37,   142,   140,     0,     0,    61,   107,
  1074. !     84,    37,   143,   140,     0,     0,    98,    39,   144,   140,
  1075. !      0,     0,    59,    98,    37,   145,   140,     0,     0,   150,
  1076. !    147,   181,     0,     0,   153,   149,   181,     0,   151,     0,
  1077. !    153,     0,    60,   151,    77,     0,   151,    60,   216,     0,
  1078. !    151,    61,   100,    84,     0,   151,    61,    84,     0,    51,
  1079. !    171,   151,     0,     4,     0,   152,    60,   216,     0,   152,
  1080. !     61,   100,    84,     0,   152,    61,    84,     0,    51,   171,
  1081. !    152,     0,     4,     0,   153,    60,   216,     0,    60,   153,
  1082. !     77,     0,    51,   171,   153,     0,   153,    61,   100,    84,
  1083. !      0,   153,    61,    84,     0,     3,     0,     0,    13,    98,
  1084. !     83,   155,   161,    79,     0,    13,    83,   161,    79,     0,
  1085. !     13,    98,     0,     0,    14,    98,    83,   156,   161,    79,
  1086. !      0,    14,    83,   161,    79,     0,    14,    98,     0,     0,
  1087. !     12,    98,    83,   157,   166,   160,    79,     0,     0,    12,
  1088. !     83,   158,   166,   160,    79,     0,    12,    98,     0,     0,
  1089. !     82,     0,     0,    82,     0,   162,     0,   162,   163,     0,
  1090. !      0,   162,   163,    78,     0,   162,    78,     0,   122,   117,
  1091. !    164,     0,   122,     0,   170,   117,   164,     0,   170,     0,
  1092. !      1,     0,   165,     0,   164,    82,   165,     0,   186,   187,
  1093. !    150,   133,     0,   186,   187,   150,    39,   107,   133,     0,
  1094. !    186,   187,    39,   107,   133,     0,   167,     0,   166,    82,
  1095. !    167,     0,    98,     0,    98,    37,   107,     0,   122,   169,
  1096. !      0,   170,   169,     0,     0,   172,     0,     7,     0,   170,
  1097. !      7,     0,     0,   171,     7,     0,    60,   172,    77,     0,
  1098. !     51,   171,   172,     0,    51,   171,     0,   172,    60,   209,
  1099. !      0,   172,    61,   100,    84,     0,   172,    61,    84,     0,
  1100. !     60,   209,     0,    61,   100,    84,     0,    61,    84,     0,
  1101. !    189,     0,   173,   189,     0,   173,   175,     0,     0,   173,
  1102. !      0,     1,    78,     0,     0,     0,   178,     0,   179,     0,
  1103. !    178,   179,     0,    33,   220,    78,     0,   181,     0,     1,
  1104. !    181,     0,    83,    79,     0,    83,   176,   177,   116,   174,
  1105. !     79,     0,    83,   176,   177,     1,    79,     0,    83,   176,
  1106. !    177,   173,    79,     0,   183,   188,     0,   183,     1,     0,
  1107. !     15,    60,   100,    77,     0,     0,    18,   185,   188,    17,
  1108. !      0,     0,     0,   186,   187,   191,     0,   186,   187,   202,
  1109. !    188,     0,   186,   187,   190,     0,   191,     0,   202,     0,
  1110. !    181,     0,   199,     0,   100,    78,     0,     0,   182,    16,
  1111. !    192,   188,     0,   182,     0,   182,    16,     1,     0,     0,
  1112. !      0,    17,   193,    60,   100,    77,   194,   188,     0,   184,
  1113. !     60,   100,    77,    78,     0,   184,     1,     0,     0,     0,
  1114. !      0,    19,    60,   204,    78,   195,   204,    78,   196,   204,
  1115. !     77,   197,   188,     0,     0,    20,    60,   100,    77,   198,
  1116. !    188,     0,    23,    78,     0,    24,    78,     0,    25,    78,
  1117. !      0,    25,   100,    78,     0,    27,   203,    60,   100,    77,
  1118. !     78,     0,    27,   203,    60,   100,    39,   205,    77,    78,
  1119. !      0,    27,   203,    60,   100,    39,   205,    39,   205,    77,
  1120. !     78,     0,    27,   203,    60,   100,    39,   205,    39,   205,
  1121. !     39,   208,    77,    78,     0,    26,    98,    78,     0,    26,
  1122. !     51,   100,    78,     0,    78,     0,   200,     0,     0,    19,
  1123. !     60,   108,    77,   201,   188,     0,    21,   107,    39,     0,
  1124. !     21,   107,    10,   107,    39,     0,    22,    39,     0,    98,
  1125. !     39,     0,     0,     7,     0,     0,   100,     0,     0,   206,
  1126. !      0,   207,     0,   206,    82,   207,     0,     9,    60,   100,
  1127. !     77,     0,   110,     0,   208,    82,   110,     0,     0,   210,
  1128. !    211,     0,   213,    77,     0,     0,   214,    78,   212,   211,
  1129. !      0,     1,    77,     0,     0,    10,     0,   214,     0,   214,
  1130. !     82,    10,     0,   215,     0,   214,    82,   215,     0,   119,
  1131. !    152,     0,   119,   153,     0,   119,   169,     0,   121,   153,
  1132. !      0,   121,   169,     0,     0,   217,   218,     0,   211,     0,
  1133. !    219,    77,     0,     3,     0,   219,    82,     3,     0,    98,
  1134. !      0,   220,    82,    98,     0
  1135. ! };
  1136. ! #endif
  1137. ! #if YYDEBUG != 0
  1138. ! static const short yyrline[] = { 0,
  1139.      218,   222,   235,   237,   237,   238,   240,   242,   243,   253,
  1140.      259,   261,   263,   265,   267,   268,   269,   274,   280,   282,
  1141.      283,   285,   290,   292,   293,   295,   300,   302,   303,   307,
  1142. ***************
  1143. *** 206,245 ****
  1144.      764,   775,   779,   781,   784,   797,   800,   804,   806,   814,
  1145.      815,   816,   820,   822,   828,   829,   830,   833,   835,   838,
  1146.      840,   843,   846,   852,   859,   862,   868,   875,   878,   885,
  1147. !    888,   893,   895,   900,   906,   907,   917,   928,   948,   950,
  1148. !    955,   962,   967,   971,   974,   976,   981,   984,   986,   988,
  1149. !    992,   995,   995,   998,   998,  1001,  1001,  1004,  1006,  1023,
  1150. !   1027,  1044,  1051,  1053,  1058,  1061,  1066,  1068,  1070,  1072,
  1151. !   1080,  1086,  1088,  1090,  1092,  1098,  1104,  1106,  1108,  1110,
  1152. !   1112,  1115,  1120,  1124,  1127,  1129,  1131,  1133,  1136,  1138,
  1153. !   1141,  1144,  1147,  1150,  1154,  1156,  1159,  1161,  1165,  1168,
  1154. !   1173,  1175,  1177,  1191,  1197,  1202,  1207,  1212,  1216,  1218,
  1155. !   1222,  1226,  1230,  1240,  1242,  1247,  1250,  1254,  1257,  1261,
  1156. !   1264,  1267,  1270,  1274,  1277,  1281,  1285,  1287,  1289,  1291,
  1157. !   1293,  1295,  1297,  1299,  1307,  1309,  1310,  1313,  1315,  1318,
  1158. !   1321,  1332,  1334,  1339,  1341,  1344,  1358,  1361,  1364,  1366,
  1159. !   1371,  1376,  1384,  1389,  1392,  1405,  1413,  1417,  1421,  1425,
  1160. !   1431,  1435,  1440,  1442,  1453,  1456,  1457,  1474,  1479,  1482,
  1161. !   1493,  1495,  1505,  1515,  1516,  1524,  1527,  1539,  1543,  1560,
  1162. !   1567,  1576,  1578,  1583,  1588,  1592,  1596,  1607,  1614,  1621,
  1163. !   1628,  1639,  1643,  1646,  1651,  1674,  1705,  1730,  1759,  1774,
  1164. !   1785,  1789,  1793,  1796,  1801,  1803,  1806,  1808,  1812,  1817,
  1165. !   1820,  1826,  1831,  1836,  1838,  1847,  1848,  1854,  1856,  1861,
  1166. !   1863,  1867,  1870,  1876,  1879,  1881,  1883,  1885,  1892,  1897,
  1167. !   1902,  1904,  1913,  1916,  1921,  1924
  1168.   };
  1169.   
  1170. ! static const char * const yytname[] = {     0,
  1171. ! "error","$illegal.","IDENTIFIER","TYPENAME","SCSPEC","TYPESPEC","TYPE_QUAL","CONSTANT","STRING","ELLIPSIS",
  1172. ! "SIZEOF","ENUM","STRUCT","UNION","IF","ELSE","WHILE","DO","FOR","SWITCH",
  1173. ! "CASE","DEFAULT","BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","TYPEOF","ALIGNOF","ALIGN",
  1174. ! "ATTRIBUTE","EXTENSION","LABEL","REALPART","IMAGPART","ASSIGN","'='","'?'","':'","OROR",
  1175. ! "ANDAND","'|'","'^'","'&'","EQCOMPARE","ARITHCOMPARE","LSHIFT","RSHIFT","'+'","'-'",
  1176. ! "'*'","'/'","'%'","UNARY","PLUSPLUS","MINUSMINUS","HYPERUNARY","POINTSAT","'.'","'('",
  1177. ! "'['","INTERFACE","IMPLEMENTATION","END","SELECTOR","DEFS","ENCODE","CLASSNAME","PUBLIC","PRIVATE",
  1178. ! "PROTECTED","PROTOCOL","OBJECTNAME","CLASS","ALIAS","OBJC_STRING","')'","';'","'}'","'~'",
  1179. ! "'!'","','","'{'","']'","program"
  1180.   };
  1181.   
  1182.   static const short yyr1[] = {     0,
  1183.       85,    85,    87,    86,    88,    86,    89,    89,    89,    90,
  1184. --- 373,433 ----
  1185.      764,   775,   779,   781,   784,   797,   800,   804,   806,   814,
  1186.      815,   816,   820,   822,   828,   829,   830,   833,   835,   838,
  1187.      840,   843,   846,   852,   859,   862,   868,   875,   878,   885,
  1188. !    888,   893,   895,   900,   914,   915,   925,   936,   956,   958,
  1189. !    963,   970,   975,   979,   982,   984,   989,   992,   994,   996,
  1190. !   1000,  1003,  1003,  1006,  1006,  1009,  1009,  1012,  1014,  1031,
  1191. !   1035,  1052,  1059,  1061,  1066,  1069,  1074,  1076,  1078,  1080,
  1192. !   1088,  1094,  1096,  1098,  1100,  1106,  1112,  1114,  1116,  1118,
  1193. !   1120,  1123,  1128,  1132,  1135,  1137,  1139,  1141,  1144,  1146,
  1194. !   1149,  1152,  1155,  1158,  1162,  1164,  1167,  1169,  1173,  1176,
  1195. !   1181,  1183,  1185,  1199,  1205,  1210,  1215,  1220,  1224,  1226,
  1196. !   1230,  1234,  1238,  1248,  1250,  1255,  1258,  1262,  1265,  1269,
  1197. !   1272,  1275,  1278,  1282,  1285,  1289,  1293,  1295,  1297,  1299,
  1198. !   1301,  1303,  1305,  1307,  1315,  1317,  1318,  1321,  1323,  1326,
  1199. !   1329,  1340,  1342,  1347,  1349,  1352,  1366,  1369,  1372,  1374,
  1200. !   1379,  1384,  1392,  1397,  1400,  1413,  1421,  1425,  1429,  1433,
  1201. !   1439,  1443,  1448,  1450,  1461,  1464,  1465,  1482,  1487,  1490,
  1202. !   1501,  1503,  1513,  1523,  1524,  1532,  1535,  1547,  1551,  1568,
  1203. !   1575,  1584,  1586,  1591,  1596,  1600,  1604,  1615,  1622,  1629,
  1204. !   1636,  1647,  1651,  1654,  1659,  1682,  1713,  1738,  1767,  1782,
  1205. !   1793,  1797,  1801,  1804,  1809,  1811,  1814,  1816,  1820,  1825,
  1206. !   1828,  1834,  1839,  1844,  1846,  1855,  1856,  1862,  1864,  1869,
  1207. !   1871,  1875,  1878,  1884,  1887,  1889,  1891,  1893,  1900,  1905,
  1208. !   1910,  1912,  1921,  1924,  1929,  1932
  1209.   };
  1210.   
  1211. ! static const char * const yytname[] = {   "$","error","$illegal.","IDENTIFIER",
  1212. ! "TYPENAME","SCSPEC","TYPESPEC","TYPE_QUAL","CONSTANT","STRING","ELLIPSIS","SIZEOF",
  1213. ! "ENUM","STRUCT","UNION","IF","ELSE","WHILE","DO","FOR","SWITCH","CASE","DEFAULT",
  1214. ! "BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","TYPEOF","ALIGNOF","ALIGN",
  1215. ! "ATTRIBUTE","EXTENSION","LABEL","REALPART","IMAGPART","ASSIGN","'='","'?'","':'",
  1216. ! "OROR","ANDAND","'|'","'^'","'&'","EQCOMPARE","ARITHCOMPARE","LSHIFT","RSHIFT",
  1217. ! "'+'","'-'","'*'","'/'","'%'","UNARY","PLUSPLUS","MINUSMINUS","HYPERUNARY","POINTSAT",
  1218. ! "'.'","'('","'['","INTERFACE","IMPLEMENTATION","END","SELECTOR","DEFS","ENCODE",
  1219. ! "CLASSNAME","PUBLIC","PRIVATE","PROTECTED","PROTOCOL","OBJECTNAME","CLASS","ALIAS",
  1220. ! "OBJC_STRING","')'","';'","'}'","'~'","'!'","','","'{'","']'","program","extdefs",
  1221. ! "@1","@2","extdef","datadef","fndef","@3","@4","@5","@6","@7","@8","identifier",
  1222. ! "unop","expr","exprlist","nonnull_exprlist","unary_expr","@9","cast_expr","@10",
  1223. ! "expr_no_commas","primary","@11","string","xdecls","lineno_datadecl","datadecls",
  1224. ! "datadecl","lineno_decl","decls","setspecs","decl","typed_declspecs","reserved_declspecs",
  1225. ! "declmods","typed_typespecs","reserved_typespecquals","typespec","typespecqual_reserved",
  1226. ! "initdecls","notype_initdecls","maybeasm","initdcl","@12","notype_initdcl","@13",
  1227. ! "maybe_attribute","attribute_list","attrib","init","@14","initlist_maybe_comma",
  1228. ! "initlist1","initelt","@15","@16","@17","@18","@19","nested_function","@20",
  1229. ! "notype_nested_function","@21","declarator","after_type_declarator","parm_declarator",
  1230. ! "notype_declarator","structsp","@22","@23","@24","@25","maybecomma","maybecomma_warn",
  1231. ! "component_decl_list","component_decl_list2","component_decl","components","component_declarator",
  1232. ! "enumlist","enumerator","typename","absdcl","nonempty_type_quals","type_quals",
  1233. ! "absdcl1","stmts","xstmts","errstmt","pushlevel","maybe_label_decls","label_decls",
  1234. ! "label_decl","compstmt_or_error","compstmt","simple_if","if_prefix","do_stmt_start",
  1235. ! "@26","save_filename","save_lineno","lineno_labeled_stmt","lineno_stmt_or_label",
  1236. ! "stmt_or_label","stmt","@27","@28","@29","@30","@31","@32","@33","all_iter_stmt",
  1237. ! "all_iter_stmt_simple","@34","label","maybe_type_qual","xexpr","asm_operands",
  1238. ! "nonnull_asm_operands","asm_operand","asm_clobbers","parmlist","@35","parmlist_1",
  1239. ! "@36","parmlist_2","parms","parm","parmlist_or_identifiers","@37","parmlist_or_identifiers_1",
  1240. ! "identifiers","identifiers_or_typenames",""
  1241.   };
  1242. + #endif
  1243.   
  1244.   static const short yyr1[] = {     0,
  1245.       85,    85,    87,    86,    88,    86,    89,    89,    89,    90,
  1246. ***************
  1247. *** 896,908 ****
  1248.       48,    49,    50,    51,    52,    53,    43,    44,    45,    46,
  1249.       47,    48,    49,    50,    51,    52,    53
  1250.   };
  1251. - #define YYPURE 1
  1252.   /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
  1253. ! #line 3 "bison.simple"
  1254.   
  1255.   /* Skeleton output parser for bison,
  1256. !    Copyright (C) 1984 Bob Corbett and Richard Stallman
  1257.   
  1258.      This program is free software; you can redistribute it and/or modify
  1259.      it under the terms of the GNU General Public License as published by
  1260. --- 1084,1094 ----
  1261.       48,    49,    50,    51,    52,    53,    43,    44,    45,    46,
  1262.       47,    48,    49,    50,    51,    52,    53
  1263.   };
  1264.   /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
  1265. ! #line 3 "/gnu/lib/bison.simple"
  1266.   
  1267.   /* Skeleton output parser for bison,
  1268. !    Copyright (C) 1984, 1989, 1990 Bob Corbett and Richard Stallman
  1269.   
  1270.      This program is free software; you can redistribute it and/or modify
  1271.      it under the terms of the GNU General Public License as published by
  1272. ***************
  1273. *** 919,927 ****
  1274.      Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
  1275.   
  1276.   
  1277. ! #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__)
  1278.   #include <alloca.h>
  1279. ! #endif
  1280.   
  1281.   /* This is the parser code that is written into each bison parser
  1282.     when the %semantic_parser declaration is not specified in the grammar.
  1283. --- 1105,1138 ----
  1284.      Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
  1285.   
  1286.   
  1287. ! #ifndef alloca
  1288. ! #ifdef __GNUC__
  1289. ! #define alloca __builtin_alloca
  1290. ! #else /* not GNU C.  */
  1291. ! #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
  1292.   #include <alloca.h>
  1293. ! #else /* not sparc */
  1294. ! #if defined (MSDOS) && !defined (__TURBOC__)
  1295. ! #include <malloc.h>
  1296. ! #else /* not MSDOS, or __TURBOC__ */
  1297. ! #if defined(_AIX)
  1298. ! #include <malloc.h>
  1299. !  #pragma alloca
  1300. ! #else /* not MSDOS, __TURBOC__, or _AIX */
  1301. ! #ifdef __hpux
  1302. ! #ifdef __cplusplus
  1303. ! extern "C" {
  1304. ! void *alloca (unsigned int);
  1305. ! };
  1306. ! #else /* not __cplusplus */
  1307. ! void *alloca ();
  1308. ! #endif /* not __cplusplus */
  1309. ! #endif /* __hpux */
  1310. ! #endif /* not _AIX */
  1311. ! #endif /* not MSDOS, or __TURBOC__ */
  1312. ! #endif /* not sparc.  */
  1313. ! #endif /* not GNU C.  */
  1314. ! #endif /* alloca not defined.  */
  1315.   
  1316.   /* This is the parser code that is written into each bison parser
  1317.     when the %semantic_parser declaration is not specified in the grammar.
  1318. ***************
  1319. *** 936,970 ****
  1320.   #define yyclearin    (yychar = YYEMPTY)
  1321.   #define YYEMPTY        -2
  1322.   #define YYEOF        0
  1323. - #define YYFAIL        goto yyerrlab;
  1324.   #define YYACCEPT    return(0)
  1325.   #define YYABORT     return(1)
  1326. ! #define YYERROR        goto yyerrlab
  1327.   
  1328.   #define YYTERROR    1
  1329.   #define YYERRCODE    256
  1330.   
  1331. ! #ifndef YYIMPURE
  1332.   #define YYLEX        yylex()
  1333.   #endif
  1334.   
  1335. ! #ifndef YYPURE
  1336.   #define YYLEX        yylex(&yylval, &yylloc)
  1337.   #endif
  1338.   
  1339.   /* If nonreentrant, generate the variables here */
  1340.   
  1341. ! #ifndef YYIMPURE
  1342.   
  1343.   int    yychar;            /*  the lookahead symbol        */
  1344.   YYSTYPE    yylval;            /*  the semantic value of the        */
  1345.                   /*  lookahead symbol            */
  1346.   
  1347.   YYLTYPE yylloc;            /*  location data for the lookahead    */
  1348.                   /*  symbol                */
  1349.   
  1350.   int yynerrs;            /*  number of parse errors so far       */
  1351. ! #endif  /* YYIMPURE */
  1352.   
  1353.   #if YYDEBUG != 0
  1354.   int yydebug;            /*  nonzero means print parse trace    */
  1355. --- 1147,1203 ----
  1356.   #define yyclearin    (yychar = YYEMPTY)
  1357.   #define YYEMPTY        -2
  1358.   #define YYEOF        0
  1359.   #define YYACCEPT    return(0)
  1360.   #define YYABORT     return(1)
  1361. ! #define YYERROR        goto yyerrlab1
  1362. ! /* Like YYERROR except do call yyerror.
  1363. !    This remains here temporarily to ease the
  1364. !    transition to the new meaning of YYERROR, for GCC.
  1365. !    Once GCC version 2 has supplanted version 1, this can go.  */
  1366. ! #define YYFAIL        goto yyerrlab
  1367. ! #define YYRECOVERING()  (!!yyerrstatus)
  1368. ! #define YYBACKUP(token, value) \
  1369. ! do                                \
  1370. !   if (yychar == YYEMPTY && yylen == 1)                \
  1371. !     { yychar = (token), yylval = (value);            \
  1372. !       yychar1 = YYTRANSLATE (yychar);                \
  1373. !       YYPOPSTACK;                        \
  1374. !       goto yybackup;                        \
  1375. !     }                                \
  1376. !   else                                \
  1377. !     { yyerror ("syntax error: cannot back up"); YYERROR; }    \
  1378. ! while (0)
  1379.   
  1380.   #define YYTERROR    1
  1381.   #define YYERRCODE    256
  1382.   
  1383. ! #ifndef YYPURE
  1384.   #define YYLEX        yylex()
  1385.   #endif
  1386.   
  1387. ! #ifdef YYPURE
  1388. ! #ifdef YYLSP_NEEDED
  1389.   #define YYLEX        yylex(&yylval, &yylloc)
  1390. + #else
  1391. + #define YYLEX        yylex(&yylval)
  1392. + #endif
  1393.   #endif
  1394.   
  1395.   /* If nonreentrant, generate the variables here */
  1396.   
  1397. ! #ifndef YYPURE
  1398.   
  1399.   int    yychar;            /*  the lookahead symbol        */
  1400.   YYSTYPE    yylval;            /*  the semantic value of the        */
  1401.                   /*  lookahead symbol            */
  1402.   
  1403. + #ifdef YYLSP_NEEDED
  1404.   YYLTYPE yylloc;            /*  location data for the lookahead    */
  1405.                   /*  symbol                */
  1406. + #endif
  1407.   
  1408.   int yynerrs;            /*  number of parse errors so far       */
  1409. ! #endif  /* not YYPURE */
  1410.   
  1411.   #if YYDEBUG != 0
  1412.   int yydebug;            /*  nonzero means print parse trace    */
  1413. ***************
  1414. *** 972,992 ****
  1415.      from coexisting.  */
  1416.   #endif
  1417.   
  1418. ! /*  YYMAXDEPTH indicates the initial size of the parser's stacks    */
  1419.   
  1420. ! #ifndef    YYMAXDEPTH
  1421. ! #define YYMAXDEPTH 200
  1422.   #endif
  1423.   
  1424. ! /*  YYMAXLIMIT is the maximum size the stacks can grow to
  1425.       (effective only if the built-in stack extension method is used).  */
  1426.   
  1427. ! #ifndef YYMAXLIMIT
  1428. ! #define YYMAXLIMIT 10000
  1429.   #endif
  1430.   
  1431.   
  1432. ! #line 90 "bison.simple"
  1433.   int
  1434.   yyparse()
  1435.   {
  1436. --- 1205,1272 ----
  1437.      from coexisting.  */
  1438.   #endif
  1439.   
  1440. ! /*  YYINITDEPTH indicates the initial size of the parser's stacks    */
  1441.   
  1442. ! #ifndef    YYINITDEPTH
  1443. ! #define YYINITDEPTH 200
  1444.   #endif
  1445.   
  1446. ! /*  YYMAXDEPTH is the maximum size the stacks can grow to
  1447.       (effective only if the built-in stack extension method is used).  */
  1448.   
  1449. ! #if YYMAXDEPTH == 0
  1450. ! #undef YYMAXDEPTH
  1451.   #endif
  1452.   
  1453. + #ifndef YYMAXDEPTH
  1454. + #define YYMAXDEPTH 10000
  1455. + #endif
  1456. + /* Prevent warning if -Wstrict-prototypes.  */
  1457. + #ifdef __GNUC__
  1458. + int yyparse (void);
  1459. + #endif
  1460. + #if __GNUC__ > 1        /* GNU C and GNU C++ define this.  */
  1461. + #define __yy_bcopy(FROM,TO,COUNT)    __builtin_memcpy(TO,FROM,COUNT)
  1462. + #else                /* not GNU C or C++ */
  1463. + #ifndef __cplusplus
  1464. + /* This is the most reliable way to avoid incompatibilities
  1465. +    in available built-in functions on various systems.  */
  1466. + static void
  1467. + __yy_bcopy (from, to, count)
  1468. +      char *from;
  1469. +      char *to;
  1470. +      int count;
  1471. + {
  1472. +   register char *f = from;
  1473. +   register char *t = to;
  1474. +   register int i = count;
  1475.   
  1476. !   while (i-- > 0)
  1477. !     *t++ = *f++;
  1478. ! }
  1479. ! #else /* __cplusplus */
  1480. ! /* This is the most reliable way to avoid incompatibilities
  1481. !    in available built-in functions on various systems.  */
  1482. ! static void
  1483. ! __yy_bcopy (char *from, char *to, int count)
  1484. ! {
  1485. !   register char *f = from;
  1486. !   register char *t = to;
  1487. !   register int i = count;
  1488. !   while (i-- > 0)
  1489. !     *t++ = *f++;
  1490. ! }
  1491. ! #endif
  1492. ! #endif
  1493. ! #line 184 "/gnu/lib/bison.simple"
  1494.   int
  1495.   yyparse()
  1496.   {
  1497. ***************
  1498. *** 994,1018 ****
  1499.     register int yyn;
  1500.     register short *yyssp;
  1501.     register YYSTYPE *yyvsp;
  1502. -   YYLTYPE *yylsp;
  1503.     int yyerrstatus;    /*  number of tokens to shift before error messages enabled */
  1504. !   int yychar1;        /*  lookahead token as an internal (translated) token number */
  1505.   
  1506. !   short    yyssa[YYMAXDEPTH];    /*  the state stack            */
  1507. !   YYSTYPE yyvsa[YYMAXDEPTH];    /*  the semantic value stack        */
  1508. !   YYLTYPE yylsa[YYMAXDEPTH];    /*  the location stack            */
  1509.   
  1510.     short *yyss = yyssa;        /*  refer to the stacks thru separate pointers */
  1511.     YYSTYPE *yyvs = yyvsa;    /*  to allow yyoverflow to reallocate them elsewhere */
  1512.     YYLTYPE *yyls = yylsa;
  1513.   
  1514. !   int yymaxdepth = YYMAXDEPTH;
  1515.   
  1516. ! #ifndef YYPURE
  1517.     int yychar;
  1518.     YYSTYPE yylval;
  1519. -   YYLTYPE yylloc;
  1520.     int yynerrs;
  1521.   #endif
  1522.   
  1523.     YYSTYPE yyval;        /*  the variable used to return        */
  1524. --- 1274,1307 ----
  1525.     register int yyn;
  1526.     register short *yyssp;
  1527.     register YYSTYPE *yyvsp;
  1528.     int yyerrstatus;    /*  number of tokens to shift before error messages enabled */
  1529. !   int yychar1 = 0;        /*  lookahead token as an internal (translated) token number */
  1530.   
  1531. !   short    yyssa[YYINITDEPTH];    /*  the state stack            */
  1532. !   YYSTYPE yyvsa[YYINITDEPTH];    /*  the semantic value stack        */
  1533.   
  1534.     short *yyss = yyssa;        /*  refer to the stacks thru separate pointers */
  1535.     YYSTYPE *yyvs = yyvsa;    /*  to allow yyoverflow to reallocate them elsewhere */
  1536. + #ifdef YYLSP_NEEDED
  1537. +   YYLTYPE yylsa[YYINITDEPTH];    /*  the location stack            */
  1538.     YYLTYPE *yyls = yylsa;
  1539. +   YYLTYPE *yylsp;
  1540. + #define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
  1541. + #else
  1542. + #define YYPOPSTACK   (yyvsp--, yyssp--)
  1543. + #endif
  1544.   
  1545. !   int yystacksize = YYINITDEPTH;
  1546.   
  1547. ! #ifdef YYPURE
  1548.     int yychar;
  1549.     YYSTYPE yylval;
  1550.     int yynerrs;
  1551. + #ifdef YYLSP_NEEDED
  1552. +   YYLTYPE yylloc;
  1553. + #endif
  1554.   #endif
  1555.   
  1556.     YYSTYPE yyval;        /*  the variable used to return        */
  1557. ***************
  1558. *** 1033,1043 ****
  1559.   
  1560.     /* Initialize stack pointers.
  1561.        Waste one element of value and location stack
  1562. !      so that they stay on the same level as the state stack.  */
  1563.   
  1564.     yyssp = yyss - 1;
  1565.     yyvsp = yyvs;
  1566.     yylsp = yyls;
  1567.   
  1568.   /* Push a new state, which is found in  yystate  .  */
  1569.   /* In all cases, when you get here, the value and location stacks
  1570. --- 1322,1335 ----
  1571.   
  1572.     /* Initialize stack pointers.
  1573.        Waste one element of value and location stack
  1574. !      so that they stay on the same level as the state stack.
  1575. !      The wasted elements are never initialized.  */
  1576.   
  1577.     yyssp = yyss - 1;
  1578.     yyvsp = yyvs;
  1579. + #ifdef YYLSP_NEEDED
  1580.     yylsp = yyls;
  1581. + #endif
  1582.   
  1583.   /* Push a new state, which is found in  yystate  .  */
  1584.   /* In all cases, when you get here, the value and location stacks
  1585. ***************
  1586. *** 1046,1058 ****
  1587.   
  1588.     *++yyssp = yystate;
  1589.   
  1590. !   if (yyssp >= yyss + yymaxdepth - 1)
  1591.       {
  1592.         /* Give user a chance to reallocate the stack */
  1593.         /* Use copies of these so that the &'s don't force the real ones into memory. */
  1594.         YYSTYPE *yyvs1 = yyvs;
  1595. -       YYLTYPE *yyls1 = yyls;
  1596.         short *yyss1 = yyss;
  1597.   
  1598.         /* Get the current used size of the three stacks, in elements.  */
  1599.         int size = yyssp - yyss + 1;
  1600. --- 1338,1352 ----
  1601.   
  1602.     *++yyssp = yystate;
  1603.   
  1604. !   if (yyssp >= yyss + yystacksize - 1)
  1605.       {
  1606.         /* Give user a chance to reallocate the stack */
  1607.         /* Use copies of these so that the &'s don't force the real ones into memory. */
  1608.         YYSTYPE *yyvs1 = yyvs;
  1609.         short *yyss1 = yyss;
  1610. + #ifdef YYLSP_NEEDED
  1611. +       YYLTYPE *yyls1 = yyls;
  1612. + #endif
  1613.   
  1614.         /* Get the current used size of the three stacks, in elements.  */
  1615.         int size = yyssp - yyss + 1;
  1616. ***************
  1617. *** 1060,1086 ****
  1618.   #ifdef yyoverflow
  1619.         /* Each stack pointer address is followed by the size of
  1620.        the data in use in that stack, in bytes.  */
  1621.         yyoverflow("parser stack overflow",
  1622.            &yyss1, size * sizeof (*yyssp),
  1623.            &yyvs1, size * sizeof (*yyvsp),
  1624.            &yyls1, size * sizeof (*yylsp),
  1625. !          &yymaxdepth);
  1626.   
  1627. !       yyss = yyss1; yyvs = yyvs1; yyls = yyls1;
  1628.   #else /* no yyoverflow */
  1629.         /* Extend the stack our own way.  */
  1630. !       if (yymaxdepth >= YYMAXLIMIT)
  1631. !     yyerror("parser stack overflow");
  1632. !       yymaxdepth *= 2;
  1633. !       if (yymaxdepth > YYMAXLIMIT)
  1634. !     yymaxdepth = YYMAXLIMIT;
  1635. !       yyss = (short *) alloca (yymaxdepth * sizeof (*yyssp));
  1636. !       bcopy ((char *)yyss1, (char *)yyss, size * sizeof (*yyssp));
  1637. !       yyvs = (YYSTYPE *) alloca (yymaxdepth * sizeof (*yyvsp));
  1638. !       bcopy ((char *)yyvs1, (char *)yyvs, size * sizeof (*yyvsp));
  1639.   #ifdef YYLSP_NEEDED
  1640. !       yyls = (YYLTYPE *) alloca (yymaxdepth * sizeof (*yylsp));
  1641. !       bcopy ((char *)yyls1, (char *)yyls, size * sizeof (*yylsp));
  1642.   #endif
  1643.   #endif /* no yyoverflow */
  1644.   
  1645. --- 1354,1395 ----
  1646.   #ifdef yyoverflow
  1647.         /* Each stack pointer address is followed by the size of
  1648.        the data in use in that stack, in bytes.  */
  1649. + #ifdef YYLSP_NEEDED
  1650. +       /* This used to be a conditional around just the two extra args,
  1651. +      but that might be undefined if yyoverflow is a macro.  */
  1652.         yyoverflow("parser stack overflow",
  1653.            &yyss1, size * sizeof (*yyssp),
  1654.            &yyvs1, size * sizeof (*yyvsp),
  1655.            &yyls1, size * sizeof (*yylsp),
  1656. !          &yystacksize);
  1657. ! #else
  1658. !       yyoverflow("parser stack overflow",
  1659. !          &yyss1, size * sizeof (*yyssp),
  1660. !          &yyvs1, size * sizeof (*yyvsp),
  1661. !          &yystacksize);
  1662. ! #endif
  1663.   
  1664. !       yyss = yyss1; yyvs = yyvs1;
  1665. ! #ifdef YYLSP_NEEDED
  1666. !       yyls = yyls1;
  1667. ! #endif
  1668.   #else /* no yyoverflow */
  1669.         /* Extend the stack our own way.  */
  1670. !       if (yystacksize >= YYMAXDEPTH)
  1671. !     {
  1672. !       yyerror("parser stack overflow");
  1673. !       return 2;
  1674. !     }
  1675. !       yystacksize *= 2;
  1676. !       if (yystacksize > YYMAXDEPTH)
  1677. !     yystacksize = YYMAXDEPTH;
  1678. !       yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
  1679. !       __yy_bcopy ((char *)yyss1, (char *)yyss, size * sizeof (*yyssp));
  1680. !       yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
  1681. !       __yy_bcopy ((char *)yyvs1, (char *)yyvs, size * sizeof (*yyvsp));
  1682.   #ifdef YYLSP_NEEDED
  1683. !       yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
  1684. !       __yy_bcopy ((char *)yyls1, (char *)yyls, size * sizeof (*yylsp));
  1685.   #endif
  1686.   #endif /* no yyoverflow */
  1687.   
  1688. ***************
  1689. *** 1092,1101 ****
  1690.   
  1691.   #if YYDEBUG != 0
  1692.         if (yydebug)
  1693. !     fprintf(stderr, "Stack size increased to %d\n", yymaxdepth);
  1694.   #endif
  1695.   
  1696. !       if (yyssp >= yyss + yymaxdepth - 1)
  1697.       YYABORT;
  1698.       }
  1699.   
  1700. --- 1401,1410 ----
  1701.   
  1702.   #if YYDEBUG != 0
  1703.         if (yydebug)
  1704. !     fprintf(stderr, "Stack size increased to %d\n", yystacksize);
  1705.   #endif
  1706.   
  1707. !       if (yyssp >= yyss + yystacksize - 1)
  1708.       YYABORT;
  1709.       }
  1710.   
  1711. ***************
  1712. *** 1104,1112 ****
  1713.       fprintf(stderr, "Entering state %d\n", yystate);
  1714.   #endif
  1715.   
  1716.   /* Do appropriate processing given the current state.  */
  1717.   /* Read a lookahead token if we need one and don't already have one.  */
  1718. ! yyresume:
  1719.   
  1720.     /* First try to decide what to do without reference to lookahead token.  */
  1721.   
  1722. --- 1413,1424 ----
  1723.       fprintf(stderr, "Entering state %d\n", yystate);
  1724.   #endif
  1725.   
  1726. +   goto yybackup;
  1727. +  yybackup:
  1728.   /* Do appropriate processing given the current state.  */
  1729.   /* Read a lookahead token if we need one and don't already have one.  */
  1730. ! /* yyresume: */
  1731.   
  1732.     /* First try to decide what to do without reference to lookahead token.  */
  1733.   
  1734. ***************
  1735. *** 1146,1152 ****
  1736.   
  1737.   #if YYDEBUG != 0
  1738.         if (yydebug)
  1739. !     fprintf(stderr, "Next token is %d (%s)\n", yychar, yytname[yychar1]);
  1740.   #endif
  1741.       }
  1742.   
  1743. --- 1458,1472 ----
  1744.   
  1745.   #if YYDEBUG != 0
  1746.         if (yydebug)
  1747. !     {
  1748. !       fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
  1749. !       /* Give the individual parser a way to print the precise meaning
  1750. !          of a token, for further debugging info.  */
  1751. ! #ifdef YYPRINT
  1752. !       YYPRINT (stderr, yychar, yylval);
  1753. ! #endif
  1754. !       fprintf (stderr, ")\n");
  1755. !     }
  1756.   #endif
  1757.       }
  1758.   
  1759. ***************
  1760. *** 1208,1224 ****
  1761.   /* Do a reduction.  yyn is the number of a rule to reduce with.  */
  1762.   yyreduce:
  1763.     yylen = yyr2[yyn];
  1764. !   yyval = yyvsp[1-yylen]; /* implement default value of the action */
  1765.   
  1766.   #if YYDEBUG != 0
  1767.     if (yydebug)
  1768.       {
  1769. !       if (yylen == 1)
  1770. !     fprintf (stderr, "Reducing 1 value via line %d, ",
  1771. !          yyrline[yyn]);
  1772. !       else
  1773. !     fprintf (stderr, "Reducing %d values via line %d, ",
  1774. !          yylen, yyrline[yyn]);
  1775.       }
  1776.   #endif
  1777.   
  1778. --- 1528,1548 ----
  1779.   /* Do a reduction.  yyn is the number of a rule to reduce with.  */
  1780.   yyreduce:
  1781.     yylen = yyr2[yyn];
  1782. !   if (yylen > 0)
  1783. !     yyval = yyvsp[1-yylen]; /* implement default value of the action */
  1784.   
  1785.   #if YYDEBUG != 0
  1786.     if (yydebug)
  1787.       {
  1788. !       int i;
  1789. !       fprintf (stderr, "Reducing via rule %d (line %d), ",
  1790. !            yyn, yyrline[yyn]);
  1791. !       /* Print the symbols being reduced, and their result.  */
  1792. !       for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
  1793. !     fprintf (stderr, "%s ", yytname[yyrhs[i]]);
  1794. !       fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
  1795.       }
  1796.   #endif
  1797.   
  1798. ***************
  1799. *** 1959,1972 ****
  1800.       break;}
  1801.   case 154:
  1802.   #line 901 "c-parse.y"
  1803. ! { if (strcmp (IDENTIFIER_POINTER (yyvsp[0].ttype), "packed")
  1804.             && strcmp (IDENTIFIER_POINTER (yyvsp[0].ttype), "noreturn"))
  1805.           warning ("`%s' attribute directive ignored",
  1806.                IDENTIFIER_POINTER (yyvsp[0].ttype));
  1807.         yyval.ttype = yyvsp[0].ttype; ;
  1808.       break;}
  1809.   case 156:
  1810. ! #line 908 "c-parse.y"
  1811.   { /* If not "mode (m)", then issue warning.  */
  1812.         if (strcmp (IDENTIFIER_POINTER (yyvsp[-3].ttype), "mode") != 0)
  1813.           {
  1814. --- 2283,2304 ----
  1815.       break;}
  1816.   case 154:
  1817.   #line 901 "c-parse.y"
  1818. ! {
  1819. ! #ifdef HANDLE_ATTRIBUTE0
  1820. !       /* give the function a chance to validate further attributes */
  1821. !       if (HANDLE_ATTRIBUTE0 (IDENTIFIER_POINTER (yyvsp[0].ttype)) ||
  1822. !           (strcmp (IDENTIFIER_POINTER (yyvsp[0].ttype), "packed")
  1823. !           && strcmp (IDENTIFIER_POINTER (yyvsp[0].ttype), "noreturn")))
  1824. ! #else
  1825. !       if (strcmp (IDENTIFIER_POINTER (yyvsp[0].ttype), "packed")
  1826.             && strcmp (IDENTIFIER_POINTER (yyvsp[0].ttype), "noreturn"))
  1827. + #endif
  1828.           warning ("`%s' attribute directive ignored",
  1829.                IDENTIFIER_POINTER (yyvsp[0].ttype));
  1830.         yyval.ttype = yyvsp[0].ttype; ;
  1831.       break;}
  1832.   case 156:
  1833. ! #line 916 "c-parse.y"
  1834.   { /* If not "mode (m)", then issue warning.  */
  1835.         if (strcmp (IDENTIFIER_POINTER (yyvsp[-3].ttype), "mode") != 0)
  1836.           {
  1837. ***************
  1838. *** 1978,1984 ****
  1839.           yyval.ttype = tree_cons (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE); ;
  1840.       break;}
  1841.   case 157:
  1842. ! #line 918 "c-parse.y"
  1843.   { /* if not "aligned(n)", then issue warning */
  1844.         if (strcmp (IDENTIFIER_POINTER (yyvsp[-3].ttype), "aligned") != 0
  1845.             || TREE_CODE (yyvsp[-1].ttype) != INTEGER_CST)
  1846. --- 2310,2316 ----
  1847.           yyval.ttype = tree_cons (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE); ;
  1848.       break;}
  1849.   case 157:
  1850. ! #line 926 "c-parse.y"
  1851.   { /* if not "aligned(n)", then issue warning */
  1852.         if (strcmp (IDENTIFIER_POINTER (yyvsp[-3].ttype), "aligned") != 0
  1853.             || TREE_CODE (yyvsp[-1].ttype) != INTEGER_CST)
  1854. ***************
  1855. *** 1991,1997 ****
  1856.           yyval.ttype = tree_cons (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE); ;
  1857.       break;}
  1858.   case 158:
  1859. ! #line 929 "c-parse.y"
  1860.   { /* if not "format(...)", then issue warning */
  1861.         if (strcmp (IDENTIFIER_POINTER (yyvsp[-7].ttype), "format") != 0
  1862.             || TREE_CODE (yyvsp[-3].ttype) != INTEGER_CST
  1863. --- 2323,2329 ----
  1864.           yyval.ttype = tree_cons (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE); ;
  1865.       break;}
  1866.   case 158:
  1867. ! #line 937 "c-parse.y"
  1868.   { /* if not "format(...)", then issue warning */
  1869.         if (strcmp (IDENTIFIER_POINTER (yyvsp[-7].ttype), "format") != 0
  1870.             || TREE_CODE (yyvsp[-3].ttype) != INTEGER_CST
  1871. ***************
  1872. *** 2009,2022 ****
  1873.                   NULL_TREE); ;
  1874.       break;}
  1875.   case 160:
  1876. ! #line 951 "c-parse.y"
  1877.   { really_start_incremental_init (NULL_TREE);
  1878.             /* Note that the call to clear_momentary
  1879.                is in process_init_element.  */
  1880.             push_momentary (); ;
  1881.       break;}
  1882.   case 161:
  1883. ! #line 956 "c-parse.y"
  1884.   { yyval.ttype = pop_init_level (0);
  1885.             if (yyval.ttype == error_mark_node)
  1886.               pop_momentary ();
  1887. --- 2341,2354 ----
  1888.                   NULL_TREE); ;
  1889.       break;}
  1890.   case 160:
  1891. ! #line 959 "c-parse.y"
  1892.   { really_start_incremental_init (NULL_TREE);
  1893.             /* Note that the call to clear_momentary
  1894.                is in process_init_element.  */
  1895.             push_momentary (); ;
  1896.       break;}
  1897.   case 161:
  1898. ! #line 964 "c-parse.y"
  1899.   { yyval.ttype = pop_init_level (0);
  1900.             if (yyval.ttype == error_mark_node)
  1901.               pop_momentary ();
  1902. ***************
  1903. *** 2024,2067 ****
  1904.               pop_momentary_nofree (); ;
  1905.       break;}
  1906.   case 162:
  1907. ! #line 963 "c-parse.y"
  1908.   { yyval.ttype = error_mark_node; ;
  1909.       break;}
  1910.   case 163:
  1911. ! #line 969 "c-parse.y"
  1912.   { if (pedantic)
  1913.               pedwarn ("ANSI C forbids empty initializer braces"); ;
  1914.       break;}
  1915.   case 167:
  1916. ! #line 983 "c-parse.y"
  1917.   { process_init_element (yyvsp[0].ttype); ;
  1918.       break;}
  1919.   case 168:
  1920. ! #line 985 "c-parse.y"
  1921.   { push_init_level (0); ;
  1922.       break;}
  1923.   case 169:
  1924. ! #line 987 "c-parse.y"
  1925.   { process_init_element (pop_init_level (0)); ;
  1926.       break;}
  1927.   case 171:
  1928. ! #line 993 "c-parse.y"
  1929.   { set_init_index (yyvsp[-4].ttype, yyvsp[-2].ttype); ;
  1930.       break;}
  1931.   case 173:
  1932. ! #line 996 "c-parse.y"
  1933.   { set_init_index (yyvsp[-2].ttype, NULL_TREE); ;
  1934.       break;}
  1935.   case 175:
  1936. ! #line 999 "c-parse.y"
  1937.   { set_init_label (yyvsp[-1].ttype); ;
  1938.       break;}
  1939.   case 177:
  1940. ! #line 1002 "c-parse.y"
  1941.   { set_init_label (yyvsp[-1].ttype); ;
  1942.       break;}
  1943.   case 179:
  1944. ! #line 1008 "c-parse.y"
  1945.   { push_c_function_context ();
  1946.             if (! start_function (current_declspecs, yyvsp[0].ttype, 1))
  1947.               {
  1948. --- 2356,2399 ----
  1949.               pop_momentary_nofree (); ;
  1950.       break;}
  1951.   case 162:
  1952. ! #line 971 "c-parse.y"
  1953.   { yyval.ttype = error_mark_node; ;
  1954.       break;}
  1955.   case 163:
  1956. ! #line 977 "c-parse.y"
  1957.   { if (pedantic)
  1958.               pedwarn ("ANSI C forbids empty initializer braces"); ;
  1959.       break;}
  1960.   case 167:
  1961. ! #line 991 "c-parse.y"
  1962.   { process_init_element (yyvsp[0].ttype); ;
  1963.       break;}
  1964.   case 168:
  1965. ! #line 993 "c-parse.y"
  1966.   { push_init_level (0); ;
  1967.       break;}
  1968.   case 169:
  1969. ! #line 995 "c-parse.y"
  1970.   { process_init_element (pop_init_level (0)); ;
  1971.       break;}
  1972.   case 171:
  1973. ! #line 1001 "c-parse.y"
  1974.   { set_init_index (yyvsp[-4].ttype, yyvsp[-2].ttype); ;
  1975.       break;}
  1976.   case 173:
  1977. ! #line 1004 "c-parse.y"
  1978.   { set_init_index (yyvsp[-2].ttype, NULL_TREE); ;
  1979.       break;}
  1980.   case 175:
  1981. ! #line 1007 "c-parse.y"
  1982.   { set_init_label (yyvsp[-1].ttype); ;
  1983.       break;}
  1984.   case 177:
  1985. ! #line 1010 "c-parse.y"
  1986.   { set_init_label (yyvsp[-1].ttype); ;
  1987.       break;}
  1988.   case 179:
  1989. ! #line 1016 "c-parse.y"
  1990.   { push_c_function_context ();
  1991.             if (! start_function (current_declspecs, yyvsp[0].ttype, 1))
  1992.               {
  1993. ***************
  1994. *** 2072,2083 ****
  1995.             store_parm_decls (); ;
  1996.       break;}
  1997.   case 180:
  1998. ! #line 1023 "c-parse.y"
  1999.   { finish_function (1);
  2000.             pop_c_function_context (); ;
  2001.       break;}
  2002.   case 181:
  2003. ! #line 1029 "c-parse.y"
  2004.   { push_c_function_context ();
  2005.             if (! start_function (current_declspecs, yyvsp[0].ttype, 1))
  2006.               {
  2007. --- 2404,2415 ----
  2008.             store_parm_decls (); ;
  2009.       break;}
  2010.   case 180:
  2011. ! #line 1031 "c-parse.y"
  2012.   { finish_function (1);
  2013.             pop_c_function_context (); ;
  2014.       break;}
  2015.   case 181:
  2016. ! #line 1037 "c-parse.y"
  2017.   { push_c_function_context ();
  2018.             if (! start_function (current_declspecs, yyvsp[0].ttype, 1))
  2019.               {
  2020. ***************
  2021. *** 2088,2370 ****
  2022.             store_parm_decls (); ;
  2023.       break;}
  2024.   case 182:
  2025. ! #line 1044 "c-parse.y"
  2026.   { finish_function (1);
  2027.             pop_c_function_context (); ;
  2028.       break;}
  2029.   case 185:
  2030. ! #line 1060 "c-parse.y"
  2031.   { yyval.ttype = yyvsp[-1].ttype; ;
  2032.       break;}
  2033.   case 186:
  2034. ! #line 1062 "c-parse.y"
  2035.   { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
  2036.       break;}
  2037.   case 187:
  2038. ! #line 1067 "c-parse.y"
  2039.   { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
  2040.       break;}
  2041.   case 188:
  2042. ! #line 1069 "c-parse.y"
  2043.   { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
  2044.       break;}
  2045.   case 189:
  2046. ! #line 1071 "c-parse.y"
  2047.   { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  2048.       break;}
  2049.   case 191:
  2050. ! #line 1082 "c-parse.y"
  2051.   { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
  2052.       break;}
  2053.   case 192:
  2054. ! #line 1087 "c-parse.y"
  2055.   { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
  2056.       break;}
  2057.   case 193:
  2058. ! #line 1089 "c-parse.y"
  2059.   { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
  2060.       break;}
  2061.   case 194:
  2062. ! #line 1091 "c-parse.y"
  2063.   { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  2064.       break;}
  2065.   case 196:
  2066. ! #line 1100 "c-parse.y"
  2067.   { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
  2068.       break;}
  2069.   case 197:
  2070. ! #line 1105 "c-parse.y"
  2071.   { yyval.ttype = yyvsp[-1].ttype; ;
  2072.       break;}
  2073.   case 198:
  2074. ! #line 1107 "c-parse.y"
  2075.   { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  2076.       break;}
  2077.   case 199:
  2078. ! #line 1109 "c-parse.y"
  2079.   { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
  2080.       break;}
  2081.   case 200:
  2082. ! #line 1111 "c-parse.y"
  2083.   { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
  2084.       break;}
  2085.   case 202:
  2086. ! #line 1117 "c-parse.y"
  2087.   { yyval.ttype = start_struct (RECORD_TYPE, yyvsp[-1].ttype);
  2088.             /* Start scope of tag before parsing components.  */
  2089.           ;
  2090.       break;}
  2091.   case 203:
  2092. ! #line 1121 "c-parse.y"
  2093.   { yyval.ttype = finish_struct (yyvsp[-2].ttype, yyvsp[-1].ttype);
  2094.             /* Really define the structure.  */
  2095.           ;
  2096.       break;}
  2097.   case 204:
  2098. ! #line 1125 "c-parse.y"
  2099.   { yyval.ttype = finish_struct (start_struct (RECORD_TYPE, NULL_TREE),
  2100.                         yyvsp[-1].ttype); ;
  2101.       break;}
  2102.   case 205:
  2103. ! #line 1128 "c-parse.y"
  2104.   { yyval.ttype = xref_tag (RECORD_TYPE, yyvsp[0].ttype); ;
  2105.       break;}
  2106.   case 206:
  2107. ! #line 1130 "c-parse.y"
  2108.   { yyval.ttype = start_struct (UNION_TYPE, yyvsp[-1].ttype); ;
  2109.       break;}
  2110.   case 207:
  2111. ! #line 1132 "c-parse.y"
  2112.   { yyval.ttype = finish_struct (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
  2113.       break;}
  2114.   case 208:
  2115. ! #line 1134 "c-parse.y"
  2116.   { yyval.ttype = finish_struct (start_struct (UNION_TYPE, NULL_TREE),
  2117.                         yyvsp[-1].ttype); ;
  2118.       break;}
  2119.   case 209:
  2120. ! #line 1137 "c-parse.y"
  2121.   { yyval.ttype = xref_tag (UNION_TYPE, yyvsp[0].ttype); ;
  2122.       break;}
  2123.   case 210:
  2124. ! #line 1139 "c-parse.y"
  2125.   { yyvsp[0].itype = suspend_momentary ();
  2126.             yyval.ttype = start_enum (yyvsp[-1].ttype); ;
  2127.       break;}
  2128.   case 211:
  2129. ! #line 1142 "c-parse.y"
  2130.   { yyval.ttype = finish_enum (yyvsp[-3].ttype, nreverse (yyvsp[-2].ttype));
  2131.             resume_momentary (yyvsp[-4].itype); ;
  2132.       break;}
  2133.   case 212:
  2134. ! #line 1145 "c-parse.y"
  2135.   { yyvsp[0].itype = suspend_momentary ();
  2136.             yyval.ttype = start_enum (NULL_TREE); ;
  2137.       break;}
  2138.   case 213:
  2139. ! #line 1148 "c-parse.y"
  2140.   { yyval.ttype = finish_enum (yyvsp[-3].ttype, nreverse (yyvsp[-2].ttype));
  2141.             resume_momentary (yyvsp[-4].itype); ;
  2142.       break;}
  2143.   case 214:
  2144. ! #line 1151 "c-parse.y"
  2145.   { yyval.ttype = xref_tag (ENUMERAL_TYPE, yyvsp[0].ttype); ;
  2146.       break;}
  2147.   case 218:
  2148. ! #line 1162 "c-parse.y"
  2149.   { if (pedantic) pedwarn ("comma at end of enumerator list"); ;
  2150.       break;}
  2151.   case 219:
  2152. ! #line 1167 "c-parse.y"
  2153.   { yyval.ttype = yyvsp[0].ttype; ;
  2154.       break;}
  2155.   case 220:
  2156. ! #line 1169 "c-parse.y"
  2157.   { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
  2158.             pedwarn ("no semicolon at end of struct or union"); ;
  2159.       break;}
  2160.   case 221:
  2161. ! #line 1174 "c-parse.y"
  2162.   { yyval.ttype = NULL_TREE; ;
  2163.       break;}
  2164.   case 222:
  2165. ! #line 1176 "c-parse.y"
  2166.   { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
  2167.       break;}
  2168.   case 223:
  2169. ! #line 1178 "c-parse.y"
  2170.   { if (pedantic)
  2171.               pedwarn ("extra semicolon in struct or union specified"); ;
  2172.       break;}
  2173.   case 224:
  2174. ! #line 1193 "c-parse.y"
  2175.   { yyval.ttype = yyvsp[0].ttype;
  2176.             current_declspecs = TREE_VALUE (declspec_stack);
  2177.             declspec_stack = TREE_CHAIN (declspec_stack);
  2178.             resume_momentary (yyvsp[-1].itype); ;
  2179.       break;}
  2180.   case 225:
  2181. ! #line 1198 "c-parse.y"
  2182.   { if (pedantic)
  2183.               pedwarn ("ANSI C forbids member declarations with no members");
  2184.             shadow_tag(yyvsp[0].ttype);
  2185.             yyval.ttype = NULL_TREE; ;
  2186.       break;}
  2187.   case 226:
  2188. ! #line 1203 "c-parse.y"
  2189.   { yyval.ttype = yyvsp[0].ttype;
  2190.             current_declspecs = TREE_VALUE (declspec_stack);
  2191.             declspec_stack = TREE_CHAIN (declspec_stack);
  2192.             resume_momentary (yyvsp[-1].itype); ;
  2193.       break;}
  2194.   case 227:
  2195. ! #line 1208 "c-parse.y"
  2196.   { if (pedantic)
  2197.               pedwarn ("ANSI C forbids member declarations with no members");
  2198.             shadow_tag(yyvsp[0].ttype);
  2199.             yyval.ttype = NULL_TREE; ;
  2200.       break;}
  2201.   case 228:
  2202. ! #line 1213 "c-parse.y"
  2203.   { yyval.ttype = NULL_TREE; ;
  2204.       break;}
  2205.   case 230:
  2206. ! #line 1219 "c-parse.y"
  2207.   { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
  2208.       break;}
  2209.   case 231:
  2210. ! #line 1224 "c-parse.y"
  2211.   { yyval.ttype = grokfield (yyvsp[-3].filename, yyvsp[-2].lineno, yyvsp[-1].ttype, current_declspecs, NULL_TREE);
  2212.             decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
  2213.       break;}
  2214.   case 232:
  2215. ! #line 1228 "c-parse.y"
  2216.   { yyval.ttype = grokfield (yyvsp[-5].filename, yyvsp[-4].lineno, yyvsp[-3].ttype, current_declspecs, yyvsp[-1].ttype);
  2217.             decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
  2218.       break;}
  2219.   case 233:
  2220. ! #line 1231 "c-parse.y"
  2221.   { yyval.ttype = grokfield (yyvsp[-4].filename, yyvsp[-3].lineno, NULL_TREE, current_declspecs, yyvsp[-1].ttype);
  2222.             decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
  2223.       break;}
  2224.   case 235:
  2225. ! #line 1243 "c-parse.y"
  2226.   { yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-2].ttype); ;
  2227.       break;}
  2228.   case 236:
  2229. ! #line 1249 "c-parse.y"
  2230.   { yyval.ttype = build_enumerator (yyvsp[0].ttype, NULL_TREE); ;
  2231.       break;}
  2232.   case 237:
  2233. ! #line 1251 "c-parse.y"
  2234.   { yyval.ttype = build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype); ;
  2235.       break;}
  2236.   case 238:
  2237. ! #line 1256 "c-parse.y"
  2238.   { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  2239.       break;}
  2240.   case 239:
  2241. ! #line 1258 "c-parse.y"
  2242.   { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  2243.       break;}
  2244.   case 240:
  2245. ! #line 1263 "c-parse.y"
  2246.   { yyval.ttype = NULL_TREE; ;
  2247.       break;}
  2248.   case 242:
  2249. ! #line 1269 "c-parse.y"
  2250.   { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
  2251.       break;}
  2252.   case 243:
  2253. ! #line 1271 "c-parse.y"
  2254.   { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
  2255.       break;}
  2256.   case 244:
  2257. ! #line 1276 "c-parse.y"
  2258.   { yyval.ttype = NULL_TREE; ;
  2259.       break;}
  2260.   case 245:
  2261. ! #line 1278 "c-parse.y"
  2262.   { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
  2263.       break;}
  2264.   case 246:
  2265. ! #line 1283 "c-parse.y"
  2266.   { yyval.ttype = yyvsp[-1].ttype; ;
  2267.       break;}
  2268.   case 247:
  2269. ! #line 1286 "c-parse.y"
  2270.   { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  2271.       break;}
  2272.   case 248:
  2273. ! #line 1288 "c-parse.y"
  2274.   { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
  2275.       break;}
  2276.   case 249:
  2277. ! #line 1290 "c-parse.y"
  2278.   { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
  2279.       break;}
  2280.   case 250:
  2281. ! #line 1292 "c-parse.y"
  2282.   { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
  2283.       break;}
  2284.   case 251:
  2285. ! #line 1294 "c-parse.y"
  2286.   { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
  2287.       break;}
  2288.   case 252:
  2289. ! #line 1296 "c-parse.y"
  2290.   { yyval.ttype = build_nt (CALL_EXPR, NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
  2291.       break;}
  2292.   case 253:
  2293. ! #line 1298 "c-parse.y"
  2294.   { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
  2295.       break;}
  2296.   case 254:
  2297. ! #line 1300 "c-parse.y"
  2298.   { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); ;
  2299.       break;}
  2300.   case 261:
  2301. ! #line 1322 "c-parse.y"
  2302.   { emit_line_note (input_filename, lineno);
  2303.             pushlevel (0);
  2304.             clear_last_expr ();
  2305. --- 2420,2702 ----
  2306.             store_parm_decls (); ;
  2307.       break;}
  2308.   case 182:
  2309. ! #line 1052 "c-parse.y"
  2310.   { finish_function (1);
  2311.             pop_c_function_context (); ;
  2312.       break;}
  2313.   case 185:
  2314. ! #line 1068 "c-parse.y"
  2315.   { yyval.ttype = yyvsp[-1].ttype; ;
  2316.       break;}
  2317.   case 186:
  2318. ! #line 1070 "c-parse.y"
  2319.   { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
  2320.       break;}
  2321.   case 187:
  2322. ! #line 1075 "c-parse.y"
  2323.   { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
  2324.       break;}
  2325.   case 188:
  2326. ! #line 1077 "c-parse.y"
  2327.   { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
  2328.       break;}
  2329.   case 189:
  2330. ! #line 1079 "c-parse.y"
  2331.   { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  2332.       break;}
  2333.   case 191:
  2334. ! #line 1090 "c-parse.y"
  2335.   { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
  2336.       break;}
  2337.   case 192:
  2338. ! #line 1095 "c-parse.y"
  2339.   { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
  2340.       break;}
  2341.   case 193:
  2342. ! #line 1097 "c-parse.y"
  2343.   { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
  2344.       break;}
  2345.   case 194:
  2346. ! #line 1099 "c-parse.y"
  2347.   { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  2348.       break;}
  2349.   case 196:
  2350. ! #line 1108 "c-parse.y"
  2351.   { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
  2352.       break;}
  2353.   case 197:
  2354. ! #line 1113 "c-parse.y"
  2355.   { yyval.ttype = yyvsp[-1].ttype; ;
  2356.       break;}
  2357.   case 198:
  2358. ! #line 1115 "c-parse.y"
  2359.   { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  2360.       break;}
  2361.   case 199:
  2362. ! #line 1117 "c-parse.y"
  2363.   { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
  2364.       break;}
  2365.   case 200:
  2366. ! #line 1119 "c-parse.y"
  2367.   { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
  2368.       break;}
  2369.   case 202:
  2370. ! #line 1125 "c-parse.y"
  2371.   { yyval.ttype = start_struct (RECORD_TYPE, yyvsp[-1].ttype);
  2372.             /* Start scope of tag before parsing components.  */
  2373.           ;
  2374.       break;}
  2375.   case 203:
  2376. ! #line 1129 "c-parse.y"
  2377.   { yyval.ttype = finish_struct (yyvsp[-2].ttype, yyvsp[-1].ttype);
  2378.             /* Really define the structure.  */
  2379.           ;
  2380.       break;}
  2381.   case 204:
  2382. ! #line 1133 "c-parse.y"
  2383.   { yyval.ttype = finish_struct (start_struct (RECORD_TYPE, NULL_TREE),
  2384.                         yyvsp[-1].ttype); ;
  2385.       break;}
  2386.   case 205:
  2387. ! #line 1136 "c-parse.y"
  2388.   { yyval.ttype = xref_tag (RECORD_TYPE, yyvsp[0].ttype); ;
  2389.       break;}
  2390.   case 206:
  2391. ! #line 1138 "c-parse.y"
  2392.   { yyval.ttype = start_struct (UNION_TYPE, yyvsp[-1].ttype); ;
  2393.       break;}
  2394.   case 207:
  2395. ! #line 1140 "c-parse.y"
  2396.   { yyval.ttype = finish_struct (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
  2397.       break;}
  2398.   case 208:
  2399. ! #line 1142 "c-parse.y"
  2400.   { yyval.ttype = finish_struct (start_struct (UNION_TYPE, NULL_TREE),
  2401.                         yyvsp[-1].ttype); ;
  2402.       break;}
  2403.   case 209:
  2404. ! #line 1145 "c-parse.y"
  2405.   { yyval.ttype = xref_tag (UNION_TYPE, yyvsp[0].ttype); ;
  2406.       break;}
  2407.   case 210:
  2408. ! #line 1147 "c-parse.y"
  2409.   { yyvsp[0].itype = suspend_momentary ();
  2410.             yyval.ttype = start_enum (yyvsp[-1].ttype); ;
  2411.       break;}
  2412.   case 211:
  2413. ! #line 1150 "c-parse.y"
  2414.   { yyval.ttype = finish_enum (yyvsp[-3].ttype, nreverse (yyvsp[-2].ttype));
  2415.             resume_momentary (yyvsp[-4].itype); ;
  2416.       break;}
  2417.   case 212:
  2418. ! #line 1153 "c-parse.y"
  2419.   { yyvsp[0].itype = suspend_momentary ();
  2420.             yyval.ttype = start_enum (NULL_TREE); ;
  2421.       break;}
  2422.   case 213:
  2423. ! #line 1156 "c-parse.y"
  2424.   { yyval.ttype = finish_enum (yyvsp[-3].ttype, nreverse (yyvsp[-2].ttype));
  2425.             resume_momentary (yyvsp[-4].itype); ;
  2426.       break;}
  2427.   case 214:
  2428. ! #line 1159 "c-parse.y"
  2429.   { yyval.ttype = xref_tag (ENUMERAL_TYPE, yyvsp[0].ttype); ;
  2430.       break;}
  2431.   case 218:
  2432. ! #line 1170 "c-parse.y"
  2433.   { if (pedantic) pedwarn ("comma at end of enumerator list"); ;
  2434.       break;}
  2435.   case 219:
  2436. ! #line 1175 "c-parse.y"
  2437.   { yyval.ttype = yyvsp[0].ttype; ;
  2438.       break;}
  2439.   case 220:
  2440. ! #line 1177 "c-parse.y"
  2441.   { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
  2442.             pedwarn ("no semicolon at end of struct or union"); ;
  2443.       break;}
  2444.   case 221:
  2445. ! #line 1182 "c-parse.y"
  2446.   { yyval.ttype = NULL_TREE; ;
  2447.       break;}
  2448.   case 222:
  2449. ! #line 1184 "c-parse.y"
  2450.   { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
  2451.       break;}
  2452.   case 223:
  2453. ! #line 1186 "c-parse.y"
  2454.   { if (pedantic)
  2455.               pedwarn ("extra semicolon in struct or union specified"); ;
  2456.       break;}
  2457.   case 224:
  2458. ! #line 1201 "c-parse.y"
  2459.   { yyval.ttype = yyvsp[0].ttype;
  2460.             current_declspecs = TREE_VALUE (declspec_stack);
  2461.             declspec_stack = TREE_CHAIN (declspec_stack);
  2462.             resume_momentary (yyvsp[-1].itype); ;
  2463.       break;}
  2464.   case 225:
  2465. ! #line 1206 "c-parse.y"
  2466.   { if (pedantic)
  2467.               pedwarn ("ANSI C forbids member declarations with no members");
  2468.             shadow_tag(yyvsp[0].ttype);
  2469.             yyval.ttype = NULL_TREE; ;
  2470.       break;}
  2471.   case 226:
  2472. ! #line 1211 "c-parse.y"
  2473.   { yyval.ttype = yyvsp[0].ttype;
  2474.             current_declspecs = TREE_VALUE (declspec_stack);
  2475.             declspec_stack = TREE_CHAIN (declspec_stack);
  2476.             resume_momentary (yyvsp[-1].itype); ;
  2477.       break;}
  2478.   case 227:
  2479. ! #line 1216 "c-parse.y"
  2480.   { if (pedantic)
  2481.               pedwarn ("ANSI C forbids member declarations with no members");
  2482.             shadow_tag(yyvsp[0].ttype);
  2483.             yyval.ttype = NULL_TREE; ;
  2484.       break;}
  2485.   case 228:
  2486. ! #line 1221 "c-parse.y"
  2487.   { yyval.ttype = NULL_TREE; ;
  2488.       break;}
  2489.   case 230:
  2490. ! #line 1227 "c-parse.y"
  2491.   { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
  2492.       break;}
  2493.   case 231:
  2494. ! #line 1232 "c-parse.y"
  2495.   { yyval.ttype = grokfield (yyvsp[-3].filename, yyvsp[-2].lineno, yyvsp[-1].ttype, current_declspecs, NULL_TREE);
  2496.             decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
  2497.       break;}
  2498.   case 232:
  2499. ! #line 1236 "c-parse.y"
  2500.   { yyval.ttype = grokfield (yyvsp[-5].filename, yyvsp[-4].lineno, yyvsp[-3].ttype, current_declspecs, yyvsp[-1].ttype);
  2501.             decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
  2502.       break;}
  2503.   case 233:
  2504. ! #line 1239 "c-parse.y"
  2505.   { yyval.ttype = grokfield (yyvsp[-4].filename, yyvsp[-3].lineno, NULL_TREE, current_declspecs, yyvsp[-1].ttype);
  2506.             decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
  2507.       break;}
  2508.   case 235:
  2509. ! #line 1251 "c-parse.y"
  2510.   { yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-2].ttype); ;
  2511.       break;}
  2512.   case 236:
  2513. ! #line 1257 "c-parse.y"
  2514.   { yyval.ttype = build_enumerator (yyvsp[0].ttype, NULL_TREE); ;
  2515.       break;}
  2516.   case 237:
  2517. ! #line 1259 "c-parse.y"
  2518.   { yyval.ttype = build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype); ;
  2519.       break;}
  2520.   case 238:
  2521. ! #line 1264 "c-parse.y"
  2522.   { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  2523.       break;}
  2524.   case 239:
  2525. ! #line 1266 "c-parse.y"
  2526.   { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  2527.       break;}
  2528.   case 240:
  2529. ! #line 1271 "c-parse.y"
  2530.   { yyval.ttype = NULL_TREE; ;
  2531.       break;}
  2532.   case 242:
  2533. ! #line 1277 "c-parse.y"
  2534.   { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
  2535.       break;}
  2536.   case 243:
  2537. ! #line 1279 "c-parse.y"
  2538.   { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
  2539.       break;}
  2540.   case 244:
  2541. ! #line 1284 "c-parse.y"
  2542.   { yyval.ttype = NULL_TREE; ;
  2543.       break;}
  2544.   case 245:
  2545. ! #line 1286 "c-parse.y"
  2546.   { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
  2547.       break;}
  2548.   case 246:
  2549. ! #line 1291 "c-parse.y"
  2550.   { yyval.ttype = yyvsp[-1].ttype; ;
  2551.       break;}
  2552.   case 247:
  2553. ! #line 1294 "c-parse.y"
  2554.   { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  2555.       break;}
  2556.   case 248:
  2557. ! #line 1296 "c-parse.y"
  2558.   { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
  2559.       break;}
  2560.   case 249:
  2561. ! #line 1298 "c-parse.y"
  2562.   { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
  2563.       break;}
  2564.   case 250:
  2565. ! #line 1300 "c-parse.y"
  2566.   { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
  2567.       break;}
  2568.   case 251:
  2569. ! #line 1302 "c-parse.y"
  2570.   { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
  2571.       break;}
  2572.   case 252:
  2573. ! #line 1304 "c-parse.y"
  2574.   { yyval.ttype = build_nt (CALL_EXPR, NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
  2575.       break;}
  2576.   case 253:
  2577. ! #line 1306 "c-parse.y"
  2578.   { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
  2579.       break;}
  2580.   case 254:
  2581. ! #line 1308 "c-parse.y"
  2582.   { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); ;
  2583.       break;}
  2584.   case 261:
  2585. ! #line 1330 "c-parse.y"
  2586.   { emit_line_note (input_filename, lineno);
  2587.             pushlevel (0);
  2588.             clear_last_expr ();
  2589. ***************
  2590. *** 2373,2384 ****
  2591.           ;
  2592.       break;}
  2593.   case 263:
  2594. ! #line 1335 "c-parse.y"
  2595.   { if (pedantic)
  2596.               pedwarn ("ANSI C forbids label declarations"); ;
  2597.       break;}
  2598.   case 266:
  2599. ! #line 1346 "c-parse.y"
  2600.   { tree link;
  2601.             for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
  2602.               {
  2603. --- 2705,2716 ----
  2604.           ;
  2605.       break;}
  2606.   case 263:
  2607. ! #line 1343 "c-parse.y"
  2608.   { if (pedantic)
  2609.               pedwarn ("ANSI C forbids label declarations"); ;
  2610.       break;}
  2611.   case 266:
  2612. ! #line 1354 "c-parse.y"
  2613.   { tree link;
  2614.             for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
  2615.               {
  2616. ***************
  2617. *** 2389,2424 ****
  2618.           ;
  2619.       break;}
  2620.   case 267:
  2621. ! #line 1360 "c-parse.y"
  2622.   {;
  2623.       break;}
  2624.   case 269:
  2625. ! #line 1365 "c-parse.y"
  2626.   { yyval.ttype = convert (void_type_node, integer_zero_node); ;
  2627.       break;}
  2628.   case 270:
  2629. ! #line 1367 "c-parse.y"
  2630.   { emit_line_note (input_filename, lineno);
  2631.             expand_end_bindings (getdecls (), 1, 0);
  2632.             yyval.ttype = poplevel (1, 1, 0);
  2633.             pop_momentary (); ;
  2634.       break;}
  2635.   case 271:
  2636. ! #line 1372 "c-parse.y"
  2637.   { emit_line_note (input_filename, lineno);
  2638.             expand_end_bindings (getdecls (), kept_level_p (), 0);
  2639.             yyval.ttype = poplevel (kept_level_p (), 0, 0);
  2640.             pop_momentary (); ;
  2641.       break;}
  2642.   case 272:
  2643. ! #line 1377 "c-parse.y"
  2644.   { emit_line_note (input_filename, lineno);
  2645.             expand_end_bindings (getdecls (), kept_level_p (), 0);
  2646.             yyval.ttype = poplevel (kept_level_p (), 0, 0);
  2647.             pop_momentary (); ;
  2648.       break;}
  2649.   case 275:
  2650. ! #line 1394 "c-parse.y"
  2651.   { emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
  2652.             expand_start_cond (truthvalue_conversion (yyvsp[-1].ttype), 0);
  2653.             yyval.itype = stmt_count;
  2654. --- 2721,2756 ----
  2655.           ;
  2656.       break;}
  2657.   case 267:
  2658. ! #line 1368 "c-parse.y"
  2659.   {;
  2660.       break;}
  2661.   case 269:
  2662. ! #line 1373 "c-parse.y"
  2663.   { yyval.ttype = convert (void_type_node, integer_zero_node); ;
  2664.       break;}
  2665.   case 270:
  2666. ! #line 1375 "c-parse.y"
  2667.   { emit_line_note (input_filename, lineno);
  2668.             expand_end_bindings (getdecls (), 1, 0);
  2669.             yyval.ttype = poplevel (1, 1, 0);
  2670.             pop_momentary (); ;
  2671.       break;}
  2672.   case 271:
  2673. ! #line 1380 "c-parse.y"
  2674.   { emit_line_note (input_filename, lineno);
  2675.             expand_end_bindings (getdecls (), kept_level_p (), 0);
  2676.             yyval.ttype = poplevel (kept_level_p (), 0, 0);
  2677.             pop_momentary (); ;
  2678.       break;}
  2679.   case 272:
  2680. ! #line 1385 "c-parse.y"
  2681.   { emit_line_note (input_filename, lineno);
  2682.             expand_end_bindings (getdecls (), kept_level_p (), 0);
  2683.             yyval.ttype = poplevel (kept_level_p (), 0, 0);
  2684.             pop_momentary (); ;
  2685.       break;}
  2686.   case 275:
  2687. ! #line 1402 "c-parse.y"
  2688.   { emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
  2689.             expand_start_cond (truthvalue_conversion (yyvsp[-1].ttype), 0);
  2690.             yyval.itype = stmt_count;
  2691. ***************
  2692. *** 2427,2433 ****
  2693.             position_after_white_space (); ;
  2694.       break;}
  2695.   case 276:
  2696. ! #line 1407 "c-parse.y"
  2697.   { stmt_count++;
  2698.             emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
  2699.             /* See comment in `while' alternative, above.  */
  2700. --- 2759,2765 ----
  2701.             position_after_white_space (); ;
  2702.       break;}
  2703.   case 276:
  2704. ! #line 1415 "c-parse.y"
  2705.   { stmt_count++;
  2706.             emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
  2707.             /* See comment in `while' alternative, above.  */
  2708. ***************
  2709. *** 2436,2466 ****
  2710.             position_after_white_space (); ;
  2711.       break;}
  2712.   case 277:
  2713. ! #line 1414 "c-parse.y"
  2714.   { expand_loop_continue_here (); ;
  2715.       break;}
  2716.   case 278:
  2717. ! #line 1418 "c-parse.y"
  2718.   { yyval.filename = input_filename; ;
  2719.       break;}
  2720.   case 279:
  2721. ! #line 1422 "c-parse.y"
  2722.   { yyval.lineno = lineno; ;
  2723.       break;}
  2724.   case 280:
  2725. ! #line 1427 "c-parse.y"
  2726.   { ;
  2727.       break;}
  2728.   case 281:
  2729. ! #line 1432 "c-parse.y"
  2730.   { ;
  2731.       break;}
  2732.   case 282:
  2733. ! #line 1437 "c-parse.y"
  2734.   { ;
  2735.       break;}
  2736.   case 284:
  2737. ! #line 1443 "c-parse.y"
  2738.   { int next;
  2739.             position_after_white_space ();
  2740.             next = getc (finput);
  2741. --- 2768,2798 ----
  2742.             position_after_white_space (); ;
  2743.       break;}
  2744.   case 277:
  2745. ! #line 1422 "c-parse.y"
  2746.   { expand_loop_continue_here (); ;
  2747.       break;}
  2748.   case 278:
  2749. ! #line 1426 "c-parse.y"
  2750.   { yyval.filename = input_filename; ;
  2751.       break;}
  2752.   case 279:
  2753. ! #line 1430 "c-parse.y"
  2754.   { yyval.lineno = lineno; ;
  2755.       break;}
  2756.   case 280:
  2757. ! #line 1435 "c-parse.y"
  2758.   { ;
  2759.       break;}
  2760.   case 281:
  2761. ! #line 1440 "c-parse.y"
  2762.   { ;
  2763.       break;}
  2764.   case 282:
  2765. ! #line 1445 "c-parse.y"
  2766.   { ;
  2767.       break;}
  2768.   case 284:
  2769. ! #line 1451 "c-parse.y"
  2770.   { int next;
  2771.             position_after_white_space ();
  2772.             next = getc (finput);
  2773. ***************
  2774. *** 2470,2480 ****
  2775.           ;
  2776.       break;}
  2777.   case 285:
  2778. ! #line 1455 "c-parse.y"
  2779.   { stmt_count++; ;
  2780.       break;}
  2781.   case 287:
  2782. ! #line 1458 "c-parse.y"
  2783.   { stmt_count++;
  2784.             emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
  2785.   /* It appears that this should not be done--that a non-lvalue array
  2786. --- 2802,2812 ----
  2787.           ;
  2788.       break;}
  2789.   case 285:
  2790. ! #line 1463 "c-parse.y"
  2791.   { stmt_count++; ;
  2792.       break;}
  2793.   case 287:
  2794. ! #line 1466 "c-parse.y"
  2795.   { stmt_count++;
  2796.             emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
  2797.   /* It appears that this should not be done--that a non-lvalue array
  2798. ***************
  2799. *** 2493,2511 ****
  2800.             clear_momentary (); ;
  2801.       break;}
  2802.   case 288:
  2803. ! #line 1475 "c-parse.y"
  2804.   { expand_start_else ();
  2805.             yyvsp[-1].itype = stmt_count;
  2806.             position_after_white_space (); ;
  2807.       break;}
  2808.   case 289:
  2809. ! #line 1479 "c-parse.y"
  2810.   { expand_end_cond ();
  2811.             if (extra_warnings && stmt_count == yyvsp[-3].itype)
  2812.               warning ("empty body in an else-statement"); ;
  2813.       break;}
  2814.   case 290:
  2815. ! #line 1483 "c-parse.y"
  2816.   { expand_end_cond ();
  2817.             /* This warning is here instead of in simple_if, because we
  2818.                do not want a warning if an empty if is followed by an
  2819. --- 2825,2843 ----
  2820.             clear_momentary (); ;
  2821.       break;}
  2822.   case 288:
  2823. ! #line 1483 "c-parse.y"
  2824.   { expand_start_else ();
  2825.             yyvsp[-1].itype = stmt_count;
  2826.             position_after_white_space (); ;
  2827.       break;}
  2828.   case 289:
  2829. ! #line 1487 "c-parse.y"
  2830.   { expand_end_cond ();
  2831.             if (extra_warnings && stmt_count == yyvsp[-3].itype)
  2832.               warning ("empty body in an else-statement"); ;
  2833.       break;}
  2834.   case 290:
  2835. ! #line 1491 "c-parse.y"
  2836.   { expand_end_cond ();
  2837.             /* This warning is here instead of in simple_if, because we
  2838.                do not want a warning if an empty if is followed by an
  2839. ***************
  2840. *** 2515,2525 ****
  2841.                           "empty body in an if-statement"); ;
  2842.       break;}
  2843.   case 291:
  2844. ! #line 1494 "c-parse.y"
  2845.   { expand_end_cond (); ;
  2846.       break;}
  2847.   case 292:
  2848. ! #line 1496 "c-parse.y"
  2849.   { stmt_count++;
  2850.             emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
  2851.             /* The emit_nop used to come before emit_line_note,
  2852. --- 2847,2857 ----
  2853.                           "empty body in an if-statement"); ;
  2854.       break;}
  2855.   case 291:
  2856. ! #line 1502 "c-parse.y"
  2857.   { expand_end_cond (); ;
  2858.       break;}
  2859.   case 292:
  2860. ! #line 1504 "c-parse.y"
  2861.   { stmt_count++;
  2862.             emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
  2863.             /* The emit_nop used to come before emit_line_note,
  2864. ***************
  2865. *** 2531,2537 ****
  2866.             emit_nop (); ;
  2867.       break;}
  2868.   case 293:
  2869. ! #line 1506 "c-parse.y"
  2870.   { /* Don't start the loop till we have succeeded
  2871.                in parsing the end test.  This is to make sure
  2872.                that we end every loop we start.  */
  2873. --- 2863,2869 ----
  2874.             emit_nop (); ;
  2875.       break;}
  2876.   case 293:
  2877. ! #line 1514 "c-parse.y"
  2878.   { /* Don't start the loop till we have succeeded
  2879.                in parsing the end test.  This is to make sure
  2880.                that we end every loop we start.  */
  2881. ***************
  2882. *** 2542,2552 ****
  2883.             position_after_white_space (); ;
  2884.       break;}
  2885.   case 294:
  2886. ! #line 1515 "c-parse.y"
  2887.   { expand_end_loop (); ;
  2888.       break;}
  2889.   case 295:
  2890. ! #line 1518 "c-parse.y"
  2891.   { emit_line_note (input_filename, lineno);
  2892.             expand_exit_loop_if_false (NULL_PTR,
  2893.                            truthvalue_conversion (yyvsp[-2].ttype));
  2894. --- 2874,2884 ----
  2895.             position_after_white_space (); ;
  2896.       break;}
  2897.   case 294:
  2898. ! #line 1523 "c-parse.y"
  2899.   { expand_end_loop (); ;
  2900.       break;}
  2901.   case 295:
  2902. ! #line 1526 "c-parse.y"
  2903.   { emit_line_note (input_filename, lineno);
  2904.             expand_exit_loop_if_false (NULL_PTR,
  2905.                            truthvalue_conversion (yyvsp[-2].ttype));
  2906. ***************
  2907. *** 2554,2565 ****
  2908.             clear_momentary (); ;
  2909.       break;}
  2910.   case 296:
  2911. ! #line 1525 "c-parse.y"
  2912.   { expand_end_loop ();
  2913.             clear_momentary (); ;
  2914.       break;}
  2915.   case 297:
  2916. ! #line 1529 "c-parse.y"
  2917.   { stmt_count++;
  2918.             emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
  2919.             /* See comment in `while' alternative, above.  */
  2920. --- 2886,2897 ----
  2921.             clear_momentary (); ;
  2922.       break;}
  2923.   case 296:
  2924. ! #line 1533 "c-parse.y"
  2925.   { expand_end_loop ();
  2926.             clear_momentary (); ;
  2927.       break;}
  2928.   case 297:
  2929. ! #line 1537 "c-parse.y"
  2930.   { stmt_count++;
  2931.             emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
  2932.             /* See comment in `while' alternative, above.  */
  2933. ***************
  2934. *** 2572,2583 ****
  2935.           ;
  2936.       break;}
  2937.   case 298:
  2938. ! #line 1541 "c-parse.y"
  2939.   { yyvsp[0].lineno = lineno;
  2940.             yyval.filename = input_filename; ;
  2941.       break;}
  2942.   case 299:
  2943. ! #line 1544 "c-parse.y"
  2944.   { 
  2945.             /* Start the loop.  Doing this after parsing
  2946.                all the expressions ensures we will end the loop.  */
  2947. --- 2904,2915 ----
  2948.           ;
  2949.       break;}
  2950.   case 298:
  2951. ! #line 1549 "c-parse.y"
  2952.   { yyvsp[0].lineno = lineno;
  2953.             yyval.filename = input_filename; ;
  2954.       break;}
  2955.   case 299:
  2956. ! #line 1552 "c-parse.y"
  2957.   { 
  2958.             /* Start the loop.  Doing this after parsing
  2959.                all the expressions ensures we will end the loop.  */
  2960. ***************
  2961. *** 2595,2601 ****
  2962.             position_after_white_space (); ;
  2963.       break;}
  2964.   case 300:
  2965. ! #line 1560 "c-parse.y"
  2966.   { /* Emit the increment expression, with a line number.  */
  2967.             emit_line_note (yyvsp[-4].filename, yyvsp[-5].lineno);
  2968.             expand_loop_continue_here ();
  2969. --- 2927,2933 ----
  2970.             position_after_white_space (); ;
  2971.       break;}
  2972.   case 300:
  2973. ! #line 1568 "c-parse.y"
  2974.   { /* Emit the increment expression, with a line number.  */
  2975.             emit_line_note (yyvsp[-4].filename, yyvsp[-5].lineno);
  2976.             expand_loop_continue_here ();
  2977. ***************
  2978. *** 2605,2611 ****
  2979.             expand_end_loop (); ;
  2980.       break;}
  2981.   case 301:
  2982. ! #line 1568 "c-parse.y"
  2983.   { stmt_count++;
  2984.             emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
  2985.             c_expand_start_case (yyvsp[-1].ttype);
  2986. --- 2937,2943 ----
  2987.             expand_end_loop (); ;
  2988.       break;}
  2989.   case 301:
  2990. ! #line 1576 "c-parse.y"
  2991.   { stmt_count++;
  2992.             emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
  2993.             c_expand_start_case (yyvsp[-1].ttype);
  2994. ***************
  2995. *** 2615,2652 ****
  2996.             position_after_white_space (); ;
  2997.       break;}
  2998.   case 302:
  2999. ! #line 1576 "c-parse.y"
  3000.   { expand_end_case (yyvsp[-3].ttype);
  3001.             pop_momentary (); ;
  3002.       break;}
  3003.   case 303:
  3004. ! #line 1579 "c-parse.y"
  3005.   { stmt_count++;
  3006.             emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
  3007.             if ( ! expand_exit_something ())
  3008.               error ("break statement not within loop or switch"); ;
  3009.       break;}
  3010.   case 304:
  3011. ! #line 1584 "c-parse.y"
  3012.   { stmt_count++;
  3013.             emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
  3014.             if (! expand_continue_loop (NULL_PTR))
  3015.               error ("continue statement not within a loop"); ;
  3016.       break;}
  3017.   case 305:
  3018. ! #line 1589 "c-parse.y"
  3019.   { stmt_count++;
  3020.             emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
  3021.             c_expand_return (NULL_TREE); ;
  3022.       break;}
  3023.   case 306:
  3024. ! #line 1593 "c-parse.y"
  3025.   { stmt_count++;
  3026.             emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
  3027.             c_expand_return (yyvsp[-1].ttype); ;
  3028.       break;}
  3029.   case 307:
  3030. ! #line 1597 "c-parse.y"
  3031.   { stmt_count++;
  3032.             emit_line_note (yyvsp[-7].filename, yyvsp[-6].lineno);
  3033.             STRIP_NOPS (yyvsp[-2].ttype);
  3034. --- 2947,2984 ----
  3035.             position_after_white_space (); ;
  3036.       break;}
  3037.   case 302:
  3038. ! #line 1584 "c-parse.y"
  3039.   { expand_end_case (yyvsp[-3].ttype);
  3040.             pop_momentary (); ;
  3041.       break;}
  3042.   case 303:
  3043. ! #line 1587 "c-parse.y"
  3044.   { stmt_count++;
  3045.             emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
  3046.             if ( ! expand_exit_something ())
  3047.               error ("break statement not within loop or switch"); ;
  3048.       break;}
  3049.   case 304:
  3050. ! #line 1592 "c-parse.y"
  3051.   { stmt_count++;
  3052.             emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
  3053.             if (! expand_continue_loop (NULL_PTR))
  3054.               error ("continue statement not within a loop"); ;
  3055.       break;}
  3056.   case 305:
  3057. ! #line 1597 "c-parse.y"
  3058.   { stmt_count++;
  3059.             emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
  3060.             c_expand_return (NULL_TREE); ;
  3061.       break;}
  3062.   case 306:
  3063. ! #line 1601 "c-parse.y"
  3064.   { stmt_count++;
  3065.             emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
  3066.             c_expand_return (yyvsp[-1].ttype); ;
  3067.       break;}
  3068.   case 307:
  3069. ! #line 1605 "c-parse.y"
  3070.   { stmt_count++;
  3071.             emit_line_note (yyvsp[-7].filename, yyvsp[-6].lineno);
  3072.             STRIP_NOPS (yyvsp[-2].ttype);
  3073. ***************
  3074. *** 2658,2664 ****
  3075.               error ("argument of `asm' is not a constant string"); ;
  3076.       break;}
  3077.   case 308:
  3078. ! #line 1608 "c-parse.y"
  3079.   { stmt_count++;
  3080.             emit_line_note (yyvsp[-9].filename, yyvsp[-8].lineno);
  3081.             c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
  3082. --- 2990,2996 ----
  3083.               error ("argument of `asm' is not a constant string"); ;
  3084.       break;}
  3085.   case 308:
  3086. ! #line 1616 "c-parse.y"
  3087.   { stmt_count++;
  3088.             emit_line_note (yyvsp[-9].filename, yyvsp[-8].lineno);
  3089.             c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
  3090. ***************
  3091. *** 2666,2672 ****
  3092.                        input_filename, lineno); ;
  3093.       break;}
  3094.   case 309:
  3095. ! #line 1615 "c-parse.y"
  3096.   { stmt_count++;
  3097.             emit_line_note (yyvsp[-11].filename, yyvsp[-10].lineno);
  3098.             c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
  3099. --- 2998,3004 ----
  3100.                        input_filename, lineno); ;
  3101.       break;}
  3102.   case 309:
  3103. ! #line 1623 "c-parse.y"
  3104.   { stmt_count++;
  3105.             emit_line_note (yyvsp[-11].filename, yyvsp[-10].lineno);
  3106.             c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
  3107. ***************
  3108. *** 2674,2680 ****
  3109.                        input_filename, lineno); ;
  3110.       break;}
  3111.   case 310:
  3112. ! #line 1623 "c-parse.y"
  3113.   { stmt_count++;
  3114.             emit_line_note (yyvsp[-13].filename, yyvsp[-12].lineno);
  3115.             c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype,
  3116. --- 3006,3012 ----
  3117.                        input_filename, lineno); ;
  3118.       break;}
  3119.   case 310:
  3120. ! #line 1631 "c-parse.y"
  3121.   { stmt_count++;
  3122.             emit_line_note (yyvsp[-13].filename, yyvsp[-12].lineno);
  3123.             c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype,
  3124. ***************
  3125. *** 2682,2688 ****
  3126.                        input_filename, lineno); ;
  3127.       break;}
  3128.   case 311:
  3129. ! #line 1629 "c-parse.y"
  3130.   { tree decl;
  3131.             stmt_count++;
  3132.             emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
  3133. --- 3014,3020 ----
  3134.                        input_filename, lineno); ;
  3135.       break;}
  3136.   case 311:
  3137. ! #line 1637 "c-parse.y"
  3138.   { tree decl;
  3139.             stmt_count++;
  3140.             emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
  3141. ***************
  3142. *** 2695,2707 ****
  3143.           ;
  3144.       break;}
  3145.   case 312:
  3146. ! #line 1640 "c-parse.y"
  3147.   { stmt_count++;
  3148.             emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
  3149.             expand_computed_goto (convert (ptr_type_node, yyvsp[-1].ttype)); ;
  3150.       break;}
  3151.   case 315:
  3152. ! #line 1653 "c-parse.y"
  3153.   {
  3154.           /* The value returned by this action is  */
  3155.           /*      1 if everything is OK */ 
  3156. --- 3027,3039 ----
  3157.           ;
  3158.       break;}
  3159.   case 312:
  3160. ! #line 1648 "c-parse.y"
  3161.   { stmt_count++;
  3162.             emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
  3163.             expand_computed_goto (convert (ptr_type_node, yyvsp[-1].ttype)); ;
  3164.       break;}
  3165.   case 315:
  3166. ! #line 1661 "c-parse.y"
  3167.   {
  3168.           /* The value returned by this action is  */
  3169.           /*      1 if everything is OK */ 
  3170. ***************
  3171. *** 2724,2737 ****
  3172.         ;
  3173.       break;}
  3174.   case 316:
  3175. ! #line 1674 "c-parse.y"
  3176.   {
  3177.           if (yyvsp[-1].itype)
  3178.             iterator_for_loop_end (yyvsp[-3].ttype);
  3179.         ;
  3180.       break;}
  3181.   case 317:
  3182. ! #line 1706 "c-parse.y"
  3183.   { register tree value = check_case_value (yyvsp[-1].ttype);
  3184.             register tree label
  3185.               = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
  3186. --- 3056,3069 ----
  3187.         ;
  3188.       break;}
  3189.   case 316:
  3190. ! #line 1682 "c-parse.y"
  3191.   {
  3192.           if (yyvsp[-1].itype)
  3193.             iterator_for_loop_end (yyvsp[-3].ttype);
  3194.         ;
  3195.       break;}
  3196.   case 317:
  3197. ! #line 1714 "c-parse.y"
  3198.   { register tree value = check_case_value (yyvsp[-1].ttype);
  3199.             register tree label
  3200.               = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
  3201. ***************
  3202. *** 2758,2764 ****
  3203.             position_after_white_space (); ;
  3204.       break;}
  3205.   case 318:
  3206. ! #line 1731 "c-parse.y"
  3207.   { register tree value1 = check_case_value (yyvsp[-3].ttype);
  3208.             register tree value2 = check_case_value (yyvsp[-1].ttype);
  3209.             register tree label
  3210. --- 3090,3096 ----
  3211.             position_after_white_space (); ;
  3212.       break;}
  3213.   case 318:
  3214. ! #line 1739 "c-parse.y"
  3215.   { register tree value1 = check_case_value (yyvsp[-3].ttype);
  3216.             register tree value2 = check_case_value (yyvsp[-1].ttype);
  3217.             register tree label
  3218. ***************
  3219. *** 2789,2795 ****
  3220.             position_after_white_space (); ;
  3221.       break;}
  3222.   case 319:
  3223. ! #line 1760 "c-parse.y"
  3224.   {
  3225.             tree duplicate;
  3226.             register tree label
  3227. --- 3121,3127 ----
  3228.             position_after_white_space (); ;
  3229.       break;}
  3230.   case 319:
  3231. ! #line 1768 "c-parse.y"
  3232.   {
  3233.             tree duplicate;
  3234.             register tree label
  3235. ***************
  3236. *** 2806,2812 ****
  3237.             position_after_white_space (); ;
  3238.       break;}
  3239.   case 320:
  3240. ! #line 1775 "c-parse.y"
  3241.   { tree label = define_label (input_filename, lineno, yyvsp[-1].ttype);
  3242.             stmt_count++;
  3243.             emit_nop ();
  3244. --- 3138,3144 ----
  3245.             position_after_white_space (); ;
  3246.       break;}
  3247.   case 320:
  3248. ! #line 1783 "c-parse.y"
  3249.   { tree label = define_label (input_filename, lineno, yyvsp[-1].ttype);
  3250.             stmt_count++;
  3251.             emit_nop ();
  3252. ***************
  3253. *** 2815,2866 ****
  3254.             position_after_white_space (); ;
  3255.       break;}
  3256.   case 321:
  3257. ! #line 1787 "c-parse.y"
  3258.   { emit_line_note (input_filename, lineno);
  3259.             yyval.ttype = NULL_TREE; ;
  3260.       break;}
  3261.   case 322:
  3262. ! #line 1790 "c-parse.y"
  3263.   { emit_line_note (input_filename, lineno); ;
  3264.       break;}
  3265.   case 323:
  3266. ! #line 1795 "c-parse.y"
  3267.   { yyval.ttype = NULL_TREE; ;
  3268.       break;}
  3269.   case 325:
  3270. ! #line 1802 "c-parse.y"
  3271.   { yyval.ttype = NULL_TREE; ;
  3272.       break;}
  3273.   case 328:
  3274. ! #line 1809 "c-parse.y"
  3275.   { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
  3276.       break;}
  3277.   case 329:
  3278. ! #line 1814 "c-parse.y"
  3279.   { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
  3280.       break;}
  3281.   case 330:
  3282. ! #line 1819 "c-parse.y"
  3283.   { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE); ;
  3284.       break;}
  3285.   case 331:
  3286. ! #line 1821 "c-parse.y"
  3287.   { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ;
  3288.       break;}
  3289.   case 332:
  3290. ! #line 1827 "c-parse.y"
  3291.   { pushlevel (0);
  3292.             clear_parm_order ();
  3293.             declare_parm_level (0); ;
  3294.       break;}
  3295.   case 333:
  3296. ! #line 1831 "c-parse.y"
  3297.   { yyval.ttype = yyvsp[0].ttype;
  3298.             parmlist_tags_warning ();
  3299.             poplevel (0, 0, 0); ;
  3300.       break;}
  3301.   case 335:
  3302. ! #line 1839 "c-parse.y"
  3303.   { tree parm;
  3304.             if (pedantic)
  3305.               pedwarn ("ANSI C forbids forward parameter declarations");
  3306. --- 3147,3198 ----
  3307.             position_after_white_space (); ;
  3308.       break;}
  3309.   case 321:
  3310. ! #line 1795 "c-parse.y"
  3311.   { emit_line_note (input_filename, lineno);
  3312.             yyval.ttype = NULL_TREE; ;
  3313.       break;}
  3314.   case 322:
  3315. ! #line 1798 "c-parse.y"
  3316.   { emit_line_note (input_filename, lineno); ;
  3317.       break;}
  3318.   case 323:
  3319. ! #line 1803 "c-parse.y"
  3320.   { yyval.ttype = NULL_TREE; ;
  3321.       break;}
  3322.   case 325:
  3323. ! #line 1810 "c-parse.y"
  3324.   { yyval.ttype = NULL_TREE; ;
  3325.       break;}
  3326.   case 328:
  3327. ! #line 1817 "c-parse.y"
  3328.   { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
  3329.       break;}
  3330.   case 329:
  3331. ! #line 1822 "c-parse.y"
  3332.   { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
  3333.       break;}
  3334.   case 330:
  3335. ! #line 1827 "c-parse.y"
  3336.   { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE); ;
  3337.       break;}
  3338.   case 331:
  3339. ! #line 1829 "c-parse.y"
  3340.   { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ;
  3341.       break;}
  3342.   case 332:
  3343. ! #line 1835 "c-parse.y"
  3344.   { pushlevel (0);
  3345.             clear_parm_order ();
  3346.             declare_parm_level (0); ;
  3347.       break;}
  3348.   case 333:
  3349. ! #line 1839 "c-parse.y"
  3350.   { yyval.ttype = yyvsp[0].ttype;
  3351.             parmlist_tags_warning ();
  3352.             poplevel (0, 0, 0); ;
  3353.       break;}
  3354.   case 335:
  3355. ! #line 1847 "c-parse.y"
  3356.   { tree parm;
  3357.             if (pedantic)
  3358.               pedwarn ("ANSI C forbids forward parameter declarations");
  3359. ***************
  3360. *** 2870,2943 ****
  3361.             clear_parm_order (); ;
  3362.       break;}
  3363.   case 336:
  3364. ! #line 1847 "c-parse.y"
  3365.   { yyval.ttype = yyvsp[0].ttype; ;
  3366.       break;}
  3367.   case 337:
  3368. ! #line 1849 "c-parse.y"
  3369.   { yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ;
  3370.       break;}
  3371.   case 338:
  3372. ! #line 1855 "c-parse.y"
  3373.   { yyval.ttype = get_parm_info (0); ;
  3374.       break;}
  3375.   case 339:
  3376. ! #line 1857 "c-parse.y"
  3377.   { yyval.ttype = get_parm_info (0);
  3378.             if (pedantic)
  3379.               pedwarn ("ANSI C requires a named argument before `...'");
  3380.           ;
  3381.       break;}
  3382.   case 340:
  3383. ! #line 1862 "c-parse.y"
  3384.   { yyval.ttype = get_parm_info (1); ;
  3385.       break;}
  3386.   case 341:
  3387. ! #line 1864 "c-parse.y"
  3388.   { yyval.ttype = get_parm_info (0); ;
  3389.       break;}
  3390.   case 342:
  3391. ! #line 1869 "c-parse.y"
  3392.   { push_parm_decl (yyvsp[0].ttype); ;
  3393.       break;}
  3394.   case 343:
  3395. ! #line 1871 "c-parse.y"
  3396.   { push_parm_decl (yyvsp[0].ttype); ;
  3397.       break;}
  3398.   case 344:
  3399. ! #line 1878 "c-parse.y"
  3400.   { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype)    ; ;
  3401.       break;}
  3402.   case 345:
  3403. ! #line 1880 "c-parse.y"
  3404.   { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype)    ; ;
  3405.       break;}
  3406.   case 346:
  3407. ! #line 1882 "c-parse.y"
  3408.   { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  3409.       break;}
  3410.   case 347:
  3411. ! #line 1884 "c-parse.y"
  3412.   { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype)    ; ;
  3413.       break;}
  3414.   case 348:
  3415. ! #line 1886 "c-parse.y"
  3416.   { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  3417.       break;}
  3418.   case 349:
  3419. ! #line 1893 "c-parse.y"
  3420.   { pushlevel (0);
  3421.             clear_parm_order ();
  3422.             declare_parm_level (1); ;
  3423.       break;}
  3424.   case 350:
  3425. ! #line 1897 "c-parse.y"
  3426.   { yyval.ttype = yyvsp[0].ttype;
  3427.             parmlist_tags_warning ();
  3428.             poplevel (0, 0, 0); ;
  3429.       break;}
  3430.   case 352:
  3431. ! #line 1905 "c-parse.y"
  3432.   { tree t;
  3433.             for (t = yyvsp[-1].ttype; t; t = TREE_CHAIN (t))
  3434.               if (TREE_VALUE (t) == NULL_TREE)
  3435. --- 3202,3275 ----
  3436.             clear_parm_order (); ;
  3437.       break;}
  3438.   case 336:
  3439. ! #line 1855 "c-parse.y"
  3440.   { yyval.ttype = yyvsp[0].ttype; ;
  3441.       break;}
  3442.   case 337:
  3443. ! #line 1857 "c-parse.y"
  3444.   { yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ;
  3445.       break;}
  3446.   case 338:
  3447. ! #line 1863 "c-parse.y"
  3448.   { yyval.ttype = get_parm_info (0); ;
  3449.       break;}
  3450.   case 339:
  3451. ! #line 1865 "c-parse.y"
  3452.   { yyval.ttype = get_parm_info (0);
  3453.             if (pedantic)
  3454.               pedwarn ("ANSI C requires a named argument before `...'");
  3455.           ;
  3456.       break;}
  3457.   case 340:
  3458. ! #line 1870 "c-parse.y"
  3459.   { yyval.ttype = get_parm_info (1); ;
  3460.       break;}
  3461.   case 341:
  3462. ! #line 1872 "c-parse.y"
  3463.   { yyval.ttype = get_parm_info (0); ;
  3464.       break;}
  3465.   case 342:
  3466. ! #line 1877 "c-parse.y"
  3467.   { push_parm_decl (yyvsp[0].ttype); ;
  3468.       break;}
  3469.   case 343:
  3470. ! #line 1879 "c-parse.y"
  3471.   { push_parm_decl (yyvsp[0].ttype); ;
  3472.       break;}
  3473.   case 344:
  3474. ! #line 1886 "c-parse.y"
  3475.   { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype)    ; ;
  3476.       break;}
  3477.   case 345:
  3478. ! #line 1888 "c-parse.y"
  3479.   { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype)    ; ;
  3480.       break;}
  3481.   case 346:
  3482. ! #line 1890 "c-parse.y"
  3483.   { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  3484.       break;}
  3485.   case 347:
  3486. ! #line 1892 "c-parse.y"
  3487.   { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype)    ; ;
  3488.       break;}
  3489.   case 348:
  3490. ! #line 1894 "c-parse.y"
  3491.   { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  3492.       break;}
  3493.   case 349:
  3494. ! #line 1901 "c-parse.y"
  3495.   { pushlevel (0);
  3496.             clear_parm_order ();
  3497.             declare_parm_level (1); ;
  3498.       break;}
  3499.   case 350:
  3500. ! #line 1905 "c-parse.y"
  3501.   { yyval.ttype = yyvsp[0].ttype;
  3502.             parmlist_tags_warning ();
  3503.             poplevel (0, 0, 0); ;
  3504.       break;}
  3505.   case 352:
  3506. ! #line 1913 "c-parse.y"
  3507.   { tree t;
  3508.             for (t = yyvsp[-1].ttype; t; t = TREE_CHAIN (t))
  3509.               if (TREE_VALUE (t) == NULL_TREE)
  3510. ***************
  3511. *** 2945,2968 ****
  3512.             yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ;
  3513.       break;}
  3514.   case 353:
  3515. ! #line 1915 "c-parse.y"
  3516.   { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
  3517.       break;}
  3518.   case 354:
  3519. ! #line 1917 "c-parse.y"
  3520.   { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
  3521.       break;}
  3522.   case 355:
  3523. ! #line 1923 "c-parse.y"
  3524.   { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
  3525.       break;}
  3526.   case 356:
  3527. ! #line 1925 "c-parse.y"
  3528.   { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
  3529.       break;}
  3530.   }
  3531.      /* the action file gets copied in in place of this dollarsign */
  3532. ! #line 327 "bison.simple"
  3533.   
  3534.     yyvsp -= yylen;
  3535.     yyssp -= yylen;
  3536. --- 3277,3300 ----
  3537.             yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ;
  3538.       break;}
  3539.   case 353:
  3540. ! #line 1923 "c-parse.y"
  3541.   { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
  3542.       break;}
  3543.   case 354:
  3544. ! #line 1925 "c-parse.y"
  3545.   { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
  3546.       break;}
  3547.   case 355:
  3548. ! #line 1931 "c-parse.y"
  3549.   { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
  3550.       break;}
  3551.   case 356:
  3552. ! #line 1933 "c-parse.y"
  3553.   { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
  3554.       break;}
  3555.   }
  3556.      /* the action file gets copied in in place of this dollarsign */
  3557. ! #line 465 "/gnu/lib/bison.simple"
  3558.   
  3559.     yyvsp -= yylen;
  3560.     yyssp -= yylen;
  3561. ***************
  3562. *** 3021,3029 ****
  3563.       /* If not already recovering from an error, report this error.  */
  3564.       {
  3565.         ++yynerrs;
  3566. !       yyerror("parse error");
  3567.       }
  3568.   
  3569.     if (yyerrstatus == 3)
  3570.       {
  3571.         /* if just tried and failed to reuse lookahead token after an error, discard it.  */
  3572. --- 3353,3406 ----
  3573.       /* If not already recovering from an error, report this error.  */
  3574.       {
  3575.         ++yynerrs;
  3576. ! #ifdef YYERROR_VERBOSE
  3577. !       yyn = yypact[yystate];
  3578. !       if (yyn > YYFLAG && yyn < YYLAST)
  3579. !     {
  3580. !       int size = 0;
  3581. !       char *msg;
  3582. !       int x, count;
  3583. !       count = 0;
  3584. !       /* Start X at -yyn if nec to avoid negative indexes in yycheck.  */
  3585. !       for (x = (yyn < 0 ? -yyn : 0);
  3586. !            x < (sizeof(yytname) / sizeof(char *)); x++)
  3587. !         if (yycheck[x + yyn] == x)
  3588. !           size += strlen(yytname[x]) + 15, count++;
  3589. !       msg = (char *) malloc(size + 15);
  3590. !       if (msg != 0)
  3591. !         {
  3592. !           strcpy(msg, "parse error");
  3593. !           if (count < 5)
  3594. !         {
  3595. !           count = 0;
  3596. !           for (x = (yyn < 0 ? -yyn : 0);
  3597. !                x < (sizeof(yytname) / sizeof(char *)); x++)
  3598. !             if (yycheck[x + yyn] == x)
  3599. !               {
  3600. !             strcat(msg, count == 0 ? ", expecting `" : " or `");
  3601. !             strcat(msg, yytname[x]);
  3602. !             strcat(msg, "'");
  3603. !             count++;
  3604. !               }
  3605. !         }
  3606. !           yyerror(msg);
  3607. !           free(msg);
  3608. !         }
  3609. !       else
  3610. !         yyerror ("parse error; also virtual memory exceeded");
  3611. !     }
  3612. !       else
  3613. ! #endif /* YYERROR_VERBOSE */
  3614. !     yyerror("parse error");
  3615.       }
  3616.   
  3617. +   goto yyerrlab1;
  3618. + yyerrlab1:   /* here on error raised explicitly by an action */
  3619.     if (yyerrstatus == 3)
  3620.       {
  3621.         /* if just tried and failed to reuse lookahead token after an error, discard it.  */
  3622. ***************
  3623. *** 3113,3117 ****
  3624.     yystate = yyn;
  3625.     goto yynewstate;
  3626.   }
  3627. ! #line 1928 "c-parse.y"
  3628.   
  3629. --- 3490,3494 ----
  3630.     yystate = yyn;
  3631.     goto yynewstate;
  3632.   }
  3633. ! #line 1936 "c-parse.y"
  3634.   
  3635. diff -rc --new-file /src/baseline/gcc-2.5.8/c-parse.y gcc-2.5.8/c-parse.y
  3636. *** /src/baseline/gcc-2.5.8/c-parse.y    Tue Nov 23 19:43:28 1993
  3637. --- gcc-2.5.8/c-parse.y    Tue Feb 22 11:22:26 1994
  3638. ***************
  3639. *** 898,905 ****
  3640.   
  3641.   attrib
  3642.       : IDENTIFIER
  3643. !     { if (strcmp (IDENTIFIER_POINTER ($1), "packed")
  3644.             && strcmp (IDENTIFIER_POINTER ($1), "noreturn"))
  3645.           warning ("`%s' attribute directive ignored",
  3646.                IDENTIFIER_POINTER ($1));
  3647.         $$ = $1; }
  3648. --- 898,913 ----
  3649.   
  3650.   attrib
  3651.       : IDENTIFIER
  3652. !     {
  3653. ! #ifdef HANDLE_ATTRIBUTE0
  3654. !       /* give the function a chance to validate further attributes */
  3655. !       if (HANDLE_ATTRIBUTE0 (IDENTIFIER_POINTER ($1)) ||
  3656. !           (strcmp (IDENTIFIER_POINTER ($1), "packed")
  3657. !           && strcmp (IDENTIFIER_POINTER ($1), "noreturn")))
  3658. ! #else
  3659. !       if (strcmp (IDENTIFIER_POINTER ($1), "packed")
  3660.             && strcmp (IDENTIFIER_POINTER ($1), "noreturn"))
  3661. + #endif
  3662.           warning ("`%s' attribute directive ignored",
  3663.                IDENTIFIER_POINTER ($1));
  3664.         $$ = $1; }
  3665. diff -rc --new-file /src/baseline/gcc-2.5.8/calls.c gcc-2.5.8/calls.c
  3666. *** /src/baseline/gcc-2.5.8/calls.c    Thu Dec  2 08:21:43 1993
  3667. --- gcc-2.5.8/calls.c    Tue Feb 22 11:22:32 1994
  3668. ***************
  3669. *** 2107,2112 ****
  3670. --- 2107,2120 ----
  3671.   
  3672.     argvec = (struct arg *) alloca (nargs * sizeof (struct arg));
  3673.   
  3674. + #if defined (__amigados__)
  3675. + /* how would you do this RIGHT ?? fake a DECL node? dunno... */
  3676. + #ifdef ENCODE_SECTION_INFO
  3677. +   /* mark it as a function (to be in the text section that is) */
  3678. +   SYMBOL_REF_FLAG (fun) = 1;
  3679. + #endif
  3680. + #endif
  3681.     INIT_CUMULATIVE_ARGS (args_so_far, NULL_TREE, fun);
  3682.   
  3683.     args_size.constant = 0;
  3684. diff -rc --new-file /src/baseline/gcc-2.5.8/cccp.c gcc-2.5.8/cccp.c
  3685. *** /src/baseline/gcc-2.5.8/cccp.c    Sat Dec 11 09:49:38 1993
  3686. --- gcc-2.5.8/cccp.c    Tue Feb 22 11:27:02 1994
  3687. ***************
  3688. *** 39,50 ****
  3689.   #include "config.h"
  3690.   #endif /* not EMACS */
  3691.   
  3692.   #ifndef STANDARD_INCLUDE_DIR
  3693. ! #define STANDARD_INCLUDE_DIR "/usr/include"
  3694.   #endif
  3695.   
  3696.   #ifndef LOCAL_INCLUDE_DIR
  3697. ! #define LOCAL_INCLUDE_DIR "/usr/local/include"
  3698.   #endif
  3699.   
  3700.   #if 0 /* We can't get ptrdiff_t, so I arranged not to need PTR_INT_TYPE.  */
  3701. --- 39,66 ----
  3702.   #include "config.h"
  3703.   #endif /* not EMACS */
  3704.   
  3705. + #ifdef amigados
  3706. + /* Since cpp uses alloca to store all its read files, this is quite deadly
  3707. +    on a system with non-automatic stackgrowth like amigados, so we better
  3708. +    turn it off now.  Normally alloca is #defined to __builtin_alloca, so
  3709. +    undefining it causes an external alloca to be used.
  3710. +    Note that it's not wise to generally inhibit __builtin_alloca, since
  3711. +    using the generic emulator entitels a serious (!) speed penalty, and
  3712. +    it's bad enough that we have to live with it in cccp, don't make cc1
  3713. +    unbearably slow as well... */
  3714. + #undef alloca
  3715. + static int amigados_abs_filename ();
  3716. + #endif
  3717.   #ifndef STANDARD_INCLUDE_DIR
  3718. ! #define STANDARD_INCLUDE_DIR "/gnu/include"
  3719.   #endif
  3720.   
  3721.   #ifndef LOCAL_INCLUDE_DIR
  3722. ! #define LOCAL_INCLUDE_DIR "/local/include"
  3723.   #endif
  3724.   
  3725.   #if 0 /* We can't get ptrdiff_t, so I arranged not to need PTR_INT_TYPE.  */
  3726. ***************
  3727. *** 1874,1884 ****
  3728. --- 1890,1904 ----
  3729.         char *p = in_fname;
  3730.         char *p1 = p;
  3731.         /* Discard all directory prefixes from P.  */
  3732. + #ifdef FILE_NAME_NONDIRECTORY
  3733. +       p = FILE_NAME_NONDIRECTORY (p);
  3734. + #else
  3735.         while (*p1) {
  3736.       if (*p1 == '/')
  3737.         p = p1 + 1;
  3738.       p1++;
  3739.         }
  3740. + #endif
  3741.         /* Output P, but remove known suffixes.  */
  3742.         len = strlen (p);
  3743.         if (p[len - 2] == '.' && p[len - 1] == 'c')
  3744. ***************
  3745. *** 3636,3642 ****
  3746.   
  3747.         if (!no_output && already_output == 0
  3748.         && (kt->pass_thru
  3749. !           || (kt->type == T_DEFINE
  3750.             && (dump_macros == dump_names
  3751.                 || dump_macros == dump_definitions)))) {
  3752.           int len;
  3753. --- 3656,3662 ----
  3754.   
  3755.         if (!no_output && already_output == 0
  3756.         && (kt->pass_thru
  3757. !           || ((kt->type == T_DEFINE || kt->type == T_UNDEF)
  3758.             && (dump_macros == dump_names
  3759.                 || dump_macros == dump_definitions)))) {
  3760.           int len;
  3761. ***************
  3762. *** 3982,3987 ****
  3763. --- 4002,4019 ----
  3764.           search_start = dsp;
  3765.   #ifndef VMS
  3766.           ep = rindex (nam, '/');
  3767. + #ifdef amigados
  3768. +         /* amigados uses unix-style directory-filename separation, but
  3769. +            has VMS-style logicals as well */
  3770. +         if (ep == NULL) 
  3771. +           {
  3772. +         ep = rindex (nam, ':');
  3773. +         /* a ':' is part of the directory name, a '/' isn't ! */
  3774. +             if (ep != NULL) ep++;
  3775. +           }
  3776. + #endif /* amigados */
  3777.   #else                /* VMS */
  3778.           ep = rindex (nam, ']');
  3779.           if (ep == NULL) ep = rindex (nam, '>');
  3780. ***************
  3781. *** 4061,4067 ****
  3782. --- 4093,4103 ----
  3783.   
  3784.     /* If specified file name is absolute, just open it.  */
  3785.   
  3786. + #ifndef amigados
  3787.     if (*fbeg == '/') {
  3788. + #else
  3789. +   if (amigados_abs_filename (fbeg, flen)) {
  3790. + #endif
  3791.       strncpy (fname, fbeg, flen);
  3792.       fname[flen] = 0;
  3793.       if (redundant_include_p (fname))
  3794. ***************
  3795. *** 4084,4089 ****
  3796. --- 4120,4129 ----
  3797.       if (searchptr->fname[0] == 0)
  3798.         continue;
  3799.       strcpy (fname, searchptr->fname);
  3800. + #ifdef amigados
  3801. +     if (fname[strlen (fname) - 1] != ':')
  3802. + #endif
  3803.       strcat (fname, "/");
  3804.       fname[strlen (fname) + flen] = 0;
  3805.         } else {
  3806. ***************
  3807. *** 9017,9025 ****
  3808.   perror_with_name (name)
  3809.        char *name;
  3810.   {
  3811.     fprintf (stderr, "%s: ", progname);
  3812. !   if (errno < sys_nerr)
  3813. !     fprintf (stderr, "%s: %s\n", name, sys_errlist[errno]);
  3814.     else
  3815.       fprintf (stderr, "%s: undocumented I/O error\n", name);
  3816.     errors++;
  3817. --- 9057,9067 ----
  3818.   perror_with_name (name)
  3819.        char *name;
  3820.   {
  3821. +   int error = errno;
  3822.     fprintf (stderr, "%s: ", progname);
  3823. !   if (error < sys_nerr)
  3824. !     fprintf (stderr, "%s: %s\n", name, sys_errlist[error]);
  3825.     else
  3826.       fprintf (stderr, "%s: undocumented I/O error\n", name);
  3827.     errors++;
  3828. ***************
  3829. *** 9416,9418 ****
  3830. --- 9458,9484 ----
  3831.     return dst;
  3832.   }
  3833.   #endif /* VMS */
  3834. + #ifdef amigados
  3835. + /* This function returns whether the LEN characters long filename FNAME 
  3836. +    is an absolute path specification. */
  3837. + static int
  3838. + amigados_abs_filename (fname, len)
  3839. +      char *fname;
  3840. +      int len;
  3841. + {
  3842. +   /* we're using ixemul.library, which treats `/foo' as `foo:', so 
  3843. +      fname[0] is to be considered absolute as well */
  3844. +   if (fname[0] == '/')
  3845. +     return 1;
  3846. +   /* else do an index() on fname, but one which is limited to len characters */
  3847. +   while (*fname && *fname != ':' && len) 
  3848. +     fname++, len--;
  3849. +   return *fname == ':';
  3850. + }
  3851. + #endif /* amigados */
  3852. diff -rc --new-file /src/baseline/gcc-2.5.8/config/m68k/amigados.c gcc-2.5.8/config/m68k/amigados.c
  3853. *** /src/baseline/gcc-2.5.8/config/m68k/amigados.c    Thu Jan  1 00:00:00 1970
  3854. --- gcc-2.5.8/config/m68k/amigados.c    Tue Feb 22 11:22:43 1994
  3855. ***************
  3856. *** 0 ****
  3857. --- 1,158 ----
  3858. + /* Definitions of target machine for GNU compiler.  amiga 68000/68020 version.
  3859. +    Copyright (C) 1992 Free Software Foundation, Inc.
  3860. +    Contributed by Markus M. Wild (wild@amiga.physik.unizh.ch).
  3861. + This file is part of GNU CC.
  3862. + GNU CC is free software; you can redistribute it and/or modify
  3863. + it under the terms of the GNU General Public License as published by
  3864. + the Free Software Foundation; either version 2, or (at your option)
  3865. + any later version.
  3866. + GNU CC is distributed in the hope that it will be useful,
  3867. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  3868. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  3869. + GNU General Public License for more details.
  3870. + You should have received a copy of the GNU General Public License
  3871. + along with GNU CC; see the file COPYING.  If not, write to
  3872. + the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
  3873. + #include "m68k/m68k.c"
  3874. + /* Does operand (which is a symbolic_operand) live in text space? If
  3875. +    so SYMBOL_REF_FLAG, which is set by ENCODE_SECTION_INFO, will be true.
  3876. +    This function is used in base relative code generation. */
  3877. + int
  3878. + read_only_operand (operand)
  3879. +      rtx operand;
  3880. + {
  3881. +   if (GET_CODE (operand) == CONST)
  3882. +     operand = XEXP (XEXP (operand, 0), 0);
  3883. +   if (GET_CODE (operand) == SYMBOL_REF)
  3884. +     return SYMBOL_REF_FLAG (operand) || CONSTANT_POOL_ADDRESS_P (operand);
  3885. +   return 1;
  3886. + }
  3887. + /* the rest of the file is to implement AmigaDOS specific keywords some day.
  3888. +    The approach used so far used __attribute__ for this, but this required
  3889. +    changes to c-parse.y as well as if we'd use the common keywords used
  3890. +    on commercial AmigaDOS C-compilers as well. So in the future I'll probably
  3891. +    switch to __saveds and __interrupt keywords as well.
  3892. +    The rest of this file is currently ignored, because it's no longer
  3893. +    working with the current gcc version. */
  3894. + #if not_yet_working
  3895. + #include "tree.h"
  3896. + struct attribute {
  3897. +   tree ident;
  3898. +   int  saveds : 1,
  3899. +        interrupt : 1;
  3900. + };
  3901. + static struct attribute *a_tab = 0;
  3902. + static int a_index, a_size;
  3903. + void
  3904. + add_attr_entry (attr)
  3905. +     struct attribute *attr;
  3906. + {
  3907. +   if (! a_tab)
  3908. +     {
  3909. +       a_size = 10;
  3910. +       a_index = 0;
  3911. +       a_tab  = (struct attribute *) xmalloc (a_size * sizeof (struct attribute));
  3912. +     }
  3913. +   if (a_index == a_size)
  3914. +     {
  3915. +       a_size <<= 1;
  3916. +       a_tab = (struct attribute *) xrealloc (a_tab, a_size * sizeof (struct attribute));
  3917. +     }
  3918. +   a_tab[a_index++] = *attr;
  3919. + }
  3920. + void
  3921. + attr_do_saveds (function_ident)
  3922. +       tree function_ident;
  3923. + {
  3924. +   struct attribute attr, *a;
  3925. +   int i;
  3926. +   for (i = 0, a = a_tab; i < a_index; i++, a++)
  3927. +     if (a->ident == function_ident)
  3928. +       {
  3929. +     a->saveds = 1;
  3930. +     return;
  3931. +       }
  3932. +   /* create a new entry for this function */
  3933. +   attr.ident     = function_ident;
  3934. +   attr.saveds    = 1;
  3935. +   attr.interrupt = 0;
  3936. +   add_attr_entry (&attr);
  3937. + }
  3938. + void
  3939. + attr_do_interrupt (function_ident)
  3940. +     tree function_ident;
  3941. + {
  3942. +   struct attribute attr, *a;
  3943. +   int i;
  3944. +   for (i = 0, a = a_tab; i < a_index; i++, a++)
  3945. +     if (a->ident == function_ident)
  3946. +       {
  3947. +     /* __interrupt implies __saveds */
  3948. +     a->saveds    = 1;
  3949. +     a->interrupt = 1;
  3950. +     return;
  3951. +       }
  3952. +   /* create a new entry for this function */
  3953. +   attr.ident     = function_ident;
  3954. +   attr.saveds     = 1;
  3955. +   attr.interrupt = 1;
  3956. +   add_attr_entry (&attr);
  3957. + }
  3958. + int
  3959. + attr_does_saveds (function_name)
  3960. +     char *function_name;
  3961. + {
  3962. +   tree ident = get_identifier (function_name);
  3963. +   struct attribute *attr;
  3964. +   int i;
  3965. +   
  3966. +   for (i = 0, attr = a_tab; i < a_index; i++, attr++)
  3967. +     if (attr->ident == ident)
  3968. +       return attr->saveds;
  3969. +   return 0;
  3970. + }
  3971. + int
  3972. + attr_does_interrupt (function_name)
  3973. +     char *function_name;
  3974. + {
  3975. +   tree ident = get_identifier (function_name);
  3976. +   struct attribute *attr;
  3977. +   int i;
  3978. +   
  3979. +   for (i = 0, attr = a_tab; i < a_index; i++, attr++)
  3980. +     if (attr->ident == ident)
  3981. +       return attr->interrupt;
  3982. +   return 0;
  3983. + }
  3984. + #endif
  3985. diff -rc --new-file /src/baseline/gcc-2.5.8/config/m68k/amigados.h gcc-2.5.8/config/m68k/amigados.h
  3986. *** /src/baseline/gcc-2.5.8/config/m68k/amigados.h    Thu Jan  1 00:00:00 1970
  3987. --- gcc-2.5.8/config/m68k/amigados.h    Sat Jul  9 08:48:04 1994
  3988. ***************
  3989. *** 0 ****
  3990. --- 1,408 ----
  3991. + /* Definitions of target machine for GNU compiler.  amiga 68000/68020 version.
  3992. +    Copyright (C) 1992 Free Software Foundation, Inc.
  3993. +    Contributed by Markus M. Wild (wild@amiga.physik.unizh.ch).
  3994. + This file is part of GNU CC.
  3995. + GNU CC is free software; you can redistribute it and/or modify
  3996. + it under the terms of the GNU General Public License as published by
  3997. + the Free Software Foundation; either version 2, or (at your option)
  3998. + any later version.
  3999. + GNU CC is distributed in the hope that it will be useful,
  4000. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  4001. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  4002. + GNU General Public License for more details.
  4003. + You should have received a copy of the GNU General Public License
  4004. + along with GNU CC; see the file COPYING.  If not, write to
  4005. + the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
  4006. + #include "m68k/m68k.h"
  4007. + /* See m68k.h for bits in TARGET_DEFAULT.
  4008. +    0 means 68000, no hardware fpu (68881/68882/68040).
  4009. +    7 means 68020 (or higher) with hardware fpu.  */
  4010. + #ifndef TARGET_DEFAULT
  4011. + #define TARGET_DEFAULT 0
  4012. + #endif
  4013. + /* Define __HAVE_68881__ in preprocessor according to the -m flags.
  4014. +    This will control the use of inline 68881 insns in certain macros.
  4015. +    Also inform the program which CPU this is for.  */
  4016. + #if TARGET_DEFAULT & 02
  4017. + /* -m68881 is the default */
  4018. + #define CPP_SPEC \
  4019. + "%{!msoft-float:-D__HAVE_68881__ }\
  4020. + %{!ansi:%{m68000:-Dmc68010}%{mc68000:-Dmc68010}%{!mc68000:%{!m68000:-Dmc68020}}}"
  4021. + #else
  4022. + /* -msoft-float is the default, assume -mc68000 as well */
  4023. + #define CPP_SPEC \
  4024. + "%{m68881:-D__HAVE_68881__ }\
  4025. + %{!ansi:%{m68020:-Dmc68020}%{mc68020:-Dmc68020}%{!mc68020:%{!m68020:-Dmc68010}}}"
  4026. + /* Don't try using XFmode since we don't have appropriate runtime software
  4027. +    support.  */
  4028. + #undef LONG_DOUBLE_TYPE_SIZE
  4029. + #define LONG_DOUBLE_TYPE_SIZE 64
  4030. + #endif
  4031. + /* -m68000 requires special flags to the assembler.  */
  4032. + #if TARGET_DEFAULT & 01
  4033. + #define ASM_SPEC \
  4034. +  "%{m68000:-mc68010}%{mc68000:-mc68010}%{!mc68000:%{!m68000:-mc68020}} %{msmall-code:-l} "
  4035. + #else
  4036. + #define ASM_SPEC \
  4037. +  "%{m68020:-mc68020}%{mc68020:-mc68020}%{!mc68020:%{!m68020:-mc68010}} %{msmall-code:-l} "
  4038. + #endif
  4039. + /* amiga/amigados are the new "standard" defines for the Amiga, MCH_AMIGA
  4040. +  * was used before and is included for compatibility reasons */
  4041. + #define CPP_PREDEFINES "-Dmc68000 -Damiga -Damigados -DMCH_AMIGA -DAMIGA"
  4042. + /* Choose the right startup file, depending on whether we use base relative
  4043. +    code, base relative code with automatic relocation (-resident), or plain
  4044. +    crt0.o. 
  4045. +   
  4046. +    Profiling is currently only available for plain startup.
  4047. +    mcrt0.o does not (yet) exist. */
  4048. + #define STARTFILE_SPEC \
  4049. +   "%{resident:rcrt0.o%s}%{!resident:%{!fbaserel:%{pg:gcrt0.o%s}%{!pg:%{p:mcrt0.o%s}%{!p:crt0.o%s}}}%{fbaserel:%{pg:bgcrt0.o%s}%{!pg:%{p:bmcrt0.o%s}%{!p:bcrt0.o%s}}}}"
  4050. + /* Automatically search libamiga.a for AmigaDOS specific functions.  Note
  4051. +    that we first search the standard C library to resolve as much as
  4052. +    possible from there, since it has names that are duplicated in libamiga.a
  4053. +    which we *don't* want from there.  Then search the standard C library
  4054. +    again to resolve any references that libamiga.a might have generated.
  4055. +    This may only be a temporary solution since it might be better to simply
  4056. +    remove the things from libamiga.a that should be pulled in from libc.a
  4057. +    instead, which would eliminate the first reference to libc.a. */
  4058. + #define LIB_SPEC "%{!p:%{!pg:-lc -lamiga -lc}}%{p:-lc_p -lamiga -lc_p}%{pg:-lc_p -lamiga -lc_p}"
  4059. + /* if debugging, tell the linker to output amiga-hunk symbols *and* a BSD
  4060. +    compatible debug hunk (which will probably change in the future, it's not
  4061. +    tremendously useful in its current state). */
  4062. + #define LINK_SPEC "%{g:-amiga-debug-hunk} %{fbaserel:-databss-together} %{resident:-databss-together -datadata-reloc -flavor libb} "
  4063. + #define CC1_SPEC "%{resident:-fbaserel} "
  4064. + #define CC1PLUS_SPEC "%{resident:-fbaserel} "
  4065. + /* Omit frame pointer at high optimization levels. (This doesn't hurt, since
  4066. +    GDB doesn't work under AmigaDOS at the moment anyway..) */
  4067. +   
  4068. + #define OPTIMIZATION_OPTIONS(OPTIMIZE) \
  4069. + {                                  \
  4070. +   if (OPTIMIZE >= 2)                         \
  4071. +     flag_omit_frame_pointer = 1;                \
  4072. + }
  4073. + /* provide a dummy entry for the small-code switch. This is currently only
  4074. +    needed by the assembler (explanations: m68k.h), but will be used by cc1
  4075. +    to output 16bit pc-relative code later. */
  4076. + #undef TARGET_SWITCHES
  4077. + #define TARGET_SWITCHES  \
  4078. +   { { "68020", 5},                \
  4079. +     { "c68020", 5},                \
  4080. +     { "68881", 2},                \
  4081. +     { "bitfield", 4},                \
  4082. +     { "68000", -5},                \
  4083. +     { "c68000", -5},                \
  4084. +     { "soft-float", -0102},            \
  4085. +     { "nobitfield", -4},            \
  4086. +     { "rtd", 8},                \
  4087. +     { "nortd", -8},                \
  4088. +     { "short", 040},                \
  4089. +     { "noshort", -040},                \
  4090. +     { "fpa", 0100},                \
  4091. +     { "nofpa", -0100},                \
  4092. +     { "sky", 0200},                \
  4093. +     { "nosky", -0200},                \
  4094. +     { "68040", 0407},                \
  4095. +     { "68030", -01400},                \
  4096. +     { "68030", 7},                \
  4097. +     { "68040-only", 01000},            \
  4098. +     { "small-code", 0 },            \
  4099. +     { "", TARGET_DEFAULT}}
  4100. + /* Every structure or union's size must be a multiple of 2 bytes.  */
  4101. + #define STRUCTURE_SIZE_BOUNDARY 16
  4102. + /* This is (almost;-)) BSD, so it wants DBX format.  */
  4103. + #define DBX_DEBUGGING_INFO
  4104. + /* Allow folding division by zero.  */
  4105. + #define REAL_INFINITY
  4106. + #if 0    /* This apparently is no longer necessary? */
  4107. + /* This is how to output an assembler line defining a `double' constant.  */
  4108. + #undef ASM_OUTPUT_DOUBLE
  4109. + #define ASM_OUTPUT_DOUBLE(FILE,VALUE)                    \
  4110. +   {                                    \
  4111. +     if (REAL_VALUE_ISINF (VALUE))                    \
  4112. +       fprintf (FILE, "\t.double 0r%s99e999\n", (VALUE) > 0 ? "" : "-");    \
  4113. +     else if (isnan (VALUE))                        \
  4114. +       {                                    \
  4115. +     union { double d; long l[2];} t;                \
  4116. +     t.d = (VALUE);                            \
  4117. +     fprintf (FILE, "\t.long 0x%lx\n\t.long 0x%lx\n", t.l[0], t.l[1]); \
  4118. +       }                                    \
  4119. +     else                                \
  4120. +       fprintf (FILE, "\t.double 0r%.17g\n", VALUE);            \
  4121. +   }
  4122. + /* This is how to output an assembler line defining a `float' constant.  */
  4123. + #undef ASM_OUTPUT_FLOAT
  4124. + #define ASM_OUTPUT_FLOAT(FILE,VALUE)                    \
  4125. +   {                                    \
  4126. +     if (REAL_VALUE_ISINF (VALUE))                    \
  4127. +       fprintf (FILE, "\t.single 0r%s99e999\n", (VALUE) > 0 ? "" : "-");    \
  4128. +     else if (isnan (VALUE))                        \
  4129. +       {                                    \
  4130. +     union { float f; long l;} t;                    \
  4131. +     t.f = (VALUE);                            \
  4132. +     fprintf (FILE, "\t.long 0x%lx\n", t.l);                \
  4133. +       }                                    \
  4134. +     else                                \
  4135. +       fprintf (FILE, "\t.single 0r%.9g\n", VALUE);            \
  4136. +   }
  4137. + /* This is how to output an assembler lines defining floating operands.
  4138. +    There's no way to output a NaN's fraction, so we lose it.  */
  4139. +   
  4140. + #undef ASM_OUTPUT_FLOAT_OPERAND
  4141. + #define ASM_OUTPUT_FLOAT_OPERAND(CODE,FILE,VALUE)                \
  4142. +  do {                                \
  4143. +       if (CODE == 'f')                        \
  4144. +         {                            \
  4145. +           (REAL_VALUE_ISINF ((VALUE))                        \
  4146. +            ? asm_fprintf (FILE, "%I0r%s99e999", ((VALUE) > 0 ? "" : "-")) \
  4147. +            : (VALUE) == -0.0                            \
  4148. +            ? asm_fprintf (FILE, "%I0r-0.0")                    \
  4149. +            : asm_fprintf (FILE, "%I0r%.9g", (VALUE))) \
  4150. +         } else {                                        \
  4151. +           long l;                        \
  4152. +           REAL_VALUE_TO_TARGET_SINGLE (VALUE, l);        \
  4153. +           if (sizeof (int) == sizeof (long))            \
  4154. +             asm_fprintf ((FILE), "%I0x%x", l);            \
  4155. +           else                            \
  4156. +             asm_fprintf ((FILE), "%I0x%lx", l);            \
  4157. +         }                            \
  4158. +      } while (0)
  4159. + #undef ASM_OUTPUT_DOUBLE_OPERAND
  4160. + #define ASM_OUTPUT_DOUBLE_OPERAND(FILE,VALUE)                \
  4161. +   (REAL_VALUE_ISINF ((VALUE))                        \
  4162. +    ? asm_fprintf (FILE, "%I0r%s99e999", ((VALUE) > 0 ? "" : "-")) \
  4163. +    : (VALUE) == -0.0                            \
  4164. +    ? asm_fprintf (FILE, "%I0r-0.0")                    \
  4165. +    : asm_fprintf (FILE, "%I0r%.17g", (VALUE)))
  4166. + #endif    /* 0 */
  4167. + /* use A5 as framepointer instead of A6, this makes A6 available as a
  4168. +    general purpose register, and can thus be used without problems in
  4169. +    direct library calls. */
  4170. + #undef FRAME_POINTER_REGNUM
  4171. + #define FRAME_POINTER_REGNUM 13
  4172. + #undef ARG_POINTER_REGNUM
  4173. + #define ARG_POINTER_REGNUM 13
  4174. + /* we use A4 for this, not A5, which is the framepointer */
  4175. + #undef PIC_OFFSET_TABLE_REGNUM
  4176. + #define PIC_OFFSET_TABLE_REGNUM 12
  4177. + /* setup a default shell return value for those (gazillion..) programs that
  4178. +    (inspite of ANSI-C) declare main() to be void (or even VOID...) and thus
  4179. +    cause the shell to randomly caugh upon executing such programs (contrary
  4180. +    to Unix, AmigaDOS scripts are terminated with an error if a program returns
  4181. +    with an error code above the `error' or even `failure' level
  4182. +    (which is configurable with the FAILAT command) */
  4183. + #define DEFAULT_MAIN_RETURN c_expand_return (integer_zero_node)
  4184. + /* we do have an ansi-compliant c-library ;-) */
  4185. + #define HAVE_VPRINTF
  4186. + #define HAVE_VFPRINTF
  4187. + #define HAVE_PUTENV
  4188. + #define HAVE_STRERROR
  4189. + #define HAVE_ATEXIT
  4190. + /* given that symbolic_operand(X), return TRUE if no special
  4191. +    base relative relocation is necessary */
  4192. + #define LEGITIMATE_BASEREL_OPERAND_P(X) \
  4193. +   (flag_pic >= 3 && read_only_operand (X))
  4194. + #undef LEGITIMATE_PIC_OPERAND_P
  4195. + #define LEGITIMATE_PIC_OPERAND_P(X) \
  4196. +   (! symbolic_operand (X, VOIDmode) || LEGITIMATE_BASEREL_OPERAND_P (X))
  4197. + /* Define this macro if references to a symbol must be treated
  4198. +    differently depending on something about the variable or
  4199. +    function named by the symbol (such as what section it is in).
  4200. +    The macro definition, if any, is executed immediately after the
  4201. +    rtl for DECL or other node is created.
  4202. +    The value of the rtl will be a `mem' whose address is a
  4203. +    `symbol_ref'.
  4204. +    The usual thing for this macro to do is to a flag in the
  4205. +    `symbol_ref' (such as `SYMBOL_REF_FLAG') or to store a modified
  4206. +    name string in the `symbol_ref' (if one bit is not enough
  4207. +    information).
  4208. +    On the Amiga we use this to indicate if a symbol is in text or
  4209. +    data space.  */
  4210. + #define ENCODE_SECTION_INFO(DECL)\
  4211. + do                                    \
  4212. +   {                                    \
  4213. +     if (TREE_CODE (DECL) == FUNCTION_DECL)                \
  4214. +       SYMBOL_REF_FLAG (XEXP (DECL_RTL (DECL), 0)) = 1;            \
  4215. +     else                                \
  4216. +       {                                    \
  4217. +     rtx rtl = (TREE_CODE_CLASS (TREE_CODE (DECL)) != 'd'        \
  4218. +            ? TREE_CST_RTL (DECL) : DECL_RTL (DECL));        \
  4219. +     if (RTX_UNCHANGING_P (rtl) && !MEM_VOLATILE_P (rtl))        \
  4220. +       SYMBOL_REF_FLAG (XEXP (rtl, 0)) = 1;                \
  4221. +       }                                    \
  4222. +   }                                    \
  4223. + while (0)
  4224. + #undef SELECT_RTX_SECTION
  4225. + #define SELECT_RTX_SECTION(MODE, X) readonly_data_section ();
  4226. + /* according to varasm.c, RELOC referrs *only* to whether constants (!)
  4227. +    are addressed by address. This doesn't matter in baserelative code,
  4228. +    so we allow (inspite of flag_pic) readonly_data_section() in that
  4229. +    case */
  4230. + #undef SELECT_SECTION
  4231. + #define SELECT_SECTION(DECL, RELOC)                    \
  4232. + {                                    \
  4233. +   if (TREE_CODE (DECL) == STRING_CST)                    \
  4234. +     {                                    \
  4235. +       if (! flag_writable_strings)                    \
  4236. +     readonly_data_section ();                    \
  4237. +       else                                \
  4238. +     data_section ();                        \
  4239. +     }                                    \
  4240. +   else if (TREE_CODE (DECL) == VAR_DECL)                \
  4241. +     {                                    \
  4242. +       if ((flag_pic && flag_pic < 3 && RELOC)                \
  4243. +       || !TREE_READONLY (DECL) || TREE_SIDE_EFFECTS (DECL))        \
  4244. +     data_section ();                        \
  4245. +       else                                \
  4246. +     readonly_data_section ();                    \
  4247. +     }                                    \
  4248. +   else                                    \
  4249. +     readonly_data_section ();                        \
  4250. + }
  4251. + #if not_yet_working
  4252. + /* starting support for amiga specific keywords
  4253. +  * --------------------------------------------
  4254. +  */
  4255. + /* validate attributes that don't take a parameter. Currently we support
  4256. +  * __attribute__ (saveds) and __attribute__ (interrupt)
  4257. +  */
  4258. + #define HANDLE_ATTRIBUTE0(attr) \
  4259. +   (strcmp(attr, "saveds") != 0 && strcmp(attr, "interrupt") != 0)
  4260. + /* (c-common.c)
  4261. +  * install additional attributes
  4262. +  */
  4263. + #define HANDLE_EXTRA_ATTRIBUTES(a)                         \
  4264. +   if (TREE_VALUE (a) != 0                            \
  4265. +       && TREE_CODE (TREE_VALUE (a)) == IDENTIFIER_NODE                \
  4266. +       && TREE_VALUE (a) == get_identifier ("saveds"))                \
  4267. +     {                                        \
  4268. +       if (TREE_CODE (decl) != FUNCTION_DECL)                    \
  4269. +         {                                    \
  4270. +           warning_with_decl (decl,                        \
  4271. +               "saveds attribute specified for non-function `%s'");        \
  4272. +       return;                                \
  4273. +         }                                    \
  4274. +                                               \
  4275. +       attr_do_saveds (DECL_NAME (decl));                    \
  4276. +     }                                        \
  4277. +   else if (TREE_VALUE (a) != 0                            \
  4278. +       && TREE_CODE (TREE_VALUE (a)) == IDENTIFIER_NODE                \
  4279. +       && TREE_VALUE (a) == get_identifier ("interrupt"))            \
  4280. +     {                                        \
  4281. +       if (TREE_CODE (decl) != FUNCTION_DECL)                    \
  4282. +         {                                    \
  4283. +           warning_with_decl (decl,                        \
  4284. +               "saveds attribute specified for non-function `%s'");        \
  4285. +       return;                                \
  4286. +         }                                    \
  4287. +                                               \
  4288. +       attr_do_interrupt (DECL_NAME (decl));                    \
  4289. +     }                                        \
  4290. + #define PROLOGUE_EXTRA_SAVE(mask)                        \
  4291. +   { extern char *current_function_name;                        \
  4292. +     /* saveds makes the function preserve d1/a0/a1 as well */            \
  4293. +     if (attr_does_saveds (current_function_name))                \
  4294. +       mask |= 0x40c0; }                                \
  4295. + #define EPILOGUE_EXTRA_RESTORE(mask, nregs)                    \
  4296. +   { extern char *current_function_name;                        \
  4297. +     /* restore those extra registers */                        \
  4298. +     if (attr_does_saveds (current_function_name))                \
  4299. +       {                                        \
  4300. +     mask |= 0x0302;                                \
  4301. +     nregs += 3;                                \
  4302. +       } }                                    \
  4303. + #define EPILOGUE_EXTRA_BARRIER_KLUDGE(stream)                    \
  4304. +   { extern char *current_function_name;                        \
  4305. +     /* PLEASE Help! how is this done cleaner?? */                \
  4306. +     if (attr_does_saveds (current_function_name))                \
  4307. +       {                                        \
  4308. +     fprintf (stderr,                             \
  4309. +          "warning: couldn't cleanup `saveds'-stack in `%s'.\n");    \
  4310. +     fprintf (stderr,                            \
  4311. +          "         this is only ok, if the function never returns!\n");    \
  4312. +       }    }                                    \
  4313. +         
  4314. + #define EPILOGUE_EXTRA_TEST(stream)                        \
  4315. +   { extern char *current_function_name;                        \
  4316. +     /* with the interrupt-attribute, we have to set the cc before rts */    \
  4317. +     if (attr_does_interrupt (current_function_name))                \
  4318. +       asm_fprintf (stream, "\ttstl %s\n", reg_names[0]); }            \
  4319. + #endif
  4320. diff -rc --new-file /src/baseline/gcc-2.5.8/config/m68k/m68k.c gcc-2.5.8/config/m68k/m68k.c
  4321. *** /src/baseline/gcc-2.5.8/config/m68k/m68k.c    Wed Nov  3 17:17:46 1993
  4322. --- gcc-2.5.8/config/m68k/m68k.c    Tue Feb 22 11:22:46 1994
  4323. ***************
  4324. *** 61,67 ****
  4325.   void
  4326.   finalize_pic ()
  4327.   {
  4328. !   if (flag_pic && current_function_uses_pic_offset_table)
  4329.       emit_insn (gen_rtx (USE, VOIDmode, pic_offset_table_rtx));
  4330.   }
  4331.   
  4332. --- 61,67 ----
  4333.   void
  4334.   finalize_pic ()
  4335.   {
  4336. !   if (flag_pic && (flag_pic < 3) && current_function_uses_pic_offset_table)
  4337.       emit_insn (gen_rtx (USE, VOIDmode, pic_offset_table_rtx));
  4338.   }
  4339.   
  4340. ***************
  4341. *** 181,186 ****
  4342. --- 181,189 ----
  4343.         mask &= ~ (1 << (15 - FRAME_POINTER_REGNUM));
  4344.         num_saved_regs--;
  4345.       }
  4346. + #ifdef PROLOGUE_EXTRA_SAVE
  4347. +   PROLOGUE_EXTRA_SAVE (mask);
  4348. + #endif
  4349.   
  4350.   #if NEED_PROBE
  4351.     fprintf (stream, "\ttstl sp@(%d)\n", NEED_PROBE - num_saved_regs * 4);
  4352. ***************
  4353. *** 214,220 ****
  4354.         asm_fprintf (stream, "\tmoveml %0I0x%x,%Rsp@-\n", mask);
  4355.   #endif
  4356.       }
  4357. !   if (flag_pic && current_function_uses_pic_offset_table)
  4358.       {
  4359.   #ifdef MOTOROLA
  4360.         asm_fprintf (stream, "\t%Olea (%Rpc, %U_GLOBAL_OFFSET_TABLE_@GOTPC), %s\n",
  4361. --- 217,223 ----
  4362.         asm_fprintf (stream, "\tmoveml %0I0x%x,%Rsp@-\n", mask);
  4363.   #endif
  4364.       }
  4365. !   if (flag_pic && (flag_pic < 3) && current_function_uses_pic_offset_table)
  4366.       {
  4367.   #ifdef MOTOROLA
  4368.         asm_fprintf (stream, "\t%Olea (%Rpc, %U_GLOBAL_OFFSET_TABLE_@GOTPC), %s\n",
  4369. ***************
  4370. *** 279,284 ****
  4371. --- 282,290 ----
  4372.         /* Output just a no-op so that debuggers don't get confused
  4373.        about which function the pc is in at this address.  */
  4374.         asm_fprintf (stream, "\tnop\n");
  4375. + #ifdef EPILOGUE_EXTRA_BARRIER_KLUDGE
  4376. +       EPILOGUE_EXTRA_BARRIER_KLUDGE(stream);
  4377. + #endif
  4378.         return;
  4379.       }
  4380.   
  4381. ***************
  4382. *** 309,314 ****
  4383. --- 315,323 ----
  4384.           nregs++;
  4385.       mask |= 1 << regno;
  4386.         }
  4387. + #ifdef EPILOGUE_EXTRA_RESTORE
  4388. +   EPILOGUE_EXTRA_RESTORE(mask, nregs);
  4389. + #endif
  4390.     offset = foffset + nregs * 4;
  4391.     if (offset + fsize >= 0x8000
  4392.         && frame_pointer_needed
  4393. ***************
  4394. *** 511,516 ****
  4395. --- 520,528 ----
  4396.   #endif
  4397.       }
  4398.       }
  4399. + #ifdef EPILOGUE_EXTRA_TEST
  4400. +   EPILOGUE_EXTRA_TEST(stream);
  4401. + #endif
  4402.     if (current_function_pops_args)
  4403.       asm_fprintf (stream, "\trtd %0I%d\n", current_function_pops_args);
  4404.     else
  4405. ***************
  4406. *** 801,815 ****
  4407.     /* First handle a simple SYMBOL_REF or LABEL_REF */
  4408.     if (GET_CODE (orig) == SYMBOL_REF || GET_CODE (orig) == LABEL_REF)
  4409.       {
  4410.         if (reg == 0)
  4411.       abort ();
  4412.   
  4413. !       pic_ref = gen_rtx (MEM, Pmode,
  4414. !              gen_rtx (PLUS, Pmode,
  4415. !                   pic_offset_table_rtx, orig));
  4416.         current_function_uses_pic_offset_table = 1;
  4417.         RTX_UNCHANGING_P (pic_ref) = 1;
  4418.         emit_move_insn (reg, pic_ref);
  4419.         return reg;
  4420.       }
  4421.     else if (GET_CODE (orig) == CONST)
  4422. --- 813,837 ----
  4423.     /* First handle a simple SYMBOL_REF or LABEL_REF */
  4424.     if (GET_CODE (orig) == SYMBOL_REF || GET_CODE (orig) == LABEL_REF)
  4425.       {
  4426. + #ifdef LEGITIMATE_BASEREL_OPERAND_P
  4427. +   if (LEGITIMATE_BASEREL_OPERAND_P (orig))
  4428. +     return orig;
  4429. + #endif
  4430.         if (reg == 0)
  4431.       abort ();
  4432.   
  4433. !       if (flag_pic >= 3)
  4434. !     pic_ref = gen_rtx (PLUS, Pmode, pic_offset_table_rtx, orig);
  4435. !       else
  4436. !         pic_ref = gen_rtx (MEM, Pmode,
  4437. !                gen_rtx (PLUS, Pmode,
  4438. !                     pic_offset_table_rtx, orig));
  4439.         current_function_uses_pic_offset_table = 1;
  4440.         RTX_UNCHANGING_P (pic_ref) = 1;
  4441.         emit_move_insn (reg, pic_ref);
  4442.         return reg;
  4443.       }
  4444.     else if (GET_CODE (orig) == CONST)
  4445. ***************
  4446. *** 838,843 ****
  4447. --- 860,866 ----
  4448.         pic_ref = gen_rtx (PLUS, Pmode, base, orig);
  4449.         /* Likewise, should we set special REG_NOTEs here?  */
  4450.       }
  4451.     return pic_ref;
  4452.   }
  4453.   
  4454. ***************
  4455. *** 2166,2171 ****
  4456. --- 2189,2198 ----
  4457.                 fprintf (file, ":w");
  4458.               if ((flag_pic == 2) && (breg == pic_offset_table_rtx))
  4459.                 fprintf (file, ":l");
  4460. +             if ((flag_pic == 3) && (breg == pic_offset_table_rtx))
  4461. +               fprintf (file, ":W");
  4462. +             if ((flag_pic == 4) && (breg == pic_offset_table_rtx))
  4463. +               fprintf (file, ":L");
  4464.             }
  4465.           if (addr != 0 && ireg != 0)
  4466.             {
  4467. diff -rc --new-file /src/baseline/gcc-2.5.8/config/m68k/m68k.h gcc-2.5.8/config/m68k/m68k.h
  4468. *** /src/baseline/gcc-2.5.8/config/m68k/m68k.h    Fri Nov  5 04:09:54 1993
  4469. --- gcc-2.5.8/config/m68k/m68k.h    Tue Feb 22 11:22:49 1994
  4470. ***************
  4471. *** 353,361 ****
  4472.   #ifndef SUPPORT_SUN_FPA
  4473.   
  4474.   #define CONDITIONAL_REGISTER_USAGE \
  4475. ! {                                               \
  4476. !   if (flag_pic)                                 \
  4477. !     fixed_regs[PIC_OFFSET_TABLE_REGNUM] = 1;    \
  4478.   }
  4479.   
  4480.   #else /* defined SUPPORT_SUN_FPA */
  4481. --- 353,364 ----
  4482.   #ifndef SUPPORT_SUN_FPA
  4483.   
  4484.   #define CONDITIONAL_REGISTER_USAGE \
  4485. ! {                                                \
  4486. !   if (flag_pic)                                  \
  4487. !     fixed_regs[PIC_OFFSET_TABLE_REGNUM] = 1;     \
  4488. !   /* prevent saving/restoring of the base reg */ \
  4489. !   if (flag_pic == 3)                 \
  4490. !     call_used_regs[PIC_OFFSET_TABLE_REGNUM] = 1; \
  4491.   }
  4492.   
  4493.   #else /* defined SUPPORT_SUN_FPA */
  4494. diff -rc --new-file /src/baseline/gcc-2.5.8/config/m68k/m68k.md gcc-2.5.8/config/m68k/m68k.md
  4495. *** /src/baseline/gcc-2.5.8/config/m68k/m68k.md    Tue Nov 30 20:17:46 1993
  4496. --- gcc-2.5.8/config/m68k/m68k.md    Tue Feb 22 11:22:53 1994
  4497. ***************
  4498. *** 716,728 ****
  4499.   {
  4500.     if (flag_pic && symbolic_operand (operands[1], SImode)) 
  4501.       {
  4502. !       /* The source is an address which requires PIC relocation.  
  4503. !          Call legitimize_pic_address with the source, mode, and a relocation
  4504. !          register (a new pseudo, or the final destination if reload_in_progress
  4505. !          is set).   Then fall through normally */
  4506. !       extern rtx legitimize_pic_address();
  4507. !       rtx temp = reload_in_progress ? operands[0] : gen_reg_rtx (Pmode);
  4508. !       operands[1] = legitimize_pic_address (operands[1], SImode, temp);
  4509.       }
  4510.   }")
  4511.   
  4512. --- 716,733 ----
  4513.   {
  4514.     if (flag_pic && symbolic_operand (operands[1], SImode)) 
  4515.       {
  4516. ! #ifdef LEGITIMATE_BASEREL_OPERAND_P
  4517. !       if (flag_pic < 3 || !LEGITIMATE_BASEREL_OPERAND_P (operands[1]))
  4518. ! #endif
  4519. !       {
  4520. !         /* The source is an address which requires PIC relocation.  
  4521. !            Call legitimize_pic_address with the source, mode, and a relocation
  4522. !            register (a new pseudo, or the final destination if reload_in_progress
  4523. !            is set).   Then fall through normally */
  4524. !         extern rtx legitimize_pic_address();
  4525. !         rtx temp = reload_in_progress ? operands[0] : gen_reg_rtx (Pmode);
  4526. !         operands[1] = legitimize_pic_address (operands[1], SImode, temp);
  4527. !       }
  4528.       }
  4529.   }")
  4530.   
  4531. ***************
  4532. *** 1890,1897 ****
  4533.   
  4534.         /* These insns can result from reloads to access
  4535.        stack slots over 64k from the frame pointer.  */
  4536. !       if (GET_CODE (operands[2]) == CONST_INT
  4537. !       && INTVAL (operands[2]) + 0x8000 >= (unsigned) 0x10000)
  4538.           return \"move%.l %2,%0\;add%.l %1,%0\";
  4539.   #ifdef SGS
  4540.         if (GET_CODE (operands[2]) == REG)
  4541. --- 1895,1903 ----
  4542.   
  4543.         /* These insns can result from reloads to access
  4544.        stack slots over 64k from the frame pointer.  */
  4545. !       if (((GET_CODE (operands[2]) == CONST_INT
  4546. !        && INTVAL (operands[2]) + 0x8000 >= (unsigned) 0x10000))
  4547. !       || (flag_pic == 4 && operands[1] == pic_offset_table_rtx))
  4548.           return \"move%.l %2,%0\;add%.l %1,%0\";
  4549.   #ifdef SGS
  4550.         if (GET_CODE (operands[2]) == REG)
  4551. ***************
  4552. *** 4858,4864 ****
  4553.     ""
  4554.     "
  4555.   {
  4556. !   if (flag_pic && GET_CODE (XEXP (operands[0], 0)) == SYMBOL_REF)
  4557.   #ifdef MOTOROLA
  4558.       SYMBOL_REF_FLAG (XEXP (operands[0], 0)) = 1;
  4559.   #else
  4560. --- 4864,4870 ----
  4561.     ""
  4562.     "
  4563.   {
  4564. !   if (flag_pic && flag_pic < 3 && GET_CODE (XEXP (operands[0], 0)) == SYMBOL_REF)
  4565.   #ifdef MOTOROLA
  4566.       SYMBOL_REF_FLAG (XEXP (operands[0], 0)) = 1;
  4567.   #else
  4568. ***************
  4569. *** 4873,4879 ****
  4570.        (match_operand:SI 1 "general_operand" "g"))]
  4571.     ;; Operand 1 not really used on the m68000.
  4572.   
  4573. !   "! flag_pic"
  4574.     "*
  4575.   #ifdef MOTOROLA
  4576.     return \"jsr %0\";
  4577. --- 4879,4885 ----
  4578.        (match_operand:SI 1 "general_operand" "g"))]
  4579.     ;; Operand 1 not really used on the m68000.
  4580.   
  4581. !   "(! flag_pic || flag_pic >= 3)"
  4582.     "*
  4583.   #ifdef MOTOROLA
  4584.     return \"jsr %0\";
  4585. ***************
  4586. *** 4888,4894 ****
  4587.        (match_operand:SI 1 "general_operand" "g"))]
  4588.     ;; Operand 1 not really used on the m68000.
  4589.   
  4590. !   "flag_pic"
  4591.     "*
  4592.   #ifdef HPUX_ASM
  4593.     return \"bsr %0\";
  4594. --- 4894,4900 ----
  4595.        (match_operand:SI 1 "general_operand" "g"))]
  4596.     ;; Operand 1 not really used on the m68000.
  4597.   
  4598. !   "(flag_pic && flag_pic < 3)"
  4599.     "*
  4600.   #ifdef HPUX_ASM
  4601.     return \"bsr %0\";
  4602. ***************
  4603. *** 4913,4919 ****
  4604.     ""
  4605.     "
  4606.   {
  4607. !   if (flag_pic && GET_CODE (XEXP (operands[1], 0)) == SYMBOL_REF)
  4608.   #ifdef MOTOROLA
  4609.       SYMBOL_REF_FLAG (XEXP (operands[1], 0)) = 1;
  4610.   #else
  4611. --- 4919,4925 ----
  4612.     ""
  4613.     "
  4614.   {
  4615. !   if (flag_pic && flag_pic < 3 && GET_CODE (XEXP (operands[1], 0)) == SYMBOL_REF)
  4616.   #ifdef MOTOROLA
  4617.       SYMBOL_REF_FLAG (XEXP (operands[1], 0)) = 1;
  4618.   #else
  4619. ***************
  4620. *** 4928,4934 ****
  4621.       (call (match_operand:QI 1 "memory_operand" "o")
  4622.             (match_operand:SI 2 "general_operand" "g")))]
  4623.     ;; Operand 2 not really used on the m68000.
  4624. !   "! flag_pic"
  4625.     "*
  4626.   #ifdef MOTOROLA
  4627.     return \"jsr %1\";
  4628. --- 4934,4940 ----
  4629.       (call (match_operand:QI 1 "memory_operand" "o")
  4630.             (match_operand:SI 2 "general_operand" "g")))]
  4631.     ;; Operand 2 not really used on the m68000.
  4632. !   "(! flag_pic || flag_pic >= 3)"
  4633.     "*
  4634.   #ifdef MOTOROLA
  4635.     return \"jsr %1\";
  4636. ***************
  4637. *** 4943,4949 ****
  4638.       (call (match_operand:QI 1 "memory_operand" "o")
  4639.             (match_operand:SI 2 "general_operand" "g")))]
  4640.     ;; Operand 2 not really used on the m68000.
  4641. !   "flag_pic"
  4642.     "*
  4643.   #ifdef HPUX_ASM
  4644.     return \"bsr %1\";
  4645. --- 4949,4955 ----
  4646.       (call (match_operand:QI 1 "memory_operand" "o")
  4647.             (match_operand:SI 2 "general_operand" "g")))]
  4648.     ;; Operand 2 not really used on the m68000.
  4649. !   "(flag_pic && flag_pic < 3)"
  4650.     "*
  4651.   #ifdef HPUX_ASM
  4652.     return \"bsr %1\";
  4653. diff -rc --new-file /src/baseline/gcc-2.5.8/config/m68k/t-amigados gcc-2.5.8/config/m68k/t-amigados
  4654. *** /src/baseline/gcc-2.5.8/config/m68k/t-amigados    Thu Jan  1 00:00:00 1970
  4655. --- gcc-2.5.8/config/m68k/t-amigados    Tue Feb 22 11:27:03 1994
  4656. ***************
  4657. *** 0 ****
  4658. --- 1,186 ----
  4659. + # Makefile fragment for amigados target.
  4660. + # We generate two additional things:
  4661. + #
  4662. + # libb/libgcc.a
  4663. + #    A base relative version of libgcc.a which is used when compiling and
  4664. + #    linking with the '-resident' option.
  4665. + #
  4666. + # xgccv
  4667. + #    A forking gcc instead of one calling ssytem(). This makes it less
  4668. + #    system conformant (can't ^C it when started from make), while providing
  4669. + #    increased functionality (-pipe option).
  4670. + # Use the vfork'ing version of gcc by default, so that the -pipe option can
  4671. + # get tested.  To use the regular version just do "make XGCC=gcc".  Note that
  4672. + # PIPE is defined in x-amigados, so if we are doing a native build, it will
  4673. + # be defined.  It can be overridden with "make PIPE=".
  4674. + XGCC = xgccv $(PIPE)
  4675. + GCC_FOR_TARGET = ./$(XGCC) -B./
  4676. + # Build residentable versions of the gcc executables by default.  Use
  4677. + # "make RESIDENT=" to build non-residentable versions.
  4678. + # Note:  This failed during bootstrapping of 2.5.5.
  4679. + #RESIDENT = -resident
  4680. + # The standard additional target flags for the compiler.
  4681. + T_CFLAGS = $(RESIDENT)
  4682. + # Allow the user to override the default target optimizations with gcc, or if
  4683. + # the target compiler is not gcc and doesn't understand -O<N>.
  4684. + T_OPTIMISE = -O2
  4685. + # Each compilation environment (Manx, Dice, GCC, SAS/C, etc) provides its
  4686. + # own equivalent of the UNIX /usr/include tree.  For gcc, the standard headers
  4687. + # are in /gnu/include and system specific headers are in /gnu/os-include.
  4688. + # Use these paths for fixincludes.
  4689. + SYSTEM_HEADER_DIR = /gnu/include
  4690. + OTHER_FIXINCLUDES_DIRS = /gnu/os-include
  4691. + # We don't need a libgcc1, it's all in ixemul.library
  4692. + LIBGCC1 = libgcc1.null
  4693. + # Flags to use when compiling the normal version of libgcc.a.
  4694. + # Don't compile with debugging, as long as there is no debugger.
  4695. + # Explicitly leave out the -resident compilation flag and don't use T_CFLAGS.
  4696. + LIBGCC2_CFLAGS = $(T_OPTIMIZE) $(INTERNAL_CFLAGS) $(X_CFLAGS) $(CFLAGS) \
  4697. +           $(CROSS_GCC_CFLAGS)
  4698. + # Flags to use when compiling the base relative version of libgcc.a.
  4699. + # Don't compile with debugging, as long as there is no debugger.
  4700. + # Explicitly force -resident in the compilation flags and don't use T_CFLAGS.
  4701. + LIBBGCC2_CFLAGS = $(T_OPTIMIZE) $(INTERNAL_CFLAGS) $(X_CFLAGS) $(CFLAGS) \
  4702. +           $(CROSS_GCC_CFLAGS) -resident
  4703. + # Build the base relative library.
  4704. + # It is later copied into /gnu/lib/gcc-lib/amigados/<version>/libb/libgcc.a, whereas
  4705. + # libgcc.a is copied into /gnu/lib/gcc-lib/amigados/<version>/libgcc.a.
  4706. + # It doesn't work very well to define one of the EXTRA_* macros to contain
  4707. + # libb/libgcc.a, particularly for doing "make stageN" or "make install".
  4708. + GCC_PARTS=$(GCC_PASSES) libgcc.a libb/libgcc.a $(EXTRA_PROGRAMS) $(USE_COLLECT2) $(EXTRA_PARTS)
  4709. + # Add install_libbgcc to normal define of INSTALL_LIBGCC.  Let install-gccv
  4710. + # hitch a ride on here as well.
  4711. + INSTALL_LIBGCC = install-libgcc install-libbgcc install-gccv
  4712. + # This includes the knowledge that target amigados doesn't need libgcc1.a
  4713. + libb/libgcc.a: libgcc1.null libgcc2.c libgcc2.ready $(CONFIG_H) \
  4714. +    $(LIB2FUNCS_EXTRA) machmode.h longlong.h gbl-ctors.h config.status
  4715. + # Actually build it in tmplibbgcc.a, then rename at end,
  4716. + # so that libb/libgcc.a itself remains nonexistent if compilation is aborted.
  4717. +     -rm -f tmplibbgcc.a
  4718. + # -e causes any failing command to make this rule fail.
  4719. + # -e doesn't work in certain shells, so we test $$? as well.
  4720. +     set -e; \
  4721. +     for name in $(LIB2FUNCS); \
  4722. +     do \
  4723. +       echo $${name}; \
  4724. +       $(GCC_FOR_TARGET) $(LIBBGCC2_CFLAGS) $(INCLUDES) -c -DL$${name} \
  4725. +           $(srcdir)/libgcc2.c -o $${name}.o; \
  4726. +       if [ $$? -eq 0 ] ; then true; else exit 1; fi; \
  4727. +       $(AR) $(AR_FLAGS) tmplibbgcc.a $${name}.o; \
  4728. +       rm -f $${name}.o; \
  4729. +     done
  4730. + # Some shells crash when a loop has no items.
  4731. + # So make sure there is always at least one--`..'.
  4732. + # Then ignore it.
  4733. + # We don't use -e here because there are if statements
  4734. + # that should not make the command give up when the if condition is false.
  4735. + # Instead, we test for failure after each command where it matters.
  4736. +     -for file in .. $(LIB2FUNCS_EXTRA); \
  4737. +     do \
  4738. +       if [ x$${file} != x.. ]; then \
  4739. +         name=`echo $${file} | sed -e 's/[.]c$$//' -e 's/[.]asm$$//'`; \
  4740. +         echo $${name}; \
  4741. +         if [ $${name}.asm = $${file} ]; then \
  4742. +           cp $${file} $${name}.s || exit 1; file=$${name}.s; \
  4743. +         else true; fi; \
  4744. +         $(GCC_FOR_TARGET) $(LIBBGCC2_CFLAGS) $(INCLUDES) -c $${file}; \
  4745. +         if [ $$? -eq 0 ] ; then true; else exit 1; fi; \
  4746. +         $(AR) $(AR_FLAGS) tmplibbgcc.a $${name}.o; \
  4747. +         rm -f $${name}.[so]; \
  4748. +       else true; \
  4749. +       fi; \
  4750. +     done
  4751. +     -if $(RANLIB_TEST) ; then $(RANLIB) tmplibbgcc.a; else true; fi
  4752. +     -if [ -d libb ] ; then true ; else mkdir libb ; fi
  4753. +     mv tmplibbgcc.a libb/libgcc.a
  4754. + install-libbgcc: libb/libgcc.a install-dir
  4755. +     -if [ -d $(libsubdir)/libb ] ; then true ; else mkdir $(libsubdir)/libb ; fi
  4756. +     -if [ -f libb/libgcc.a ] ; then \
  4757. +       rm -f $(libsubdir)/libb/libgcc.a; \
  4758. +       $(INSTALL_DATA) libb/libgcc.a $(libsubdir)/libb/libgcc.a; \
  4759. +       if $(RANLIB_TEST) ; then \
  4760. +         (cd $(libsubdir)/libb; $(RANLIB) libgcc.a); else true; fi; \
  4761. +       chmod a-x $(libsubdir)/libb/libgcc.a; \
  4762. +     else true; fi
  4763. +     
  4764. + # The default gcc (xgcc) is built without -DAMIGADOS_FORK_GCC. This gcc (xgccv)
  4765. + # is built with AMIGADOS_FORK_GCC defined, so that it can use '-pipe'.  We
  4766. + # don't want to define EXTRA_PASSES to xgccv because that will cause xgccv
  4767. + # to be installed in $(libsubdir), so instead we use the default GCC_PASSES
  4768. + # and add xgccv to it.
  4769. + GCC_PASSES = xgcc xgccv cc1 cpp $(EXTRA_PASSES)
  4770. + xgccv: xgccv.o version.o $(LIBDEPS)
  4771. +     $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o xgccv xgccv.o version.o $(LIBS)
  4772. + xgccv.o: gcc.c $(CONFIG_H) gvarargs.h obstack.h
  4773. +     $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
  4774. +   -DSTANDARD_STARTFILE_PREFIX=\"$(libdir)/\" \
  4775. +   -DSTANDARD_EXEC_PREFIX=\"$(libdir)/gcc-lib/\" \
  4776. +   -DDEFAULT_TARGET_MACHINE=\"$(target)\" \
  4777. +   -DTOOLDIR=\"$(tooldir)/\" \
  4778. +   -DAMIGADOS_FORK_GCC \
  4779. +   -c `echo $(srcdir)/gcc.c | sed 's,^\./,,'` -o xgccv.o
  4780. + install-gccv: xgccv
  4781. +     rm -f $(bindir)/gccv
  4782. +     $(INSTALL_PROGRAM) xgccv $(bindir)/gccv
  4783. + # When making one of the stage<N> dirs, we need to make a libb subdir for
  4784. + # it, and copy libbgcc.a there as libgcc.a.
  4785. + EXTRA_STAGE1_TARGETS = stage1-libb
  4786. + EXTRA_STAGE2_TARGETS = stage2-libb
  4787. + EXTRA_STAGE3_TARGETS = stage3-libb
  4788. + EXTRA_STAGE4_TARGETS = stage4-libb
  4789. + stage1-libb:
  4790. +     -if [ -d stage1 ] ; then true ; else mkdir stage1 ; fi
  4791. +     -if [ -d stage1/libb ] ; then true ; else mkdir stage1/libb ; fi
  4792. +     -cp libb/libgcc.a stage1/libb/libgcc.a
  4793. +     -if $(RANLIB_TEST) ; then $(RANLIB) stage1/libb/libgcc.a; else true; fi
  4794. + stage2-libb:
  4795. +     -if [ -d stage2 ] ; then true ; else mkdir stage2 ; fi
  4796. +     -if [ -d stage2/libb ] ; then true ; else mkdir stage2/libb ; fi
  4797. +     -cp libb/libgcc.a stage2/libb/libgcc.a
  4798. +     -if $(RANLIB_TEST) ; then $(RANLIB) stage2/libb/libgcc.a; else true; fi
  4799. + stage3-libb:
  4800. +     -if [ -d stage3 ] ; then true ; else mkdir stage3 ; fi
  4801. +     -if [ -d stage3/libb ] ; then true ; else mkdir stage3/libb ; fi
  4802. +     -cp libb/libgcc.a stage3/libb/libgcc.a
  4803. +     -if $(RANLIB_TEST) ; then $(RANLIB) stage3/libb/libgcc.a; else true; fi
  4804. + stage4-libb:
  4805. +     -if [ -d stage4 ] ; then true ; else mkdir stage4 ; fi
  4806. +     -if [ -d stage4/libb ] ; then true ; else mkdir stage4/libb ; fi
  4807. +     -cp libb/libgcc.a stage4/libb/libgcc.a
  4808. +     -if $(RANLIB_TEST) ; then $(RANLIB) stage4/libb/libgcc.a; else true; fi
  4809. diff -rc --new-file /src/baseline/gcc-2.5.8/config/m68k/x-amigados gcc-2.5.8/config/m68k/x-amigados
  4810. *** /src/baseline/gcc-2.5.8/config/m68k/x-amigados    Thu Jan  1 00:00:00 1970
  4811. --- gcc-2.5.8/config/m68k/x-amigados    Tue Feb 22 11:22:55 1994
  4812. ***************
  4813. *** 0 ****
  4814. --- 1,44 ----
  4815. + # Note: It doesn't do any good to try to define prefix or local_prefix
  4816. + # in the host overrides because configure will just change them back.
  4817. + # You either have to give an appropriate option to configure or live with
  4818. + # an Amiga specific patch to configure.  See the note in configure.  -fnf
  4819. + # Building under amigados almost certainly requires an already working gcc.
  4820. + # Use gccv, which is a gcc compiled with AMIGADOS_FORK_GCC so "-pipe" will
  4821. + # work and get exercised.  To bootstrap with the regular gcc just do
  4822. + # "make CC=gcc".  To bootstrap without "-pipe" do "make PIPE=".
  4823. + CC = gccv $(PIPE)
  4824. + # Disable -pipe for now since I had problems bootstrapping gcc 2.5.5 with
  4825. + # it. (fnf)
  4826. + #PIPE = -pipe
  4827. + # Allow the user to override the default host optimization with gcc, or if the
  4828. + # host compiler is not gcc and doesn't understand -O<N>.
  4829. + X_OPTIMIZE = -O2
  4830. + # The standard additional host flags for the compiler.
  4831. + X_CFLAGS = $(X_OPTIMIZE)
  4832. + # Man pages get a wierd suffix...
  4833. + manext = .0
  4834. + # We really shouldn't specify CFLAGS from here, but there's no other way
  4835. + # to get rid of the `-g' indoctrinated by Makefile.in.  Note this becomes
  4836. + # part of both the host compilation CFLAGS and the target compilation
  4837. + # CFLAGS.
  4838. + CFLAGS =
  4839. + # Ranlib does exist, but may not be in a path where the default RANLIB_TEST
  4840. + # expects it, so just force it to true.
  4841. + RANLIB_TEST = true
  4842. + # My current version of ln doesn't work, so use cp instead.  -fnf
  4843. + HARDLINK = cp
  4844. diff -rc --new-file /src/baseline/gcc-2.5.8/config/m68k/xm-amigados.h gcc-2.5.8/config/m68k/xm-amigados.h
  4845. *** /src/baseline/gcc-2.5.8/config/m68k/xm-amigados.h    Thu Jan  1 00:00:00 1970
  4846. --- gcc-2.5.8/config/m68k/xm-amigados.h    Tue Feb 22 11:27:04 1994
  4847. ***************
  4848. *** 0 ****
  4849. --- 1,215 ----
  4850. + /* Configuration for GNU C-compiler for Commodore Amiga, running AmigaDOS.
  4851. +    Copyright (C) 1992 Free Software Foundation, Inc.
  4852. +    Contributed by Markus M. Wild (wild@amiga.physik.unizh.ch).
  4853. + This file is part of GNU CC.
  4854. + GNU CC is free software; you can redistribute it and/or modify
  4855. + it under the terms of the GNU General Public License as published by
  4856. + the Free Software Foundation; either version 2, or (at your option)
  4857. + any later version.
  4858. + GNU CC is distributed in the hope that it will be useful,
  4859. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  4860. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  4861. + GNU General Public License for more details.
  4862. + You should have received a copy of the GNU General Public License
  4863. + along with GNU CC; see the file COPYING.  If not, write to
  4864. + the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
  4865. + /* first include the generic header, then modify some parts.. */
  4866. + #include "m68k/xm-m68k.h"
  4867. + /* Amiga specific headers, such as from the Native Developer Update kits,
  4868. +    go in SYSTEM_INCLUDE_DIR.  STANDARD_INCLUDE_DIR is the equivalent of
  4869. +    Unix "/usr/include".  All other include paths are set in Makefile. */
  4870. + #define SYSTEM_INCLUDE_DIR    "/gnu/os-include"
  4871. + #define STANDARD_INCLUDE_DIR    "/gnu/include"
  4872. + /* Fork one piped subcommand.  SEARCH_FLAG is the system call to use
  4873. +    (either execv or execvp).  ARGV is the arg vector to use.
  4874. +    NOT_LAST is nonzero if this is not the last subcommand
  4875. +    (i.e. its output should be piped to the next one.)  */
  4876. + #ifndef AMIGADOS_FORK_GCC
  4877. + /* This version uses a more or less amigados-conformant way of running a
  4878. +    program (in the context of the parent). If you want to use -pipe however,
  4879. +    you'll have to use the vfork() version afterwards. */
  4880. + #define PEXECUTE(SEARCH_FLAG,PROGRAM,ARGV,NOT_LAST) \
  4881. + ({char *_argline;                        \
  4882. +   int _arglinelength, _i;                    \
  4883. +                                 \
  4884. +   for (_i = 1, _arglinelength=0; ARGV[_i]; ++_i)        \
  4885. +     _arglinelength += strlen(ARGV[_i]) + 1;            \
  4886. +                                 \
  4887. +   _arglinelength += strlen(PROGRAM) + 1;            \
  4888. +                                 \
  4889. +   if (!(_argline = (char *)alloca(_arglinelength)))         \
  4890. +     pfatal_with_name ("alloca");                \
  4891. +                                 \
  4892. +   strcpy(_argline, PROGRAM);                    \
  4893. +   for (_i = 1; ARGV[_i]; ++_i)                     \
  4894. +     {                                \
  4895. +       strcat(_argline, " ");                    \
  4896. +       strcat(_argline, ARGV[_i]);                \
  4897. +     }                                \
  4898. +                                 \
  4899. +   ssystem(_argline); })                        \
  4900. + #define PEXECUTE_RESULT(STATUS, COMMAND) \
  4901. +   ({ STATUS = COMMAND.pid; })
  4902. + #else
  4903. + /* the vfork() version. This one has the drawback, that gcc is not 
  4904. +    interruptible when started from make, since ixemul.library doesn't yet
  4905. +    propagate ^C to subprocesses. */
  4906. + #define PEXECUTE(SEARCH_FLAG,PROGRAM,ARGV,NOT_LAST) \
  4907. + ({int (*_func)() = (SEARCH_FLAG ? execv : execvp);            \
  4908. +   int _pid;                                \
  4909. +   int _pdes[2];                                \
  4910. +   int _input_desc = last_pipe_input;                    \
  4911. +   int _output_desc = STDOUT_FILE_NO;                    \
  4912. +   int _retries, _sleep_interval, _result;                \
  4913. +                                     \
  4914. +   /* If this isn't the last process, make a pipe for its output,    \
  4915. +      and record it as waiting to be the input to the next process.  */    \
  4916. +                                     \
  4917. +   if (NOT_LAST)                                \
  4918. +     {                                    \
  4919. +       if (pipe (_pdes) < 0)                        \
  4920. +     pfatal_with_name ("pipe");                    \
  4921. +       _output_desc = _pdes[WRITE_PORT];                    \
  4922. +       last_pipe_input = _pdes[READ_PORT];                \
  4923. +     }                                    \
  4924. +   else                                    \
  4925. +     last_pipe_input = STDIN_FILE_NO;                    \
  4926. +                                     \
  4927. +   /* Fork a subprocess; wait and retry if it fails.  */            \
  4928. +   _sleep_interval = 1;                            \
  4929. +   for (_retries = 0; _retries < 4; _retries++)                \
  4930. +     {                                    \
  4931. +       _pid = vfork ();                            \
  4932. +       if (_pid >= 0)                            \
  4933. +     break;                                \
  4934. +       sleep (_sleep_interval);                        \
  4935. +       _sleep_interval *= 2;                        \
  4936. +     }                                    \
  4937. +                                     \
  4938. +   switch (_pid)                                \
  4939. +     {                                    \
  4940. +     case -1:                                \
  4941. +       pfatal_with_name ("vfork");                    \
  4942. +       /* NOTREACHED */                            \
  4943. +       _result = 0;                            \
  4944. +       break;                                \
  4945. +                                     \
  4946. +     case 0: /* child */                            \
  4947. +       /* Move the input and output pipes into place, if nec.  */    \
  4948. +       if (_input_desc != STDIN_FILE_NO)                    \
  4949. +     {                                \
  4950. +       close (STDIN_FILE_NO);                    \
  4951. +       dup (_input_desc);                        \
  4952. +       close (_input_desc);                        \
  4953. +     }                                \
  4954. +       if (_output_desc != STDOUT_FILE_NO)                \
  4955. +     {                                \
  4956. +       close (STDOUT_FILE_NO);                    \
  4957. +       dup (_output_desc);                        \
  4958. +       close (_output_desc);                        \
  4959. +     }                                \
  4960. +                                     \
  4961. +       /* Close the parent's descs that aren't wanted here.  */        \
  4962. +       if (last_pipe_input != STDIN_FILE_NO)                \
  4963. +     close (last_pipe_input);                    \
  4964. +                                     \
  4965. +       /* Exec the program.  */                        \
  4966. +       (*_func) (PROGRAM, ARGV);                        \
  4967. +       perror_exec (PROGRAM);                        \
  4968. +       exit (-1);                            \
  4969. +       /* NOTREACHED */                            \
  4970. +       _result = 0;                            \
  4971. +       break;                                \
  4972. +                                     \
  4973. +     default:                                \
  4974. +       /* In the parent, after forking.                    \
  4975. +      Close the descriptors that we made for this child.  */        \
  4976. +       if (_input_desc != STDIN_FILE_NO)                    \
  4977. +     close (_input_desc);                        \
  4978. +       if (_output_desc != STDOUT_FILE_NO)                \
  4979. +     close (_output_desc);                        \
  4980. +                                     \
  4981. +       /* Return child's process number.  */                \
  4982. +       _result = _pid;                            \
  4983. +       break;                                \
  4984. +     }                                     \
  4985. + _result; })                                \
  4986. + #define PEXECUTE_RESULT(STATUS, COMMAND) \
  4987. +   ({ wait (& STATUS); })
  4988. + #endif /* AMIGADOS_FORK_GCC */
  4989. + /* the following macros are stolen more or less from xm-vms.h ... */
  4990. + /* This macro is used to help compare filenames in cp-lex.c.
  4991. +    We also need to make sure that the names are all lower case, because
  4992. +    we must be able to compare filenames to determine if a file implements
  4993. +    a class.  */
  4994. + #define FILE_NAME_NONDIRECTORY(C)                \
  4995. + ({                                \
  4996. +    extern char *rindex();                    \
  4997. +    char * pnt_ = (C), * pnt1_;                    \
  4998. +    pnt1_ = pnt_ - 1;                        \
  4999. +    while (*++pnt1_)                        \
  5000. +      if ((*pnt1_ >= 'A' && *pnt1_ <= 'Z')) *pnt1_ |= 0x20;    \
  5001. +    pnt1_ = rindex (pnt_, '/');                     \
  5002. +    pnt1_ = (pnt1_ == 0 ? rindex (pnt_, ':') : pnt1_);        \
  5003. +    (pnt1_ == 0 ? pnt_ : pnt1_ + 1);                \
  5004. +  })
  5005. + /* Macro to generate the name of the cross reference file.  The standard
  5006. +    one does not work, since it was written assuming that the conventions
  5007. +    of a unix style filesystem will work on the host system.
  5008. +  
  5009. +    Contrary to VMS, I'm using the original unix filename, there's no reason
  5010. +    not to use this under AmigaDOS. */
  5011. + #define XREF_FILE_NAME(BUFF, NAME)    \
  5012. +   s = FILE_NAME_NONDIRECTORY (NAME);            \
  5013. +   if (s == NAME) sprintf(BUFF, ".%s.gxref", NAME);    \
  5014. +   else {                        \
  5015. +     unsigned char ch = *s; /* could be Latin1 char.. */    \
  5016. +     /* temporary: cut the filename from the directory */\
  5017. +     *s = 0;                        \
  5018. +     sprintf (BUFF, "%s.%c%s.gxref", NAME, ch, s+1);    \
  5019. +     /* and restore the filename */            \
  5020. +     *s = ch;                        \
  5021. +   }                            \
  5022. + /* Macro that is used in cp-xref.c to determine whether a file name is
  5023. +    absolute or not.
  5024. +    This checks for both, '/' as first character, since we're running under
  5025. +    ixemul.library which provides for this unix'ism, and for the usual 
  5026. +    logical-terminator, ':', somewhere in the filename. */
  5027. + #define FILE_NAME_ABSOLUTE_P(NAME) (NAME[0] == '/' || index(NAME, ':'))
  5028. + /* the colon conflicts with the name space of logicals */
  5029. + #define PATH_SEPARATOR ','
  5030. + /* AmigaDOS handles rename(2) *much* better than any link(2)/unlink(2)
  5031. +    hacks. It's actually the inverse case as on Unix. rename(2) was always
  5032. +    there, link(2) is new with OS 2.0 */
  5033. + #define HAVE_rename 1
  5034. diff -rc --new-file /src/baseline/gcc-2.5.8/configure gcc-2.5.8/configure
  5035. *** /src/baseline/gcc-2.5.8/configure    Fri Nov 19 17:44:34 1993
  5036. --- gcc-2.5.8/configure    Thu Apr 21 22:35:12 1994
  5037. ***************
  5038. *** 4,9 ****
  5039. --- 4,13 ----
  5040.   
  5041.   #This file is part of GNU CC.
  5042.   
  5043. + # AmigaDOS Notes:  Where "echo" can be invoked with a first arg that
  5044. + # starts with '-', run the external echo instead, since the pdksh builtin
  5045. + # version botches this case.
  5046.   #GNU CC is free software; you can redistribute it and/or modify
  5047.   #it under the terms of the GNU General Public License as published by
  5048.   #the Free Software Foundation; either version 2, or (at your option)
  5049. ***************
  5050. *** 45,52 ****
  5051.   
  5052.   # Default --srcdir to the directory where the script is found, 
  5053.   # if a directory was specified.
  5054. ! # The second sed call is to convert `.//configure' to `./configure'.
  5055. ! srcdir=`echo $0 | sed 's|//|/|' | sed 's|/[^/]*$||'`
  5056.   if [ x$srcdir = x$0 ]
  5057.   then
  5058.   srcdir=
  5059. --- 49,58 ----
  5060.   
  5061.   # Default --srcdir to the directory where the script is found, 
  5062.   # if a directory was specified.
  5063. ! # The first sed call works around a bug in the AmigaDOS port of sksh, where
  5064. ! # $0 has a trailing slash appended to it.  It is a NOP for other systems.
  5065. ! # The third sed call is to convert `.//configure' to `./configure'.
  5066. ! srcdir=`echo $0 | sed 's|/$||' | sed 's|//|/|' | sed 's|/[^/]*$||'`
  5067.   if [ x$srcdir = x$0 ]
  5068.   then
  5069.   srcdir=
  5070. ***************
  5071. *** 54,75 ****
  5072.   
  5073.   host=
  5074.   
  5075. ! # Default prefix to /usr/local.
  5076. ! prefix=/usr/local
  5077.   
  5078. ! # local_prefix specifies where to find the directory /usr/local/include
  5079.   # We don't use $(prefix) for this
  5080. ! # because we always want GCC to search /usr/local/include
  5081. ! # even if GCC is installed somewhere other than /usr/local.
  5082.   # Think THREE TIMES before specifying any other value for this!
  5083.   # DO NOT make this use $prefix!
  5084. ! local_prefix=/usr/local
  5085.   # Default is to let the Makefile set exec_prefix from $(prefix)
  5086.   exec_prefix='$(prefix)'
  5087.   
  5088.   remove=rm
  5089. ! hard_link=ln
  5090. ! symbolic_link='ln -s'
  5091.   copy=cp
  5092.   
  5093.   # Record all the arguments, to write them in config.status.
  5094. --- 60,87 ----
  5095.   
  5096.   host=
  5097.   
  5098. ! # Note:  For AmigaDOS we want this to default to /gnu unless we specify
  5099. ! # otherwise to configure.  Changing it in Makefile.in or config/m68k/x-amigados
  5100. ! # is ineffective since configure will always change them back in the final
  5101. ! # generated Makefile, so we have to go to the root of the problem, which is
  5102. ! # here.  -fnf
  5103. ! # Default prefix to "/gnu".
  5104. ! prefix=/gnu
  5105.   
  5106. ! # local_prefix specifies where to find the directory /local/include
  5107.   # We don't use $(prefix) for this
  5108. ! # because we always want GCC to search /local/include
  5109. ! # even if GCC is installed somewhere other than /local.
  5110.   # Think THREE TIMES before specifying any other value for this!
  5111.   # DO NOT make this use $prefix!
  5112. ! # Note:  See AmigaDOS note above for this AmigaDOS specific change.  -fnf
  5113. ! local_prefix=/local
  5114.   # Default is to let the Makefile set exec_prefix from $(prefix)
  5115.   exec_prefix='$(prefix)'
  5116.   
  5117.   remove=rm
  5118. ! hard_link=cp
  5119. ! symbolic_link=cp
  5120.   copy=cp
  5121.   
  5122.   # Record all the arguments, to write them in config.status.
  5123. ***************
  5124. *** 121,151 ****
  5125.       next_arg=--srcdir
  5126.       ;;
  5127.        -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=* | --s=*)
  5128. !     srcdir=`echo $arg | sed 's/-*s[a-z]*=//'`
  5129.       ;;
  5130.        -host | --host | --hos | --ho | --h)
  5131.       next_arg=--host
  5132.       ;;
  5133.        -host=* | --host=* | --hos=* | --ho=* | --h=*)
  5134. !     host=`echo $arg | sed 's/-*h[a-z]*=//'`
  5135.       ;; 
  5136.        -target | --target | --targe | --targ | --tar | --ta | --t)
  5137.       next_arg=--target
  5138.       ;;
  5139.        -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
  5140. !     target=`echo $arg | sed 's/-*t[a-z]*=//'`
  5141.       ;; 
  5142.        -build | --build | --buil | --bui | --bu | --b)
  5143.       next_arg=--build
  5144.       ;;
  5145.        -build=* | --build=* | --buil=* | --bui=* | --bu=* | --b=*)
  5146. !     build=`echo $arg | sed 's/-*b[a-z]*=//'`
  5147.       ;; 
  5148.        -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
  5149.       next_arg=--prefix
  5150.       ;;
  5151.        -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
  5152. !     prefix=`echo $arg | sed 's/-*p[a-z]*=//'`
  5153.       ;;
  5154.        -local-prefix | --local-prefix | --local-prefi | --local-pref | --local-pre \
  5155.       | --local-pr | --local-p | --local- | --local | --loc | --lo | --l)
  5156. --- 133,163 ----
  5157.       next_arg=--srcdir
  5158.       ;;
  5159.        -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=* | --s=*)
  5160. !     srcdir=`/bin/echo $arg | sed 's/-*s[a-z]*=//'`
  5161.       ;;
  5162.        -host | --host | --hos | --ho | --h)
  5163.       next_arg=--host
  5164.       ;;
  5165.        -host=* | --host=* | --hos=* | --ho=* | --h=*)
  5166. !     host=`/bin/echo $arg | sed 's/-*h[a-z]*=//'`
  5167.       ;; 
  5168.        -target | --target | --targe | --targ | --tar | --ta | --t)
  5169.       next_arg=--target
  5170.       ;;
  5171.        -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
  5172. !     target=`/bin/echo $arg | sed 's/-*t[a-z]*=//'`
  5173.       ;; 
  5174.        -build | --build | --buil | --bui | --bu | --b)
  5175.       next_arg=--build
  5176.       ;;
  5177.        -build=* | --build=* | --buil=* | --bui=* | --bu=* | --b=*)
  5178. !     build=`/bin/echo $arg | sed 's/-*b[a-z]*=//'`
  5179.       ;; 
  5180.        -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
  5181.       next_arg=--prefix
  5182.       ;;
  5183.        -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
  5184. !     prefix=`/bin/echo $arg | sed 's/-*p[a-z]*=//'`
  5185.       ;;
  5186.        -local-prefix | --local-prefix | --local-prefi | --local-pref | --local-pre \
  5187.       | --local-pr | --local-p | --local- | --local | --loc | --lo | --l)
  5188. ***************
  5189. *** 154,160 ****
  5190.        -local-prefix=* | --local-prefix=* | --local-prefi=* | --local-pref=* \
  5191.       | --local-pre=* | --local-pr=* | --local-p=* | --local-=* | --local=* \
  5192.       | --loc=* | --lo=* | --l=*)
  5193. !     local_prefix=`echo $arg | sed 's/-*l[-a-z]*=//'`
  5194.       ;;
  5195.        -exec-prefix | --exec-prefix | --exec-prefi | --exec-pref | --exec-pre \
  5196.       | --exec-pr | --exec-p | --exec- | --exec | --exe | --ex | --e)
  5197. --- 166,172 ----
  5198.        -local-prefix=* | --local-prefix=* | --local-prefi=* | --local-pref=* \
  5199.       | --local-pre=* | --local-pr=* | --local-p=* | --local-=* | --local=* \
  5200.       | --loc=* | --lo=* | --l=*)
  5201. !     local_prefix=`/bin/echo $arg | sed 's/-*l[-a-z]*=//'`
  5202.       ;;
  5203.        -exec-prefix | --exec-prefix | --exec-prefi | --exec-pref | --exec-pre \
  5204.       | --exec-pr | --exec-p | --exec- | --exec | --exe | --ex | --e)
  5205. ***************
  5206. *** 163,169 ****
  5207.        -exec-prefix=* | --exec-prefix=* | --exec-prefi=* | --exec-pref=* \
  5208.       | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* | --exec=* \
  5209.       | --exe=* | --ex=* | --e=*)
  5210. !     exec_prefix=`echo $arg | sed 's/-*e[-a-z]*=//'`
  5211.       ;;
  5212.        -with-gnu-ld | --with-gnu-ld | --with-gnu-l)
  5213.       gnu_ld=yes
  5214. --- 175,181 ----
  5215.        -exec-prefix=* | --exec-prefix=* | --exec-prefi=* | --exec-pref=* \
  5216.       | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* | --exec=* \
  5217.       | --exe=* | --ex=* | --e=*)
  5218. !     exec_prefix=`/bin/echo $arg | sed 's/-*e[-a-z]*=//'`
  5219.       ;;
  5220.        -with-gnu-ld | --with-gnu-ld | --with-gnu-l)
  5221.       gnu_ld=yes
  5222. ***************
  5223. *** 297,303 ****
  5224.       use_collect2=
  5225.       # Set this to override the default target model.
  5226.       target_cpu_default=
  5227. !     # Set this to force use of install.sh.
  5228.       broken_install=
  5229.       # Set this to control which fixincludes program to use.
  5230.       fixincludes=fixincludes
  5231. --- 309,316 ----
  5232.       use_collect2=
  5233.       # Set this to override the default target model.
  5234.       target_cpu_default=
  5235. !     # Set this to force use of install.sh (if set to 'yes')
  5236. !     # Set to name of installer to use a custom installer.
  5237.       broken_install=
  5238.       # Set this to control which fixincludes program to use.
  5239.       fixincludes=fixincludes
  5240. ***************
  5241. *** 642,647 ****
  5242. --- 655,670 ----
  5243.           tm_file=sparc/lite.h
  5244.           use_collect2=yes
  5245.           ;;
  5246. +     m68k-*-amigados)
  5247. +         xm_file=m68k/xm-amigados.h
  5248. +         out_file=m68k/amigados.c
  5249. +         tm_file=m68k/amigados.h
  5250. +         tmake_file=m68k/t-amigados
  5251. +         xmake_file=m68k/x-amigados
  5252. +         fixincludes=Makefile.in # Headers are already fixed.
  5253. +         broken_install=cp
  5254. +         install_headers_dir=install-headers-cp
  5255. +         ;;
  5256.       m68k-cbm-sysv4*)        # Commodore variant of V.4.
  5257.           tm_file=m68k/amix.h
  5258.           xm_file=m68k/xm-amix.h
  5259. ***************
  5260. *** 1763,1770 ****
  5261.   then true
  5262.   else
  5263.       rm -f Makefile.xx
  5264. !     abssrcdir=`cd ${srcdir}; pwd`
  5265. !     sed "s|^INSTALL = .*|INSTALL = ${abssrcdir}/install.sh -c|" Makefile.tem > Makefile.xx
  5266.       rm -f Makefile.tem
  5267.       mv Makefile.xx Makefile.tem
  5268.   fi
  5269. --- 1786,1799 ----
  5270.   then true
  5271.   else
  5272.       rm -f Makefile.xx
  5273. !     if [ x$host_broken_install = xyes ]
  5274. !     then
  5275. !         abssrcdir=`cd ${srcdir}; pwd`
  5276. !         installer=${abssrcdir}/install.sh -c
  5277. !     else
  5278. !         installer=$host_broken_install
  5279. !     fi
  5280. !     sed "s|^INSTALL = .*|INSTALL = ${installer}|" Makefile.tem > Makefile.xx
  5281.       rm -f Makefile.tem
  5282.       mv Makefile.xx Makefile.tem
  5283.   fi
  5284. diff -rc --new-file /src/baseline/gcc-2.5.8/cp-parse.c gcc-2.5.8/cp-parse.c
  5285. *** /src/baseline/gcc-2.5.8/cp-parse.c    Sat Nov 27 07:35:17 1993
  5286. --- gcc-2.5.8/cp-parse.c    Tue Feb 22 11:23:11 1994
  5287. ***************
  5288. *** 2657,2663 ****
  5289.       65,    66,    67,    68,    69,    70,    71,    72,    73
  5290.   };
  5291.   /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
  5292. ! #line 3 "/usr/local/lib/bison.simple"
  5293.   
  5294.   /* Skeleton output parser for bison,
  5295.      Copyright (C) 1984, 1989, 1990 Bob Corbett and Richard Stallman
  5296. --- 2657,2663 ----
  5297.       65,    66,    67,    68,    69,    70,    71,    72,    73
  5298.   };
  5299.   /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
  5300. ! #line 3 "/usr/lib/bison.simple"
  5301.   
  5302.   /* Skeleton output parser for bison,
  5303.      Copyright (C) 1984, 1989, 1990 Bob Corbett and Richard Stallman
  5304. ***************
  5305. *** 2838,2861 ****
  5306.   #endif
  5307.   #endif
  5308.   
  5309. ! #line 184 "/usr/local/lib/bison.simple"
  5310. ! /* The user can define YYPARSE_PARAM as the name of an argument to be passed
  5311. !    into yyparse.  The argument should have type void *.
  5312. !    It should actually point to an object.
  5313. !    Grammar actions can access the variable by casting it
  5314. !    to the proper pointer type.  */
  5315. ! #ifdef YYPARSE_PARAM
  5316. ! #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
  5317. ! #else
  5318. ! #define YYPARSE_PARAM
  5319. ! #define YYPARSE_PARAM_DECL
  5320. ! #endif
  5321.   int
  5322. ! yyparse(YYPARSE_PARAM)
  5323. !      YYPARSE_PARAM_DECL
  5324.   {
  5325.     register int yystate;
  5326.     register int yyn;
  5327. --- 2838,2846 ----
  5328.   #endif
  5329.   #endif
  5330.   
  5331. ! #line 184 "/usr/lib/bison.simple"
  5332.   int
  5333. ! yyparse()
  5334.   {
  5335.     register int yystate;
  5336.     register int yyn;
  5337. ***************
  5338. *** 7264,7270 ****
  5339.       break;}
  5340.   }
  5341.      /* the action file gets copied in in place of this dollarsign */
  5342. ! #line 480 "/usr/local/lib/bison.simple"
  5343.   
  5344.     yyvsp -= yylen;
  5345.     yyssp -= yylen;
  5346. --- 7249,7255 ----
  5347.       break;}
  5348.   }
  5349.      /* the action file gets copied in in place of this dollarsign */
  5350. ! #line 465 "/usr/lib/bison.simple"
  5351.   
  5352.     yyvsp -= yylen;
  5353.     yyssp -= yylen;
  5354. diff -rc --new-file /src/baseline/gcc-2.5.8/cpp.info gcc-2.5.8/cpp.info
  5355. *** /src/baseline/gcc-2.5.8/cpp.info    Thu Oct 14 04:47:18 1993
  5356. --- gcc-2.5.8/cpp.info    Tue May  3 14:09:31 1994
  5357. ***************
  5358. *** 1,4 ****
  5359. ! This is Info file cpp.info, produced by Makeinfo-1.54 from the input
  5360.   file cpp.texi.
  5361.   
  5362.      This file documents the GNU C Preprocessor.
  5363. --- 1,4 ----
  5364. ! This is Info file cpp.info, produced by Makeinfo-1.55 from the input
  5365.   file cpp.texi.
  5366.   
  5367.      This file documents the GNU C Preprocessor.
  5368. ***************
  5369. *** 21,28 ****
  5370.   
  5371.   Indirect:
  5372.   cpp.info-1: 778
  5373. ! cpp.info-2: 50641
  5374. ! cpp.info-3: 99631
  5375.   
  5376.   Tag Table:
  5377.   (Indirect)
  5378. --- 21,28 ----
  5379.   
  5380.   Indirect:
  5381.   cpp.info-1: 778
  5382. ! cpp.info-2: 50624
  5383. ! cpp.info-3: 99614
  5384.   
  5385.   Tag Table:
  5386.   (Indirect)
  5387. ***************
  5388. *** 35,74 ****
  5389.   Node: Include Operation12652
  5390.   Node: Once-Only14327
  5391.   Node: Inheritance16636
  5392. ! Node: Macros19196
  5393. ! Node: Simple Macros20110
  5394. ! Node: Argument Macros23230
  5395. ! Node: Predefined28900
  5396. ! Node: Standard Predefined29330
  5397. ! Node: Nonstandard Predefined34543
  5398. ! Node: Stringification38116
  5399. ! Node: Concatenation41040
  5400. ! Node: Undefining44313
  5401. ! Node: Redefining45346
  5402. ! Node: Macro Pitfalls46646
  5403. ! Node: Misnesting47750
  5404. ! Node: Macro Parentheses48764
  5405. ! Node: Swallow Semicolon50641
  5406. ! Node: Side Effects52541
  5407. ! Node: Self-Reference54239
  5408. ! Node: Argument Prescan56515
  5409. ! Node: Cascaded Macros61517
  5410. ! Node: Newlines in Args62572
  5411. ! Node: Conditionals63917
  5412. ! Node: Conditional Uses65263
  5413. ! Node: Conditional Syntax66628
  5414. ! Node: #if Command67206
  5415. ! Node: #else Command69457
  5416. ! Node: #elif Command70112
  5417. ! Node: Deleted Code71474
  5418. ! Node: Conditionals-Macros72010
  5419. ! Node: Assertions75707
  5420. ! Node: #error Command79937
  5421. ! Node: Combining Sources81361
  5422. ! Node: Other Commands84257
  5423. ! Node: Output85692
  5424. ! Node: Invocation86847
  5425. ! Node: Concept Index97960
  5426. ! Node: Index99631
  5427.   
  5428.   End Tag Table
  5429. --- 35,74 ----
  5430.   Node: Include Operation12652
  5431.   Node: Once-Only14327
  5432.   Node: Inheritance16636
  5433. ! Node: Macros19179
  5434. ! Node: Simple Macros20093
  5435. ! Node: Argument Macros23213
  5436. ! Node: Predefined28883
  5437. ! Node: Standard Predefined29313
  5438. ! Node: Nonstandard Predefined34526
  5439. ! Node: Stringification38099
  5440. ! Node: Concatenation41023
  5441. ! Node: Undefining44296
  5442. ! Node: Redefining45329
  5443. ! Node: Macro Pitfalls46629
  5444. ! Node: Misnesting47733
  5445. ! Node: Macro Parentheses48747
  5446. ! Node: Swallow Semicolon50624
  5447. ! Node: Side Effects52524
  5448. ! Node: Self-Reference54222
  5449. ! Node: Argument Prescan56498
  5450. ! Node: Cascaded Macros61500
  5451. ! Node: Newlines in Args62555
  5452. ! Node: Conditionals63900
  5453. ! Node: Conditional Uses65246
  5454. ! Node: Conditional Syntax66611
  5455. ! Node: #if Command67189
  5456. ! Node: #else Command69440
  5457. ! Node: #elif Command70095
  5458. ! Node: Deleted Code71457
  5459. ! Node: Conditionals-Macros71993
  5460. ! Node: Assertions75690
  5461. ! Node: #error Command79920
  5462. ! Node: Combining Sources81344
  5463. ! Node: Other Commands84240
  5464. ! Node: Output85675
  5465. ! Node: Invocation86830
  5466. ! Node: Concept Index97943
  5467. ! Node: Index99614
  5468.   
  5469.   End Tag Table
  5470. diff -rc --new-file /src/baseline/gcc-2.5.8/cpp.info-1 gcc-2.5.8/cpp.info-1
  5471. *** /src/baseline/gcc-2.5.8/cpp.info-1    Thu Oct 14 04:47:17 1993
  5472. --- gcc-2.5.8/cpp.info-1    Tue May  3 14:09:29 1994
  5473. ***************
  5474. *** 1,4 ****
  5475. ! This is Info file cpp.info, produced by Makeinfo-1.54 from the input
  5476.   file cpp.texi.
  5477.   
  5478.      This file documents the GNU C Preprocessor.
  5479. --- 1,4 ----
  5480. ! This is Info file cpp.info, produced by Makeinfo-1.55 from the input
  5481.   file cpp.texi.
  5482.   
  5483.      This file documents the GNU C Preprocessor.
  5484. ***************
  5485. *** 415,421 ****
  5486.   file `sys/signal.h', but the version of `/usr/include/sys/signal.h' on
  5487.   a particular system doesn't do what the application program expects.
  5488.   It might be convenient to define a "local" version, perhaps under the
  5489. ! name `/usr/local/include/sys/signal.h', to override or add to the one
  5490.   supplied by the system.
  5491.   
  5492.      You can do this by using the option `-I.' for compilation, and
  5493. --- 415,421 ----
  5494.   file `sys/signal.h', but the version of `/usr/include/sys/signal.h' on
  5495.   a particular system doesn't do what the application program expects.
  5496.   It might be convenient to define a "local" version, perhaps under the
  5497. ! name `/gnu/include/sys/signal.h', to override or add to the one
  5498.   supplied by the system.
  5499.   
  5500.      You can do this by using the option `-I.' for compilation, and
  5501. ***************
  5502. *** 438,449 ****
  5503.   searching the list of header file directories *after* the directory in
  5504.   which the current file was found.
  5505.   
  5506. !    Suppose you specify `-I /usr/local/include', and the list of
  5507. ! directories to search also includes `/usr/include'; and suppose that
  5508. ! both directories contain a file named `sys/signal.h'.  Ordinary
  5509. ! `#include <sys/signal.h>' finds the file under `/usr/local/include'.
  5510. ! If that file contains `#include_next <sys/signal.h>', it starts
  5511. ! searching after that directory, and finds the file in `/usr/include'.
  5512.   
  5513.   
  5514.   File: cpp.info,  Node: Macros,  Next: Conditionals,  Prev: Header Files,  Up: Top
  5515. --- 438,449 ----
  5516.   searching the list of header file directories *after* the directory in
  5517.   which the current file was found.
  5518.   
  5519. !    Suppose you specify `-I /gnu/include', and the list of directories
  5520. ! to search also includes `/usr/include'; and suppose that both
  5521. ! directories contain a file named `sys/signal.h'.  Ordinary `#include
  5522. ! <sys/signal.h>' finds the file under `/gnu/include'.  If that file
  5523. ! contains `#include_next <sys/signal.h>', it starts searching after that
  5524. ! directory, and finds the file in `/usr/include'.
  5525.   
  5526.   
  5527.   File: cpp.info,  Node: Macros,  Next: Conditionals,  Prev: Header Files,  Up: Top
  5528. diff -rc --new-file /src/baseline/gcc-2.5.8/cpp.info-2 gcc-2.5.8/cpp.info-2
  5529. *** /src/baseline/gcc-2.5.8/cpp.info-2    Thu Oct 14 04:47:17 1993
  5530. --- gcc-2.5.8/cpp.info-2    Tue May  3 14:09:30 1994
  5531. ***************
  5532. *** 1,4 ****
  5533. ! This is Info file cpp.info, produced by Makeinfo-1.54 from the input
  5534.   file cpp.texi.
  5535.   
  5536.      This file documents the GNU C Preprocessor.
  5537. --- 1,4 ----
  5538. ! This is Info file cpp.info, produced by Makeinfo-1.55 from the input
  5539.   file cpp.texi.
  5540.   
  5541.      This file documents the GNU C Preprocessor.
  5542. diff -rc --new-file /src/baseline/gcc-2.5.8/cpp.info-3 gcc-2.5.8/cpp.info-3
  5543. *** /src/baseline/gcc-2.5.8/cpp.info-3    Thu Oct 14 04:47:18 1993
  5544. --- gcc-2.5.8/cpp.info-3    Tue May  3 14:09:30 1994
  5545. ***************
  5546. *** 1,4 ****
  5547. ! This is Info file cpp.info, produced by Makeinfo-1.54 from the input
  5548.   file cpp.texi.
  5549.   
  5550.      This file documents the GNU C Preprocessor.
  5551. --- 1,4 ----
  5552. ! This is Info file cpp.info, produced by Makeinfo-1.55 from the input
  5553.   file cpp.texi.
  5554.   
  5555.      This file documents the GNU C Preprocessor.
  5556. diff -rc --new-file /src/baseline/gcc-2.5.8/cpp.texi gcc-2.5.8/cpp.texi
  5557. *** /src/baseline/gcc-2.5.8/cpp.texi    Tue Oct 12 02:59:12 1993
  5558. --- gcc-2.5.8/cpp.texi    Tue Feb 22 11:27:15 1994
  5559. ***************
  5560. *** 477,483 ****
  5561.   @file{sys/signal.h}, but the version of @file{/usr/include/sys/signal.h}
  5562.   on a particular system doesn't do what the application program expects.
  5563.   It might be convenient to define a ``local'' version, perhaps under the
  5564. ! name @file{/usr/local/include/sys/signal.h}, to override or add to the
  5565.   one supplied by the system.
  5566.   
  5567.   You can do this by using the option @samp{-I.} for compilation, and
  5568. --- 477,483 ----
  5569.   @file{sys/signal.h}, but the version of @file{/usr/include/sys/signal.h}
  5570.   on a particular system doesn't do what the application program expects.
  5571.   It might be convenient to define a ``local'' version, perhaps under the
  5572. ! name @file{/gnu/include/sys/signal.h}, to override or add to the
  5573.   one supplied by the system.
  5574.   
  5575.   You can do this by using the option @samp{-I.} for compilation, and
  5576. ***************
  5577. *** 503,513 ****
  5578.   file directories @emph{after} the directory in which the current file
  5579.   was found.
  5580.   
  5581. ! Suppose you specify @samp{-I /usr/local/include}, and the list of
  5582.   directories to search also includes @file{/usr/include}; and suppose that
  5583.   both directories contain a file named @file{sys/signal.h}.  Ordinary
  5584.   @samp{#include <sys/signal.h>} finds the file under
  5585. ! @file{/usr/local/include}.  If that file contains @samp{#include_next
  5586.   <sys/signal.h>}, it starts searching after that directory, and finds the
  5587.   file in @file{/usr/include}.
  5588.   
  5589. --- 503,513 ----
  5590.   file directories @emph{after} the directory in which the current file
  5591.   was found.
  5592.   
  5593. ! Suppose you specify @samp{-I /gnu/include}, and the list of
  5594.   directories to search also includes @file{/usr/include}; and suppose that
  5595.   both directories contain a file named @file{sys/signal.h}.  Ordinary
  5596.   @samp{#include <sys/signal.h>} finds the file under
  5597. ! @file{/gnu/include}.  If that file contains @samp{#include_next
  5598.   <sys/signal.h>}, it starts searching after that directory, and finds the
  5599.   file in @file{/usr/include}.
  5600.   
  5601. diff -rc --new-file /src/baseline/gcc-2.5.8/cross-make gcc-2.5.8/cross-make
  5602. *** /src/baseline/gcc-2.5.8/cross-make    Thu Sep  9 14:17:56 1993
  5603. --- gcc-2.5.8/cross-make    Tue Feb 22 11:27:19 1994
  5604. ***************
  5605. *** 11,17 ****
  5606.   RANLIB = $(RANLIB_FOR_TARGET)
  5607.   RANLIB_TEST = $(RANLIB_TEST_FOR_TARGET)
  5608.   
  5609. ! # Dir to search for system headers.  Normally /usr/include.
  5610.   SYSTEM_HEADER_DIR = $(tooldir)/include
  5611.   
  5612.   # Don't try to compile the things we can't compile.
  5613. --- 11,17 ----
  5614.   RANLIB = $(RANLIB_FOR_TARGET)
  5615.   RANLIB_TEST = $(RANLIB_TEST_FOR_TARGET)
  5616.   
  5617. ! # Dir to search for system headers.  Normally /gnu/include.
  5618.   SYSTEM_HEADER_DIR = $(tooldir)/include
  5619.   
  5620.   # Don't try to compile the things we can't compile.
  5621. ***************
  5622. *** 20,26 ****
  5623.   # Use cross-compiler version of float.h.
  5624.   FLOAT_H = $(CROSS_FLOAT_H)
  5625.   
  5626. ! # Don't install assert.h in /usr/local/include.
  5627.   assertdir = $(tooldir)/include
  5628.   
  5629.   # Don't run fixproto
  5630. --- 20,26 ----
  5631.   # Use cross-compiler version of float.h.
  5632.   FLOAT_H = $(CROSS_FLOAT_H)
  5633.   
  5634. ! # Don't install assert.h in /local/include.
  5635.   assertdir = $(tooldir)/include
  5636.   
  5637.   # Don't run fixproto
  5638. diff -rc --new-file /src/baseline/gcc-2.5.8/g++.1 gcc-2.5.8/g++.1
  5639. *** /src/baseline/gcc-2.5.8/g++.1    Wed Oct 13 19:15:18 1993
  5640. --- gcc-2.5.8/g++.1    Tue Feb 22 11:27:23 1994
  5641. ***************
  5642. *** 598,604 ****
  5643.   .sp
  5644.   .I LIBDIR
  5645.   is usually
  5646. ! .B /usr/local/lib/\c
  5647.   .IR machine / version .
  5648.   .br
  5649.   .I TMPDIR
  5650. --- 598,604 ----
  5651.   .sp
  5652.   .I LIBDIR
  5653.   is usually
  5654. ! .B /gnu/lib/\c
  5655.   .IR machine / version .
  5656.   .br
  5657.   .I TMPDIR
  5658. diff -rc --new-file /src/baseline/gcc-2.5.8/gcc.1 gcc-2.5.8/gcc.1
  5659. *** /src/baseline/gcc-2.5.8/gcc.1    Wed Oct 13 19:19:36 1993
  5660. --- gcc-2.5.8/gcc.1    Tue Feb 22 11:27:28 1994
  5661. ***************
  5662. *** 1542,1548 ****
  5663.   `\|\c
  5664.   .B /usr/lib/gcc/\c
  5665.   \&\|' and `\|\c
  5666. ! .B /usr/local/lib/gcc-lib/\c
  5667.   \&\|'.  If neither of
  5668.   those results in a file name that is found, the compiler driver
  5669.   searches for the unmodified program
  5670. --- 1542,1548 ----
  5671.   `\|\c
  5672.   .B /usr/lib/gcc/\c
  5673.   \&\|' and `\|\c
  5674. ! .B /gnu/lib/gcc-lib/\c
  5675.   \&\|'.  If neither of
  5676.   those results in a file name that is found, the compiler driver
  5677.   searches for the unmodified program
  5678. ***************
  5679. *** 3997,4003 ****
  5680.   .fi
  5681.   .I LIBDIR
  5682.   is usually
  5683. ! .B /usr/local/lib/\c
  5684.   .IR machine / version .
  5685.   .br
  5686.   .I TMPDIR
  5687. --- 3997,4003 ----
  5688.   .fi
  5689.   .I LIBDIR
  5690.   is usually
  5691. ! .B /gnu/lib/\c
  5692.   .IR machine / version .
  5693.   .br
  5694.   .I TMPDIR
  5695. diff -rc --new-file /src/baseline/gcc-2.5.8/gcc.c gcc-2.5.8/gcc.c
  5696. *** /src/baseline/gcc-2.5.8/gcc.c    Thu Dec 23 18:50:01 1993
  5697. --- gcc-2.5.8/gcc.c    Fri Jul  1 13:45:19 1994
  5698. ***************
  5699. *** 578,584 ****
  5700.     {".adb", "@ada"},
  5701.     {".ada", "@ada"},
  5702.     {"@ada",
  5703. !    "gnat1 %{gnat*} %{k8:-gnatk8} %{w:-gnatws}\
  5704.          -dumpbase %b.ada\
  5705.          %{g*} %{O*} %{p} %{pg:-p} %{f*} %{d*}\
  5706.          %{pg:%{fomit-frame-pointer:%e-pg and -fomit-frame-pointer are incompatible}}\
  5707. --- 578,584 ----
  5708.     {".adb", "@ada"},
  5709.     {".ada", "@ada"},
  5710.     {"@ada",
  5711. !    "gnat1 %{gnat*} %{k8:-gnatk8} %{!v:-quiet} %{w:-gnatws}\
  5712.          -dumpbase %b.ada\
  5713.          %{g*} %{O*} %{p} %{pg:-p} %{f*} %{d*}\
  5714.          %{pg:%{fomit-frame-pointer:%e-pg and -fomit-frame-pointer are incompatible}}\
  5715. ***************
  5716. *** 1162,1178 ****
  5717.   #endif
  5718.   
  5719.   #ifndef STANDARD_EXEC_PREFIX
  5720. ! #define STANDARD_EXEC_PREFIX "/usr/local/lib/gcc-lib/"
  5721.   #endif /* !defined STANDARD_EXEC_PREFIX */
  5722.   
  5723.   static char *standard_exec_prefix = STANDARD_EXEC_PREFIX;
  5724. ! static char *standard_exec_prefix_1 = "/usr/lib/gcc/";
  5725.   #ifdef MD_EXEC_PREFIX
  5726.   static char *md_exec_prefix = MD_EXEC_PREFIX;
  5727.   #endif
  5728.   
  5729.   #ifndef STANDARD_STARTFILE_PREFIX
  5730. ! #define STANDARD_STARTFILE_PREFIX "/usr/local/lib/"
  5731.   #endif /* !defined STANDARD_STARTFILE_PREFIX */
  5732.   
  5733.   #ifdef MD_STARTFILE_PREFIX
  5734. --- 1162,1178 ----
  5735.   #endif
  5736.   
  5737.   #ifndef STANDARD_EXEC_PREFIX
  5738. ! #define STANDARD_EXEC_PREFIX "/gnu/lib/gcc-lib/"
  5739.   #endif /* !defined STANDARD_EXEC_PREFIX */
  5740.   
  5741.   static char *standard_exec_prefix = STANDARD_EXEC_PREFIX;
  5742. ! static char *standard_exec_prefix_1 = "/local/lib/gcc-lib/";
  5743.   #ifdef MD_EXEC_PREFIX
  5744.   static char *md_exec_prefix = MD_EXEC_PREFIX;
  5745.   #endif
  5746.   
  5747.   #ifndef STANDARD_STARTFILE_PREFIX
  5748. ! #define STANDARD_STARTFILE_PREFIX "/gnu/lib/"
  5749.   #endif /* !defined STANDARD_STARTFILE_PREFIX */
  5750.   
  5751.   #ifdef MD_STARTFILE_PREFIX
  5752. ***************
  5753. *** 1182,1192 ****
  5754.   static char *md_startfile_prefix_1 = MD_STARTFILE_PREFIX_1;
  5755.   #endif
  5756.   static char *standard_startfile_prefix = STANDARD_STARTFILE_PREFIX;
  5757. ! static char *standard_startfile_prefix_1 = "/lib/";
  5758. ! static char *standard_startfile_prefix_2 = "/usr/lib/";
  5759.   
  5760.   #ifndef TOOLDIR_BASE_PREFIX
  5761. ! #define TOOLDIR_BASE_PREFIX "/usr/local/"
  5762.   #endif
  5763.   static char *tooldir_base_prefix = TOOLDIR_BASE_PREFIX;
  5764.   static char *tooldir_prefix;
  5765. --- 1182,1192 ----
  5766.   static char *md_startfile_prefix_1 = MD_STARTFILE_PREFIX_1;
  5767.   #endif
  5768.   static char *standard_startfile_prefix = STANDARD_STARTFILE_PREFIX;
  5769. ! static char *standard_startfile_prefix_1 = "/local/lib/";
  5770. ! static char *standard_startfile_prefix_2 = "/local/lib/";
  5771.   
  5772.   #ifndef TOOLDIR_BASE_PREFIX
  5773. ! #define TOOLDIR_BASE_PREFIX "/local/"
  5774.   #endif
  5775.   static char *tooldir_base_prefix = TOOLDIR_BASE_PREFIX;
  5776.   static char *tooldir_prefix;
  5777. ***************
  5778. *** 1398,1405 ****
  5779. --- 1398,1409 ----
  5780.     base = choose_temp_base_try (P_tmpdir, base);
  5781.   #endif
  5782.   
  5783. + #ifdef amigados
  5784. +   base = "ram:";
  5785. + #else
  5786.     base = choose_temp_base_try ("/usr/tmp", base);
  5787.     base = choose_temp_base_try ("/tmp", base);
  5788. + #endif
  5789.   
  5790.     /* If all else fails, use the current directory! */  
  5791.     if (base == (char *)0)
  5792. ***************
  5793. *** 1408,1414 ****
  5794.     len = strlen (base);
  5795.     temp_filename = xmalloc (len + sizeof("/ccXXXXXX") + 1);
  5796.     strcpy (temp_filename, base);
  5797. !   if (len > 0 && temp_filename[len-1] != '/')
  5798.       temp_filename[len++] = '/';
  5799.     strcpy (temp_filename + len, "ccXXXXXX");
  5800.   
  5801. --- 1412,1422 ----
  5802.     len = strlen (base);
  5803.     temp_filename = xmalloc (len + sizeof("/ccXXXXXX") + 1);
  5804.     strcpy (temp_filename, base);
  5805. !   if (len > 0 && temp_filename[len-1] != '/'
  5806. ! #ifdef amigados
  5807. !                         && temp_filename[len-1] != ':'
  5808. ! #endif
  5809. !                                     )
  5810.       temp_filename[len++] = '/';
  5811.     strcpy (temp_filename + len, "ccXXXXXX");
  5812.   
  5813. ***************
  5814. *** 1552,1558 ****
  5815.   
  5816.     /* Determine the filename to execute (special case for absolute paths).  */
  5817.   
  5818. !   if (*name == '/')
  5819.       {
  5820.         if (access (name, mode))
  5821.       {
  5822. --- 1560,1570 ----
  5823.   
  5824.     /* Determine the filename to execute (special case for absolute paths).  */
  5825.   
  5826. !   if (*name == '/'
  5827. ! #ifdef amigados
  5828. !           || index (name, ':')
  5829. ! #endif
  5830. !                     )
  5831.       {
  5832.         if (access (name, mode))
  5833.       {
  5834. ***************
  5835. *** 1758,1763 ****
  5836. --- 1770,1776 ----
  5837.      NOT_LAST is nonzero if this is not the last subcommand
  5838.      (i.e. its output should be piped to the next one.)  */
  5839.   
  5840. + #ifndef PEXECUTE
  5841.   #ifndef OS2
  5842.   #ifdef __MSDOS__
  5843.   
  5844. ***************
  5845. *** 1913,1918 ****
  5846. --- 1926,1932 ----
  5847.     return (search_flag ? spawnv : spawnvp) (1, program, argv);
  5848.   }
  5849.   #endif /* not OS2 */
  5850. + #endif /* !defined (PEXECUTE) */
  5851.   
  5852.   /* Execute the command specified by the arguments on the current line of spec.
  5853.      When using pipes, this includes several piped-together commands
  5854. ***************
  5855. *** 2007,2015 ****
  5856. --- 2021,2035 ----
  5857.       {
  5858.         char *string = commands[i].argv[0];
  5859.   
  5860. + #ifdef PEXECUTE
  5861. +       commands[i].pid = PEXECUTE (string != commands[i].prog,
  5862. +                   string, commands[i].argv,
  5863. +                   i + 1 < n_commands);
  5864. + #else
  5865.         commands[i].pid = pexecute (string != commands[i].prog,
  5866.                     string, commands[i].argv,
  5867.                     i + 1 < n_commands);
  5868. + #endif
  5869.   
  5870.         if (string != commands[i].prog)
  5871.       free (string);
  5872. ***************
  5873. *** 2030,2040 ****
  5874. --- 2050,2064 ----
  5875.       int pid;
  5876.       char *prog;
  5877.   
  5878. + #ifdef PEXECUTE_RESULT
  5879. +     pid = PEXECUTE_RESULT (status, commands[i]);
  5880. + #else /* PEXECUTE_RESULT */
  5881.   #ifdef __MSDOS__
  5882.           status = pid = commands[i].pid;
  5883.   #else
  5884.       pid = wait (&status);
  5885.   #endif
  5886. + #endif /* PEXECUTE_RESULT */
  5887.       if (pid < 0)
  5888.         abort ();
  5889.   
  5890. ***************
  5891. *** 2141,2146 ****
  5892. --- 2165,2171 ----
  5893.         if (*endp == PATH_SEPARATOR || *endp == 0)
  5894.           {
  5895.             strncpy (nstore, startp, endp-startp);
  5896. + #ifndef amigados
  5897.             if (endp == startp)
  5898.           {
  5899.             strcpy (nstore, "./");
  5900. ***************
  5901. *** 2152,2157 ****
  5902. --- 2177,2191 ----
  5903.           }
  5904.             else
  5905.           nstore[endp-startp] = 0;
  5906. + #else
  5907. +           if (endp[-1] != '/' && endp[-1] != ':')
  5908. +         {
  5909. +           nstore[endp-startp] = '/';
  5910. +           nstore[endp-startp+1] = 0;
  5911. +         }
  5912. +           else
  5913. +         nstore[endp-startp] = 0;
  5914. + #endif
  5915.             add_prefix (&exec_prefix, nstore, 0, 0, NULL_PTR);
  5916.             if (*endp == 0)
  5917.           break;
  5918. ***************
  5919. *** 2174,2179 ****
  5920. --- 2208,2214 ----
  5921.         if (*endp == PATH_SEPARATOR || *endp == 0)
  5922.           {
  5923.             strncpy (nstore, startp, endp-startp);
  5924. + #ifndef amigados
  5925.             if (endp == startp)
  5926.           {
  5927.             strcpy (nstore, "./");
  5928. ***************
  5929. *** 2185,2190 ****
  5930. --- 2220,2234 ----
  5931.           }
  5932.             else
  5933.           nstore[endp-startp] = 0;
  5934. + #else
  5935. +           if (endp[-1] != '/' && endp[-1] != ':')
  5936. +         {
  5937. +           nstore[endp-startp] = '/';
  5938. +           nstore[endp-startp+1] = 0;
  5939. +         }
  5940. +           else
  5941. +         nstore[endp-startp] = 0;
  5942. + #endif
  5943.             add_prefix (&startfile_prefix, nstore, 0, 0, NULL_PTR);
  5944.             if (*endp == 0)
  5945.           break;
  5946. ***************
  5947. *** 2208,2213 ****
  5948. --- 2252,2258 ----
  5949.         if (*endp == PATH_SEPARATOR || *endp == 0)
  5950.           {
  5951.             strncpy (nstore, startp, endp-startp);
  5952. + #ifndef amigados
  5953.             if (endp == startp)
  5954.           {
  5955.             strcpy (nstore, "./");
  5956. ***************
  5957. *** 2219,2224 ****
  5958. --- 2264,2278 ----
  5959.           }
  5960.             else
  5961.           nstore[endp-startp] = 0;
  5962. + #else
  5963. +           if (endp[-1] != '/' && endp[-1] != ':')
  5964. +         {
  5965. +           nstore[endp-startp] = '/';
  5966. +           nstore[endp-startp+1] = 0;
  5967. +         }
  5968. +           else
  5969. +         nstore[endp-startp] = 0;
  5970. + #endif
  5971.             add_prefix (&startfile_prefix, nstore, 0, 0, NULL_PTR);
  5972.             if (*endp == 0)
  5973.           break;
  5974. ***************
  5975. *** 3862,3871 ****
  5976. --- 3916,3929 ----
  5977.         register char *p;
  5978.         int len;
  5979.   
  5980. + #ifdef FILE_NAME_NONDIRECTORY
  5981. +       input_basename = FILE_NAME_NONDIRECTORY (input_filename);
  5982. + #else
  5983.         input_basename = input_filename;
  5984.         for (p = input_filename; *p; p++)
  5985.           if (*p == '/')
  5986.             input_basename = p + 1;
  5987. + #endif
  5988.   
  5989.         /* Find a suffix starting with the last period,
  5990.            and set basename_length to exclude that suffix.  */
  5991. diff -rc --new-file /src/baseline/gcc-2.5.8/gcc.info gcc-2.5.8/gcc.info
  5992. *** /src/baseline/gcc-2.5.8/gcc.info    Sat Nov 27 15:39:23 1993
  5993. --- gcc-2.5.8/gcc.info    Tue May  3 14:10:31 1994
  5994. ***************
  5995. *** 1,4 ****
  5996. ! This is Info file gcc.info, produced by Makeinfo-1.54 from the input
  5997.   file gcc.texi.
  5998.   
  5999.      This file documents the use and the internals of the GNU compiler.
  6000. --- 1,4 ----
  6001. ! This is Info file gcc.info, produced by Makeinfo-1.55 from the input
  6002.   file gcc.texi.
  6003.   
  6004.      This file documents the use and the internals of the GNU compiler.
  6005. ***************
  6006. *** 32,57 ****
  6007.   gcc.info-1: 1305
  6008.   gcc.info-2: 49956
  6009.   gcc.info-3: 91430
  6010. ! gcc.info-4: 136088
  6011. ! gcc.info-5: 176230
  6012. ! gcc.info-6: 225032
  6013. ! gcc.info-7: 274452
  6014. ! gcc.info-8: 323146
  6015. ! gcc.info-9: 372521
  6016. ! gcc.info-10: 411789
  6017. ! gcc.info-11: 448922
  6018. ! gcc.info-12: 498287
  6019. ! gcc.info-13: 541773
  6020. ! gcc.info-14: 591219
  6021. ! gcc.info-15: 622815
  6022. ! gcc.info-16: 670482
  6023. ! gcc.info-17: 716044
  6024. ! gcc.info-18: 765468
  6025. ! gcc.info-19: 812673
  6026. ! gcc.info-20: 861775
  6027. ! gcc.info-21: 909034
  6028. ! gcc.info-22: 944667
  6029. ! gcc.info-23: 966158
  6030.   
  6031.   Tag Table:
  6032.   (Indirect)
  6033. --- 32,57 ----
  6034.   gcc.info-1: 1305
  6035.   gcc.info-2: 49956
  6036.   gcc.info-3: 91430
  6037. ! gcc.info-4: 136070
  6038. ! gcc.info-5: 176194
  6039. ! gcc.info-6: 224902
  6040. ! gcc.info-7: 274304
  6041. ! gcc.info-8: 322998
  6042. ! gcc.info-9: 372325
  6043. ! gcc.info-10: 411593
  6044. ! gcc.info-11: 448726
  6045. ! gcc.info-12: 498091
  6046. ! gcc.info-13: 541577
  6047. ! gcc.info-14: 591023
  6048. ! gcc.info-15: 622619
  6049. ! gcc.info-16: 670286
  6050. ! gcc.info-17: 715848
  6051. ! gcc.info-18: 765243
  6052. ! gcc.info-19: 812448
  6053. ! gcc.info-20: 861550
  6054. ! gcc.info-21: 908809
  6055. ! gcc.info-22: 944442
  6056. ! gcc.info-23: 965933
  6057.   
  6058.   Tag Table:
  6059.   (Indirect)
  6060. ***************
  6061. *** 73,286 ****
  6062.   Node: Assembler Options107289
  6063.   Node: Link Options107613
  6064.   Node: Directory Options111621
  6065. ! Node: Target Options114521
  6066. ! Node: Submodel Options118248
  6067. ! Node: M680x0 Options119594
  6068. ! Node: VAX Options122978
  6069. ! Node: SPARC Options123513
  6070. ! Node: Convex Options125569
  6071. ! Node: AMD29K Options127750
  6072. ! Node: M88K Options129898
  6073. ! Node: RS/6000 and PowerPC Options136088
  6074. ! Node: RT Options142032
  6075. ! Node: MIPS Options143736
  6076. ! Node: i386 Options149801
  6077. ! Node: HPPA Options151147
  6078. ! Node: Intel 960 Options152342
  6079. ! Node: DEC Alpha Options154952
  6080. ! Node: Clipper Options156624
  6081. ! Node: System V Options157024
  6082. ! Node: Code Gen Options157711
  6083. ! Node: Environment Variables165976
  6084. ! Node: Running Protoize170001
  6085. ! Node: Installation176230
  6086. ! Node: Other Dir211589
  6087. ! Node: Cross-Compiler213273
  6088. ! Node: Steps of Cross215085
  6089. ! Node: Configure Cross216203
  6090. ! Node: Tools and Libraries216852
  6091. ! Node: Cross Runtime219295
  6092. ! Node: Cross Headers223047
  6093. ! Node: Build Cross225032
  6094. ! Node: PA Install226937
  6095. ! Node: Sun Install229239
  6096. ! Node: 3b1 Install230978
  6097. ! Node: Unos Install232011
  6098. ! Node: VMS Install233551
  6099. ! Node: WE32K Install243486
  6100. ! Node: MIPS Install244865
  6101. ! Node: Collect2247727
  6102. ! Node: Header Dirs250570
  6103. ! Node: C Extensions251984
  6104. ! Node: Statement Exprs255159
  6105. ! Node: Local Labels257053
  6106. ! Node: Labels as Values259115
  6107. ! Node: Nested Functions260980
  6108. ! Node: Constructing Calls264836
  6109. ! Node: Naming Types266893
  6110. ! Node: Typeof267987
  6111. ! Node: Lvalues269852
  6112. ! Node: Conditionals272117
  6113. ! Node: Long Long273008
  6114. ! Node: Complex274452
  6115. ! Node: Zero Length276314
  6116. ! Node: Variable Length276988
  6117. ! Node: Macro Varargs279513
  6118. ! Node: Subscripting281616
  6119. ! Node: Pointer Arith282099
  6120. ! Node: Initializers282664
  6121. ! Node: Constructors283110
  6122. ! Node: Labeled Elements284804
  6123. ! Node: Case Ranges287126
  6124. ! Node: Cast to Union288085
  6125. ! Node: Function Attributes289163
  6126. ! Node: Function Prototypes294844
  6127. ! Node: Dollar Signs296549
  6128. ! Node: Character Escapes297336
  6129. ! Node: Alignment297617
  6130. ! Node: Variable Attributes299093
  6131. ! Node: Inline301992
  6132. ! Node: Extended Asm305727
  6133. ! Node: Asm Labels316014
  6134. ! Node: Explicit Reg Vars317333
  6135. ! Node: Global Reg Vars318581
  6136. ! Node: Local Reg Vars323146
  6137. ! Node: Alternate Keywords324738
  6138. ! Node: Incomplete Enums326140
  6139. ! Node: Function Names326848
  6140. ! Node: C++ Extensions327853
  6141. ! Node: Naming Results328833
  6142. ! Node: Min and Max332147
  6143. ! Node: Destructors and Goto333597
  6144. ! Node: C++ Interface334147
  6145. ! Node: Trouble339014
  6146. ! Node: Actual Bugs340582
  6147. ! Node: Installation Problems341688
  6148. ! Node: Cross-Compiler Problems355013
  6149. ! Node: Interoperation356484
  6150. ! Node: External Bugs370514
  6151. ! Node: Incompatibilities372521
  6152. ! Node: Fixed Headers381069
  6153. ! Node: Disappointments383408
  6154. ! Node: C++ Misunderstandings387628
  6155. ! Node: Static Definitions388275
  6156. ! Node: Temporaries389329
  6157. ! Node: Protoize Caveats391533
  6158. ! Node: Non-bugs395488
  6159. ! Node: Warnings and Errors404690
  6160. ! Node: Bugs406461
  6161. ! Node: Bug Criteria407821
  6162. ! Node: Bug Lists410251
  6163. ! Node: Bug Reporting411789
  6164. ! Node: Sending Patches423733
  6165. ! Node: Service429085
  6166. ! Node: VMS429646
  6167. ! Node: Include Files and VMS430001
  6168. ! Node: Global Declarations433891
  6169. ! Node: VMS Misc438200
  6170. ! Node: Portability442526
  6171. ! Node: Interface444289
  6172. ! Node: Passes448922
  6173. ! Node: RTL466265
  6174. ! Node: RTL Objects468153
  6175. ! Node: Accessors471197
  6176. ! Node: Flags476523
  6177. ! Node: Machine Modes485542
  6178. ! Node: Constants493099
  6179. ! Node: Regs and Memory498287
  6180. ! Node: Arithmetic509997
  6181. ! Node: Comparisons516065
  6182. ! Node: Bit Fields520127
  6183. ! Node: Conversions521491
  6184. ! Node: RTL Declarations524379
  6185. ! Node: Side Effects525188
  6186. ! Node: Incdec537735
  6187. ! Node: Assembler540251
  6188. ! Node: Insns541773
  6189. ! Node: Calls562518
  6190. ! Node: Sharing565113
  6191. ! Node: Reading RTL568189
  6192. ! Node: Machine Desc569133
  6193. ! Node: Patterns570986
  6194. ! Node: Example573930
  6195. ! Node: RTL Template575058
  6196. ! Node: Output Template587258
  6197. ! Node: Output Statement591219
  6198. ! Node: Constraints594932
  6199. ! Node: Simple Constraints595935
  6200. ! Node: Multi-Alternative607368
  6201. ! Node: Class Preferences610204
  6202. ! Node: Modifiers611084
  6203. ! Node: Machine Constraints614199
  6204. ! Node: No Constraints621694
  6205. ! Node: Standard Names622815
  6206. ! Node: Pattern Ordering650086
  6207. ! Node: Dependent Patterns651312
  6208. ! Node: Jump Patterns654252
  6209. ! Node: Insn Canonicalizations660068
  6210. ! Node: Peephole Definitions663563
  6211. ! Node: Expander Definitions670482
  6212. ! Node: Insn Splitting677622
  6213. ! Node: Insn Attributes684636
  6214. ! Node: Defining Attributes685683
  6215. ! Node: Expressions687695
  6216. ! Node: Tagging Insns694017
  6217. ! Node: Attr Example698380
  6218. ! Node: Insn Lengths700756
  6219. ! Node: Constant Attributes704120
  6220. ! Node: Delay Slots705280
  6221. ! Node: Function Units708491
  6222. ! Node: Target Macros714161
  6223. ! Node: Driver716044
  6224. ! Node: Run-time Target726307
  6225. ! Node: Storage Layout731789
  6226. ! Node: Type Layout744378
  6227. ! Node: Registers750707
  6228. ! Node: Register Basics751687
  6229. ! Node: Allocation Order755680
  6230. ! Node: Values in Registers757060
  6231. ! Node: Leaf Functions761814
  6232. ! Node: Stack Registers764635
  6233. ! Node: Obsolete Register Macros765468
  6234. ! Node: Register Classes768163
  6235. ! Node: Stack and Calling785880
  6236. ! Node: Frame Layout786255
  6237. ! Node: Frame Registers789660
  6238. ! Node: Elimination793379
  6239. ! Node: Stack Arguments797682
  6240. ! Node: Register Arguments803998
  6241. ! Node: Scalar Return812673
  6242. ! Node: Aggregate Return816636
  6243. ! Node: Caller Saves820351
  6244. ! Node: Function Entry821501
  6245. ! Node: Profiling830429
  6246. ! Node: Varargs833333
  6247. ! Node: Trampolines840016
  6248. ! Node: Library Calls846451
  6249. ! Node: Addressing Modes854223
  6250. ! Node: Condition Code861775
  6251. ! Node: Costs866398
  6252. ! Node: Sections874777
  6253. ! Node: PIC879566
  6254. ! Node: Assembler Format882056
  6255. ! Node: File Framework883061
  6256. ! Node: Data Output886768
  6257. ! Node: Uninitialized Data892207
  6258. ! Node: Label Output894802
  6259. ! Node: Initialization902891
  6260. ! Node: Macros for Initialization909034
  6261. ! Node: Instruction Output911817
  6262. ! Node: Dispatch Tables919763
  6263. ! Node: Alignment Output922105
  6264. ! Node: Debugging Info923802
  6265. ! Node: All Debuggers924354
  6266. ! Node: DBX Options926721
  6267. ! Node: DBX Hooks931305
  6268. ! Node: File Names and DBX934608
  6269. ! Node: SDB and DWARF936536
  6270. ! Node: Cross-compilation938220
  6271. ! Node: Misc944667
  6272. ! Node: Config960043
  6273. ! Node: Index966158
  6274.   
  6275.   End Tag Table
  6276. --- 73,286 ----
  6277.   Node: Assembler Options107289
  6278.   Node: Link Options107613
  6279.   Node: Directory Options111621
  6280. ! Node: Target Options114515
  6281. ! Node: Submodel Options118230
  6282. ! Node: M680x0 Options119576
  6283. ! Node: VAX Options122960
  6284. ! Node: SPARC Options123495
  6285. ! Node: Convex Options125551
  6286. ! Node: AMD29K Options127732
  6287. ! Node: M88K Options129880
  6288. ! Node: RS/6000 and PowerPC Options136070
  6289. ! Node: RT Options142014
  6290. ! Node: MIPS Options143718
  6291. ! Node: i386 Options149783
  6292. ! Node: HPPA Options151129
  6293. ! Node: Intel 960 Options152324
  6294. ! Node: DEC Alpha Options154934
  6295. ! Node: Clipper Options156606
  6296. ! Node: System V Options157006
  6297. ! Node: Code Gen Options157693
  6298. ! Node: Environment Variables165958
  6299. ! Node: Running Protoize169971
  6300. ! Node: Installation176194
  6301. ! Node: Other Dir211501
  6302. ! Node: Cross-Compiler213185
  6303. ! Node: Steps of Cross214997
  6304. ! Node: Configure Cross216115
  6305. ! Node: Tools and Libraries216764
  6306. ! Node: Cross Runtime219177
  6307. ! Node: Cross Headers222929
  6308. ! Node: Build Cross224902
  6309. ! Node: PA Install226807
  6310. ! Node: Sun Install229103
  6311. ! Node: 3b1 Install230842
  6312. ! Node: Unos Install231875
  6313. ! Node: VMS Install233415
  6314. ! Node: WE32K Install243350
  6315. ! Node: MIPS Install244729
  6316. ! Node: Collect2247591
  6317. ! Node: Header Dirs250434
  6318. ! Node: C Extensions251836
  6319. ! Node: Statement Exprs255011
  6320. ! Node: Local Labels256905
  6321. ! Node: Labels as Values258967
  6322. ! Node: Nested Functions260832
  6323. ! Node: Constructing Calls264688
  6324. ! Node: Naming Types266745
  6325. ! Node: Typeof267839
  6326. ! Node: Lvalues269704
  6327. ! Node: Conditionals271969
  6328. ! Node: Long Long272860
  6329. ! Node: Complex274304
  6330. ! Node: Zero Length276166
  6331. ! Node: Variable Length276840
  6332. ! Node: Macro Varargs279365
  6333. ! Node: Subscripting281468
  6334. ! Node: Pointer Arith281951
  6335. ! Node: Initializers282516
  6336. ! Node: Constructors282962
  6337. ! Node: Labeled Elements284656
  6338. ! Node: Case Ranges286978
  6339. ! Node: Cast to Union287937
  6340. ! Node: Function Attributes289015
  6341. ! Node: Function Prototypes294696
  6342. ! Node: Dollar Signs296401
  6343. ! Node: Character Escapes297188
  6344. ! Node: Alignment297469
  6345. ! Node: Variable Attributes298945
  6346. ! Node: Inline301844
  6347. ! Node: Extended Asm305579
  6348. ! Node: Asm Labels315866
  6349. ! Node: Explicit Reg Vars317185
  6350. ! Node: Global Reg Vars318433
  6351. ! Node: Local Reg Vars322998
  6352. ! Node: Alternate Keywords324590
  6353. ! Node: Incomplete Enums325992
  6354. ! Node: Function Names326700
  6355. ! Node: C++ Extensions327705
  6356. ! Node: Naming Results328685
  6357. ! Node: Min and Max331999
  6358. ! Node: Destructors and Goto333449
  6359. ! Node: C++ Interface333999
  6360. ! Node: Trouble338866
  6361. ! Node: Actual Bugs340434
  6362. ! Node: Installation Problems341540
  6363. ! Node: Cross-Compiler Problems354841
  6364. ! Node: Interoperation356312
  6365. ! Node: External Bugs370324
  6366. ! Node: Incompatibilities372325
  6367. ! Node: Fixed Headers380873
  6368. ! Node: Disappointments383212
  6369. ! Node: C++ Misunderstandings387432
  6370. ! Node: Static Definitions388079
  6371. ! Node: Temporaries389133
  6372. ! Node: Protoize Caveats391337
  6373. ! Node: Non-bugs395292
  6374. ! Node: Warnings and Errors404494
  6375. ! Node: Bugs406265
  6376. ! Node: Bug Criteria407625
  6377. ! Node: Bug Lists410055
  6378. ! Node: Bug Reporting411593
  6379. ! Node: Sending Patches423537
  6380. ! Node: Service428889
  6381. ! Node: VMS429450
  6382. ! Node: Include Files and VMS429805
  6383. ! Node: Global Declarations433695
  6384. ! Node: VMS Misc438004
  6385. ! Node: Portability442330
  6386. ! Node: Interface444093
  6387. ! Node: Passes448726
  6388. ! Node: RTL466069
  6389. ! Node: RTL Objects467957
  6390. ! Node: Accessors471001
  6391. ! Node: Flags476327
  6392. ! Node: Machine Modes485346
  6393. ! Node: Constants492903
  6394. ! Node: Regs and Memory498091
  6395. ! Node: Arithmetic509801
  6396. ! Node: Comparisons515869
  6397. ! Node: Bit Fields519931
  6398. ! Node: Conversions521295
  6399. ! Node: RTL Declarations524183
  6400. ! Node: Side Effects524992
  6401. ! Node: Incdec537539
  6402. ! Node: Assembler540055
  6403. ! Node: Insns541577
  6404. ! Node: Calls562322
  6405. ! Node: Sharing564917
  6406. ! Node: Reading RTL567993
  6407. ! Node: Machine Desc568937
  6408. ! Node: Patterns570790
  6409. ! Node: Example573734
  6410. ! Node: RTL Template574862
  6411. ! Node: Output Template587062
  6412. ! Node: Output Statement591023
  6413. ! Node: Constraints594736
  6414. ! Node: Simple Constraints595739
  6415. ! Node: Multi-Alternative607172
  6416. ! Node: Class Preferences610008
  6417. ! Node: Modifiers610888
  6418. ! Node: Machine Constraints614003
  6419. ! Node: No Constraints621498
  6420. ! Node: Standard Names622619
  6421. ! Node: Pattern Ordering649890
  6422. ! Node: Dependent Patterns651116
  6423. ! Node: Jump Patterns654056
  6424. ! Node: Insn Canonicalizations659872
  6425. ! Node: Peephole Definitions663367
  6426. ! Node: Expander Definitions670286
  6427. ! Node: Insn Splitting677426
  6428. ! Node: Insn Attributes684440
  6429. ! Node: Defining Attributes685487
  6430. ! Node: Expressions687499
  6431. ! Node: Tagging Insns693821
  6432. ! Node: Attr Example698184
  6433. ! Node: Insn Lengths700560
  6434. ! Node: Constant Attributes703924
  6435. ! Node: Delay Slots705084
  6436. ! Node: Function Units708295
  6437. ! Node: Target Macros713965
  6438. ! Node: Driver715848
  6439. ! Node: Run-time Target726082
  6440. ! Node: Storage Layout731564
  6441. ! Node: Type Layout744153
  6442. ! Node: Registers750482
  6443. ! Node: Register Basics751462
  6444. ! Node: Allocation Order755455
  6445. ! Node: Values in Registers756835
  6446. ! Node: Leaf Functions761589
  6447. ! Node: Stack Registers764410
  6448. ! Node: Obsolete Register Macros765243
  6449. ! Node: Register Classes767938
  6450. ! Node: Stack and Calling785655
  6451. ! Node: Frame Layout786030
  6452. ! Node: Frame Registers789435
  6453. ! Node: Elimination793154
  6454. ! Node: Stack Arguments797457
  6455. ! Node: Register Arguments803773
  6456. ! Node: Scalar Return812448
  6457. ! Node: Aggregate Return816411
  6458. ! Node: Caller Saves820126
  6459. ! Node: Function Entry821276
  6460. ! Node: Profiling830204
  6461. ! Node: Varargs833108
  6462. ! Node: Trampolines839791
  6463. ! Node: Library Calls846226
  6464. ! Node: Addressing Modes853998
  6465. ! Node: Condition Code861550
  6466. ! Node: Costs866173
  6467. ! Node: Sections874552
  6468. ! Node: PIC879341
  6469. ! Node: Assembler Format881831
  6470. ! Node: File Framework882836
  6471. ! Node: Data Output886543
  6472. ! Node: Uninitialized Data891982
  6473. ! Node: Label Output894577
  6474. ! Node: Initialization902666
  6475. ! Node: Macros for Initialization908809
  6476. ! Node: Instruction Output911592
  6477. ! Node: Dispatch Tables919538
  6478. ! Node: Alignment Output921880
  6479. ! Node: Debugging Info923577
  6480. ! Node: All Debuggers924129
  6481. ! Node: DBX Options926496
  6482. ! Node: DBX Hooks931080
  6483. ! Node: File Names and DBX934383
  6484. ! Node: SDB and DWARF936311
  6485. ! Node: Cross-compilation937995
  6486. ! Node: Misc944442
  6487. ! Node: Config959818
  6488. ! Node: Index965933
  6489.   
  6490.   End Tag Table
  6491. diff -rc --new-file /src/baseline/gcc-2.5.8/gcc.info-1 gcc-2.5.8/gcc.info-1
  6492. *** /src/baseline/gcc-2.5.8/gcc.info-1    Sat Nov 27 15:38:42 1993
  6493. --- gcc-2.5.8/gcc.info-1    Tue May  3 14:10:10 1994
  6494. ***************
  6495. *** 1,4 ****
  6496. ! This is Info file gcc.info, produced by Makeinfo-1.54 from the input
  6497.   file gcc.texi.
  6498.   
  6499.      This file documents the use and the internals of the GNU compiler.
  6500. --- 1,4 ----
  6501. ! This is Info file gcc.info, produced by Makeinfo-1.55 from the input
  6502.   file gcc.texi.
  6503.   
  6504.      This file documents the use and the internals of the GNU compiler.
  6505. diff -rc --new-file /src/baseline/gcc-2.5.8/gcc.info-10 gcc-2.5.8/gcc.info-10
  6506. *** /src/baseline/gcc-2.5.8/gcc.info-10    Sat Nov 27 15:38:59 1993
  6507. --- gcc-2.5.8/gcc.info-10    Tue May  3 14:10:18 1994
  6508. ***************
  6509. *** 1,4 ****
  6510. ! This is Info file gcc.info, produced by Makeinfo-1.54 from the input
  6511.   file gcc.texi.
  6512.   
  6513.      This file documents the use and the internals of the GNU compiler.
  6514. --- 1,4 ----
  6515. ! This is Info file gcc.info, produced by Makeinfo-1.55 from the input
  6516.   file gcc.texi.
  6517.   
  6518.      This file documents the use and the internals of the GNU compiler.
  6519. diff -rc --new-file /src/baseline/gcc-2.5.8/gcc.info-11 gcc-2.5.8/gcc.info-11
  6520. *** /src/baseline/gcc-2.5.8/gcc.info-11    Sat Nov 27 15:38:59 1993
  6521. --- gcc-2.5.8/gcc.info-11    Tue May  3 14:10:19 1994
  6522. ***************
  6523. *** 1,4 ****
  6524. ! This is Info file gcc.info, produced by Makeinfo-1.54 from the input
  6525.   file gcc.texi.
  6526.   
  6527.      This file documents the use and the internals of the GNU compiler.
  6528. --- 1,4 ----
  6529. ! This is Info file gcc.info, produced by Makeinfo-1.55 from the input
  6530.   file gcc.texi.
  6531.   
  6532.      This file documents the use and the internals of the GNU compiler.
  6533. diff -rc --new-file /src/baseline/gcc-2.5.8/gcc.info-12 gcc-2.5.8/gcc.info-12
  6534. *** /src/baseline/gcc-2.5.8/gcc.info-12    Sat Nov 27 15:39:04 1993
  6535. --- gcc-2.5.8/gcc.info-12    Tue May  3 14:10:20 1994
  6536. ***************
  6537. *** 1,4 ****
  6538. ! This is Info file gcc.info, produced by Makeinfo-1.54 from the input
  6539.   file gcc.texi.
  6540.   
  6541.      This file documents the use and the internals of the GNU compiler.
  6542. --- 1,4 ----
  6543. ! This is Info file gcc.info, produced by Makeinfo-1.55 from the input
  6544.   file gcc.texi.
  6545.   
  6546.      This file documents the use and the internals of the GNU compiler.
  6547. diff -rc --new-file /src/baseline/gcc-2.5.8/gcc.info-13 gcc-2.5.8/gcc.info-13
  6548. *** /src/baseline/gcc-2.5.8/gcc.info-13    Sat Nov 27 15:39:09 1993
  6549. --- gcc-2.5.8/gcc.info-13    Tue May  3 14:10:21 1994
  6550. ***************
  6551. *** 1,4 ****
  6552. ! This is Info file gcc.info, produced by Makeinfo-1.54 from the input
  6553.   file gcc.texi.
  6554.   
  6555.      This file documents the use and the internals of the GNU compiler.
  6556. --- 1,4 ----
  6557. ! This is Info file gcc.info, produced by Makeinfo-1.55 from the input
  6558.   file gcc.texi.
  6559.   
  6560.      This file documents the use and the internals of the GNU compiler.
  6561. diff -rc --new-file /src/baseline/gcc-2.5.8/gcc.info-14 gcc-2.5.8/gcc.info-14
  6562. *** /src/baseline/gcc-2.5.8/gcc.info-14    Sat Nov 27 15:39:13 1993
  6563. --- gcc-2.5.8/gcc.info-14    Tue May  3 14:10:22 1994
  6564. ***************
  6565. *** 1,4 ****
  6566. ! This is Info file gcc.info, produced by Makeinfo-1.54 from the input
  6567.   file gcc.texi.
  6568.   
  6569.      This file documents the use and the internals of the GNU compiler.
  6570. --- 1,4 ----
  6571. ! This is Info file gcc.info, produced by Makeinfo-1.55 from the input
  6572.   file gcc.texi.
  6573.   
  6574.      This file documents the use and the internals of the GNU compiler.
  6575. diff -rc --new-file /src/baseline/gcc-2.5.8/gcc.info-15 gcc-2.5.8/gcc.info-15
  6576. *** /src/baseline/gcc-2.5.8/gcc.info-15    Sat Nov 27 15:39:14 1993
  6577. --- gcc-2.5.8/gcc.info-15    Tue May  3 14:10:23 1994
  6578. ***************
  6579. *** 1,4 ****
  6580. ! This is Info file gcc.info, produced by Makeinfo-1.54 from the input
  6581.   file gcc.texi.
  6582.   
  6583.      This file documents the use and the internals of the GNU compiler.
  6584. --- 1,4 ----
  6585. ! This is Info file gcc.info, produced by Makeinfo-1.55 from the input
  6586.   file gcc.texi.
  6587.   
  6588.      This file documents the use and the internals of the GNU compiler.
  6589. diff -rc --new-file /src/baseline/gcc-2.5.8/gcc.info-16 gcc-2.5.8/gcc.info-16
  6590. *** /src/baseline/gcc-2.5.8/gcc.info-16    Sat Nov 27 15:39:14 1993
  6591. --- gcc-2.5.8/gcc.info-16    Tue May  3 14:10:23 1994
  6592. ***************
  6593. *** 1,4 ****
  6594. ! This is Info file gcc.info, produced by Makeinfo-1.54 from the input
  6595.   file gcc.texi.
  6596.   
  6597.      This file documents the use and the internals of the GNU compiler.
  6598. --- 1,4 ----
  6599. ! This is Info file gcc.info, produced by Makeinfo-1.55 from the input
  6600.   file gcc.texi.
  6601.   
  6602.      This file documents the use and the internals of the GNU compiler.
  6603. diff -rc --new-file /src/baseline/gcc-2.5.8/gcc.info-17 gcc-2.5.8/gcc.info-17
  6604. *** /src/baseline/gcc-2.5.8/gcc.info-17    Sat Nov 27 15:39:15 1993
  6605. --- gcc-2.5.8/gcc.info-17    Tue May  3 14:10:25 1994
  6606. ***************
  6607. *** 1,4 ****
  6608. ! This is Info file gcc.info, produced by Makeinfo-1.54 from the input
  6609.   file gcc.texi.
  6610.   
  6611.      This file documents the use and the internals of the GNU compiler.
  6612. --- 1,4 ----
  6613. ! This is Info file gcc.info, produced by Makeinfo-1.55 from the input
  6614.   file gcc.texi.
  6615.   
  6616.      This file documents the use and the internals of the GNU compiler.
  6617. ***************
  6618. *** 174,182 ****
  6619.   
  6620.   `STANDARD_EXEC_PREFIX'
  6621.        Define this macro as a C string constant if you wish to override
  6622. !      the standard choice of `/usr/local/lib/gcc-lib/' as the default
  6623. !      prefix to try when searching for the executable files of the
  6624. !      compiler.
  6625.   
  6626.   `MD_EXEC_PREFIX'
  6627.        If defined, this macro is an additional prefix to try after
  6628. --- 174,181 ----
  6629.   
  6630.   `STANDARD_EXEC_PREFIX'
  6631.        Define this macro as a C string constant if you wish to override
  6632. !      the standard choice of `/gnu/lib/gcc-lib/' as the default prefix to
  6633. !      try when searching for the executable files of the compiler.
  6634.   
  6635.   `MD_EXEC_PREFIX'
  6636.        If defined, this macro is an additional prefix to try after
  6637. ***************
  6638. *** 185,192 ****
  6639.   
  6640.   `STANDARD_STARTFILE_PREFIX'
  6641.        Define this macro as a C string constant if you wish to override
  6642. !      the standard choice of `/usr/local/lib/' as the default prefix to
  6643. !      try when searching for startup files such as `crt0.o'.
  6644.   
  6645.   `MD_STARTFILE_PREFIX'
  6646.        If defined, this macro supplies an additional prefix to try after
  6647. --- 184,191 ----
  6648.   
  6649.   `STANDARD_STARTFILE_PREFIX'
  6650.        Define this macro as a C string constant if you wish to override
  6651. !      the standard choice of `/gnu/lib/' as the default prefix to try
  6652. !      when searching for startup files such as `crt0.o'.
  6653.   
  6654.   `MD_STARTFILE_PREFIX'
  6655.        If defined, this macro supplies an additional prefix to try after
  6656. ***************
  6657. *** 201,212 ****
  6658.   
  6659.   `LOCAL_INCLUDE_DIR'
  6660.        Define this macro as a C string constant if you wish to override
  6661. !      the standard choice of `/usr/local/include' as the default prefix
  6662. !      to try when searching for local header files.  `LOCAL_INCLUDE_DIR'
  6663. !      comes before `SYSTEM_INCLUDE_DIR' in the search order.
  6664.   
  6665.        Cross compilers do not use this macro and do not search either
  6666. !      `/usr/local/include' or its replacement.
  6667.   
  6668.   `SYSTEM_INCLUDE_DIR'
  6669.        Define this macro as a C string constant if you wish to specify a
  6670. --- 200,211 ----
  6671.   
  6672.   `LOCAL_INCLUDE_DIR'
  6673.        Define this macro as a C string constant if you wish to override
  6674. !      the standard choice of `/gnu/include' as the default prefix to try
  6675. !      when searching for local header files.  `LOCAL_INCLUDE_DIR' comes
  6676. !      before `SYSTEM_INCLUDE_DIR' in the search order.
  6677.   
  6678.        Cross compilers do not use this macro and do not search either
  6679. !      `/gnu/include' or its replacement.
  6680.   
  6681.   `SYSTEM_INCLUDE_DIR'
  6682.        Define this macro as a C string constant if you wish to specify a
  6683. diff -rc --new-file /src/baseline/gcc-2.5.8/gcc.info-18 gcc-2.5.8/gcc.info-18
  6684. *** /src/baseline/gcc-2.5.8/gcc.info-18    Sat Nov 27 15:39:15 1993
  6685. --- gcc-2.5.8/gcc.info-18    Tue May  3 14:10:25 1994
  6686. ***************
  6687. *** 1,4 ****
  6688. ! This is Info file gcc.info, produced by Makeinfo-1.54 from the input
  6689.   file gcc.texi.
  6690.   
  6691.      This file documents the use and the internals of the GNU compiler.
  6692. --- 1,4 ----
  6693. ! This is Info file gcc.info, produced by Makeinfo-1.55 from the input
  6694.   file gcc.texi.
  6695.   
  6696.      This file documents the use and the internals of the GNU compiler.
  6697. diff -rc --new-file /src/baseline/gcc-2.5.8/gcc.info-19 gcc-2.5.8/gcc.info-19
  6698. *** /src/baseline/gcc-2.5.8/gcc.info-19    Sat Nov 27 15:39:16 1993
  6699. --- gcc-2.5.8/gcc.info-19    Tue May  3 14:10:26 1994
  6700. ***************
  6701. *** 1,4 ****
  6702. ! This is Info file gcc.info, produced by Makeinfo-1.54 from the input
  6703.   file gcc.texi.
  6704.   
  6705.      This file documents the use and the internals of the GNU compiler.
  6706. --- 1,4 ----
  6707. ! This is Info file gcc.info, produced by Makeinfo-1.55 from the input
  6708.   file gcc.texi.
  6709.   
  6710.      This file documents the use and the internals of the GNU compiler.
  6711. diff -rc --new-file /src/baseline/gcc-2.5.8/gcc.info-2 gcc-2.5.8/gcc.info-2
  6712. *** /src/baseline/gcc-2.5.8/gcc.info-2    Sat Nov 27 15:38:47 1993
  6713. --- gcc-2.5.8/gcc.info-2    Tue May  3 14:10:11 1994
  6714. ***************
  6715. *** 1,4 ****
  6716. ! This is Info file gcc.info, produced by Makeinfo-1.54 from the input
  6717.   file gcc.texi.
  6718.   
  6719.      This file documents the use and the internals of the GNU compiler.
  6720. --- 1,4 ----
  6721. ! This is Info file gcc.info, produced by Makeinfo-1.55 from the input
  6722.   file gcc.texi.
  6723.   
  6724.      This file documents the use and the internals of the GNU compiler.
  6725. diff -rc --new-file /src/baseline/gcc-2.5.8/gcc.info-20 gcc-2.5.8/gcc.info-20
  6726. *** /src/baseline/gcc-2.5.8/gcc.info-20    Sat Nov 27 15:39:21 1993
  6727. --- gcc-2.5.8/gcc.info-20    Tue May  3 14:10:27 1994
  6728. ***************
  6729. *** 1,4 ****
  6730. ! This is Info file gcc.info, produced by Makeinfo-1.54 from the input
  6731.   file gcc.texi.
  6732.   
  6733.      This file documents the use and the internals of the GNU compiler.
  6734. --- 1,4 ----
  6735. ! This is Info file gcc.info, produced by Makeinfo-1.55 from the input
  6736.   file gcc.texi.
  6737.   
  6738.      This file documents the use and the internals of the GNU compiler.
  6739. diff -rc --new-file /src/baseline/gcc-2.5.8/gcc.info-21 gcc-2.5.8/gcc.info-21
  6740. *** /src/baseline/gcc-2.5.8/gcc.info-21    Sat Nov 27 15:39:21 1993
  6741. --- gcc-2.5.8/gcc.info-21    Tue May  3 14:10:28 1994
  6742. ***************
  6743. *** 1,4 ****
  6744. ! This is Info file gcc.info, produced by Makeinfo-1.54 from the input
  6745.   file gcc.texi.
  6746.   
  6747.      This file documents the use and the internals of the GNU compiler.
  6748. --- 1,4 ----
  6749. ! This is Info file gcc.info, produced by Makeinfo-1.55 from the input
  6750.   file gcc.texi.
  6751.   
  6752.      This file documents the use and the internals of the GNU compiler.
  6753. diff -rc --new-file /src/baseline/gcc-2.5.8/gcc.info-22 gcc-2.5.8/gcc.info-22
  6754. *** /src/baseline/gcc-2.5.8/gcc.info-22    Sat Nov 27 15:39:22 1993
  6755. --- gcc-2.5.8/gcc.info-22    Tue May  3 14:10:29 1994
  6756. ***************
  6757. *** 1,4 ****
  6758. ! This is Info file gcc.info, produced by Makeinfo-1.54 from the input
  6759.   file gcc.texi.
  6760.   
  6761.      This file documents the use and the internals of the GNU compiler.
  6762. --- 1,4 ----
  6763. ! This is Info file gcc.info, produced by Makeinfo-1.55 from the input
  6764.   file gcc.texi.
  6765.   
  6766.      This file documents the use and the internals of the GNU compiler.
  6767. diff -rc --new-file /src/baseline/gcc-2.5.8/gcc.info-23 gcc-2.5.8/gcc.info-23
  6768. *** /src/baseline/gcc-2.5.8/gcc.info-23    Sat Nov 27 15:39:23 1993
  6769. --- gcc-2.5.8/gcc.info-23    Tue May  3 14:10:31 1994
  6770. ***************
  6771. *** 1,4 ****
  6772. ! This is Info file gcc.info, produced by Makeinfo-1.54 from the input
  6773.   file gcc.texi.
  6774.   
  6775.      This file documents the use and the internals of the GNU compiler.
  6776. --- 1,4 ----
  6777. ! This is Info file gcc.info, produced by Makeinfo-1.55 from the input
  6778.   file gcc.texi.
  6779.   
  6780.      This file documents the use and the internals of the GNU compiler.
  6781. diff -rc --new-file /src/baseline/gcc-2.5.8/gcc.info-3 gcc-2.5.8/gcc.info-3
  6782. *** /src/baseline/gcc-2.5.8/gcc.info-3    Sat Nov 27 15:38:47 1993
  6783. --- gcc-2.5.8/gcc.info-3    Tue May  3 14:10:12 1994
  6784. ***************
  6785. *** 1,4 ****
  6786. ! This is Info file gcc.info, produced by Makeinfo-1.54 from the input
  6787.   file gcc.texi.
  6788.   
  6789.      This file documents the use and the internals of the GNU compiler.
  6790. --- 1,4 ----
  6791. ! This is Info file gcc.info, produced by Makeinfo-1.55 from the input
  6792.   file gcc.texi.
  6793.   
  6794.      This file documents the use and the internals of the GNU compiler.
  6795. ***************
  6796. *** 568,577 ****
  6797.        For each subprogram to be run, the compiler driver first tries the
  6798.        `-B' prefix, if any.  If that name is not found, or if `-B' was
  6799.        not specified, the driver tries two standard prefixes, which are
  6800. !      `/usr/lib/gcc/' and `/usr/local/lib/gcc-lib/'.  If neither of
  6801. !      those results in a file name that is found, the unmodified program
  6802. !      name is searched for using the directories specified in your
  6803. !      `PATH' environment variable.
  6804.   
  6805.        `-B' prefixes that effectively specify directory names also apply
  6806.        to libraries in the linker, because the compiler translates these
  6807. --- 568,577 ----
  6808.        For each subprogram to be run, the compiler driver first tries the
  6809.        `-B' prefix, if any.  If that name is not found, or if `-B' was
  6810.        not specified, the driver tries two standard prefixes, which are
  6811. !      `/usr/lib/gcc/' and `/gnu/lib/gcc-lib/'.  If neither of those
  6812. !      results in a file name that is found, the unmodified program name
  6813. !      is searched for using the directories specified in your `PATH'
  6814. !      environment variable.
  6815.   
  6816.        `-B' prefixes that effectively specify directory names also apply
  6817.        to libraries in the linker, because the compiler translates these
  6818. ***************
  6819. *** 628,640 ****
  6820.      The `-b' and `-V' options actually work by controlling part of the
  6821.   file name used for the executable files and libraries used for
  6822.   compilation.  A given version of GNU CC, for a given target machine, is
  6823. ! normally kept in the directory `/usr/local/lib/gcc-lib/MACHINE/VERSION'.
  6824.   
  6825.      Thus, sites can customize the effect of `-b' or `-V' either by
  6826.   changing the names of these directories or adding alternate names (or
  6827. ! symbolic links).  If in directory `/usr/local/lib/gcc-lib/' the file
  6828. ! `80386' is a link to the file `i386v', then `-b 80386' becomes an alias
  6829. ! for `-b i386v'.
  6830.   
  6831.      In one respect, the `-b' or `-V' do not completely change to a
  6832.   different compiler: the top-level driver program `gcc' that you
  6833. --- 628,640 ----
  6834.      The `-b' and `-V' options actually work by controlling part of the
  6835.   file name used for the executable files and libraries used for
  6836.   compilation.  A given version of GNU CC, for a given target machine, is
  6837. ! normally kept in the directory `/gnu/lib/gcc-lib/MACHINE/VERSION'.
  6838.   
  6839.      Thus, sites can customize the effect of `-b' or `-V' either by
  6840.   changing the names of these directories or adding alternate names (or
  6841. ! symbolic links).  If in directory `/gnu/lib/gcc-lib/' the file `80386'
  6842. ! is a link to the file `i386v', then `-b 80386' becomes an alias for `-b
  6843. ! i386v'.
  6844.   
  6845.      In one respect, the `-b' or `-V' do not completely change to a
  6846.   different compiler: the top-level driver program `gcc' that you
  6847. diff -rc --new-file /src/baseline/gcc-2.5.8/gcc.info-4 gcc-2.5.8/gcc.info-4
  6848. *** /src/baseline/gcc-2.5.8/gcc.info-4    Sat Nov 27 15:38:47 1993
  6849. --- gcc-2.5.8/gcc.info-4    Tue May  3 14:10:12 1994
  6850. ***************
  6851. *** 1,4 ****
  6852. ! This is Info file gcc.info, produced by Makeinfo-1.54 from the input
  6853.   file gcc.texi.
  6854.   
  6855.      This file documents the use and the internals of the GNU compiler.
  6856. --- 1,4 ----
  6857. ! This is Info file gcc.info, produced by Makeinfo-1.55 from the input
  6858.   file gcc.texi.
  6859.   
  6860.      This file documents the use and the internals of the GNU compiler.
  6861. ***************
  6862. *** 789,801 ****
  6863.   
  6864.        In addition, the prefix is used in an unusual way in finding the
  6865.        directories to search for header files.  For each of the standard
  6866. !      directories whose name normally begins with
  6867. !      `/usr/local/lib/gcc-lib' (more precisely, with the value of
  6868. !      `GCC_INCLUDE_DIR'), GNU CC tries replacing that beginning with the
  6869. !      specified prefix to produce an alternate directory name.  Thus,
  6870. !      with `-Bfoo/', GNU CC will search `foo/bar' where it would
  6871. !      normally search `/usr/local/lib/bar'.  These alternate directories
  6872. !      are searched first; the standard directories come next.
  6873.   
  6874.   `COMPILER_PATH'
  6875.        The value of `COMPILER_PATH' is a colon-separated list of
  6876. --- 789,801 ----
  6877.   
  6878.        In addition, the prefix is used in an unusual way in finding the
  6879.        directories to search for header files.  For each of the standard
  6880. !      directories whose name normally begins with `/gnu/lib/gcc-lib'
  6881. !      (more precisely, with the value of `GCC_INCLUDE_DIR'), GNU CC tries
  6882. !      replacing that beginning with the specified prefix to produce an
  6883. !      alternate directory name.  Thus, with `-Bfoo/', GNU CC will search
  6884. !      `foo/bar' where it would normally search `/gnu/lib/bar'.  These
  6885. !      alternate directories are searched first; the standard directories
  6886. !      come next.
  6887.   
  6888.   `COMPILER_PATH'
  6889.        The value of `COMPILER_PATH' is a colon-separated list of
  6890. ***************
  6891. *** 896,902 ****
  6892.   
  6893.   `-B DIRECTORY'
  6894.        Look for the file `SYSCALLS.c.X' in DIRECTORY, instead of the
  6895. !      usual directory (normally `/usr/local/lib').  This file contains
  6896.        prototype information about standard system functions.  This option
  6897.        applies only to `protoize'.
  6898.   
  6899. --- 896,902 ----
  6900.   
  6901.   `-B DIRECTORY'
  6902.        Look for the file `SYSCALLS.c.X' in DIRECTORY, instead of the
  6903. !      usual directory (normally `/gnu/lib').  This file contains
  6904.        prototype information about standard system functions.  This option
  6905.        applies only to `protoize'.
  6906.   
  6907. diff -rc --new-file /src/baseline/gcc-2.5.8/gcc.info-5 gcc-2.5.8/gcc.info-5
  6908. *** /src/baseline/gcc-2.5.8/gcc.info-5    Sat Nov 27 15:38:48 1993
  6909. --- gcc-2.5.8/gcc.info-5    Tue May  3 14:10:13 1994
  6910. ***************
  6911. *** 1,4 ****
  6912. ! This is Info file gcc.info, produced by Makeinfo-1.54 from the input
  6913.   file gcc.texi.
  6914.   
  6915.      This file documents the use and the internals of the GNU compiler.
  6916. --- 1,4 ----
  6917. ! This is Info file gcc.info, produced by Makeinfo-1.55 from the input
  6918.   file gcc.texi.
  6919.   
  6920.      This file documents the use and the internals of the GNU compiler.
  6921. ***************
  6922. *** 557,576 ****
  6923.             files do not exist, it means nothing needs to be added for a
  6924.             given target or host.
  6925.   
  6926. !   4. The standard directory for installing GNU CC is `/usr/local/lib'.
  6927. !      If you want to install its files somewhere else, specify
  6928.        `--prefix=DIR' when you run `configure'.  Here DIR is a directory
  6929. !      name to use instead of `/usr/local' for all purposes with one
  6930. !      exception: the directory `/usr/local/include' is searched for
  6931. !      header files no matter where you install the compiler.
  6932.   
  6933.     5. Specify `--local-prefix=DIR' if you want the compiler to search
  6934.        directory `DIR/include' for header files *instead* of
  6935. !      `/usr/local/include'.  (This is for systems that have different
  6936.        conventions for where to put site-specific things.)
  6937.   
  6938. !      Unless you have a convention other than `/usr/local' for
  6939. !      site-specific files, it is a bad idea to specify `--local-prefix'.
  6940.   
  6941.     6. Make sure the Bison parser generator is installed.  (This is
  6942.        unnecessary if the Bison output files `c-parse.c' and `cexp.c' are
  6943. --- 557,576 ----
  6944.             files do not exist, it means nothing needs to be added for a
  6945.             given target or host.
  6946.   
  6947. !   4. The standard directory for installing GNU CC is `/gnu/lib'.  If
  6948. !      you want to install its files somewhere else, specify
  6949.        `--prefix=DIR' when you run `configure'.  Here DIR is a directory
  6950. !      name to use instead of `/gnu' for all purposes with one exception:
  6951. !      the directory `/gnu/include' is searched for header files no
  6952. !      matter where you install the compiler.
  6953.   
  6954.     5. Specify `--local-prefix=DIR' if you want the compiler to search
  6955.        directory `DIR/include' for header files *instead* of
  6956. !      `/gnu/include'.  (This is for systems that have different
  6957.        conventions for where to put site-specific things.)
  6958.   
  6959. !      Unless you have a convention other than `/gnu' for site-specific
  6960. !      files, it is a bad idea to specify `--local-prefix'.
  6961.   
  6962.     6. Make sure the Bison parser generator is installed.  (This is
  6963.        unnecessary if the Bison output files `c-parse.c' and `cexp.c' are
  6964. ***************
  6965. *** 621,629 ****
  6966.        If you are building with a previous GNU C compiler, do not use
  6967.        `CC=gcc' on the make command or by editing the Makefile.  Instead,
  6968.        use a full pathname to specify the compiler, such as
  6969. !      `CC=/usr/local/bin/gcc'.  This is because make might execute the
  6970. !      `gcc' in the current directory before all of the compiler
  6971. !      components have been built.
  6972.   
  6973.     9. If you are building a cross-compiler, stop here.  *Note
  6974.        Cross-Compiler::.
  6975. --- 621,629 ----
  6976.        If you are building with a previous GNU C compiler, do not use
  6977.        `CC=gcc' on the make command or by editing the Makefile.  Instead,
  6978.        use a full pathname to specify the compiler, such as
  6979. !      `CC=/gnu/bin/gcc'.  This is because make might execute the `gcc'
  6980. !      in the current directory before all of the compiler components
  6981. !      have been built.
  6982.   
  6983.     9. If you are building a cross-compiler, stop here.  *Note
  6984.        Cross-Compiler::.
  6985. ***************
  6986. *** 746,760 ****
  6987.   
  6988.        This copies the files `cc1', `cpp' and `libgcc.a' to files `cc1',
  6989.        `cpp' and `libgcc.a' in the directory
  6990. !      `/usr/local/lib/gcc-lib/TARGET/VERSION', which is where the
  6991. !      compiler driver program looks for them.  Here TARGET is the target
  6992. !      machine type specified when you ran `configure', and VERSION is
  6993. !      the version number of GNU CC.  This naming scheme permits various
  6994.        versions and/or cross-compilers to coexist.
  6995.   
  6996. !      This also copies the driver program `xgcc' into
  6997. !      `/usr/local/bin/gcc', so that it appears in typical execution
  6998. !      search paths.
  6999.   
  7000.        On some systems, this command causes recompilation of some files.
  7001.        This is usually due to bugs in `make'.  You should either ignore
  7002. --- 746,759 ----
  7003.   
  7004.        This copies the files `cc1', `cpp' and `libgcc.a' to files `cc1',
  7005.        `cpp' and `libgcc.a' in the directory
  7006. !      `/gnu/lib/gcc-lib/TARGET/VERSION', which is where the compiler
  7007. !      driver program looks for them.  Here TARGET is the target machine
  7008. !      type specified when you ran `configure', and VERSION is the
  7009. !      version number of GNU CC.  This naming scheme permits various
  7010.        versions and/or cross-compilers to coexist.
  7011.   
  7012. !      This also copies the driver program `xgcc' into `/gnu/bin/gcc', so
  7013. !      that it appears in typical execution search paths.
  7014.   
  7015.        On some systems, this command causes recompilation of some files.
  7016.        This is usually due to bugs in `make'.  You should either ignore
  7017. ***************
  7018. *** 919,926 ****
  7019.   ----------------------------------------
  7020.   
  7021.      If you have a cross-assembler and cross-linker available, you should
  7022. ! install them now.  Put them in the directory `/usr/local/TARGET/bin'.
  7023. ! Here is a table of the tools you should put in this directory:
  7024.   
  7025.   `as'
  7026.        This should be the cross-assembler.
  7027. --- 918,925 ----
  7028.   ----------------------------------------
  7029.   
  7030.      If you have a cross-assembler and cross-linker available, you should
  7031. ! install them now.  Put them in the directory `/gnu/TARGET/bin'.  Here
  7032. ! is a table of the tools you should put in this directory:
  7033.   
  7034.   `as'
  7035.        This should be the cross-assembler.
  7036. ***************
  7037. *** 949,961 ****
  7038.   
  7039.      If you want to install libraries to use with the cross-compiler,
  7040.   such as a standard C library, put them in the directory
  7041. ! `/usr/local/TARGET/lib'; installation of GNU CC copies all all the
  7042. ! files in that subdirectory into the proper place for GNU CC to find
  7043. ! them and link with them.  Here's an example of copying some libraries
  7044. ! from a target machine:
  7045.   
  7046.        ftp TARGET-MACHINE
  7047. !      lcd /usr/local/TARGET/lib
  7048.        cd /lib
  7049.        get libc.a
  7050.        cd /usr/lib
  7051. --- 948,960 ----
  7052.   
  7053.      If you want to install libraries to use with the cross-compiler,
  7054.   such as a standard C library, put them in the directory
  7055. ! `/gnu/TARGET/lib'; installation of GNU CC copies all all the files in
  7056. ! that subdirectory into the proper place for GNU CC to find them and
  7057. ! link with them.  Here's an example of copying some libraries from a
  7058. ! target machine:
  7059.   
  7060.        ftp TARGET-MACHINE
  7061. !      lcd /gnu/TARGET/lib
  7062.        cd /lib
  7063.        get libc.a
  7064.        cd /usr/lib
  7065. ***************
  7066. *** 968,981 ****
  7067.   
  7068.      Many targets require "start files" such as `crt0.o' and `crtn.o'
  7069.   which are linked into each executable; these too should be placed in
  7070. ! `/usr/local/TARGET/lib'.  There may be several alternatives for
  7071. ! `crt0.o', for use with profiling or other compilation options.  Check
  7072. ! your target's definition of `STARTFILE_SPEC' to find out what start
  7073. ! files it uses.  Here's an example of copying these files from a target
  7074. ! machine:
  7075.   
  7076.        ftp TARGET-MACHINE
  7077. !      lcd /usr/local/TARGET/lib
  7078.        prompt
  7079.        cd /lib
  7080.        mget *crt*.o
  7081. --- 967,979 ----
  7082.   
  7083.      Many targets require "start files" such as `crt0.o' and `crtn.o'
  7084.   which are linked into each executable; these too should be placed in
  7085. ! `/gnu/TARGET/lib'.  There may be several alternatives for `crt0.o', for
  7086. ! use with profiling or other compilation options.  Check your target's
  7087. ! definition of `STARTFILE_SPEC' to find out what start files it uses.
  7088. ! Here's an example of copying these files from a target machine:
  7089.   
  7090.        ftp TARGET-MACHINE
  7091. !      lcd /gnu/TARGET/lib
  7092.        prompt
  7093.        cd /lib
  7094.        mget *crt*.o
  7095. ***************
  7096. *** 1094,1100 ****
  7097.   cross-compiling.
  7098.   
  7099.      When you have found suitable header files, put them in
  7100. ! `/usr/local/TARGET/include', before building the cross compiler.  Then
  7101.   installation will run fixincludes properly and install the corrected
  7102.   versions of the header files where the compiler will use them.
  7103.   
  7104. --- 1092,1098 ----
  7105.   cross-compiling.
  7106.   
  7107.      When you have found suitable header files, put them in
  7108. ! `/gnu/TARGET/include', before building the cross compiler.  Then
  7109.   installation will run fixincludes properly and install the corrected
  7110.   versions of the header files where the compiler will use them.
  7111.   
  7112. ***************
  7113. *** 1111,1117 ****
  7114.      Then, on the host machine, do this:
  7115.   
  7116.        ftp TARGET-MACHINE
  7117. !      lcd /usr/local/TARGET/include
  7118.        get tarfile
  7119.        quit
  7120.        tar xf tarfile
  7121. --- 1109,1115 ----
  7122.      Then, on the host machine, do this:
  7123.   
  7124.        ftp TARGET-MACHINE
  7125. !      lcd /gnu/TARGET/include
  7126.        get tarfile
  7127.        quit
  7128.        tar xf tarfile
  7129. diff -rc --new-file /src/baseline/gcc-2.5.8/gcc.info-6 gcc-2.5.8/gcc.info-6
  7130. *** /src/baseline/gcc-2.5.8/gcc.info-6    Sat Nov 27 15:38:48 1993
  7131. --- gcc-2.5.8/gcc.info-6    Tue May  3 14:10:15 1994
  7132. ***************
  7133. *** 1,4 ****
  7134. ! This is Info file gcc.info, produced by Makeinfo-1.54 from the input
  7135.   file gcc.texi.
  7136.   
  7137.      This file documents the use and the internals of the GNU compiler.
  7138. --- 1,4 ----
  7139. ! This is Info file gcc.info, produced by Makeinfo-1.55 from the input
  7140.   file gcc.texi.
  7141.   
  7142.      This file documents the use and the internals of the GNU compiler.
  7143. ***************
  7144. *** 86,92 ****
  7145.   `jaguar.cs.utah.edu' `dist' subdirectory.  You would need to install
  7146.   GAS in the file
  7147.   
  7148. !      /usr/local/lib/gcc-lib/CONFIGURATION/GCCVERSION/as
  7149.   
  7150.   where CONFIGURATION is the configuration name (perhaps `hpNNN-hpux')
  7151.   and GCCVERSION is the GNU CC version number.  Do this *before* starting
  7152. --- 86,92 ----
  7153.   `jaguar.cs.utah.edu' `dist' subdirectory.  You would need to install
  7154.   GAS in the file
  7155.   
  7156. !      /gnu/lib/gcc-lib/CONFIGURATION/GCCVERSION/as
  7157.   
  7158.   where CONFIGURATION is the configuration name (perhaps `hpNNN-hpux')
  7159.   and GCCVERSION is the GNU CC version number.  Do this *before* starting
  7160. ***************
  7161. *** 631,638 ****
  7162.   target independent header files in that directory.
  7163.   
  7164.      `LOCAL_INCLUDE_DIR' is used only for a native compiler.  It is
  7165. ! normally `/usr/local/include'.  GNU CC searches this directory so that
  7166. ! users can install header files in `/usr/local/include'.
  7167.   
  7168.      `CROSS_INCLUDE_DIR' is used only for a cross compiler.  GNU CC
  7169.   doesn't install anything there.
  7170. --- 631,638 ----
  7171.   target independent header files in that directory.
  7172.   
  7173.      `LOCAL_INCLUDE_DIR' is used only for a native compiler.  It is
  7174. ! normally `/gnu/include'.  GNU CC searches this directory so that users
  7175. ! can install header files in `/gnu/include'.
  7176.   
  7177.      `CROSS_INCLUDE_DIR' is used only for a cross compiler.  GNU CC
  7178.   doesn't install anything there.
  7179. diff -rc --new-file /src/baseline/gcc-2.5.8/gcc.info-7 gcc-2.5.8/gcc.info-7
  7180. *** /src/baseline/gcc-2.5.8/gcc.info-7    Sat Nov 27 15:38:49 1993
  7181. --- gcc-2.5.8/gcc.info-7    Tue May  3 14:10:15 1994
  7182. ***************
  7183. *** 1,4 ****
  7184. ! This is Info file gcc.info, produced by Makeinfo-1.54 from the input
  7185.   file gcc.texi.
  7186.   
  7187.      This file documents the use and the internals of the GNU compiler.
  7188. --- 1,4 ----
  7189. ! This is Info file gcc.info, produced by Makeinfo-1.55 from the input
  7190.   file gcc.texi.
  7191.   
  7192.      This file documents the use and the internals of the GNU compiler.
  7193. diff -rc --new-file /src/baseline/gcc-2.5.8/gcc.info-8 gcc-2.5.8/gcc.info-8
  7194. *** /src/baseline/gcc-2.5.8/gcc.info-8    Sat Nov 27 15:38:54 1993
  7195. --- gcc-2.5.8/gcc.info-8    Tue May  3 14:10:16 1994
  7196. ***************
  7197. *** 1,4 ****
  7198. ! This is Info file gcc.info, produced by Makeinfo-1.54 from the input
  7199.   file gcc.texi.
  7200.   
  7201.      This file documents the use and the internals of the GNU compiler.
  7202. --- 1,4 ----
  7203. ! This is Info file gcc.info, produced by Makeinfo-1.55 from the input
  7204.   file gcc.texi.
  7205.   
  7206.      This file documents the use and the internals of the GNU compiler.
  7207. ***************
  7208. *** 509,516 ****
  7209.   
  7210.      * In previous versions of GNU CC, the `gcc' driver program looked for
  7211.        `as' and `ld' in various places; for example, in files beginning
  7212. !      with `/usr/local/lib/gcc-'.  GNU CC version 2 looks for them in
  7213. !      the directory `/usr/local/lib/gcc-lib/TARGET/VERSION'.
  7214.   
  7215.        Thus, to use a version of `as' or `ld' that is not the system
  7216.        default, for example `gas' or GNU `ld', you must put them in that
  7217. --- 509,516 ----
  7218.   
  7219.      * In previous versions of GNU CC, the `gcc' driver program looked for
  7220.        `as' and `ld' in various places; for example, in files beginning
  7221. !      with `/gnu/lib/gcc-'.  GNU CC version 2 looks for them in the
  7222. !      directory `/gnu/lib/gcc-lib/TARGET/VERSION'.
  7223.   
  7224.        Thus, to use a version of `as' or `ld' that is not the system
  7225.        default, for example `gas' or GNU `ld', you must put them in that
  7226. ***************
  7227. *** 680,687 ****
  7228.   
  7229.      * On System V, if you get an error like this,
  7230.   
  7231. !           /usr/local/lib/bison.simple: In function `yyparse':
  7232. !           /usr/local/lib/bison.simple:625: virtual memory exhausted
  7233.   
  7234.        that too indicates a problem with disk space, ULIMIT, or `MAXUMEM'.
  7235.   
  7236. --- 680,687 ----
  7237.   
  7238.      * On System V, if you get an error like this,
  7239.   
  7240. !           /gnu/lib/bison.simple: In function `yyparse':
  7241. !           /gnu/lib/bison.simple:625: virtual memory exhausted
  7242.   
  7243.        that too indicates a problem with disk space, ULIMIT, or `MAXUMEM'.
  7244.   
  7245. ***************
  7246. *** 871,877 ****
  7247.   
  7248.        Instead, you should use these options (when compiling C programs):
  7249.   
  7250. !           -I/usr/local/lib/gcc-lib/TARGET/VERSION/include -I/usr/include
  7251.   
  7252.        For C++ programs, GNU CC also uses a special directory that
  7253.        defines C++ interfaces to standard C subroutines.  This directory
  7254. --- 871,877 ----
  7255.   
  7256.        Instead, you should use these options (when compiling C programs):
  7257.   
  7258. !           -I/gnu/lib/gcc-lib/TARGET/VERSION/include -I/usr/include
  7259.   
  7260.        For C++ programs, GNU CC also uses a special directory that
  7261.        defines C++ interfaces to standard C subroutines.  This directory
  7262. ***************
  7263. *** 880,886 ****
  7264.        C++ programs and specifying include directories explicitly, use
  7265.        this option first, then the two options above:
  7266.   
  7267. !           -I/usr/local/lib/g++-include
  7268.   
  7269.      * On some SGI systems, when you use `-lgl_s' as an option, it gets
  7270.        translated magically to `-lgl_s -lX11_s -lc_s'.  Naturally, this
  7271. --- 880,886 ----
  7272.        C++ programs and specifying include directories explicitly, use
  7273.        this option first, then the two options above:
  7274.   
  7275. !           -I/gnu/lib/g++-include
  7276.   
  7277.      * On some SGI systems, when you use `-lgl_s' as an option, it gets
  7278.        translated magically to `-lgl_s -lX11_s -lc_s'.  Naturally, this
  7279. ***************
  7280. *** 1098,1104 ****
  7281.        with the ordinary C compiler.  If you do so, you must specify the
  7282.        following options:
  7283.   
  7284. !           -L/usr/local/lib/gcc-lib/we32k-att-sysv/2.5 -lgcc -lc_s
  7285.   
  7286.        The first specifies where to find the library `libgcc.a' specified
  7287.        with the `-lgcc' option.
  7288. --- 1098,1104 ----
  7289.        with the ordinary C compiler.  If you do so, you must specify the
  7290.        following options:
  7291.   
  7292. !           -L/gnu/lib/gcc-lib/we32k-att-sysv/2.5 -lgcc -lc_s
  7293.   
  7294.        The first specifies where to find the library `libgcc.a' specified
  7295.        with the `-lgcc' option.
  7296. ***************
  7297. *** 1167,1173 ****
  7298.        If you have installed GNU malloc as a separate library package,
  7299.        use this option when you relink GNU CC:
  7300.   
  7301. !           MALLOC=/usr/local/lib/libgmalloc.a
  7302.   
  7303.        Alternatively, if you have compiled `gmalloc.c' from Emacs 19, copy
  7304.        the object file to `gmalloc.o' and use this option when you relink
  7305. --- 1167,1173 ----
  7306.        If you have installed GNU malloc as a separate library package,
  7307.        use this option when you relink GNU CC:
  7308.   
  7309. !           MALLOC=/gnu/lib/libgmalloc.a
  7310.   
  7311.        Alternatively, if you have compiled `gmalloc.c' from Emacs 19, copy
  7312.        the object file to `gmalloc.o' and use this option when you relink
  7313. diff -rc --new-file /src/baseline/gcc-2.5.8/gcc.info-9 gcc-2.5.8/gcc.info-9
  7314. *** /src/baseline/gcc-2.5.8/gcc.info-9    Sat Nov 27 15:38:54 1993
  7315. --- gcc-2.5.8/gcc.info-9    Tue May  3 14:10:17 1994
  7316. ***************
  7317. *** 1,4 ****
  7318. ! This is Info file gcc.info, produced by Makeinfo-1.54 from the input
  7319.   file gcc.texi.
  7320.   
  7321.      This file documents the use and the internals of the GNU compiler.
  7322. --- 1,4 ----
  7323. ! This is Info file gcc.info, produced by Makeinfo-1.55 from the input
  7324.   file gcc.texi.
  7325.   
  7326.      This file documents the use and the internals of the GNU compiler.
  7327. diff -rc --new-file /src/baseline/gcc-2.5.8/gcc.texi gcc-2.5.8/gcc.texi
  7328. *** /src/baseline/gcc-2.5.8/gcc.texi    Sat Nov 27 15:13:22 1993
  7329. --- gcc-2.5.8/gcc.texi    Tue Feb 22 11:27:42 1994
  7330. ***************
  7331. *** 1075,1083 ****
  7332.   @item
  7333.   In previous versions of GNU CC, the @code{gcc} driver program looked for
  7334.   @code{as} and @code{ld} in various places; for example, in files
  7335. ! beginning with @file{/usr/local/lib/gcc-}.  GNU CC version 2 looks for
  7336.   them in the directory
  7337. ! @file{/usr/local/lib/gcc-lib/@var{target}/@var{version}}.
  7338.   
  7339.   Thus, to use a version of @code{as} or @code{ld} that is not the system
  7340.   default, for example @code{gas} or GNU @code{ld}, you must put them in
  7341. --- 1075,1083 ----
  7342.   @item
  7343.   In previous versions of GNU CC, the @code{gcc} driver program looked for
  7344.   @code{as} and @code{ld} in various places; for example, in files
  7345. ! beginning with @file{/gnu/lib/gcc-}.  GNU CC version 2 looks for
  7346.   them in the directory
  7347. ! @file{/gnu/lib/gcc-lib/@var{target}/@var{version}}.
  7348.   
  7349.   Thus, to use a version of @code{as} or @code{ld} that is not the system
  7350.   default, for example @code{gas} or GNU @code{ld}, you must put them in
  7351. ***************
  7352. *** 1276,1283 ****
  7353.   On System V, if you get an error like this,
  7354.   
  7355.   @example
  7356. ! /usr/local/lib/bison.simple: In function `yyparse':
  7357. ! /usr/local/lib/bison.simple:625: virtual memory exhausted
  7358.   @end example
  7359.   
  7360.   @noindent
  7361. --- 1276,1283 ----
  7362.   On System V, if you get an error like this,
  7363.   
  7364.   @example
  7365. ! /gnu/lib/bison.simple: In function `yyparse':
  7366. ! /gnu/lib/bison.simple:625: virtual memory exhausted
  7367.   @end example
  7368.   
  7369.   @noindent
  7370. ***************
  7371. *** 1507,1513 ****
  7372.   Instead, you should use these options (when compiling C programs):
  7373.   
  7374.   @smallexample
  7375. ! -I/usr/local/lib/gcc-lib/@var{target}/@var{version}/include -I/usr/include
  7376.   @end smallexample
  7377.   
  7378.   For C++ programs, GNU CC also uses a special directory that defines C++
  7379. --- 1507,1513 ----
  7380.   Instead, you should use these options (when compiling C programs):
  7381.   
  7382.   @smallexample
  7383. ! -I/gnu/lib/gcc-lib/@var{target}/@var{version}/include -I/usr/include
  7384.   @end smallexample
  7385.   
  7386.   For C++ programs, GNU CC also uses a special directory that defines C++
  7387. ***************
  7388. *** 1518,1524 ****
  7389.   options above:
  7390.   
  7391.   @example
  7392. ! -I/usr/local/lib/g++-include
  7393.   @end example
  7394.   
  7395.   @ignore
  7396. --- 1518,1524 ----
  7397.   options above:
  7398.   
  7399.   @example
  7400. ! -I/gnu/lib/g++-include
  7401.   @end example
  7402.   
  7403.   @ignore
  7404. ***************
  7405. *** 1789,1795 ****
  7406.   options:
  7407.   
  7408.   @smallexample
  7409. ! -L/usr/local/lib/gcc-lib/we32k-att-sysv/2.5 -lgcc -lc_s
  7410.   @end smallexample
  7411.   
  7412.   The first specifies where to find the library @file{libgcc.a}
  7413. --- 1789,1795 ----
  7414.   options:
  7415.   
  7416.   @smallexample
  7417. ! -L/gnu/lib/gcc-lib/we32k-att-sysv/2.5 -lgcc -lc_s
  7418.   @end smallexample
  7419.   
  7420.   The first specifies where to find the library @file{libgcc.a}
  7421. ***************
  7422. *** 1869,1875 ****
  7423.   option when you relink GNU CC:
  7424.   
  7425.   @example
  7426. ! MALLOC=/usr/local/lib/libgmalloc.a 
  7427.   @end example
  7428.   
  7429.   Alternatively, if you have compiled @file{gmalloc.c} from Emacs 19, copy
  7430. --- 1869,1875 ----
  7431.   option when you relink GNU CC:
  7432.   
  7433.   @example
  7434. ! MALLOC=/gnu/lib/libgmalloc.a 
  7435.   @end example
  7436.   
  7437.   Alternatively, if you have compiled @file{gmalloc.c} from Emacs 19, copy
  7438. diff -rc --new-file /src/baseline/gcc-2.5.8/genconfig.c gcc-2.5.8/genconfig.c
  7439. *** /src/baseline/gcc-2.5.8/genconfig.c    Tue Oct 13 00:11:48 1992
  7440. --- gcc-2.5.8/genconfig.c    Tue Feb 22 11:23:23 1994
  7441. ***************
  7442. *** 303,310 ****
  7443. --- 303,318 ----
  7444.     printf ("/* Generated automatically by the program `genconfig'\n\
  7445.   from the machine description file `md'.  */\n\n");
  7446.   
  7447. + #ifdef amigados
  7448. +   /* this constant probably better be 14 in general, or a cross compiling
  7449. +      host might choke on some amigados header files... */
  7450. +   /* Allow at least 14 operands for the sake of asm constructs.  */
  7451. +   max_recog_operands = 14;
  7452. + #else
  7453.     /* Allow at least 10 operands for the sake of asm constructs.  */
  7454.     max_recog_operands = 9;  /* We will add 1 later.  */
  7455. + #endif
  7456.     max_dup_operands = 1;
  7457.   
  7458.     /* Read the machine description.  */
  7459. diff -rc --new-file /src/baseline/gcc-2.5.8/gstdarg.h gcc-2.5.8/gstdarg.h
  7460. *** /src/baseline/gcc-2.5.8/gstdarg.h    Fri Nov 12 21:54:16 1993
  7461. --- gcc-2.5.8/gstdarg.h    Tue Feb 22 11:23:26 1994
  7462. ***************
  7463. *** 157,160 ****
  7464. --- 157,166 ----
  7465.   
  7466.   #endif /* __GNUC__ */
  7467.   #endif /* not _ANSI_STDARG_H_ */
  7468. + #ifdef amigados
  7469. + # ifndef _VA_LIST
  7470. + #  define _VA_LIST
  7471. +    typedef __gnuc_va_list va_list;
  7472. + # endif
  7473. + #endif /* amigados */
  7474.   #endif /* not _STDARG_H */
  7475. diff -rc --new-file /src/baseline/gcc-2.5.8/gstddef.h gcc-2.5.8/gstddef.h
  7476. *** /src/baseline/gcc-2.5.8/gstddef.h    Fri Dec  3 07:47:17 1993
  7477. --- gcc-2.5.8/gstddef.h    Tue Feb 22 11:23:31 1994
  7478. ***************
  7479. *** 3,8 ****
  7480. --- 3,48 ----
  7481.   #ifndef _ANSI_STDDEF_H
  7482.   #ifndef __STDDEF_H__
  7483.   
  7484. + #ifdef amigados
  7485. + /* GNU libc has special support in this file, 4.3bsd-net2 libc deserves that
  7486. +    just as well. The system headers are ANSI compliant, the used compiler IS
  7487. +    gcc, so it's really ok to use the system header, no reason to hassle
  7488. +    with a jungle of ifdefs. Besides, amigados is only defined if compiling
  7489. +    with host=amigados, it doesn't apply if compiling with target=amigados
  7490. +    on a different host with possibly different system headers. Same thing
  7491. +    would apply to gstdarg.h and gvarargs.h, but those headers are more
  7492. +    easily fixable than this one and I'm sick of writing the same comment
  7493. +    there as well. MW
  7494. +    Include the contents of <stddef.h> inline rather than with a #include,
  7495. +    to avoid infinite include recursion when this file is installed in
  7496. +    gcc's include directory as stddef.h.  (fnf)  */
  7497. + #define _STDDEF_H_
  7498. + #include <machine/ansi.h>
  7499. + typedef    _PTRDIFF_T_    ptrdiff_t;
  7500. + #ifdef    _SIZE_T_
  7501. + typedef    _SIZE_T_    size_t;
  7502. + #undef    _SIZE_T_
  7503. + #endif
  7504. + #ifdef    _WCHAR_T_
  7505. + typedef    _WCHAR_T_    wchar_t;
  7506. + #undef    _WCHAR_T_
  7507. + #endif
  7508. + #ifndef    NULL
  7509. + #define    NULL    0
  7510. + #endif
  7511. + #define    offsetof(type, member)    ((size_t)(&((type *)0)->member))
  7512. + #else /* not amigados */
  7513.   /* Any one of these symbols __need_* means that GNU libc
  7514.      wants us just to define one data type.  So don't define
  7515.      the symbols that indicate this file's entire job has been done.  */
  7516. ***************
  7517. *** 172,177 ****
  7518. --- 212,219 ----
  7519.   #ifndef __WCHAR_TYPE__
  7520.   #define __WCHAR_TYPE__ int
  7521.   #endif
  7522. + #endif /* not amigados */
  7523.   #ifdef __GNUG__
  7524.   /* In C++, wchar_t is a distinct basic type,
  7525.      and we can expect __wchar_t to be defined by cc1plus.  */
  7526. diff -rc --new-file /src/baseline/gcc-2.5.8/gvarargs.h gcc-2.5.8/gvarargs.h
  7527. *** /src/baseline/gcc-2.5.8/gvarargs.h    Sat Nov 13 04:33:41 1993
  7528. --- gcc-2.5.8/gvarargs.h    Tue Feb 22 11:23:35 1994
  7529. ***************
  7530. *** 156,162 ****
  7531.   /* The macro _VA_LIST_T_H is used in the Bull dpx2  */
  7532.   #ifndef _VA_LIST_T_H
  7533.   #define _VA_LIST_T_H
  7534. ! #if !(defined (__BSD_NET2__) || defined (____386BSD____) || defined (__bsdi__) || defined (__sequent__))
  7535.   #define _VA_LIST_
  7536.   #endif
  7537.   #define _VA_LIST
  7538. --- 156,162 ----
  7539.   /* The macro _VA_LIST_T_H is used in the Bull dpx2  */
  7540.   #ifndef _VA_LIST_T_H
  7541.   #define _VA_LIST_T_H
  7542. ! #if !(defined (__BSD_NET2__) || defined (____386BSD____) || defined (__bsdi__) || defined (__sequent__) || defined (__amigados__))
  7543.   #define _VA_LIST_
  7544.   #endif
  7545.   #define _VA_LIST
  7546. ***************
  7547. *** 172,176 ****
  7548. --- 172,183 ----
  7549.   #ifdef _BSD_VA_LIST
  7550.   #undef _BSD_VA_LIST
  7551.   #endif
  7552. + #ifdef amigados
  7553. + # ifndef _VA_LIST
  7554. + #  define _VA_LIST
  7555. +    typedef __gnuc_va_list va_list;
  7556. + # endif
  7557. + #endif /* amigados */
  7558.   
  7559.   #endif /* __GNUC__ */
  7560. diff -rc --new-file /src/baseline/gcc-2.5.8/install.texi gcc-2.5.8/install.texi
  7561. *** /src/baseline/gcc-2.5.8/install.texi    Wed Nov 24 16:09:49 1993
  7562. --- gcc-2.5.8/install.texi    Tue Feb 22 11:27:48 1994
  7563. ***************
  7564. *** 599,618 ****
  7565.   @end itemize
  7566.   
  7567.   @item
  7568. ! The standard directory for installing GNU CC is @file{/usr/local/lib}.
  7569.   If you want to install its files somewhere else, specify
  7570.   @samp{--prefix=@var{dir}} when you run @file{configure}.  Here @var{dir}
  7571. ! is a directory name to use instead of @file{/usr/local} for all purposes
  7572. ! with one exception: the directory @file{/usr/local/include} is searched
  7573.   for header files no matter where you install the compiler.
  7574.   
  7575.   @item
  7576.   Specify @samp{--local-prefix=@var{dir}} if you want the compiler to
  7577.   search directory @file{@var{dir}/include} for header files
  7578. ! @emph{instead} of @file{/usr/local/include}.  (This is for systems that
  7579.   have different conventions for where to put site-specific things.)
  7580.   
  7581. ! Unless you have a convention other than @file{/usr/local} for
  7582.   site-specific files, it is a bad idea to specify @samp{--local-prefix}.
  7583.   
  7584.   @cindex Bison parser generator
  7585. --- 599,618 ----
  7586.   @end itemize
  7587.   
  7588.   @item
  7589. ! The standard directory for installing GNU CC is @file{/gnu/lib}.
  7590.   If you want to install its files somewhere else, specify
  7591.   @samp{--prefix=@var{dir}} when you run @file{configure}.  Here @var{dir}
  7592. ! is a directory name to use instead of @file{/gnu} for all purposes
  7593. ! with one exception: the directory @file{/gnu/include} is searched
  7594.   for header files no matter where you install the compiler.
  7595.   
  7596.   @item
  7597.   Specify @samp{--local-prefix=@var{dir}} if you want the compiler to
  7598.   search directory @file{@var{dir}/include} for header files
  7599. ! @emph{instead} of @file{/gnu/include}.  (This is for systems that
  7600.   have different conventions for where to put site-specific things.)
  7601.   
  7602. ! Unless you have a convention other than @file{/gnu} for
  7603.   site-specific files, it is a bad idea to specify @samp{--local-prefix}.
  7604.   
  7605.   @cindex Bison parser generator
  7606. ***************
  7607. *** 673,679 ****
  7608.   If you are building with a previous GNU C compiler, do not
  7609.   use @samp{CC=gcc} on the make command or by editing the Makefile.
  7610.   Instead, use a full pathname to specify the compiler, such as
  7611. ! @samp{CC=/usr/local/bin/gcc}.  This is because make might execute
  7612.   the @file{gcc} in the current directory before all of the
  7613.   compiler components have been built.
  7614.   
  7615. --- 673,679 ----
  7616.   If you are building with a previous GNU C compiler, do not
  7617.   use @samp{CC=gcc} on the make command or by editing the Makefile.
  7618.   Instead, use a full pathname to specify the compiler, such as
  7619. ! @samp{CC=/gnu/bin/gcc}.  This is because make might execute
  7620.   the @file{gcc} in the current directory before all of the
  7621.   compiler components have been built.
  7622.   
  7623. ***************
  7624. *** 827,840 ****
  7625.   @noindent
  7626.   This copies the files @file{cc1}, @file{cpp} and @file{libgcc.a} to
  7627.   files @file{cc1}, @file{cpp} and @file{libgcc.a} in the directory
  7628. ! @file{/usr/local/lib/gcc-lib/@var{target}/@var{version}}, which is where
  7629.   the compiler driver program looks for them.  Here @var{target} is the
  7630.   target machine type specified when you ran @file{configure}, and
  7631.   @var{version} is the version number of GNU CC.  This naming scheme
  7632.   permits various versions and/or cross-compilers to coexist.
  7633.   
  7634.   This also copies the driver program @file{xgcc} into
  7635. ! @file{/usr/local/bin/gcc}, so that it appears in typical execution
  7636.   search paths.
  7637.   
  7638.   On some systems, this command causes recompilation of some files.  This
  7639. --- 827,840 ----
  7640.   @noindent
  7641.   This copies the files @file{cc1}, @file{cpp} and @file{libgcc.a} to
  7642.   files @file{cc1}, @file{cpp} and @file{libgcc.a} in the directory
  7643. ! @file{/gnu/lib/gcc-lib/@var{target}/@var{version}}, which is where
  7644.   the compiler driver program looks for them.  Here @var{target} is the
  7645.   target machine type specified when you ran @file{configure}, and
  7646.   @var{version} is the version number of GNU CC.  This naming scheme
  7647.   permits various versions and/or cross-compilers to coexist.
  7648.   
  7649.   This also copies the driver program @file{xgcc} into
  7650. ! @file{/gnu/bin/gcc}, so that it appears in typical execution
  7651.   search paths.
  7652.   
  7653.   On some systems, this command causes recompilation of some files.  This
  7654. ***************
  7655. *** 1021,1027 ****
  7656.   
  7657.   If you have a cross-assembler and cross-linker available, you should
  7658.   install them now.  Put them in the directory
  7659. ! @file{/usr/local/@var{target}/bin}.  Here is a table of the tools
  7660.   you should put in this directory:
  7661.   
  7662.   @table @file
  7663. --- 1021,1027 ----
  7664.   
  7665.   If you have a cross-assembler and cross-linker available, you should
  7666.   install them now.  Put them in the directory
  7667. ! @file{/gnu/@var{target}/bin}.  Here is a table of the tools
  7668.   you should put in this directory:
  7669.   
  7670.   @table @file
  7671. ***************
  7672. *** 1052,1065 ****
  7673.   
  7674.   If you want to install libraries to use with the cross-compiler, such as
  7675.   a standard C library, put them in the directory
  7676. ! @file{/usr/local/@var{target}/lib}; installation of GNU CC copies all
  7677.   all the files in that subdirectory into the proper place for GNU CC to
  7678.   find them and link with them.  Here's an example of copying some
  7679.   libraries from a target machine:
  7680.   
  7681.   @example
  7682.   ftp @var{target-machine}
  7683. ! lcd /usr/local/@var{target}/lib
  7684.   cd /lib
  7685.   get libc.a
  7686.   cd /usr/lib
  7687. --- 1052,1065 ----
  7688.   
  7689.   If you want to install libraries to use with the cross-compiler, such as
  7690.   a standard C library, put them in the directory
  7691. ! @file{/gnu/@var{target}/lib}; installation of GNU CC copies all
  7692.   all the files in that subdirectory into the proper place for GNU CC to
  7693.   find them and link with them.  Here's an example of copying some
  7694.   libraries from a target machine:
  7695.   
  7696.   @example
  7697.   ftp @var{target-machine}
  7698. ! lcd /gnu/@var{target}/lib
  7699.   cd /lib
  7700.   get libc.a
  7701.   cd /usr/lib
  7702. ***************
  7703. *** 1075,1081 ****
  7704.   @cindex start files
  7705.   Many targets require ``start files'' such as @file{crt0.o} and
  7706.   @file{crtn.o} which are linked into each executable; these too should be
  7707. ! placed in @file{/usr/local/@var{target}/lib}.  There may be several
  7708.   alternatives for @file{crt0.o}, for use with profiling or other
  7709.   compilation options.  Check your target's definition of
  7710.   @code{STARTFILE_SPEC} to find out what start files it uses.
  7711. --- 1075,1081 ----
  7712.   @cindex start files
  7713.   Many targets require ``start files'' such as @file{crt0.o} and
  7714.   @file{crtn.o} which are linked into each executable; these too should be
  7715. ! placed in @file{/gnu/@var{target}/lib}.  There may be several
  7716.   alternatives for @file{crt0.o}, for use with profiling or other
  7717.   compilation options.  Check your target's definition of
  7718.   @code{STARTFILE_SPEC} to find out what start files it uses.
  7719. ***************
  7720. *** 1083,1089 ****
  7721.   
  7722.   @example
  7723.   ftp @var{target-machine}
  7724. ! lcd /usr/local/@var{target}/lib
  7725.   prompt
  7726.   cd /lib
  7727.   mget *crt*.o
  7728. --- 1083,1089 ----
  7729.   
  7730.   @example
  7731.   ftp @var{target-machine}
  7732. ! lcd /gnu/@var{target}/lib
  7733.   prompt
  7734.   cd /lib
  7735.   mget *crt*.o
  7736. ***************
  7737. *** 1201,1207 ****
  7738.   cross-compiling.
  7739.   
  7740.   When you have found suitable header files, put them in
  7741. ! @file{/usr/local/@var{target}/include}, before building the cross
  7742.   compiler.  Then installation will run fixincludes properly and install
  7743.   the corrected versions of the header files where the compiler will use
  7744.   them.
  7745. --- 1201,1207 ----
  7746.   cross-compiling.
  7747.   
  7748.   When you have found suitable header files, put them in
  7749. ! @file{/gnu/@var{target}/include}, before building the cross
  7750.   compiler.  Then installation will run fixincludes properly and install
  7751.   the corrected versions of the header files where the compiler will use
  7752.   them.
  7753. ***************
  7754. *** 1222,1228 ****
  7755.   
  7756.   @example
  7757.   ftp @var{target-machine}
  7758. ! lcd /usr/local/@var{target}/include
  7759.   get tarfile
  7760.   quit
  7761.   tar xf tarfile
  7762. --- 1222,1228 ----
  7763.   
  7764.   @example
  7765.   ftp @var{target-machine}
  7766. ! lcd /gnu/@var{target}/include
  7767.   get tarfile
  7768.   quit
  7769.   tar xf tarfile
  7770. ***************
  7771. *** 1283,1289 ****
  7772.   @samp{dist} subdirectory.  You would need to install GAS in the file
  7773.   
  7774.   @example
  7775. ! /usr/local/lib/gcc-lib/@var{configuration}/@var{gccversion}/as
  7776.   @end example
  7777.   
  7778.   @noindent
  7779. --- 1283,1289 ----
  7780.   @samp{dist} subdirectory.  You would need to install GAS in the file
  7781.   
  7782.   @example
  7783. ! /gnu/lib/gcc-lib/@var{configuration}/@var{gccversion}/as
  7784.   @end example
  7785.   
  7786.   @noindent
  7787. ***************
  7788. *** 1915,1922 ****
  7789.   installs only target independent header files in that directory.
  7790.   
  7791.   @code{LOCAL_INCLUDE_DIR} is used only for a native compiler.  It is
  7792. ! normally @file{/usr/local/include}.  GNU CC searches this directory so
  7793. ! that users can install header files in @file{/usr/local/include}.
  7794.   
  7795.   @code{CROSS_INCLUDE_DIR} is used only for a cross compiler.  GNU CC
  7796.   doesn't install anything there.
  7797. --- 1915,1922 ----
  7798.   installs only target independent header files in that directory.
  7799.   
  7800.   @code{LOCAL_INCLUDE_DIR} is used only for a native compiler.  It is
  7801. ! normally @file{/gnu/include}.  GNU CC searches this directory so
  7802. ! that users can install header files in @file{/gnu/include}.
  7803.   
  7804.   @code{CROSS_INCLUDE_DIR} is used only for a cross compiler.  GNU CC
  7805.   doesn't install anything there.
  7806. diff -rc --new-file /src/baseline/gcc-2.5.8/invoke.texi gcc-2.5.8/invoke.texi
  7807. *** /src/baseline/gcc-2.5.8/invoke.texi    Thu Nov 11 09:32:01 1993
  7808. --- gcc-2.5.8/invoke.texi    Tue Feb 22 11:27:55 1994
  7809. ***************
  7810. *** 2079,2085 ****
  7811.   For each subprogram to be run, the compiler driver first tries the
  7812.   @samp{-B} prefix, if any.  If that name is not found, or if @samp{-B}
  7813.   was not specified, the driver tries two standard prefixes, which are
  7814. ! @file{/usr/lib/gcc/} and @file{/usr/local/lib/gcc-lib/}.  If neither of
  7815.   those results in a file name that is found, the unmodified program
  7816.   name is searched for using the directories specified in your
  7817.   @samp{PATH} environment variable.
  7818. --- 2079,2085 ----
  7819.   For each subprogram to be run, the compiler driver first tries the
  7820.   @samp{-B} prefix, if any.  If that name is not found, or if @samp{-B}
  7821.   was not specified, the driver tries two standard prefixes, which are
  7822. ! @file{/usr/lib/gcc/} and @file{/gnu/lib/gcc-lib/}.  If neither of
  7823.   those results in a file name that is found, the unmodified program
  7824.   name is searched for using the directories specified in your
  7825.   @samp{PATH} environment variable.
  7826. ***************
  7827. *** 2145,2155 ****
  7828.   The @samp{-b} and @samp{-V} options actually work by controlling part of
  7829.   the file name used for the executable files and libraries used for
  7830.   compilation.  A given version of GNU CC, for a given target machine, is
  7831. ! normally kept in the directory @file{/usr/local/lib/gcc-lib/@var{machine}/@var{version}}.@refill
  7832.   
  7833.   Thus, sites can customize the effect of @samp{-b} or @samp{-V} either by
  7834.   changing the names of these directories or adding alternate names (or
  7835. ! symbolic links).  If in directory @file{/usr/local/lib/gcc-lib/} the
  7836.   file @file{80386} is a link to the file @file{i386v}, then @samp{-b
  7837.   80386} becomes an alias for @samp{-b i386v}.
  7838.   
  7839. --- 2145,2155 ----
  7840.   The @samp{-b} and @samp{-V} options actually work by controlling part of
  7841.   the file name used for the executable files and libraries used for
  7842.   compilation.  A given version of GNU CC, for a given target machine, is
  7843. ! normally kept in the directory @file{/gnu/lib/gcc-lib/@var{machine}/@var{version}}.@refill
  7844.   
  7845.   Thus, sites can customize the effect of @samp{-b} or @samp{-V} either by
  7846.   changing the names of these directories or adding alternate names (or
  7847. ! symbolic links).  If in directory @file{/gnu/lib/gcc-lib/} the
  7848.   file @file{80386} is a link to the file @file{i386v}, then @samp{-b
  7849.   80386} becomes an alias for @samp{-b i386v}.
  7850.   
  7851. ***************
  7852. *** 3526,3536 ****
  7853.   
  7854.   In addition, the prefix is used in an unusual way in finding the
  7855.   directories to search for header files.  For each of the standard
  7856. ! directories whose name normally begins with @samp{/usr/local/lib/gcc-lib}
  7857.   (more precisely, with the value of @code{GCC_INCLUDE_DIR}), GNU CC tries
  7858.   replacing that beginning with the specified prefix to produce an
  7859.   alternate directory name.  Thus, with @samp{-Bfoo/}, GNU CC will search
  7860. ! @file{foo/bar} where it would normally search @file{/usr/local/lib/bar}.
  7861.   These alternate directories are searched first; the standard directories
  7862.   come next.
  7863.   
  7864. --- 3526,3536 ----
  7865.   
  7866.   In addition, the prefix is used in an unusual way in finding the
  7867.   directories to search for header files.  For each of the standard
  7868. ! directories whose name normally begins with @samp{/gnu/lib/gcc-lib}
  7869.   (more precisely, with the value of @code{GCC_INCLUDE_DIR}), GNU CC tries
  7870.   replacing that beginning with the specified prefix to produce an
  7871.   alternate directory name.  Thus, with @samp{-Bfoo/}, GNU CC will search
  7872. ! @file{foo/bar} where it would normally search @file{/gnu/lib/bar}.
  7873.   These alternate directories are searched first; the standard directories
  7874.   come next.
  7875.   
  7876. ***************
  7877. *** 3641,3647 ****
  7878.   @table @code
  7879.   @item -B @var{directory}
  7880.   Look for the file @file{SYSCALLS.c.X} in @var{directory}, instead of the
  7881. ! usual directory (normally @file{/usr/local/lib}).  This file contains
  7882.   prototype information about standard system functions.  This option
  7883.   applies only to @code{protoize}.
  7884.   
  7885. --- 3641,3647 ----
  7886.   @table @code
  7887.   @item -B @var{directory}
  7888.   Look for the file @file{SYSCALLS.c.X} in @var{directory}, instead of the
  7889. ! usual directory (normally @file{/gnu/lib}).  This file contains
  7890.   prototype information about standard system functions.  This option
  7891.   applies only to @code{protoize}.
  7892.   
  7893. diff -rc --new-file /src/baseline/gcc-2.5.8/machmode.h gcc-2.5.8/machmode.h
  7894. *** /src/baseline/gcc-2.5.8/machmode.h    Sun Jun 27 21:18:48 1993
  7895. --- gcc-2.5.8/machmode.h    Tue Feb 22 11:23:39 1994
  7896. ***************
  7897. *** 92,98 ****
  7898.   
  7899.   /* Get the name of mode MODE as a string.  */
  7900.   
  7901. ! extern char *mode_name[];
  7902.   #define GET_MODE_NAME(MODE)        (mode_name[(int)(MODE)])
  7903.   
  7904.   enum mode_class { MODE_RANDOM, MODE_INT, MODE_FLOAT, MODE_PARTIAL_INT, MODE_CC,
  7905. --- 92,98 ----
  7906.   
  7907.   /* Get the name of mode MODE as a string.  */
  7908.   
  7909. ! extern char * const mode_name[];
  7910.   #define GET_MODE_NAME(MODE)        (mode_name[(int)(MODE)])
  7911.   
  7912.   enum mode_class { MODE_RANDOM, MODE_INT, MODE_FLOAT, MODE_PARTIAL_INT, MODE_CC,
  7913. ***************
  7914. *** 101,107 ****
  7915.   /* Get the general kind of object that mode MODE represents
  7916.      (integer, floating, complex, etc.)  */
  7917.   
  7918. ! extern enum mode_class mode_class[];
  7919.   #define GET_MODE_CLASS(MODE)        (mode_class[(int)(MODE)])
  7920.   
  7921.   /* Nonzero if MODE is an integral mode.  */
  7922. --- 101,107 ----
  7923.   /* Get the general kind of object that mode MODE represents
  7924.      (integer, floating, complex, etc.)  */
  7925.   
  7926. ! extern const enum mode_class mode_class[];
  7927.   #define GET_MODE_CLASS(MODE)        (mode_class[(int)(MODE)])
  7928.   
  7929.   /* Nonzero if MODE is an integral mode.  */
  7930. ***************
  7931. *** 117,128 ****
  7932.   
  7933.   /* Get the size in bytes of an object of mode MODE.  */
  7934.   
  7935. ! extern int mode_size[];
  7936.   #define GET_MODE_SIZE(MODE)        (mode_size[(int)(MODE)])
  7937.   
  7938.   /* Get the size in bytes of the basic parts of an object of mode MODE.  */
  7939.   
  7940. ! extern int mode_unit_size[];
  7941.   #define GET_MODE_UNIT_SIZE(MODE)    (mode_unit_size[(int)(MODE)])
  7942.   
  7943.   /* Get the number of units in the object.  */
  7944. --- 117,128 ----
  7945.   
  7946.   /* Get the size in bytes of an object of mode MODE.  */
  7947.   
  7948. ! extern const int mode_size[];
  7949.   #define GET_MODE_SIZE(MODE)        (mode_size[(int)(MODE)])
  7950.   
  7951.   /* Get the size in bytes of the basic parts of an object of mode MODE.  */
  7952.   
  7953. ! extern const int mode_unit_size[];
  7954.   #define GET_MODE_UNIT_SIZE(MODE)    (mode_unit_size[(int)(MODE)])
  7955.   
  7956.   /* Get the number of units in the object.  */
  7957. ***************
  7958. *** 144,150 ****
  7959.   
  7960.   /* Get the next wider natural mode (eg, QI -> HI -> SI -> DI -> TI).  */
  7961.   
  7962. ! extern enum machine_mode mode_wider_mode[];
  7963.   #define GET_MODE_WIDER_MODE(MODE)    (mode_wider_mode[(int)(MODE)])
  7964.   
  7965.   /* Return the mode for data of a given size SIZE and mode class CLASS.
  7966. --- 144,150 ----
  7967.   
  7968.   /* Get the next wider natural mode (eg, QI -> HI -> SI -> DI -> TI).  */
  7969.   
  7970. ! extern const enum machine_mode mode_wider_mode[];
  7971.   #define GET_MODE_WIDER_MODE(MODE)    (mode_wider_mode[(int)(MODE)])
  7972.   
  7973.   /* Return the mode for data of a given size SIZE and mode class CLASS.
  7974. diff -rc --new-file /src/baseline/gcc-2.5.8/objc-parse.c gcc-2.5.8/objc-parse.c
  7975. *** /src/baseline/gcc-2.5.8/objc-parse.c    Sat Nov 27 07:34:19 1993
  7976. --- gcc-2.5.8/objc-parse.c    Tue Feb 22 11:23:46 1994
  7977. ***************
  7978. *** 1529,1535 ****
  7979.       53
  7980.   };
  7981.   /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
  7982. ! #line 3 "/usr/local/lib/bison.simple"
  7983.   
  7984.   /* Skeleton output parser for bison,
  7985.      Copyright (C) 1984, 1989, 1990 Bob Corbett and Richard Stallman
  7986. --- 1529,1535 ----
  7987.       53
  7988.   };
  7989.   /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
  7990. ! #line 3 "/usr/lib/bison.simple"
  7991.   
  7992.   /* Skeleton output parser for bison,
  7993.      Copyright (C) 1984, 1989, 1990 Bob Corbett and Richard Stallman
  7994. ***************
  7995. *** 1710,1733 ****
  7996.   #endif
  7997.   #endif
  7998.   
  7999. ! #line 184 "/usr/local/lib/bison.simple"
  8000. ! /* The user can define YYPARSE_PARAM as the name of an argument to be passed
  8001. !    into yyparse.  The argument should have type void *.
  8002. !    It should actually point to an object.
  8003. !    Grammar actions can access the variable by casting it
  8004. !    to the proper pointer type.  */
  8005. ! #ifdef YYPARSE_PARAM
  8006. ! #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
  8007. ! #else
  8008. ! #define YYPARSE_PARAM
  8009. ! #define YYPARSE_PARAM_DECL
  8010. ! #endif
  8011.   int
  8012. ! yyparse(YYPARSE_PARAM)
  8013. !      YYPARSE_PARAM_DECL
  8014.   {
  8015.     register int yystate;
  8016.     register int yyn;
  8017. --- 1710,1718 ----
  8018.   #endif
  8019.   #endif
  8020.   
  8021. ! #line 184 "/usr/lib/bison.simple"
  8022.   int
  8023. ! yyparse()
  8024.   {
  8025.     register int yystate;
  8026.     register int yyn;
  8027. ***************
  8028. *** 4516,4522 ****
  8029.       break;}
  8030.   }
  8031.      /* the action file gets copied in in place of this dollarsign */
  8032. ! #line 480 "/usr/local/lib/bison.simple"
  8033.   
  8034.     yyvsp -= yylen;
  8035.     yyssp -= yylen;
  8036. --- 4501,4507 ----
  8037.       break;}
  8038.   }
  8039.      /* the action file gets copied in in place of this dollarsign */
  8040. ! #line 465 "/usr/lib/bison.simple"
  8041.   
  8042.     yyvsp -= yylen;
  8043.     yyssp -= yylen;
  8044. diff -rc --new-file /src/baseline/gcc-2.5.8/print-tree.c gcc-2.5.8/print-tree.c
  8045. *** /src/baseline/gcc-2.5.8/print-tree.c    Wed Oct 27 01:55:26 1993
  8046. --- gcc-2.5.8/print-tree.c    Tue Feb 22 11:23:51 1994
  8047. ***************
  8048. *** 24,30 ****
  8049.   
  8050.   extern char **tree_code_name;
  8051.   
  8052. ! extern char *mode_name[];
  8053.   
  8054.   void print_node ();
  8055.   void indent_to ();
  8056. --- 24,30 ----
  8057.   
  8058.   extern char **tree_code_name;
  8059.   
  8060. ! extern char *const mode_name[];
  8061.   
  8062.   void print_node ();
  8063.   void indent_to ();
  8064. diff -rc --new-file /src/baseline/gcc-2.5.8/protoize.c gcc-2.5.8/protoize.c
  8065. *** /src/baseline/gcc-2.5.8/protoize.c    Wed Nov 24 15:31:26 1993
  8066. --- gcc-2.5.8/protoize.c    Tue Feb 22 11:28:02 1994
  8067. ***************
  8068. *** 202,208 ****
  8069.   /* Define a default place to find the SYSCALLS.X file.  */
  8070.   
  8071.   #ifndef STD_PROTO_DIR
  8072. ! #define STD_PROTO_DIR "/usr/local/lib"
  8073.   #endif /* !defined (STD_PROTO_DIR) */
  8074.   
  8075.   /* Suffix of aux_info files.  */
  8076. --- 202,208 ----
  8077.   /* Define a default place to find the SYSCALLS.X file.  */
  8078.   
  8079.   #ifndef STD_PROTO_DIR
  8080. ! #define STD_PROTO_DIR "/gnu/lib"
  8081.   #endif /* !defined (STD_PROTO_DIR) */
  8082.   
  8083.   /* Suffix of aux_info files.  */
  8084. ***************
  8085. *** 266,276 ****
  8086.      just as it is done in cccp.c.  */
  8087.   
  8088.   #ifndef STANDARD_INCLUDE_DIR
  8089. ! #define STANDARD_INCLUDE_DIR "/usr/include"
  8090.   #endif
  8091.   
  8092.   #ifndef LOCAL_INCLUDE_DIR
  8093. ! #define LOCAL_INCLUDE_DIR "/usr/local/include"
  8094.   #endif
  8095.   
  8096.   struct default_include { const char *fname; int cplusplus; } include_defaults[]
  8097. --- 266,276 ----
  8098.      just as it is done in cccp.c.  */
  8099.   
  8100.   #ifndef STANDARD_INCLUDE_DIR
  8101. ! #define STANDARD_INCLUDE_DIR "/gnu/include"
  8102.   #endif
  8103.   
  8104.   #ifndef LOCAL_INCLUDE_DIR
  8105. ! #define LOCAL_INCLUDE_DIR "/local/include"
  8106.   #endif
  8107.   
  8108.   struct default_include { const char *fname; int cplusplus; } include_defaults[]
  8109. ***************
  8110. *** 839,846 ****
  8111. --- 839,851 ----
  8112.   {
  8113.     struct default_include *p;
  8114.   
  8115. + #ifdef FILE_NAME_ABSOLUTE_P
  8116. +   if (! FILE_NAME_ABSOLUTE_P (path))
  8117. +     abort ();
  8118. + #else
  8119.     if (path[0] != '/')
  8120.       abort ();        /* Must be an absolutized filename.  */
  8121. + #endif
  8122.   
  8123.     for (p = include_defaults; p->fname; p++)
  8124.       if (!strncmp (path, p->fname, strlen (p->fname))
  8125. ***************
  8126. *** 1267,1273 ****
  8127. --- 1272,1282 ----
  8128.     {
  8129.       const char *src_p;
  8130.   
  8131. + #ifdef FILE_NAME_ABSOLUTE_P
  8132. +     if (! FILE_NAME_ABSOLUTE_P (rel_filename))
  8133. + #else
  8134.       if (rel_filename[0] != '/')
  8135. + #endif
  8136.         {
  8137.           src_p = cwd2;
  8138.           while (*endp++ = *src_p++)
  8139. ***************
  8140. *** 1530,1535 ****
  8141. --- 1539,1563 ----
  8142.     return ++q;
  8143.   }
  8144.   
  8145. + /* Use this macro to advance a char * over the filename part in a line
  8146. +    read from an aux-info file. */
  8147. + #ifndef amigados
  8148. + /* Version for file systems where the colon has no special meaning */
  8149. + #define ADVANCE_PAST_FILENAME(CP) \
  8150. +   while (* (CP) != ':') (CP)++
  8151. + #else
  8152. + /* Have to heuristically decide whether the colon is part of the filename
  8153. +    or whether it serves to delimit the filename from the line number. If
  8154. +    it's the latter case, then the character following the colon *must*
  8155. +    be a digit. Note that this heuristic fails if the filename starts
  8156. +    with a digit. */
  8157. + #define ADVANCE_PAST_FILENAME(CP) \
  8158. +     while ((CP)[0] != ':' || !isdigit ((CP)[1])) \
  8159. +       (CP)++;
  8160. + #endif
  8161.   /* Given a line from  an aux info file, and a time at which the aux info
  8162.      file it came from was created, check to see if the item described in
  8163.      the line comes from a file which has been modified since the aux info
  8164. ***************
  8165. *** 1551,1558 ****
  8166.     {
  8167.       const char *filename_start = p = l + 3;
  8168.   
  8169. !     while (*p != ':')
  8170. !       p++;
  8171.       filename = (char *) alloca ((size_t) (p - filename_start) + 1);
  8172.       strncpy (filename, filename_start, (size_t) (p - filename_start));
  8173.       filename[p-filename_start] = '\0';
  8174. --- 1579,1585 ----
  8175.     {
  8176.       const char *filename_start = p = l + 3;
  8177.   
  8178. !     ADVANCE_PAST_FILENAME (p);
  8179.       filename = (char *) alloca ((size_t) (p - filename_start) + 1);
  8180.       strncpy (filename, filename_start, (size_t) (p - filename_start));
  8181.       filename[p-filename_start] = '\0';
  8182. ***************
  8183. *** 1609,1616 ****
  8184.       const char *filename_start = p = l + 3;
  8185.       char *filename;
  8186.   
  8187. !     while (*p != ':')
  8188. !       p++;
  8189.       filename = (char *) alloca ((size_t) (p - filename_start) + 1);
  8190.       strncpy (filename, filename_start, (size_t) (p - filename_start));
  8191.       filename[p-filename_start] = '\0';
  8192. --- 1636,1642 ----
  8193.       const char *filename_start = p = l + 3;
  8194.       char *filename;
  8195.   
  8196. !     ADVANCE_PAST_FILENAME (p);
  8197.       filename = (char *) alloca ((size_t) (p - filename_start) + 1);
  8198.       strncpy (filename, filename_start, (size_t) (p - filename_start));
  8199.       filename[p-filename_start] = '\0';
  8200. ***************
  8201. *** 2330,2336 ****
  8202.     {
  8203.       char *p = aux_info_base;
  8204.   
  8205. !     while (*p != ':')
  8206.         p++;
  8207.       p++;
  8208.       while (*p == ' ')
  8209. --- 2356,2364 ----
  8210.     {
  8211.       char *p = aux_info_base;
  8212.   
  8213. !     /* have to make sure at least one space is following the colon to make
  8214. !        sure the colon is not part of the filename */
  8215. !     while (*p != ':' && p[1] != ' ')
  8216.         p++;
  8217.       p++;
  8218.       while (*p == ' ')
  8219. ***************
  8220. *** 2344,2350 ****
  8221.         continue;
  8222.       aux_info_second_line = p;
  8223.       aux_info_relocated_name = 0;
  8224. !     if (invocation_filename[0] != '/')
  8225.         {
  8226.       /* INVOCATION_FILENAME is relative;
  8227.          append it to BASE_SOURCE_FILENAME's dir.  */
  8228. --- 2372,2382 ----
  8229.         continue;
  8230.       aux_info_second_line = p;
  8231.       aux_info_relocated_name = 0;
  8232. ! #ifdef FILE_NAME_ABSOLUTE_P
  8233. !     if (! FILE_NAME_ABSOLUTE_P (invocation_filename))
  8234. ! #else
  8235. !       if (invocation_filename[0] != '/')
  8236. ! #endif
  8237.         {
  8238.       /* INVOCATION_FILENAME is relative;
  8239.          append it to BASE_SOURCE_FILENAME's dir.  */
  8240. ***************
  8241. *** 2432,2438 ****
  8242.   #ifndef UNPROTOIZE
  8243.   
  8244.   /* Check an individual filename for a .c suffix.  If the filename has this
  8245. !    suffix, rename the file such that its suffix is changed to .C.  This
  8246.      function implements the -C option.  */
  8247.   
  8248.   static void
  8249. --- 2464,2470 ----
  8250.   #ifndef UNPROTOIZE
  8251.   
  8252.   /* Check an individual filename for a .c suffix.  If the filename has this
  8253. !    suffix, rename the file such that its suffix is changed to .cc.  This
  8254.      function implements the -C option.  */
  8255.   
  8256.   static void
  8257. ***************
  8258. *** 2441,2447 ****
  8259.   {
  8260.     const char *filename = hp->symbol;
  8261.     int last_char_index = strlen (filename) - 1;
  8262. !   char *const new_filename = (char *) alloca (strlen (filename) + 1);
  8263.   
  8264.     /* Note that we don't care here if the given file was converted or not.  It
  8265.        is possible that the given file was *not* converted, simply because there
  8266. --- 2473,2479 ----
  8267.   {
  8268.     const char *filename = hp->symbol;
  8269.     int last_char_index = strlen (filename) - 1;
  8270. !   char *const new_filename = (char *) alloca (strlen (filename) + 2);
  8271.   
  8272.     /* Note that we don't care here if the given file was converted or not.  It
  8273.        is possible that the given file was *not* converted, simply because there
  8274. ***************
  8275. *** 2453,2460 ****
  8276.       return;
  8277.   
  8278.     strcpy (new_filename, filename);
  8279. !   new_filename[last_char_index] = 'C';
  8280.   
  8281.     if (my_link (filename, new_filename) == -1)
  8282.       {
  8283.         fprintf (stderr, "%s: warning: can't link file `%s' to `%s': %s\n",
  8284. --- 2485,2509 ----
  8285.       return;
  8286.   
  8287.     strcpy (new_filename, filename);
  8288. !   strcat (new_filename + last_char_index, "cc");
  8289. !   
  8290. !   /* use rename(2) if available !! Update config files to include HAVE_rename
  8291. !      if the used OS provides it. Advantages are: it's atomic, it's one
  8292. !      system call compared to two. */
  8293.   
  8294. + #ifdef HAVE_rename
  8295. +   /* if the mentioned systems (POSIX 1003.1-1988) have rename(2), this has
  8296. +      to be changed to `my_rename' as well. */
  8297. +   if (rename (filename, new_filename) == -1)
  8298. +     {
  8299. +       fprintf (stderr, "%s: warning: can't rename file `%s' to `%s': %s\n",
  8300. +            pname, shortpath (NULL, filename),
  8301. +            shortpath (NULL, new_filename), sys_errlist[errno]);
  8302. +       errors++;
  8303. +       return;
  8304. +     }
  8305. + #else
  8306.     if (my_link (filename, new_filename) == -1)
  8307.       {
  8308.         fprintf (stderr, "%s: warning: can't link file `%s' to `%s': %s\n",
  8309. ***************
  8310. *** 2471,2476 ****
  8311. --- 2520,2526 ----
  8312.         errors++;
  8313.         return;
  8314.       }
  8315. + #endif
  8316.   }
  8317.   
  8318.   #endif /* !defined (UNPROTOIZE) */
  8319. diff -rc --new-file /src/baseline/gcc-2.5.8/real.c gcc-2.5.8/real.c
  8320. *** /src/baseline/gcc-2.5.8/real.c    Wed Oct 13 15:46:38 1993
  8321. --- gcc-2.5.8/real.c    Tue Feb 22 11:24:04 1994
  8322. ***************
  8323. *** 4333,4341 ****
  8324.     if (y[NE - 1] == 0x7fff)
  8325.       {
  8326.         if (sign)
  8327. !     sprintf (wstring, " -Infinity ");
  8328.         else
  8329. !     sprintf (wstring, " Infinity ");
  8330.         goto bxit;
  8331.       }
  8332.   
  8333. --- 4333,4341 ----
  8334.     if (y[NE - 1] == 0x7fff)
  8335.       {
  8336.         if (sign)
  8337. !     sprintf (wstring, " -NaN ");
  8338.         else
  8339. !     sprintf (wstring, " NaN ");
  8340.         goto bxit;
  8341.       }
  8342.   
  8343. diff -rc --new-file /src/baseline/gcc-2.5.8/rtl.c gcc-2.5.8/rtl.c
  8344. *** /src/baseline/gcc-2.5.8/rtl.c    Thu Oct  7 17:05:00 1993
  8345. --- gcc-2.5.8/rtl.c    Tue Feb 22 11:24:10 1994
  8346. ***************
  8347. *** 50,56 ****
  8348.   
  8349.   #define DEF_RTL_EXPR(ENUM, NAME, FORMAT, CLASS)   NAME ,
  8350.   
  8351. ! char *rtx_name[] = {
  8352.   #include "rtl.def"        /* rtl expressions are documented here */
  8353.   };
  8354.   
  8355. --- 50,56 ----
  8356.   
  8357.   #define DEF_RTL_EXPR(ENUM, NAME, FORMAT, CLASS)   NAME ,
  8358.   
  8359. ! char * const rtx_name[] = {
  8360.   #include "rtl.def"        /* rtl expressions are documented here */
  8361.   };
  8362.   
  8363. ***************
  8364. *** 61,67 ****
  8365.   
  8366.   #define DEF_MACHMODE(SYM, NAME, CLASS, SIZE, UNIT, WIDER)  NAME,
  8367.   
  8368. ! char *mode_name[(int) MAX_MACHINE_MODE] = {
  8369.   #include "machmode.def"
  8370.   
  8371.   #ifdef EXTRA_CC_MODES
  8372. --- 61,67 ----
  8373.   
  8374.   #define DEF_MACHMODE(SYM, NAME, CLASS, SIZE, UNIT, WIDER)  NAME,
  8375.   
  8376. ! char * const mode_name[(int) MAX_MACHINE_MODE] = {
  8377.   #include "machmode.def"
  8378.   
  8379.   #ifdef EXTRA_CC_MODES
  8380. ***************
  8381. *** 77,83 ****
  8382.   
  8383.   #define DEF_MACHMODE(SYM, NAME, CLASS, SIZE, UNIT, WIDER)  CLASS,
  8384.   
  8385. ! enum mode_class mode_class[(int) MAX_MACHINE_MODE] = {
  8386.   #include "machmode.def"
  8387.   };
  8388.   
  8389. --- 77,83 ----
  8390.   
  8391.   #define DEF_MACHMODE(SYM, NAME, CLASS, SIZE, UNIT, WIDER)  CLASS,
  8392.   
  8393. ! const enum mode_class mode_class[(int) MAX_MACHINE_MODE] = {
  8394.   #include "machmode.def"
  8395.   };
  8396.   
  8397. ***************
  8398. *** 88,94 ****
  8399.   
  8400.   #define DEF_MACHMODE(SYM, NAME, CLASS, SIZE, UNIT, WIDER)  SIZE,
  8401.   
  8402. ! int mode_size[(int) MAX_MACHINE_MODE] = {
  8403.   #include "machmode.def"
  8404.   };
  8405.   
  8406. --- 88,94 ----
  8407.   
  8408.   #define DEF_MACHMODE(SYM, NAME, CLASS, SIZE, UNIT, WIDER)  SIZE,
  8409.   
  8410. ! const int mode_size[(int) MAX_MACHINE_MODE] = {
  8411.   #include "machmode.def"
  8412.   };
  8413.   
  8414. ***************
  8415. *** 99,105 ****
  8416.   
  8417.   #define DEF_MACHMODE(SYM, NAME, CLASS, SIZE, UNIT, WIDER)  UNIT,
  8418.   
  8419. ! int mode_unit_size[(int) MAX_MACHINE_MODE] = {
  8420.   #include "machmode.def"        /* machine modes are documented here */
  8421.   };
  8422.   
  8423. --- 99,105 ----
  8424.   
  8425.   #define DEF_MACHMODE(SYM, NAME, CLASS, SIZE, UNIT, WIDER)  UNIT,
  8426.   
  8427. ! const int mode_unit_size[(int) MAX_MACHINE_MODE] = {
  8428.   #include "machmode.def"        /* machine modes are documented here */
  8429.   };
  8430.   
  8431. ***************
  8432. *** 112,118 ****
  8433.   #define DEF_MACHMODE(SYM, NAME, CLASS, SIZE, UNIT, WIDER)  \
  8434.     (enum machine_mode) WIDER,
  8435.   
  8436. ! enum machine_mode mode_wider_mode[(int) MAX_MACHINE_MODE] = {
  8437.   #include "machmode.def"        /* machine modes are documented here */
  8438.   };
  8439.   
  8440. --- 112,118 ----
  8441.   #define DEF_MACHMODE(SYM, NAME, CLASS, SIZE, UNIT, WIDER)  \
  8442.     (enum machine_mode) WIDER,
  8443.   
  8444. ! const enum machine_mode mode_wider_mode[(int) MAX_MACHINE_MODE] = {
  8445.   #include "machmode.def"        /* machine modes are documented here */
  8446.   };
  8447.   
  8448. ***************
  8449. *** 126,132 ****
  8450.      rtx's of that code.  The sequence is a C string in which
  8451.      each character describes one operand.  */
  8452.   
  8453. ! char *rtx_format[] = {
  8454.     /* "*" undefined.
  8455.            can cause a warning message
  8456.        "0" field is unused (or used in a phase-dependent manner)
  8457. --- 126,132 ----
  8458.      rtx's of that code.  The sequence is a C string in which
  8459.      each character describes one operand.  */
  8460.   
  8461. ! char *const rtx_format[] = {
  8462.     /* "*" undefined.
  8463.            can cause a warning message
  8464.        "0" field is unused (or used in a phase-dependent manner)
  8465. ***************
  8466. *** 157,163 ****
  8467.   /* Indexed by rtx code, gives a character representing the "class" of
  8468.      that rtx code.  See rtl.def for documentation on the defined classes.  */
  8469.   
  8470. ! char rtx_class[] = {
  8471.   #define DEF_RTL_EXPR(ENUM, NAME, FORMAT, CLASS)   CLASS, 
  8472.   #include "rtl.def"        /* rtl expressions are defined here */
  8473.   #undef DEF_RTL_EXPR
  8474. --- 157,163 ----
  8475.   /* Indexed by rtx code, gives a character representing the "class" of
  8476.      that rtx code.  See rtl.def for documentation on the defined classes.  */
  8477.   
  8478. ! const char rtx_class[] = {
  8479.   #define DEF_RTL_EXPR(ENUM, NAME, FORMAT, CLASS)   CLASS, 
  8480.   #include "rtl.def"        /* rtl expressions are defined here */
  8481.   #undef DEF_RTL_EXPR
  8482. ***************
  8483. *** 165,171 ****
  8484.   
  8485.   /* Names for kinds of NOTEs and REG_NOTEs.  */
  8486.   
  8487. ! char *note_insn_name[] = { 0                    , "NOTE_INSN_DELETED",
  8488.                  "NOTE_INSN_BLOCK_BEG", "NOTE_INSN_BLOCK_END",
  8489.                  "NOTE_INSN_LOOP_BEG", "NOTE_INSN_LOOP_END",
  8490.                  "NOTE_INSN_FUNCTION_END", "NOTE_INSN_SETJMP",
  8491. --- 165,171 ----
  8492.   
  8493.   /* Names for kinds of NOTEs and REG_NOTEs.  */
  8494.   
  8495. ! char * const note_insn_name[] = { 0                    , "NOTE_INSN_DELETED",
  8496.                  "NOTE_INSN_BLOCK_BEG", "NOTE_INSN_BLOCK_END",
  8497.                  "NOTE_INSN_LOOP_BEG", "NOTE_INSN_LOOP_END",
  8498.                  "NOTE_INSN_FUNCTION_END", "NOTE_INSN_SETJMP",
  8499. ***************
  8500. *** 173,179 ****
  8501.                  "NOTE_INSN_PROLOGUE_END", "NOTE_INSN_EPILOGUE_BEG",
  8502.                  "NOTE_INSN_DELETED_LABEL", "NOTE_INSN_FUNCTION_BEG"};
  8503.   
  8504. ! char *reg_note_name[] = { "", "REG_DEAD", "REG_INC", "REG_EQUIV", "REG_WAS_0",
  8505.                 "REG_EQUAL", "REG_RETVAL", "REG_LIBCALL",
  8506.                 "REG_NONNEG", "REG_NO_CONFLICT", "REG_UNUSED",
  8507.                 "REG_CC_SETTER", "REG_CC_USER", "REG_LABEL",
  8508. --- 173,180 ----
  8509.                  "NOTE_INSN_PROLOGUE_END", "NOTE_INSN_EPILOGUE_BEG",
  8510.                  "NOTE_INSN_DELETED_LABEL", "NOTE_INSN_FUNCTION_BEG"};
  8511.   
  8512. ! char * const reg_note_name[] =
  8513. !              { "", "REG_DEAD", "REG_INC", "REG_EQUIV", "REG_WAS_0",
  8514.                 "REG_EQUAL", "REG_RETVAL", "REG_LIBCALL",
  8515.                 "REG_NONNEG", "REG_NO_CONFLICT", "REG_UNUSED",
  8516.                 "REG_CC_SETTER", "REG_CC_USER", "REG_LABEL",
  8517. diff -rc --new-file /src/baseline/gcc-2.5.8/rtl.h gcc-2.5.8/rtl.h
  8518. *** /src/baseline/gcc-2.5.8/rtl.h    Wed Sep 29 18:34:24 1993
  8519. --- gcc-2.5.8/rtl.h    Tue Feb 22 11:24:14 1994
  8520. ***************
  8521. *** 44,56 ****
  8522.   extern int rtx_length[];
  8523.   #define GET_RTX_LENGTH(CODE)        (rtx_length[(int)(CODE)])
  8524.   
  8525. ! extern char *rtx_name[];
  8526.   #define GET_RTX_NAME(CODE)        (rtx_name[(int)(CODE)])
  8527.   
  8528. ! extern char *rtx_format[];
  8529.   #define GET_RTX_FORMAT(CODE)        (rtx_format[(int)(CODE)])
  8530.   
  8531. ! extern char rtx_class[];
  8532.   #define GET_RTX_CLASS(CODE)        (rtx_class[(int)(CODE)])
  8533.   
  8534.   /* Common union for an element of an rtx.  */
  8535. --- 44,56 ----
  8536.   extern int rtx_length[];
  8537.   #define GET_RTX_LENGTH(CODE)        (rtx_length[(int)(CODE)])
  8538.   
  8539. ! extern char * const rtx_name[];
  8540.   #define GET_RTX_NAME(CODE)        (rtx_name[(int)(CODE)])
  8541.   
  8542. ! extern char * const rtx_format[];
  8543.   #define GET_RTX_FORMAT(CODE)        (rtx_format[(int)(CODE)])
  8544.   
  8545. ! extern const char rtx_class[];
  8546.   #define GET_RTX_CLASS(CODE)        (rtx_class[(int)(CODE)])
  8547.   
  8548.   /* Common union for an element of an rtx.  */
  8549. ***************
  8550. *** 331,337 ****
  8551.   
  8552.   /* Names for REG_NOTE's in EXPR_LIST insn's.  */
  8553.   
  8554. ! extern char *reg_note_name[];
  8555.   #define GET_REG_NOTE_NAME(MODE) (reg_note_name[(int)(MODE)])
  8556.   
  8557.   /* The label-number of a code-label.  The assembler label
  8558. --- 331,337 ----
  8559.   
  8560.   /* Names for REG_NOTE's in EXPR_LIST insn's.  */
  8561.   
  8562. ! extern char *const reg_note_name[];
  8563.   #define GET_REG_NOTE_NAME(MODE) (reg_note_name[(int)(MODE)])
  8564.   
  8565.   /* The label-number of a code-label.  The assembler label
  8566. ***************
  8567. *** 408,414 ****
  8568.   
  8569.   /* Names for NOTE insn's other than line numbers.  */
  8570.   
  8571. ! extern char *note_insn_name[];
  8572.   #define GET_NOTE_INSN_NAME(NOTE_CODE) (note_insn_name[-(NOTE_CODE)])
  8573.   
  8574.   /* The name of a label, in case it corresponds to an explicit label
  8575. --- 408,414 ----
  8576.   
  8577.   /* Names for NOTE insn's other than line numbers.  */
  8578.   
  8579. ! extern char *const note_insn_name[];
  8580.   #define GET_NOTE_INSN_NAME(NOTE_CODE) (note_insn_name[-(NOTE_CODE)])
  8581.   
  8582.   /* The name of a label, in case it corresponds to an explicit label
  8583. diff -rc --new-file /src/baseline/gcc-2.5.8/scan-types.sh gcc-2.5.8/scan-types.sh
  8584. *** /src/baseline/gcc-2.5.8/scan-types.sh    Tue Oct 26 19:01:02 1993
  8585. --- gcc-2.5.8/scan-types.sh    Tue Feb 22 11:24:18 1994
  8586. ***************
  8587. *** 1,4 ****
  8588. ! #! /bin/sh
  8589.   # Deduce values of standard ANSI and POSIX types (e.g. size_t, pid_t).
  8590.   # Emits macros definitions for these, and some other types.
  8591.   # Intended to be used to massage the sys-protos.h file.
  8592. --- 1,4 ----
  8593. ! #!/bin/sh
  8594.   # Deduce values of standard ANSI and POSIX types (e.g. size_t, pid_t).
  8595.   # Emits macros definitions for these, and some other types.
  8596.   # Intended to be used to massage the sys-protos.h file.
  8597. diff -rc --new-file /src/baseline/gcc-2.5.8/tm.texi gcc-2.5.8/tm.texi
  8598. *** /src/baseline/gcc-2.5.8/tm.texi    Thu Nov 11 09:45:26 1993
  8599. --- gcc-2.5.8/tm.texi    Tue Feb 22 11:28:11 1994
  8600. ***************
  8601. *** 205,211 ****
  8602.   @findex STANDARD_EXEC_PREFIX
  8603.   @item STANDARD_EXEC_PREFIX
  8604.   Define this macro as a C string constant if you wish to override the
  8605. ! standard choice of @file{/usr/local/lib/gcc-lib/} as the default prefix to
  8606.   try when searching for the executable files of the compiler.
  8607.   
  8608.   @findex MD_EXEC_PREFIX
  8609. --- 205,211 ----
  8610.   @findex STANDARD_EXEC_PREFIX
  8611.   @item STANDARD_EXEC_PREFIX
  8612.   Define this macro as a C string constant if you wish to override the
  8613. ! standard choice of @file{/gnu/lib/gcc-lib/} as the default prefix to
  8614.   try when searching for the executable files of the compiler.
  8615.   
  8616.   @findex MD_EXEC_PREFIX
  8617. ***************
  8618. *** 218,224 ****
  8619.   @findex STANDARD_STARTFILE_PREFIX
  8620.   @item STANDARD_STARTFILE_PREFIX
  8621.   Define this macro as a C string constant if you wish to override the
  8622. ! standard choice of @file{/usr/local/lib/} as the default prefix to
  8623.   try when searching for startup files such as @file{crt0.o}.
  8624.   
  8625.   @findex MD_STARTFILE_PREFIX
  8626. --- 218,224 ----
  8627.   @findex STANDARD_STARTFILE_PREFIX
  8628.   @item STANDARD_STARTFILE_PREFIX
  8629.   Define this macro as a C string constant if you wish to override the
  8630. ! standard choice of @file{/gnu/lib/} as the default prefix to
  8631.   try when searching for startup files such as @file{crt0.o}.
  8632.   
  8633.   @findex MD_STARTFILE_PREFIX
  8634. ***************
  8635. *** 237,248 ****
  8636.   @findex LOCAL_INCLUDE_DIR
  8637.   @item LOCAL_INCLUDE_DIR
  8638.   Define this macro as a C string constant if you wish to override the
  8639. ! standard choice of @file{/usr/local/include} as the default prefix to
  8640.   try when searching for local header files.  @code{LOCAL_INCLUDE_DIR}
  8641.   comes before @code{SYSTEM_INCLUDE_DIR} in the search order.
  8642.   
  8643.   Cross compilers do not use this macro and do not search either
  8644. ! @file{/usr/local/include} or its replacement.
  8645.   
  8646.   @findex SYSTEM_INCLUDE_DIR
  8647.   @item SYSTEM_INCLUDE_DIR
  8648. --- 237,248 ----
  8649.   @findex LOCAL_INCLUDE_DIR
  8650.   @item LOCAL_INCLUDE_DIR
  8651.   Define this macro as a C string constant if you wish to override the
  8652. ! standard choice of @file{/gnu/include} as the default prefix to
  8653.   try when searching for local header files.  @code{LOCAL_INCLUDE_DIR}
  8654.   comes before @code{SYSTEM_INCLUDE_DIR} in the search order.
  8655.   
  8656.   Cross compilers do not use this macro and do not search either
  8657. ! @file{/gnu/include} or its replacement.
  8658.   
  8659.   @findex SYSTEM_INCLUDE_DIR
  8660.   @item SYSTEM_INCLUDE_DIR
  8661. diff -rc --new-file /src/baseline/gcc-2.5.8/toplev.c gcc-2.5.8/toplev.c
  8662. *** /src/baseline/gcc-2.5.8/toplev.c    Fri Dec 10 20:59:54 1993
  8663. --- gcc-2.5.8/toplev.c    Tue Feb 22 11:24:24 1994
  8664. ***************
  8665. *** 504,509 ****
  8666. --- 504,510 ----
  8667.     {"unroll-all-loops", &flag_unroll_all_loops, 1},
  8668.     {"writable-strings", &flag_writable_strings, 1},
  8669.     {"peephole", &flag_no_peephole, 0},
  8670. +   {"large-baserel", &flag_pic, 4},
  8671.     {"force-mem", &flag_force_mem, 1},
  8672.     {"force-addr", &flag_force_addr, 1},
  8673.     {"function-cse", &flag_no_function_cse, 0},
  8674. ***************
  8675. *** 522,527 ****
  8676. --- 523,529 ----
  8677.     {"schedule-insns2", &flag_schedule_insns_after_reload, 1},
  8678.     {"pic", &flag_pic, 1},
  8679.     {"PIC", &flag_pic, 2},
  8680. +   {"baserel", &flag_pic, 3},
  8681.     {"fast-math", &flag_fast_math, 1},
  8682.     {"common", &flag_no_common, 0},
  8683.     {"inhibit-size-directive", &flag_inhibit_size_directive, 1},
  8684. ***************
  8685. *** 1530,1535 ****
  8686. --- 1532,1540 ----
  8687.        FILE *asm_file;
  8688.        char *input_name;
  8689.   {
  8690. + #ifdef FILE_NAME_NONDIRECTORY
  8691. +   char *na = FILE_NAME_NONDIRECTORY (input_name);
  8692. + #else
  8693.     int len = strlen (input_name);
  8694.     char *na = input_name + len;
  8695.   
  8696. ***************
  8697. *** 1540,1545 ****
  8698. --- 1545,1551 ----
  8699.       break;
  8700.         na--;
  8701.       }
  8702. + #endif
  8703.   
  8704.   #ifdef ASM_OUTPUT_MAIN_SOURCE_FILENAME
  8705.     ASM_OUTPUT_MAIN_SOURCE_FILENAME (asm_file, na);
  8706. ***************
  8707. *** 3507,3512 ****
  8708. --- 3513,3519 ----
  8709.   
  8710.   #ifndef OS2
  8711.   #ifndef VMS
  8712. + #ifndef amigados
  8713.     if (flag_print_mem)
  8714.       {
  8715.         char *lim = (char *) sbrk (0);
  8716. ***************
  8717. *** 3521,3526 ****
  8718. --- 3528,3534 ----
  8719.         system ("ps v");
  8720.   #endif /* not USG */
  8721.       }
  8722. + #endif /* not amigados */
  8723.   #endif /* not VMS */
  8724.   #endif /* not OS2 */
  8725.   
  8726. diff -rc --new-file /src/baseline/gcc-2.5.8/tree.c gcc-2.5.8/tree.c
  8727. *** /src/baseline/gcc-2.5.8/tree.c    Tue Jan  4 08:36:01 1994
  8728. --- gcc-2.5.8/tree.c    Tue Feb 22 11:24:31 1994
  8729. ***************
  8730. *** 248,254 ****
  8731.   /* Unique id for next type created.  */
  8732.   static int next_type_uid = 1;
  8733.   
  8734. ! extern char *mode_name[];
  8735.   
  8736.   void gcc_obstack_init ();
  8737.   static tree stabilize_reference_1 ();
  8738. --- 248,254 ----
  8739.   /* Unique id for next type created.  */
  8740.   static int next_type_uid = 1;
  8741.   
  8742. ! extern char *const mode_name[];
  8743.   
  8744.   void gcc_obstack_init ();
  8745.   static tree stabilize_reference_1 ();
  8746.