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
Wrap
Text File
|
1994-07-12
|
300KB
|
9,010 lines
diff -rc --new-file /src/baseline/gcc-2.5.8/INSTALL gcc-2.5.8/INSTALL
*** /src/baseline/gcc-2.5.8/INSTALL Sat Nov 27 15:47:57 1993
--- gcc-2.5.8/INSTALL Tue Feb 22 11:26:44 1994
***************
*** 518,536 ****
files do not exist, it means nothing needs to be added for a
given target or host.
! 4. The standard directory for installing GNU CC is `/usr/local/lib'.
If you want to install its files somewhere else, specify
`--prefix=DIR' when you run `configure'. Here DIR is a directory
! name to use instead of `/usr/local' for all purposes with one
! exception: the directory `/usr/local/include' is searched for
header files no matter where you install the compiler.
5. Specify `--local-prefix=DIR' if you want the compiler to search
directory `DIR/include' for header files *instead* of
! `/usr/local/include'. (This is for systems that have different
conventions for where to put site-specific things.)
! Unless you have a convention other than `/usr/local' for
site-specific files, it is a bad idea to specify `--local-prefix'.
6. Make sure the Bison parser generator is installed. (This is
--- 518,536 ----
files do not exist, it means nothing needs to be added for a
given target or host.
! 4. The standard directory for installing GNU CC is `/gnu/lib'.
If you want to install its files somewhere else, specify
`--prefix=DIR' when you run `configure'. Here DIR is a directory
! name to use instead of `/gnu' for all purposes with one
! exception: the directory `/gnu/include' is searched for
header files no matter where you install the compiler.
5. Specify `--local-prefix=DIR' if you want the compiler to search
directory `DIR/include' for header files *instead* of
! `/gnu/include'. (This is for systems that have different
conventions for where to put site-specific things.)
! Unless you have a convention other than `/gnu' for
site-specific files, it is a bad idea to specify `--local-prefix'.
6. Make sure the Bison parser generator is installed. (This is
***************
*** 582,588 ****
If you are building with a previous GNU C compiler, do not use
`CC=gcc' on the make command or by editing the Makefile. Instead,
use a full pathname to specify the compiler, such as
! `CC=/usr/local/bin/gcc'. This is because make might execute the
`gcc' in the current directory before all of the compiler
components have been built.
--- 582,588 ----
If you are building with a previous GNU C compiler, do not use
`CC=gcc' on the make command or by editing the Makefile. Instead,
use a full pathname to specify the compiler, such as
! `CC=/gnu/bin/gcc'. This is because make might execute the
`gcc' in the current directory before all of the compiler
components have been built.
***************
*** 707,720 ****
This copies the files `cc1', `cpp' and `libgcc.a' to files `cc1',
`cpp' and `libgcc.a' in the directory
! `/usr/local/lib/gcc-lib/TARGET/VERSION', which is where the
compiler driver program looks for them. Here TARGET is the target
machine type specified when you ran `configure', and VERSION is
the version number of GNU CC. This naming scheme permits various
versions and/or cross-compilers to coexist.
This also copies the driver program `xgcc' into
! `/usr/local/bin/gcc', so that it appears in typical execution
search paths.
On some systems, this command causes recompilation of some files.
--- 707,720 ----
This copies the files `cc1', `cpp' and `libgcc.a' to files `cc1',
`cpp' and `libgcc.a' in the directory
! `/gnu/lib/gcc-lib/TARGET/VERSION', which is where the
compiler driver program looks for them. Here TARGET is the target
machine type specified when you ran `configure', and VERSION is
the version number of GNU CC. This naming scheme permits various
versions and/or cross-compilers to coexist.
This also copies the driver program `xgcc' into
! `/gnu/bin/gcc', so that it appears in typical execution
search paths.
On some systems, this command causes recompilation of some files.
***************
*** 854,860 ****
----------------------------------------
If you have a cross-assembler and cross-linker available, you should
! install them now. Put them in the directory `/usr/local/TARGET/bin'.
Here is a table of the tools you should put in this directory:
`as'
--- 854,860 ----
----------------------------------------
If you have a cross-assembler and cross-linker available, you should
! install them now. Put them in the directory `/gnu/TARGET/bin'.
Here is a table of the tools you should put in this directory:
`as'
***************
*** 884,896 ****
If you want to install libraries to use with the cross-compiler,
such as a standard C library, put them in the directory
! `/usr/local/TARGET/lib'; installation of GNU CC copies all all the
files in that subdirectory into the proper place for GNU CC to find
them and link with them. Here's an example of copying some libraries
from a target machine:
ftp TARGET-MACHINE
! lcd /usr/local/TARGET/lib
cd /lib
get libc.a
cd /usr/lib
--- 884,896 ----
If you want to install libraries to use with the cross-compiler,
such as a standard C library, put them in the directory
! `/gnu/TARGET/lib'; installation of GNU CC copies all all the
files in that subdirectory into the proper place for GNU CC to find
them and link with them. Here's an example of copying some libraries
from a target machine:
ftp TARGET-MACHINE
! lcd /gnu/TARGET/lib
cd /lib
get libc.a
cd /usr/lib
***************
*** 903,916 ****
Many targets require "start files" such as `crt0.o' and `crtn.o'
which are linked into each executable; these too should be placed in
! `/usr/local/TARGET/lib'. There may be several alternatives for
`crt0.o', for use with profiling or other compilation options. Check
your target's definition of `STARTFILE_SPEC' to find out what start
files it uses. Here's an example of copying these files from a target
machine:
ftp TARGET-MACHINE
! lcd /usr/local/TARGET/lib
prompt
cd /lib
mget *crt*.o
--- 903,916 ----
Many targets require "start files" such as `crt0.o' and `crtn.o'
which are linked into each executable; these too should be placed in
! `/gnu/TARGET/lib'. There may be several alternatives for
`crt0.o', for use with profiling or other compilation options. Check
your target's definition of `STARTFILE_SPEC' to find out what start
files it uses. Here's an example of copying these files from a target
machine:
ftp TARGET-MACHINE
! lcd /gnu/TARGET/lib
prompt
cd /lib
mget *crt*.o
***************
*** 1023,1029 ****
cross-compiling.
When you have found suitable header files, put them in
! `/usr/local/TARGET/include', before building the cross compiler. Then
installation will run fixincludes properly and install the corrected
versions of the header files where the compiler will use them.
--- 1023,1029 ----
cross-compiling.
When you have found suitable header files, put them in
! `/gnu/TARGET/include', before building the cross compiler. Then
installation will run fixincludes properly and install the corrected
versions of the header files where the compiler will use them.
***************
*** 1040,1046 ****
Then, on the host machine, do this:
ftp TARGET-MACHINE
! lcd /usr/local/TARGET/include
get tarfile
quit
tar xf tarfile
--- 1040,1046 ----
Then, on the host machine, do this:
ftp TARGET-MACHINE
! lcd /gnu/TARGET/include
get tarfile
quit
tar xf tarfile
***************
*** 1098,1104 ****
`jaguar.cs.utah.edu' `dist' subdirectory. You would need to install
GAS in the file
! /usr/local/lib/gcc-lib/CONFIGURATION/GCCVERSION/as
where CONFIGURATION is the configuration name (perhaps `hpNNN-hpux')
and GCCVERSION is the GNU CC version number. Do this *before* starting
--- 1098,1104 ----
`jaguar.cs.utah.edu' `dist' subdirectory. You would need to install
GAS in the file
! /gnu/lib/gcc-lib/CONFIGURATION/GCCVERSION/as
where CONFIGURATION is the configuration name (perhaps `hpNNN-hpux')
and GCCVERSION is the GNU CC version number. Do this *before* starting
***************
*** 1618,1625 ****
target independent header files in that directory.
`LOCAL_INCLUDE_DIR' is used only for a native compiler. It is
! normally `/usr/local/include'. GNU CC searches this directory so that
! users can install header files in `/usr/local/include'.
`CROSS_INCLUDE_DIR' is used only for a cross compiler. GNU CC
doesn't install anything there.
--- 1618,1625 ----
target independent header files in that directory.
`LOCAL_INCLUDE_DIR' is used only for a native compiler. It is
! normally `/gnu/include'. GNU CC searches this directory so that
! users can install header files in `/gnu/include'.
`CROSS_INCLUDE_DIR' is used only for a cross compiler. GNU CC
doesn't install anything there.
diff -rc --new-file /src/baseline/gcc-2.5.8/Makefile.in gcc-2.5.8/Makefile.in
*** /src/baseline/gcc-2.5.8/Makefile.in Thu Dec 23 19:13:50 1993
--- gcc-2.5.8/Makefile.in Tue Feb 22 11:26:49 1994
***************
*** 58,68 ****
AR_FLAGS = rc
SHELL = /bin/sh
# on sysV, define this as cp.
! INSTALL = install -c
# These permit overriding just for certain files.
INSTALL_PROGRAM = $(INSTALL)
INSTALL_DATA = $(INSTALL)
SYMLINK = ln -s
MAKEINFO = makeinfo
TEXI2DVI = texi2dvi
--- 58,71 ----
AR_FLAGS = rc
SHELL = /bin/sh
# on sysV, define this as cp.
! INSTALL = cp
# These permit overriding just for certain files.
INSTALL_PROGRAM = $(INSTALL)
INSTALL_DATA = $(INSTALL)
SYMLINK = ln -s
+ # Some systems don't support hardlinks. For this case, a simple copy
+ # will achieve the same results for our purposes.
+ HARDLINK = ln
MAKEINFO = makeinfo
TEXI2DVI = texi2dvi
***************
*** 90,102 ****
OLDAR = ar
# Target to use when installing include directory. Either
! # install-headers-tar or install-headers-cpio.
INSTALL_HEADERS_DIR = install-headers-tar
# The GCC to use for compiling libgcc2.a, enquire, and cross-test.
# Usually the one we just built.
# Don't use this as a dependency--use $(GCC_PASSES) or $(GCC_PARTS).
! GCC_FOR_TARGET = ./xgcc -B./
# This is used instead of ALL_CFLAGS when compiling with GCC_FOR_TARGET.
# It omits XCFLAGS, and specifies -B./.
--- 93,106 ----
OLDAR = ar
# Target to use when installing include directory. Either
! # install-headers-tar install-headers-cpio, or install-headers-cp.
INSTALL_HEADERS_DIR = install-headers-tar
# The GCC to use for compiling libgcc2.a, enquire, and cross-test.
# Usually the one we just built.
# Don't use this as a dependency--use $(GCC_PASSES) or $(GCC_PARTS).
! XGCC = xgcc
! GCC_FOR_TARGET = ./$(XGCC) -B./
# This is used instead of ALL_CFLAGS when compiling with GCC_FOR_TARGET.
# It omits XCFLAGS, and specifies -B./.
***************
*** 141,152 ****
srcdir = .
# Common prefix for installation directories.
# NOTE: This directory must exist when you start installation.
! prefix = /usr/local
# Directory in which to put localized header files. On the systems with
# gcc as the native cc, `local_prefix' may not be `prefix' which is
# `/usr'.
# NOTE: local_prefix *should not* default from prefix.
! local_prefix = /usr/local
# Directory in which to put host dependent programs and libraries
exec_prefix = $(prefix)
# Directory in which to put the executable for the command `gcc'
--- 145,159 ----
srcdir = .
# Common prefix for installation directories.
# NOTE: This directory must exist when you start installation.
! prefix = /gnu
# Directory in which to put localized header files. On the systems with
# gcc as the native cc, `local_prefix' may not be `prefix' which is
# `/usr'.
+ # Similar considerations apply for toolkits located on non-writable storage,
+ # such as CD-ROM, where we need a completely separate place to put local
+ # include files.
# NOTE: local_prefix *should not* default from prefix.
! local_prefix = /gnu
# Directory in which to put host dependent programs and libraries
exec_prefix = $(prefix)
# Directory in which to put the executable for the command `gcc'
***************
*** 161,171 ****
# (But this currently agrees with what is in cross-make.)
assertdir = $(tooldir)/include
# where the info files go
! infodir = $(prefix)/info
# Extension (if any) to put in installed man-page filename.
manext = .1
# Directory in which to put man pages.
! mandir = $(prefix)/man/man1
# Directory in which to find other cross-compilation tools and headers.
# Used in install-cross.
tooldir = $(exec_prefix)/$(target)
--- 168,178 ----
# (But this currently agrees with what is in cross-make.)
assertdir = $(tooldir)/include
# where the info files go
! infodir = /info
# Extension (if any) to put in installed man-page filename.
manext = .1
# Directory in which to put man pages.
! mandir = /man/man1
# Directory in which to find other cross-compilation tools and headers.
# Used in install-cross.
tooldir = $(exec_prefix)/$(target)
***************
*** 549,555 ****
$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o xgcc gcc.o version.o $(LIBS)
# Dump a specs file to make -B./ read these specs over installed ones.
! specs: xgcc
$(GCC_FOR_TARGET) -dumpspecs > specs
# Create the compiler driver for g++.
--- 556,562 ----
$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o xgcc gcc.o version.o $(LIBS)
# Dump a specs file to make -B./ read these specs over installed ones.
! specs: xgcc xgccv
$(GCC_FOR_TARGET) -dumpspecs > specs
# Create the compiler driver for g++.
***************
*** 752,759 ****
# the second ar command tries to overwrite this file. To avoid the error
# message from ar, we make sure all files are writable.
-(cd tmpcopy; chmod +w * > /dev/null 2>&1)
! (cd tmpcopy; $(AR) x ../$(LIBGCC2))
! (cd tmpcopy; $(AR) $(AR_FLAGS) ../tmplibgcc.a *.o)
rm -rf tmpcopy
-if $(RANLIB_TEST) ; then $(RANLIB) tmplibgcc.a; else true; fi
# Actually build it in tmplibgcc.a, then rename at end,
--- 759,767 ----
# the second ar command tries to overwrite this file. To avoid the error
# message from ar, we make sure all files are writable.
-(cd tmpcopy; chmod +w * > /dev/null 2>&1)
! # The "cd..; wait" makes sure that the lock on tmpcopy has time to disappear.
! (cd tmpcopy; $(AR) x ../$(LIBGCC2); cd ..; /c/wait 2)
! (cd tmpcopy; $(AR) $(AR_FLAGS) ../tmplibgcc.a *.o; cd ..; /c/wait 2)
rm -rf tmpcopy
-if $(RANLIB_TEST) ; then $(RANLIB) tmplibgcc.a; else true; fi
# Actually build it in tmplibgcc.a, then rename at end,
***************
*** 770,779 ****
cd objc; \
$(MAKE) -f $${srcdir1}/objc/Makefile libobjc.a \
srcdir=$${srcdir1} tooldir=$(tooldir) AR="$(AR)" AR_FLAGS="$(AR_FLAGS)" \
! GCC_FOR_TARGET="$${thisdir1}/xgcc -B$${thisdir1}/" \
GCC_CFLAGS="$(GCC_CFLAGS)"
-rm -f libobjc.a
! ln objc/libobjc.a . >/dev/null 2>&1 || cp objc/libobjc.a .
-if $(RANLIB_TEST) ; then $(RANLIB) libobjc.a; else true; fi
# This is used by objc/Makefile if the user runs that directly.
--- 778,787 ----
cd objc; \
$(MAKE) -f $${srcdir1}/objc/Makefile libobjc.a \
srcdir=$${srcdir1} tooldir=$(tooldir) AR="$(AR)" AR_FLAGS="$(AR_FLAGS)" \
! GCC_FOR_TARGET="$${thisdir1}/$(XGCC) -B$${thisdir1}/" \
GCC_CFLAGS="$(GCC_CFLAGS)"
-rm -f libobjc.a
! cp objc/libobjc.a . >/dev/null 2>&1 || cp objc/libobjc.a .
-if $(RANLIB_TEST) ; then $(RANLIB) libobjc.a; else true; fi
# This is used by objc/Makefile if the user runs that directly.
***************
*** 783,789 ****
cd objc; \
$(MAKE) -f $$srcdir1/objc/Makefile libobjc.a \
srcdir=$$srcdir1 tooldir=$(tooldir) AR="$(AR)" AR_FLAGS="$(AR_FLAGS)" \
! GCC_FOR_TARGET="$$thisdir1/xgcc -B$$thisdir1/" \
GCC_CFLAGS="$(GCC_CFLAGS)"
# Compile two additional files that are linked with every program
--- 791,797 ----
cd objc; \
$(MAKE) -f $$srcdir1/objc/Makefile libobjc.a \
srcdir=$$srcdir1 tooldir=$(tooldir) AR="$(AR)" AR_FLAGS="$(AR_FLAGS)" \
! GCC_FOR_TARGET="$$thisdir1/$(XGCC) -B$$thisdir1/" \
GCC_CFLAGS="$(GCC_CFLAGS)"
# Compile two additional files that are linked with every program
***************
*** 872,878 ****
# To make a configuration always use collect2, set USE_COLLECT2 to ld.
ld: collect2
rm -f ld
! ln collect2 ld
collect2 : collect2.o version.o $(LIBDEPS)
# Don't try modifying collect2 (aka ld) in place--it might be linking this.
--- 880,886 ----
# To make a configuration always use collect2, set USE_COLLECT2 to ld.
ld: collect2
rm -f ld
! cp collect2 ld
collect2 : collect2.o version.o $(LIBDEPS)
# Don't try modifying collect2 (aka ld) in place--it might be linking this.
***************
*** 1383,1389 ****
# Making the preprocessor
cpp: cccp
-rm -f cpp
! ln cccp cpp
cccp: cccp.o cexp.o version.o $(LIBDEPS)
$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o cccp cccp.o cexp.o version.o $(LIBS)
cexp.o: $(srcdir)/cexp.c $(CONFIG_H)
--- 1391,1397 ----
# Making the preprocessor
cpp: cccp
-rm -f cpp
! cp cccp cpp
cccp: cccp.o cexp.o version.o $(LIBDEPS)
$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o cccp cccp.o cexp.o version.o $(LIBS)
cexp.o: $(srcdir)/cexp.c $(CONFIG_H)
***************
*** 1541,1547 ****
for dir in $(SYSTEM_HEADER_DIR) $(OTHER_FIXINCLUDES_DIRS); do \
if [ -d $$dir ]; \
then \
! $(srcdir)/$(FIXINCLUDES) include $$dir $(srcdir) "`pwd`/xgcc -B`pwd`/"; \
else true; fi; \
done; \
else true; \
--- 1549,1555 ----
for dir in $(SYSTEM_HEADER_DIR) $(OTHER_FIXINCLUDES_DIRS); do \
if [ -d $$dir ]; \
then \
! $(srcdir)/$(FIXINCLUDES) include $$dir $(srcdir) "`pwd`/$(XGCC) -B`pwd`/"; \
else true; fi; \
done; \
else true; \
***************
*** 1563,1569 ****
cd objc; \
$(MAKE) -f $${srcdir1}/objc/Makefile copy-headers \
srcdir=$${srcdir1} tooldir=$(tooldir) AR="$(AR)" AR_FLAGS="$(AR_FLAGS)" \
! GCC_FOR_TARGET="$${thisdir1}/xgcc -B$${thisdir1}/" \
GCC_CFLAGS="$(GCC_CFLAGS)" incinstalldir=$${thisdir1}/include
touch objc-headers
--- 1571,1577 ----
cd objc; \
$(MAKE) -f $${srcdir1}/objc/Makefile copy-headers \
srcdir=$${srcdir1} tooldir=$(tooldir) AR="$(AR)" AR_FLAGS="$(AR_FLAGS)" \
! GCC_FOR_TARGET="$${thisdir1}/$(XGCC) -B$${thisdir1}/" \
GCC_CFLAGS="$(GCC_CFLAGS)" incinstalldir=$${thisdir1}/include
touch objc-headers
***************
*** 1845,1864 ****
$(INSTALL_PROGRAM) g++-cross $(bindir)/$(target)-g++; \
chmod a+x $(bindir)/$(target)-g++; \
rm -f $(bindir)/$(target)-c++; \
! ln $(bindir)/$(target)-g++ $(bindir)/$(target)-c++; \
fi ; \
else \
rm -f $(bindir)/gcc; \
$(INSTALL_PROGRAM) xgcc $(bindir)/gcc; \
rm -f $(bindir)/$(target)-gcc-1; \
! ln $(bindir)/gcc $(bindir)/$(target)-gcc-1; \
mv $(bindir)/$(target)-gcc-1 $(bindir)/$(target)-gcc; \
if [ -f cc1plus ] ; then \
rm -f $(bindir)/g++; \
$(INSTALL_PROGRAM) g++ $(bindir)/g++; \
chmod a+x $(bindir)/g++; \
rm -f $(bindir)/c++; \
! ln $(bindir)/g++ $(bindir)/c++; \
fi ; \
fi
# Install protoize if it was compiled.
--- 1853,1872 ----
$(INSTALL_PROGRAM) g++-cross $(bindir)/$(target)-g++; \
chmod a+x $(bindir)/$(target)-g++; \
rm -f $(bindir)/$(target)-c++; \
! $(HARDLINK) $(bindir)/$(target)-g++ $(bindir)/$(target)-c++; \
fi ; \
else \
rm -f $(bindir)/gcc; \
$(INSTALL_PROGRAM) xgcc $(bindir)/gcc; \
rm -f $(bindir)/$(target)-gcc-1; \
! $(HARDLINK) $(bindir)/gcc $(bindir)/$(target)-gcc-1; \
mv $(bindir)/$(target)-gcc-1 $(bindir)/$(target)-gcc; \
if [ -f cc1plus ] ; then \
rm -f $(bindir)/g++; \
$(INSTALL_PROGRAM) g++ $(bindir)/g++; \
chmod a+x $(bindir)/g++; \
rm -f $(bindir)/c++; \
! $(HARDLINK) $(bindir)/g++ $(bindir)/c++; \
fi ; \
fi
# Install protoize if it was compiled.
***************
*** 1924,1930 ****
dest=`ls -ld $(libsubdir)/include/$$i | sed -n 's/.*-> //p'`; \
if expr "$$dest" : "$$dir.*" > /dev/null; then \
rm -f $(libsubdir)/include/$$i; \
! ln -s `echo $$i | sed "s|/[^/]*|/..|g" | sed 's|/..$$||'``echo "$$dest" | sed "s|$$dir||"` $(libsubdir)/include/$$i; \
fi; \
done; \
fi
--- 1932,1938 ----
dest=`ls -ld $(libsubdir)/include/$$i | sed -n 's/.*-> //p'`; \
if expr "$$dest" : "$$dir.*" > /dev/null; then \
rm -f $(libsubdir)/include/$$i; \
! $(HARDLINK) -s `echo $$i | sed "s|/[^/]*|/..|g" | sed 's|/..$$||'``echo "$$dest" | sed "s|$$dir||"` $(libsubdir)/include/$$i; \
fi; \
done; \
fi
***************
*** 1947,1952 ****
--- 1955,1964 ----
install-headers-cpio: stmp-headers $(STMP_FIXPROTO) install-include-dir
cd include; find . -print | cpio -pdum $(libsubdir)/include
+ # Install the include directory using simple recursive copy.
+ install-headers-cp: stmp-headers install-include-dir
+ cd include; cp -r . $(libsubdir)/include
+
# Put assert.h where it won't override GNU libc's assert.h.
# It goes in a dir that is searched after GNU libc's headers;
# thus, the following conditionals are no longer needed.
***************
*** 2034,2040 ****
mkdir tmp/config
mkdir tmp/objc
for file in *[0-9a-zA-Z+]; do \
! ln $$file tmp > /dev/null 2>&1 || cp $$file tmp; \
done
cd config; \
for file in *[0-9a-zA-Z+]; do \
--- 2046,2052 ----
mkdir tmp/config
mkdir tmp/objc
for file in *[0-9a-zA-Z+]; do \
! $(HARDLINK) $$file tmp > /dev/null 2>&1 || cp $$file tmp; \
done
cd config; \
for file in *[0-9a-zA-Z+]; do \
***************
*** 2042,2061 ****
mkdir ../tmp/config/$$file; \
cd $$file; \
for subfile in *[0-9a-zA-Z+]; do \
! ln $$subfile ../../tmp/config/$$file >/dev/null 2>&1 \
|| cp $$subfile ../../tmp/config/$$file; \
done; \
cd ..; \
else \
! ln $$file ../tmp/config >/dev/null 2>&1 \
|| cp $$file ../tmp/config; \
fi; \
done
cd objc; \
for file in *[0-9a-zA-Z+]; do \
! ln $$file ../tmp/objc >/dev/null 2>&1 || cp $$file ../tmp/objc; \
done
! ln .gdbinit tmp
mv tmp gcc-$(version)
# Get rid of everything we don't want in the distribution.
cd gcc-$(version); make -f Makefile.in extraclean
--- 2054,2073 ----
mkdir ../tmp/config/$$file; \
cd $$file; \
for subfile in *[0-9a-zA-Z+]; do \
! $(HARDLINK) $$subfile ../../tmp/config/$$file >/dev/null 2>&1 \
|| cp $$subfile ../../tmp/config/$$file; \
done; \
cd ..; \
else \
! $(HARDLINK) $$file ../tmp/config >/dev/null 2>&1 \
|| cp $$file ../tmp/config; \
fi; \
done
cd objc; \
for file in *[0-9a-zA-Z+]; do \
! $(HARDLINK) $$file ../tmp/objc >/dev/null 2>&1 || cp $$file ../tmp/objc; \
done
! $(HARDLINK) .gdbinit tmp
mv tmp gcc-$(version)
# Get rid of everything we don't want in the distribution.
cd gcc-$(version); make -f Makefile.in extraclean
***************
*** 2074,2090 ****
# in the intended test directory to make it a suitable test directory.
# THIS IS OBSOLETE; use the -srcdir operand in configure instead.
maketest:
! ln -s $(DIR)/*.[chy] .
! ln -s $(DIR)/configure .
! ln -s $(DIR)/*.def .
-rm -f =*
! ln -s $(DIR)/.gdbinit .
! ln -s $(DIR)/$(FIXINCLUDES) .
! -ln -s $(DIR)/bison.simple .
! ln -s $(DIR)/config .
! ln -s $(DIR)/move-if-change .
# The then and else were swapped to avoid a problem on Ultrix.
! if [ ! -f Makefile ] ; then ln -s $(DIR)/Makefile .; else false; fi
-rm tm.h aux-output.c config.h md
make clean
# You must then run config to set up for compilation.
--- 2086,2102 ----
# in the intended test directory to make it a suitable test directory.
# THIS IS OBSOLETE; use the -srcdir operand in configure instead.
maketest:
! cp $(DIR)/*.[chy] .
! cp $(DIR)/configure .
! cp $(DIR)/*.def .
-rm -f =*
! cp $(DIR)/.gdbinit .
! cp $(DIR)/$(FIXINCLUDES) .
! -cp $(DIR)/bison.simple .
! cp $(DIR)/config .
! cp $(DIR)/move-if-change .
# The then and else were swapped to avoid a problem on Ultrix.
! if [ ! -f Makefile ] ; then cp $(DIR)/Makefile .; else false; fi
-rm tm.h aux-output.c config.h md
make clean
# You must then run config to set up for compilation.
***************
*** 2100,2116 ****
# To prevent `make install' from compiling alloca.o and then relinking cc1
# because alloca.o is newer, we permit these recursive makes to compile
# alloca.o. Then cc1 is newer, so it won't have to be relinked.
! $(MAKE) CC="stage1/xgcc -Bstage1/" CFLAGS="$(BOOT_CFLAGS)" LDFLAGS="$(BOOT_LDFLAGS)" libdir=$(libdir) LANGUAGES="$(LANGUAGES)"
$(MAKE) stage2
! $(MAKE) CC="stage2/xgcc -Bstage2/" CFLAGS="$(BOOT_CFLAGS)" LDFLAGS="$(BOOT_LDFLAGS)" libdir=$(libdir) LANGUAGES="$(LANGUAGES)"
bootstrap2: force
! $(MAKE) CC="stage1/xgcc -Bstage1/" CFLAGS="$(BOOT_CFLAGS)" LDFLAGS="$(BOOT_LDFLAGS)" libdir=$(libdir) LANGUAGES="$(LANGUAGES)"
$(MAKE) stage2
! $(MAKE) CC="stage2/xgcc -Bstage2/" CFLAGS="$(BOOT_CFLAGS)" LDFLAGS="$(BOOT_LDFLAGS)" libdir=$(libdir) LANGUAGES="$(LANGUAGES)"
bootstrap3: force
! $(MAKE) CC="stage2/xgcc -Bstage2/" CFLAGS="$(BOOT_CFLAGS)" LDFLAGS="$(BOOT_LDFLAGS)" libdir=$(libdir) LANGUAGES="$(LANGUAGES)"
# Compare the object files in the current directory with those in the
# stage2 directory.
--- 2112,2128 ----
# To prevent `make install' from compiling alloca.o and then relinking cc1
# because alloca.o is newer, we permit these recursive makes to compile
# alloca.o. Then cc1 is newer, so it won't have to be relinked.
! $(MAKE) CC="stage1/$(XGCC) -Bstage1/" CFLAGS="$(BOOT_CFLAGS)" LDFLAGS="$(BOOT_LDFLAGS)" libdir=$(libdir) LANGUAGES="$(LANGUAGES)"
$(MAKE) stage2
! $(MAKE) CC="stage2/$(XGCC) -Bstage2/" CFLAGS="$(BOOT_CFLAGS)" LDFLAGS="$(BOOT_LDFLAGS)" libdir=$(libdir) LANGUAGES="$(LANGUAGES)"
bootstrap2: force
! $(MAKE) CC="stage1/$(XGCC) -Bstage1/" CFLAGS="$(BOOT_CFLAGS)" LDFLAGS="$(BOOT_LDFLAGS)" libdir=$(libdir) LANGUAGES="$(LANGUAGES)"
$(MAKE) stage2
! $(MAKE) CC="stage2/$(XGCC) -Bstage2/" CFLAGS="$(BOOT_CFLAGS)" LDFLAGS="$(BOOT_LDFLAGS)" libdir=$(libdir) LANGUAGES="$(LANGUAGES)"
bootstrap3: force
! $(MAKE) CC="stage2/$(XGCC) -Bstage2/" CFLAGS="$(BOOT_CFLAGS)" LDFLAGS="$(BOOT_LDFLAGS)" libdir=$(libdir) LANGUAGES="$(LANGUAGES)"
# Compare the object files in the current directory with those in the
# stage2 directory.
***************
*** 2134,2161 ****
-rm -f tmp-foo*
# Copy the object files from a particular stage into a subdirectory.
! stage1: force
-if [ -d stage1 ] ; then true ; else mkdir stage1 ; fi
-mv $(STAGESTUFF) stage1
-rm -f stage1/libgcc.a
-cp libgcc.a stage1
-if $(RANLIB_TEST) ; then $(RANLIB) stage1/libgcc.a; else true; fi
! stage2: force
-if [ -d stage2 ] ; then true ; else mkdir stage2 ; fi
-mv $(STAGESTUFF) stage2
-rm -f stage2/libgcc.a
-cp libgcc.a stage2
-if $(RANLIB_TEST) ; then $(RANLIB) stage2/libgcc.a; else true; fi
! stage3: force
-if [ -d stage3 ] ; then true ; else mkdir stage3 ; fi
-mv $(STAGESTUFF) stage3
-rm -f stage3/libgcc.a
-cp libgcc.a stage3
-if $(RANLIB_TEST) ; then $(RANLIB) stage3/libgcc.a; else true; fi
! stage4: force
-if [ -d stage4 ] ; then true ; else mkdir stage4 ; fi
-mv $(STAGESTUFF) stage4
-rm -f stage4/libgcc.a
--- 2146,2173 ----
-rm -f tmp-foo*
# Copy the object files from a particular stage into a subdirectory.
! stage1: force $(EXTRA_STAGE1_TARGETS)
-if [ -d stage1 ] ; then true ; else mkdir stage1 ; fi
-mv $(STAGESTUFF) stage1
-rm -f stage1/libgcc.a
-cp libgcc.a stage1
-if $(RANLIB_TEST) ; then $(RANLIB) stage1/libgcc.a; else true; fi
! stage2: force $(EXTRA_STAGE2_TARGETS)
-if [ -d stage2 ] ; then true ; else mkdir stage2 ; fi
-mv $(STAGESTUFF) stage2
-rm -f stage2/libgcc.a
-cp libgcc.a stage2
-if $(RANLIB_TEST) ; then $(RANLIB) stage2/libgcc.a; else true; fi
! stage3: force $(EXTRA_STAGE3_TARGETS)
-if [ -d stage3 ] ; then true ; else mkdir stage3 ; fi
-mv $(STAGESTUFF) stage3
-rm -f stage3/libgcc.a
-cp libgcc.a stage3
-if $(RANLIB_TEST) ; then $(RANLIB) stage3/libgcc.a; else true; fi
! stage4: force $(EXTRA_STAGE4_TARGETS)
-if [ -d stage4 ] ; then true ; else mkdir stage4 ; fi
-mv $(STAGESTUFF) stage4
-rm -f stage4/libgcc.a
diff -rc --new-file /src/baseline/gcc-2.5.8/Product-Info gcc-2.5.8/Product-Info
*** /src/baseline/gcc-2.5.8/Product-Info Thu Jan 1 00:00:00 1970
--- gcc-2.5.8/Product-Info Tue Jul 12 17:15:32 1994
***************
*** 0 ****
--- 1,22 ----
+ .name
+ gcc
+ .fullname
+ GNU C/C++/Objective-C compiler
+ .type
+ Compiler
+ .short
+ GNU C/C++/Obj-C compilers.
+ .description
+ The GNU C, C++, and Objective C compilers. Includes all support for
+ compiling C, C++ and Objective C, including a run-time library for
+ Objective C.
+ .version
+ 2.5.8
+ .author
+ Free Software Foundation
+ .requirements
+ Amiga binaries require ixemul.library.
+ .distribution
+ GNU Public License
+ .described-by
+ Fred Fish (fnf@amigalib.com)
diff -rc --new-file /src/baseline/gcc-2.5.8/README gcc-2.5.8/README
*** /src/baseline/gcc-2.5.8/README Sun Dec 12 07:50:02 1993
--- gcc-2.5.8/README Tue Feb 22 11:26:53 1994
***************
*** 10,17 ****
copy of the installation information, as plain ASCII.
Installing this package will create various files in subdirectories of
! /usr/local/lib, which are passes used by the compiler and a library
! named libgcc.a. It will also create /usr/local/bin/gcc, which is
the user-level command to do a compilation.
See the Bugs chapter of the GCC Manual for how to report bugs
--- 10,17 ----
copy of the installation information, as plain ASCII.
Installing this package will create various files in subdirectories of
! /gnu/lib, which are passes used by the compiler and a library
! named libgcc.a. It will also create /gnu/bin/gcc, which is
the user-level command to do a compilation.
See the Bugs chapter of the GCC Manual for how to report bugs
diff -rc --new-file /src/baseline/gcc-2.5.8/bi-parser.c gcc-2.5.8/bi-parser.c
*** /src/baseline/gcc-2.5.8/bi-parser.c Sun Nov 14 23:57:34 1993
--- gcc-2.5.8/bi-parser.c Tue Feb 22 11:22:13 1994
***************
*** 1,5 ****
! /* A Bison parser, made from bi-parser.y */
#define YYBISON 1 /* Identify Bison output. */
--- 1,6 ----
! /* A Bison parser, made from bi-parser.y with Bison version GNU Bison version 1.22
! */
#define YYBISON 1 /* Identify Bison output. */
***************
*** 55,63 ****
--- 56,66 ----
#include <stdio.h>
+ #ifndef __cplusplus
#ifndef __STDC__
#define const
#endif
+ #endif
***************
*** 96,101 ****
--- 99,105 ----
2, 2, 2, 2, 2, 1, 2, 3, 4
};
+ #if YYDEBUG != 0
static const short yyprhs[] = { 0,
0, 2, 4, 7, 18, 20, 24, 28, 34, 42,
52, 53, 55, 59, 60, 62, 66
***************
*** 111,116 ****
--- 115,122 ----
0, 16, 6, 15, 0, 4, 0
};
+ #endif
+
#if YYDEBUG != 0
static const short yyrline[] = { 0,
59, 64, 66, 70, 75, 77, 81, 84, 86, 88,
***************
*** 173,179 ****
-1, 12, -1, -1, 16
};
/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
! #line 3 "bison.simple"
/* Skeleton output parser for bison,
Copyright (C) 1984, 1989, 1990 Bob Corbett and Richard Stallman
--- 179,185 ----
-1, 12, -1, -1, 16
};
/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
! #line 3 "/usr/lib/bison.simple"
/* Skeleton output parser for bison,
Copyright (C) 1984, 1989, 1990 Bob Corbett and Richard Stallman
***************
*** 354,377 ****
#endif
#endif
! #line 184 "bison.simple"
!
! /* The user can define YYPARSE_PARAM as the name of an argument to be passed
! into yyparse. The argument should have type void *.
! It should actually point to an object.
! Grammar actions can access the variable by casting it
! to the proper pointer type. */
!
! #ifdef YYPARSE_PARAM
! #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
! #else
! #define YYPARSE_PARAM
! #define YYPARSE_PARAM_DECL
! #endif
!
int
! yyparse(YYPARSE_PARAM)
! YYPARSE_PARAM_DECL
{
register int yystate;
register int yyn;
--- 360,368 ----
#endif
#endif
! #line 184 "/usr/lib/bison.simple"
int
! yyparse()
{
register int yystate;
register int yyn;
***************
*** 710,716 ****
break;}
}
/* the action file gets copied in in place of this dollarsign */
! #line 480 "bison.simple"
yyvsp -= yylen;
yyssp -= yylen;
--- 701,707 ----
break;}
}
/* the action file gets copied in in place of this dollarsign */
! #line 465 "/usr/lib/bison.simple"
yyvsp -= yylen;
yyssp -= yylen;
diff -rc --new-file /src/baseline/gcc-2.5.8/c-parse.c gcc-2.5.8/c-parse.c
*** /src/baseline/gcc-2.5.8/c-parse.c Tue Nov 23 19:43:40 1993
--- gcc-2.5.8/c-parse.c Mon Apr 25 22:38:25 1994
***************
*** 1,5 ****
! /* A Bison parser, made from c-parse.y */
#define IDENTIFIER 258
#define TYPENAME 259
--- 1,8 ----
! /* A Bison parser, made from c-parse.y with Bison version GNU Bison version 1.22
! */
!
! #define YYBISON 1 /* Identify Bison output. */
#define IDENTIFIER 258
#define TYPENAME 259
***************
*** 143,151 ****
--- 146,156 ----
#include <stdio.h>
+ #ifndef __cplusplus
#ifndef __STDC__
#define const
#endif
+ #endif
***************
*** 190,196 ****
70, 71, 72, 73, 74, 75, 76
};
! static const short yyrline[] = { 0,
218, 222, 235, 237, 237, 238, 240, 242, 243, 253,
259, 261, 263, 265, 267, 268, 269, 274, 280, 282,
283, 285, 290, 292, 293, 295, 300, 302, 303, 307,
--- 195,363 ----
70, 71, 72, 73, 74, 75, 76
};
! #if YYDEBUG != 0
! static const short yyprhs[] = { 0,
! 0, 1, 3, 4, 7, 8, 12, 14, 16, 22,
! 26, 31, 36, 39, 42, 45, 48, 50, 51, 52,
! 60, 65, 66, 67, 75, 80, 81, 82, 89, 93,
! 95, 97, 99, 101, 103, 105, 107, 109, 111, 113,
! 114, 116, 118, 122, 124, 127, 128, 132, 135, 138,
! 141, 146, 149, 154, 157, 160, 162, 167, 168, 176,
! 178, 182, 186, 190, 194, 198, 202, 206, 210, 214,
! 218, 222, 226, 230, 234, 240, 244, 248, 250, 252,
! 254, 258, 262, 263, 268, 273, 278, 282, 286, 289,
! 292, 294, 297, 298, 300, 303, 307, 309, 311, 314,
! 317, 322, 327, 330, 333, 337, 339, 341, 344, 347,
! 348, 353, 358, 362, 366, 369, 372, 375, 379, 380,
! 383, 386, 388, 390, 393, 396, 399, 403, 404, 407,
! 409, 411, 413, 418, 423, 425, 427, 429, 431, 435,
! 437, 441, 442, 447, 448, 455, 459, 460, 467, 471,
! 472, 479, 481, 485, 487, 489, 494, 499, 508, 510,
! 511, 516, 518, 519, 522, 524, 528, 530, 531, 536,
! 538, 539, 548, 549, 556, 557, 562, 563, 569, 570,
! 574, 575, 579, 581, 583, 587, 591, 596, 600, 604,
! 606, 610, 615, 619, 623, 625, 629, 633, 637, 642,
! 646, 648, 649, 656, 661, 664, 665, 672, 677, 680,
! 681, 689, 690, 697, 700, 701, 703, 704, 706, 708,
! 711, 712, 716, 719, 723, 725, 729, 731, 733, 735,
! 739, 744, 751, 757, 759, 763, 765, 769, 772, 775,
! 776, 778, 780, 783, 784, 787, 791, 795, 798, 802,
! 807, 811, 814, 818, 821, 823, 826, 829, 830, 832,
! 835, 836, 837, 839, 841, 844, 848, 850, 853, 856,
! 863, 869, 875, 878, 881, 886, 887, 892, 893, 894,
! 898, 903, 907, 909, 911, 913, 915, 918, 919, 924,
! 926, 930, 931, 932, 940, 946, 949, 950, 951, 952,
! 965, 966, 973, 976, 979, 982, 986, 993, 1002, 1013,
! 1026, 1030, 1035, 1037, 1039, 1040, 1047, 1051, 1057, 1060,
! 1063, 1064, 1066, 1067, 1069, 1070, 1072, 1074, 1078, 1083,
! 1085, 1089, 1090, 1093, 1096, 1097, 1102, 1105, 1106, 1108,
! 1110, 1114, 1116, 1120, 1123, 1126, 1129, 1132, 1135, 1136,
! 1139, 1141, 1144, 1146, 1150, 1152
! };
!
! static const short yyrhs[] = { -1,
! 86, 0, 0, 87, 89, 0, 0, 86, 88, 89,
! 0, 91, 0, 90, 0, 27, 60, 100, 77, 78,
! 0, 117, 127, 78, 0, 121, 117, 127, 78, 0,
! 119, 117, 126, 78, 0, 121, 78, 0, 119, 78,
! 0, 1, 78, 0, 1, 79, 0, 78, 0, 0,
! 0, 119, 117, 150, 92, 111, 93, 180, 0, 119,
! 117, 150, 1, 0, 0, 0, 121, 117, 153, 94,
! 111, 95, 180, 0, 121, 117, 153, 1, 0, 0,
! 0, 117, 153, 96, 111, 97, 180, 0, 117, 153,
! 1, 0, 3, 0, 4, 0, 44, 0, 50, 0,
! 49, 0, 55, 0, 56, 0, 80, 0, 81, 0,
! 102, 0, 0, 102, 0, 107, 0, 102, 82, 107,
! 0, 108, 0, 51, 105, 0, 0, 32, 104, 105,
! 0, 99, 105, 0, 41, 98, 0, 11, 103, 0,
! 11, 60, 168, 77, 0, 29, 103, 0, 29, 60,
! 168, 77, 0, 34, 105, 0, 35, 105, 0, 103,
! 0, 60, 168, 77, 105, 0, 0, 60, 168, 77,
! 83, 106, 138, 79, 0, 105, 0, 107, 49, 107,
! 0, 107, 50, 107, 0, 107, 51, 107, 0, 107,
! 52, 107, 0, 107, 53, 107, 0, 107, 47, 107,
! 0, 107, 48, 107, 0, 107, 46, 107, 0, 107,
! 45, 107, 0, 107, 44, 107, 0, 107, 42, 107,
! 0, 107, 43, 107, 0, 107, 41, 107, 0, 107,
! 40, 107, 0, 107, 38, 204, 39, 107, 0, 107,
! 37, 107, 0, 107, 36, 107, 0, 3, 0, 8,
! 0, 110, 0, 60, 100, 77, 0, 60, 1, 77,
! 0, 0, 60, 109, 181, 77, 0, 108, 60, 101,
! 77, 0, 108, 61, 100, 84, 0, 108, 59, 98,
! 0, 108, 58, 98, 0, 108, 55, 0, 108, 56,
! 0, 9, 0, 110, 9, 0, 0, 113, 0, 113,
! 10, 0, 186, 187, 114, 0, 112, 0, 175, 0,
! 113, 112, 0, 112, 175, 0, 119, 117, 126, 78,
! 0, 121, 117, 127, 78, 0, 119, 78, 0, 121,
! 78, 0, 186, 187, 118, 0, 115, 0, 175, 0,
! 116, 115, 0, 115, 175, 0, 0, 119, 117, 126,
! 78, 0, 121, 117, 127, 78, 0, 119, 117, 146,
! 0, 121, 117, 148, 0, 119, 78, 0, 121, 78,
! 0, 124, 120, 0, 121, 124, 120, 0, 0, 120,
! 125, 0, 120, 5, 0, 7, 0, 5, 0, 121,
! 7, 0, 121, 5, 0, 124, 123, 0, 170, 124,
! 123, 0, 0, 123, 125, 0, 6, 0, 154, 0,
! 4, 0, 28, 60, 100, 77, 0, 28, 60, 168,
! 77, 0, 6, 0, 7, 0, 154, 0, 129, 0,
! 126, 82, 129, 0, 131, 0, 127, 82, 129, 0,
! 0, 27, 60, 110, 77, 0, 0, 150, 128, 133,
! 37, 130, 136, 0, 150, 128, 133, 0, 0, 153,
! 128, 133, 37, 132, 136, 0, 153, 128, 133, 0,
! 0, 31, 60, 60, 134, 77, 77, 0, 135, 0,
! 134, 82, 135, 0, 3, 0, 7, 0, 3, 60,
! 3, 77, 0, 3, 60, 8, 77, 0, 3, 60,
! 3, 82, 8, 82, 8, 77, 0, 107, 0, 0,
! 83, 137, 138, 79, 0, 1, 0, 0, 139, 159,
! 0, 140, 0, 139, 82, 140, 0, 107, 0, 0,
! 83, 141, 138, 79, 0, 1, 0, 0, 61, 107,
! 10, 107, 84, 37, 142, 140, 0, 0, 61, 107,
! 84, 37, 143, 140, 0, 0, 98, 39, 144, 140,
! 0, 0, 59, 98, 37, 145, 140, 0, 0, 150,
! 147, 181, 0, 0, 153, 149, 181, 0, 151, 0,
! 153, 0, 60, 151, 77, 0, 151, 60, 216, 0,
! 151, 61, 100, 84, 0, 151, 61, 84, 0, 51,
! 171, 151, 0, 4, 0, 152, 60, 216, 0, 152,
! 61, 100, 84, 0, 152, 61, 84, 0, 51, 171,
! 152, 0, 4, 0, 153, 60, 216, 0, 60, 153,
! 77, 0, 51, 171, 153, 0, 153, 61, 100, 84,
! 0, 153, 61, 84, 0, 3, 0, 0, 13, 98,
! 83, 155, 161, 79, 0, 13, 83, 161, 79, 0,
! 13, 98, 0, 0, 14, 98, 83, 156, 161, 79,
! 0, 14, 83, 161, 79, 0, 14, 98, 0, 0,
! 12, 98, 83, 157, 166, 160, 79, 0, 0, 12,
! 83, 158, 166, 160, 79, 0, 12, 98, 0, 0,
! 82, 0, 0, 82, 0, 162, 0, 162, 163, 0,
! 0, 162, 163, 78, 0, 162, 78, 0, 122, 117,
! 164, 0, 122, 0, 170, 117, 164, 0, 170, 0,
! 1, 0, 165, 0, 164, 82, 165, 0, 186, 187,
! 150, 133, 0, 186, 187, 150, 39, 107, 133, 0,
! 186, 187, 39, 107, 133, 0, 167, 0, 166, 82,
! 167, 0, 98, 0, 98, 37, 107, 0, 122, 169,
! 0, 170, 169, 0, 0, 172, 0, 7, 0, 170,
! 7, 0, 0, 171, 7, 0, 60, 172, 77, 0,
! 51, 171, 172, 0, 51, 171, 0, 172, 60, 209,
! 0, 172, 61, 100, 84, 0, 172, 61, 84, 0,
! 60, 209, 0, 61, 100, 84, 0, 61, 84, 0,
! 189, 0, 173, 189, 0, 173, 175, 0, 0, 173,
! 0, 1, 78, 0, 0, 0, 178, 0, 179, 0,
! 178, 179, 0, 33, 220, 78, 0, 181, 0, 1,
! 181, 0, 83, 79, 0, 83, 176, 177, 116, 174,
! 79, 0, 83, 176, 177, 1, 79, 0, 83, 176,
! 177, 173, 79, 0, 183, 188, 0, 183, 1, 0,
! 15, 60, 100, 77, 0, 0, 18, 185, 188, 17,
! 0, 0, 0, 186, 187, 191, 0, 186, 187, 202,
! 188, 0, 186, 187, 190, 0, 191, 0, 202, 0,
! 181, 0, 199, 0, 100, 78, 0, 0, 182, 16,
! 192, 188, 0, 182, 0, 182, 16, 1, 0, 0,
! 0, 17, 193, 60, 100, 77, 194, 188, 0, 184,
! 60, 100, 77, 78, 0, 184, 1, 0, 0, 0,
! 0, 19, 60, 204, 78, 195, 204, 78, 196, 204,
! 77, 197, 188, 0, 0, 20, 60, 100, 77, 198,
! 188, 0, 23, 78, 0, 24, 78, 0, 25, 78,
! 0, 25, 100, 78, 0, 27, 203, 60, 100, 77,
! 78, 0, 27, 203, 60, 100, 39, 205, 77, 78,
! 0, 27, 203, 60, 100, 39, 205, 39, 205, 77,
! 78, 0, 27, 203, 60, 100, 39, 205, 39, 205,
! 39, 208, 77, 78, 0, 26, 98, 78, 0, 26,
! 51, 100, 78, 0, 78, 0, 200, 0, 0, 19,
! 60, 108, 77, 201, 188, 0, 21, 107, 39, 0,
! 21, 107, 10, 107, 39, 0, 22, 39, 0, 98,
! 39, 0, 0, 7, 0, 0, 100, 0, 0, 206,
! 0, 207, 0, 206, 82, 207, 0, 9, 60, 100,
! 77, 0, 110, 0, 208, 82, 110, 0, 0, 210,
! 211, 0, 213, 77, 0, 0, 214, 78, 212, 211,
! 0, 1, 77, 0, 0, 10, 0, 214, 0, 214,
! 82, 10, 0, 215, 0, 214, 82, 215, 0, 119,
! 152, 0, 119, 153, 0, 119, 169, 0, 121, 153,
! 0, 121, 169, 0, 0, 217, 218, 0, 211, 0,
! 219, 77, 0, 3, 0, 219, 82, 3, 0, 98,
! 0, 220, 82, 98, 0
! };
!
! #endif
!
! #if YYDEBUG != 0
! static const short yyrline[] = { 0,
218, 222, 235, 237, 237, 238, 240, 242, 243, 253,
259, 261, 263, 265, 267, 268, 269, 274, 280, 282,
283, 285, 290, 292, 293, 295, 300, 302, 303, 307,
***************
*** 206,245 ****
764, 775, 779, 781, 784, 797, 800, 804, 806, 814,
815, 816, 820, 822, 828, 829, 830, 833, 835, 838,
840, 843, 846, 852, 859, 862, 868, 875, 878, 885,
! 888, 893, 895, 900, 906, 907, 917, 928, 948, 950,
! 955, 962, 967, 971, 974, 976, 981, 984, 986, 988,
! 992, 995, 995, 998, 998, 1001, 1001, 1004, 1006, 1023,
! 1027, 1044, 1051, 1053, 1058, 1061, 1066, 1068, 1070, 1072,
! 1080, 1086, 1088, 1090, 1092, 1098, 1104, 1106, 1108, 1110,
! 1112, 1115, 1120, 1124, 1127, 1129, 1131, 1133, 1136, 1138,
! 1141, 1144, 1147, 1150, 1154, 1156, 1159, 1161, 1165, 1168,
! 1173, 1175, 1177, 1191, 1197, 1202, 1207, 1212, 1216, 1218,
! 1222, 1226, 1230, 1240, 1242, 1247, 1250, 1254, 1257, 1261,
! 1264, 1267, 1270, 1274, 1277, 1281, 1285, 1287, 1289, 1291,
! 1293, 1295, 1297, 1299, 1307, 1309, 1310, 1313, 1315, 1318,
! 1321, 1332, 1334, 1339, 1341, 1344, 1358, 1361, 1364, 1366,
! 1371, 1376, 1384, 1389, 1392, 1405, 1413, 1417, 1421, 1425,
! 1431, 1435, 1440, 1442, 1453, 1456, 1457, 1474, 1479, 1482,
! 1493, 1495, 1505, 1515, 1516, 1524, 1527, 1539, 1543, 1560,
! 1567, 1576, 1578, 1583, 1588, 1592, 1596, 1607, 1614, 1621,
! 1628, 1639, 1643, 1646, 1651, 1674, 1705, 1730, 1759, 1774,
! 1785, 1789, 1793, 1796, 1801, 1803, 1806, 1808, 1812, 1817,
! 1820, 1826, 1831, 1836, 1838, 1847, 1848, 1854, 1856, 1861,
! 1863, 1867, 1870, 1876, 1879, 1881, 1883, 1885, 1892, 1897,
! 1902, 1904, 1913, 1916, 1921, 1924
};
! static const char * const yytname[] = { 0,
! "error","$illegal.","IDENTIFIER","TYPENAME","SCSPEC","TYPESPEC","TYPE_QUAL","CONSTANT","STRING","ELLIPSIS",
! "SIZEOF","ENUM","STRUCT","UNION","IF","ELSE","WHILE","DO","FOR","SWITCH",
! "CASE","DEFAULT","BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","TYPEOF","ALIGNOF","ALIGN",
! "ATTRIBUTE","EXTENSION","LABEL","REALPART","IMAGPART","ASSIGN","'='","'?'","':'","OROR",
! "ANDAND","'|'","'^'","'&'","EQCOMPARE","ARITHCOMPARE","LSHIFT","RSHIFT","'+'","'-'",
! "'*'","'/'","'%'","UNARY","PLUSPLUS","MINUSMINUS","HYPERUNARY","POINTSAT","'.'","'('",
! "'['","INTERFACE","IMPLEMENTATION","END","SELECTOR","DEFS","ENCODE","CLASSNAME","PUBLIC","PRIVATE",
! "PROTECTED","PROTOCOL","OBJECTNAME","CLASS","ALIAS","OBJC_STRING","')'","';'","'}'","'~'",
! "'!'","','","'{'","']'","program"
};
static const short yyr1[] = { 0,
85, 85, 87, 86, 88, 86, 89, 89, 89, 90,
--- 373,433 ----
764, 775, 779, 781, 784, 797, 800, 804, 806, 814,
815, 816, 820, 822, 828, 829, 830, 833, 835, 838,
840, 843, 846, 852, 859, 862, 868, 875, 878, 885,
! 888, 893, 895, 900, 914, 915, 925, 936, 956, 958,
! 963, 970, 975, 979, 982, 984, 989, 992, 994, 996,
! 1000, 1003, 1003, 1006, 1006, 1009, 1009, 1012, 1014, 1031,
! 1035, 1052, 1059, 1061, 1066, 1069, 1074, 1076, 1078, 1080,
! 1088, 1094, 1096, 1098, 1100, 1106, 1112, 1114, 1116, 1118,
! 1120, 1123, 1128, 1132, 1135, 1137, 1139, 1141, 1144, 1146,
! 1149, 1152, 1155, 1158, 1162, 1164, 1167, 1169, 1173, 1176,
! 1181, 1183, 1185, 1199, 1205, 1210, 1215, 1220, 1224, 1226,
! 1230, 1234, 1238, 1248, 1250, 1255, 1258, 1262, 1265, 1269,
! 1272, 1275, 1278, 1282, 1285, 1289, 1293, 1295, 1297, 1299,
! 1301, 1303, 1305, 1307, 1315, 1317, 1318, 1321, 1323, 1326,
! 1329, 1340, 1342, 1347, 1349, 1352, 1366, 1369, 1372, 1374,
! 1379, 1384, 1392, 1397, 1400, 1413, 1421, 1425, 1429, 1433,
! 1439, 1443, 1448, 1450, 1461, 1464, 1465, 1482, 1487, 1490,
! 1501, 1503, 1513, 1523, 1524, 1532, 1535, 1547, 1551, 1568,
! 1575, 1584, 1586, 1591, 1596, 1600, 1604, 1615, 1622, 1629,
! 1636, 1647, 1651, 1654, 1659, 1682, 1713, 1738, 1767, 1782,
! 1793, 1797, 1801, 1804, 1809, 1811, 1814, 1816, 1820, 1825,
! 1828, 1834, 1839, 1844, 1846, 1855, 1856, 1862, 1864, 1869,
! 1871, 1875, 1878, 1884, 1887, 1889, 1891, 1893, 1900, 1905,
! 1910, 1912, 1921, 1924, 1929, 1932
};
! static const char * const yytname[] = { "$","error","$illegal.","IDENTIFIER",
! "TYPENAME","SCSPEC","TYPESPEC","TYPE_QUAL","CONSTANT","STRING","ELLIPSIS","SIZEOF",
! "ENUM","STRUCT","UNION","IF","ELSE","WHILE","DO","FOR","SWITCH","CASE","DEFAULT",
! "BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","TYPEOF","ALIGNOF","ALIGN",
! "ATTRIBUTE","EXTENSION","LABEL","REALPART","IMAGPART","ASSIGN","'='","'?'","':'",
! "OROR","ANDAND","'|'","'^'","'&'","EQCOMPARE","ARITHCOMPARE","LSHIFT","RSHIFT",
! "'+'","'-'","'*'","'/'","'%'","UNARY","PLUSPLUS","MINUSMINUS","HYPERUNARY","POINTSAT",
! "'.'","'('","'['","INTERFACE","IMPLEMENTATION","END","SELECTOR","DEFS","ENCODE",
! "CLASSNAME","PUBLIC","PRIVATE","PROTECTED","PROTOCOL","OBJECTNAME","CLASS","ALIAS",
! "OBJC_STRING","')'","';'","'}'","'~'","'!'","','","'{'","']'","program","extdefs",
! "@1","@2","extdef","datadef","fndef","@3","@4","@5","@6","@7","@8","identifier",
! "unop","expr","exprlist","nonnull_exprlist","unary_expr","@9","cast_expr","@10",
! "expr_no_commas","primary","@11","string","xdecls","lineno_datadecl","datadecls",
! "datadecl","lineno_decl","decls","setspecs","decl","typed_declspecs","reserved_declspecs",
! "declmods","typed_typespecs","reserved_typespecquals","typespec","typespecqual_reserved",
! "initdecls","notype_initdecls","maybeasm","initdcl","@12","notype_initdcl","@13",
! "maybe_attribute","attribute_list","attrib","init","@14","initlist_maybe_comma",
! "initlist1","initelt","@15","@16","@17","@18","@19","nested_function","@20",
! "notype_nested_function","@21","declarator","after_type_declarator","parm_declarator",
! "notype_declarator","structsp","@22","@23","@24","@25","maybecomma","maybecomma_warn",
! "component_decl_list","component_decl_list2","component_decl","components","component_declarator",
! "enumlist","enumerator","typename","absdcl","nonempty_type_quals","type_quals",
! "absdcl1","stmts","xstmts","errstmt","pushlevel","maybe_label_decls","label_decls",
! "label_decl","compstmt_or_error","compstmt","simple_if","if_prefix","do_stmt_start",
! "@26","save_filename","save_lineno","lineno_labeled_stmt","lineno_stmt_or_label",
! "stmt_or_label","stmt","@27","@28","@29","@30","@31","@32","@33","all_iter_stmt",
! "all_iter_stmt_simple","@34","label","maybe_type_qual","xexpr","asm_operands",
! "nonnull_asm_operands","asm_operand","asm_clobbers","parmlist","@35","parmlist_1",
! "@36","parmlist_2","parms","parm","parmlist_or_identifiers","@37","parmlist_or_identifiers_1",
! "identifiers","identifiers_or_typenames",""
};
+ #endif
static const short yyr1[] = { 0,
85, 85, 87, 86, 88, 86, 89, 89, 89, 90,
***************
*** 896,908 ****
48, 49, 50, 51, 52, 53, 43, 44, 45, 46,
47, 48, 49, 50, 51, 52, 53
};
- #define YYPURE 1
-
/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
! #line 3 "bison.simple"
/* Skeleton output parser for bison,
! Copyright (C) 1984 Bob Corbett and Richard Stallman
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
--- 1084,1094 ----
48, 49, 50, 51, 52, 53, 43, 44, 45, 46,
47, 48, 49, 50, 51, 52, 53
};
/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
! #line 3 "/gnu/lib/bison.simple"
/* Skeleton output parser for bison,
! Copyright (C) 1984, 1989, 1990 Bob Corbett and Richard Stallman
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
***************
*** 919,927 ****
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
! #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__)
#include <alloca.h>
! #endif
/* This is the parser code that is written into each bison parser
when the %semantic_parser declaration is not specified in the grammar.
--- 1105,1138 ----
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
! #ifndef alloca
! #ifdef __GNUC__
! #define alloca __builtin_alloca
! #else /* not GNU C. */
! #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
#include <alloca.h>
! #else /* not sparc */
! #if defined (MSDOS) && !defined (__TURBOC__)
! #include <malloc.h>
! #else /* not MSDOS, or __TURBOC__ */
! #if defined(_AIX)
! #include <malloc.h>
! #pragma alloca
! #else /* not MSDOS, __TURBOC__, or _AIX */
! #ifdef __hpux
! #ifdef __cplusplus
! extern "C" {
! void *alloca (unsigned int);
! };
! #else /* not __cplusplus */
! void *alloca ();
! #endif /* not __cplusplus */
! #endif /* __hpux */
! #endif /* not _AIX */
! #endif /* not MSDOS, or __TURBOC__ */
! #endif /* not sparc. */
! #endif /* not GNU C. */
! #endif /* alloca not defined. */
/* This is the parser code that is written into each bison parser
when the %semantic_parser declaration is not specified in the grammar.
***************
*** 936,970 ****
#define yyclearin (yychar = YYEMPTY)
#define YYEMPTY -2
#define YYEOF 0
- #define YYFAIL goto yyerrlab;
#define YYACCEPT return(0)
#define YYABORT return(1)
! #define YYERROR goto yyerrlab
#define YYTERROR 1
#define YYERRCODE 256
! #ifndef YYIMPURE
#define YYLEX yylex()
#endif
! #ifndef YYPURE
#define YYLEX yylex(&yylval, &yylloc)
#endif
/* If nonreentrant, generate the variables here */
! #ifndef YYIMPURE
int yychar; /* the lookahead symbol */
YYSTYPE yylval; /* the semantic value of the */
/* lookahead symbol */
YYLTYPE yylloc; /* location data for the lookahead */
/* symbol */
int yynerrs; /* number of parse errors so far */
! #endif /* YYIMPURE */
#if YYDEBUG != 0
int yydebug; /* nonzero means print parse trace */
--- 1147,1203 ----
#define yyclearin (yychar = YYEMPTY)
#define YYEMPTY -2
#define YYEOF 0
#define YYACCEPT return(0)
#define YYABORT return(1)
! #define YYERROR goto yyerrlab1
! /* Like YYERROR except do call yyerror.
! This remains here temporarily to ease the
! transition to the new meaning of YYERROR, for GCC.
! Once GCC version 2 has supplanted version 1, this can go. */
! #define YYFAIL goto yyerrlab
! #define YYRECOVERING() (!!yyerrstatus)
! #define YYBACKUP(token, value) \
! do \
! if (yychar == YYEMPTY && yylen == 1) \
! { yychar = (token), yylval = (value); \
! yychar1 = YYTRANSLATE (yychar); \
! YYPOPSTACK; \
! goto yybackup; \
! } \
! else \
! { yyerror ("syntax error: cannot back up"); YYERROR; } \
! while (0)
#define YYTERROR 1
#define YYERRCODE 256
! #ifndef YYPURE
#define YYLEX yylex()
#endif
! #ifdef YYPURE
! #ifdef YYLSP_NEEDED
#define YYLEX yylex(&yylval, &yylloc)
+ #else
+ #define YYLEX yylex(&yylval)
+ #endif
#endif
/* If nonreentrant, generate the variables here */
! #ifndef YYPURE
int yychar; /* the lookahead symbol */
YYSTYPE yylval; /* the semantic value of the */
/* lookahead symbol */
+ #ifdef YYLSP_NEEDED
YYLTYPE yylloc; /* location data for the lookahead */
/* symbol */
+ #endif
int yynerrs; /* number of parse errors so far */
! #endif /* not YYPURE */
#if YYDEBUG != 0
int yydebug; /* nonzero means print parse trace */
***************
*** 972,992 ****
from coexisting. */
#endif
! /* YYMAXDEPTH indicates the initial size of the parser's stacks */
! #ifndef YYMAXDEPTH
! #define YYMAXDEPTH 200
#endif
! /* YYMAXLIMIT is the maximum size the stacks can grow to
(effective only if the built-in stack extension method is used). */
! #ifndef YYMAXLIMIT
! #define YYMAXLIMIT 10000
#endif
! #line 90 "bison.simple"
int
yyparse()
{
--- 1205,1272 ----
from coexisting. */
#endif
! /* YYINITDEPTH indicates the initial size of the parser's stacks */
! #ifndef YYINITDEPTH
! #define YYINITDEPTH 200
#endif
! /* YYMAXDEPTH is the maximum size the stacks can grow to
(effective only if the built-in stack extension method is used). */
! #if YYMAXDEPTH == 0
! #undef YYMAXDEPTH
#endif
+ #ifndef YYMAXDEPTH
+ #define YYMAXDEPTH 10000
+ #endif
+
+ /* Prevent warning if -Wstrict-prototypes. */
+ #ifdef __GNUC__
+ int yyparse (void);
+ #endif
+
+ #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
+ #define __yy_bcopy(FROM,TO,COUNT) __builtin_memcpy(TO,FROM,COUNT)
+ #else /* not GNU C or C++ */
+ #ifndef __cplusplus
+
+ /* This is the most reliable way to avoid incompatibilities
+ in available built-in functions on various systems. */
+ static void
+ __yy_bcopy (from, to, count)
+ char *from;
+ char *to;
+ int count;
+ {
+ register char *f = from;
+ register char *t = to;
+ register int i = count;
! while (i-- > 0)
! *t++ = *f++;
! }
!
! #else /* __cplusplus */
!
! /* This is the most reliable way to avoid incompatibilities
! in available built-in functions on various systems. */
! static void
! __yy_bcopy (char *from, char *to, int count)
! {
! register char *f = from;
! register char *t = to;
! register int i = count;
!
! while (i-- > 0)
! *t++ = *f++;
! }
!
! #endif
! #endif
!
! #line 184 "/gnu/lib/bison.simple"
int
yyparse()
{
***************
*** 994,1018 ****
register int yyn;
register short *yyssp;
register YYSTYPE *yyvsp;
- YYLTYPE *yylsp;
int yyerrstatus; /* number of tokens to shift before error messages enabled */
! int yychar1; /* lookahead token as an internal (translated) token number */
! short yyssa[YYMAXDEPTH]; /* the state stack */
! YYSTYPE yyvsa[YYMAXDEPTH]; /* the semantic value stack */
! YYLTYPE yylsa[YYMAXDEPTH]; /* the location stack */
short *yyss = yyssa; /* refer to the stacks thru separate pointers */
YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
YYLTYPE *yyls = yylsa;
! int yymaxdepth = YYMAXDEPTH;
! #ifndef YYPURE
int yychar;
YYSTYPE yylval;
- YYLTYPE yylloc;
int yynerrs;
#endif
YYSTYPE yyval; /* the variable used to return */
--- 1274,1307 ----
register int yyn;
register short *yyssp;
register YYSTYPE *yyvsp;
int yyerrstatus; /* number of tokens to shift before error messages enabled */
! int yychar1 = 0; /* lookahead token as an internal (translated) token number */
! short yyssa[YYINITDEPTH]; /* the state stack */
! YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
short *yyss = yyssa; /* refer to the stacks thru separate pointers */
YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
+
+ #ifdef YYLSP_NEEDED
+ YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
YYLTYPE *yyls = yylsa;
+ YYLTYPE *yylsp;
+
+ #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
+ #else
+ #define YYPOPSTACK (yyvsp--, yyssp--)
+ #endif
! int yystacksize = YYINITDEPTH;
! #ifdef YYPURE
int yychar;
YYSTYPE yylval;
int yynerrs;
+ #ifdef YYLSP_NEEDED
+ YYLTYPE yylloc;
+ #endif
#endif
YYSTYPE yyval; /* the variable used to return */
***************
*** 1033,1043 ****
/* Initialize stack pointers.
Waste one element of value and location stack
! so that they stay on the same level as the state stack. */
yyssp = yyss - 1;
yyvsp = yyvs;
yylsp = yyls;
/* Push a new state, which is found in yystate . */
/* In all cases, when you get here, the value and location stacks
--- 1322,1335 ----
/* Initialize stack pointers.
Waste one element of value and location stack
! so that they stay on the same level as the state stack.
! The wasted elements are never initialized. */
yyssp = yyss - 1;
yyvsp = yyvs;
+ #ifdef YYLSP_NEEDED
yylsp = yyls;
+ #endif
/* Push a new state, which is found in yystate . */
/* In all cases, when you get here, the value and location stacks
***************
*** 1046,1058 ****
*++yyssp = yystate;
! if (yyssp >= yyss + yymaxdepth - 1)
{
/* Give user a chance to reallocate the stack */
/* Use copies of these so that the &'s don't force the real ones into memory. */
YYSTYPE *yyvs1 = yyvs;
- YYLTYPE *yyls1 = yyls;
short *yyss1 = yyss;
/* Get the current used size of the three stacks, in elements. */
int size = yyssp - yyss + 1;
--- 1338,1352 ----
*++yyssp = yystate;
! if (yyssp >= yyss + yystacksize - 1)
{
/* Give user a chance to reallocate the stack */
/* Use copies of these so that the &'s don't force the real ones into memory. */
YYSTYPE *yyvs1 = yyvs;
short *yyss1 = yyss;
+ #ifdef YYLSP_NEEDED
+ YYLTYPE *yyls1 = yyls;
+ #endif
/* Get the current used size of the three stacks, in elements. */
int size = yyssp - yyss + 1;
***************
*** 1060,1086 ****
#ifdef yyoverflow
/* Each stack pointer address is followed by the size of
the data in use in that stack, in bytes. */
yyoverflow("parser stack overflow",
&yyss1, size * sizeof (*yyssp),
&yyvs1, size * sizeof (*yyvsp),
&yyls1, size * sizeof (*yylsp),
! &yymaxdepth);
! yyss = yyss1; yyvs = yyvs1; yyls = yyls1;
#else /* no yyoverflow */
/* Extend the stack our own way. */
! if (yymaxdepth >= YYMAXLIMIT)
! yyerror("parser stack overflow");
! yymaxdepth *= 2;
! if (yymaxdepth > YYMAXLIMIT)
! yymaxdepth = YYMAXLIMIT;
! yyss = (short *) alloca (yymaxdepth * sizeof (*yyssp));
! bcopy ((char *)yyss1, (char *)yyss, size * sizeof (*yyssp));
! yyvs = (YYSTYPE *) alloca (yymaxdepth * sizeof (*yyvsp));
! bcopy ((char *)yyvs1, (char *)yyvs, size * sizeof (*yyvsp));
#ifdef YYLSP_NEEDED
! yyls = (YYLTYPE *) alloca (yymaxdepth * sizeof (*yylsp));
! bcopy ((char *)yyls1, (char *)yyls, size * sizeof (*yylsp));
#endif
#endif /* no yyoverflow */
--- 1354,1395 ----
#ifdef yyoverflow
/* Each stack pointer address is followed by the size of
the data in use in that stack, in bytes. */
+ #ifdef YYLSP_NEEDED
+ /* This used to be a conditional around just the two extra args,
+ but that might be undefined if yyoverflow is a macro. */
yyoverflow("parser stack overflow",
&yyss1, size * sizeof (*yyssp),
&yyvs1, size * sizeof (*yyvsp),
&yyls1, size * sizeof (*yylsp),
! &yystacksize);
! #else
! yyoverflow("parser stack overflow",
! &yyss1, size * sizeof (*yyssp),
! &yyvs1, size * sizeof (*yyvsp),
! &yystacksize);
! #endif
! yyss = yyss1; yyvs = yyvs1;
! #ifdef YYLSP_NEEDED
! yyls = yyls1;
! #endif
#else /* no yyoverflow */
/* Extend the stack our own way. */
! if (yystacksize >= YYMAXDEPTH)
! {
! yyerror("parser stack overflow");
! return 2;
! }
! yystacksize *= 2;
! if (yystacksize > YYMAXDEPTH)
! yystacksize = YYMAXDEPTH;
! yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
! __yy_bcopy ((char *)yyss1, (char *)yyss, size * sizeof (*yyssp));
! yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
! __yy_bcopy ((char *)yyvs1, (char *)yyvs, size * sizeof (*yyvsp));
#ifdef YYLSP_NEEDED
! yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
! __yy_bcopy ((char *)yyls1, (char *)yyls, size * sizeof (*yylsp));
#endif
#endif /* no yyoverflow */
***************
*** 1092,1101 ****
#if YYDEBUG != 0
if (yydebug)
! fprintf(stderr, "Stack size increased to %d\n", yymaxdepth);
#endif
! if (yyssp >= yyss + yymaxdepth - 1)
YYABORT;
}
--- 1401,1410 ----
#if YYDEBUG != 0
if (yydebug)
! fprintf(stderr, "Stack size increased to %d\n", yystacksize);
#endif
! if (yyssp >= yyss + yystacksize - 1)
YYABORT;
}
***************
*** 1104,1112 ****
fprintf(stderr, "Entering state %d\n", yystate);
#endif
/* Do appropriate processing given the current state. */
/* Read a lookahead token if we need one and don't already have one. */
! yyresume:
/* First try to decide what to do without reference to lookahead token. */
--- 1413,1424 ----
fprintf(stderr, "Entering state %d\n", yystate);
#endif
+ goto yybackup;
+ yybackup:
+
/* Do appropriate processing given the current state. */
/* Read a lookahead token if we need one and don't already have one. */
! /* yyresume: */
/* First try to decide what to do without reference to lookahead token. */
***************
*** 1146,1152 ****
#if YYDEBUG != 0
if (yydebug)
! fprintf(stderr, "Next token is %d (%s)\n", yychar, yytname[yychar1]);
#endif
}
--- 1458,1472 ----
#if YYDEBUG != 0
if (yydebug)
! {
! fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
! /* Give the individual parser a way to print the precise meaning
! of a token, for further debugging info. */
! #ifdef YYPRINT
! YYPRINT (stderr, yychar, yylval);
! #endif
! fprintf (stderr, ")\n");
! }
#endif
}
***************
*** 1208,1224 ****
/* Do a reduction. yyn is the number of a rule to reduce with. */
yyreduce:
yylen = yyr2[yyn];
! yyval = yyvsp[1-yylen]; /* implement default value of the action */
#if YYDEBUG != 0
if (yydebug)
{
! if (yylen == 1)
! fprintf (stderr, "Reducing 1 value via line %d, ",
! yyrline[yyn]);
! else
! fprintf (stderr, "Reducing %d values via line %d, ",
! yylen, yyrline[yyn]);
}
#endif
--- 1528,1548 ----
/* Do a reduction. yyn is the number of a rule to reduce with. */
yyreduce:
yylen = yyr2[yyn];
! if (yylen > 0)
! yyval = yyvsp[1-yylen]; /* implement default value of the action */
#if YYDEBUG != 0
if (yydebug)
{
! int i;
!
! fprintf (stderr, "Reducing via rule %d (line %d), ",
! yyn, yyrline[yyn]);
!
! /* Print the symbols being reduced, and their result. */
! for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
! fprintf (stderr, "%s ", yytname[yyrhs[i]]);
! fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
}
#endif
***************
*** 1959,1972 ****
break;}
case 154:
#line 901 "c-parse.y"
! { if (strcmp (IDENTIFIER_POINTER (yyvsp[0].ttype), "packed")
&& strcmp (IDENTIFIER_POINTER (yyvsp[0].ttype), "noreturn"))
warning ("`%s' attribute directive ignored",
IDENTIFIER_POINTER (yyvsp[0].ttype));
yyval.ttype = yyvsp[0].ttype; ;
break;}
case 156:
! #line 908 "c-parse.y"
{ /* If not "mode (m)", then issue warning. */
if (strcmp (IDENTIFIER_POINTER (yyvsp[-3].ttype), "mode") != 0)
{
--- 2283,2304 ----
break;}
case 154:
#line 901 "c-parse.y"
! {
! #ifdef HANDLE_ATTRIBUTE0
! /* give the function a chance to validate further attributes */
! if (HANDLE_ATTRIBUTE0 (IDENTIFIER_POINTER (yyvsp[0].ttype)) ||
! (strcmp (IDENTIFIER_POINTER (yyvsp[0].ttype), "packed")
! && strcmp (IDENTIFIER_POINTER (yyvsp[0].ttype), "noreturn")))
! #else
! if (strcmp (IDENTIFIER_POINTER (yyvsp[0].ttype), "packed")
&& strcmp (IDENTIFIER_POINTER (yyvsp[0].ttype), "noreturn"))
+ #endif
warning ("`%s' attribute directive ignored",
IDENTIFIER_POINTER (yyvsp[0].ttype));
yyval.ttype = yyvsp[0].ttype; ;
break;}
case 156:
! #line 916 "c-parse.y"
{ /* If not "mode (m)", then issue warning. */
if (strcmp (IDENTIFIER_POINTER (yyvsp[-3].ttype), "mode") != 0)
{
***************
*** 1978,1984 ****
yyval.ttype = tree_cons (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE); ;
break;}
case 157:
! #line 918 "c-parse.y"
{ /* if not "aligned(n)", then issue warning */
if (strcmp (IDENTIFIER_POINTER (yyvsp[-3].ttype), "aligned") != 0
|| TREE_CODE (yyvsp[-1].ttype) != INTEGER_CST)
--- 2310,2316 ----
yyval.ttype = tree_cons (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE); ;
break;}
case 157:
! #line 926 "c-parse.y"
{ /* if not "aligned(n)", then issue warning */
if (strcmp (IDENTIFIER_POINTER (yyvsp[-3].ttype), "aligned") != 0
|| TREE_CODE (yyvsp[-1].ttype) != INTEGER_CST)
***************
*** 1991,1997 ****
yyval.ttype = tree_cons (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE); ;
break;}
case 158:
! #line 929 "c-parse.y"
{ /* if not "format(...)", then issue warning */
if (strcmp (IDENTIFIER_POINTER (yyvsp[-7].ttype), "format") != 0
|| TREE_CODE (yyvsp[-3].ttype) != INTEGER_CST
--- 2323,2329 ----
yyval.ttype = tree_cons (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE); ;
break;}
case 158:
! #line 937 "c-parse.y"
{ /* if not "format(...)", then issue warning */
if (strcmp (IDENTIFIER_POINTER (yyvsp[-7].ttype), "format") != 0
|| TREE_CODE (yyvsp[-3].ttype) != INTEGER_CST
***************
*** 2009,2022 ****
NULL_TREE); ;
break;}
case 160:
! #line 951 "c-parse.y"
{ really_start_incremental_init (NULL_TREE);
/* Note that the call to clear_momentary
is in process_init_element. */
push_momentary (); ;
break;}
case 161:
! #line 956 "c-parse.y"
{ yyval.ttype = pop_init_level (0);
if (yyval.ttype == error_mark_node)
pop_momentary ();
--- 2341,2354 ----
NULL_TREE); ;
break;}
case 160:
! #line 959 "c-parse.y"
{ really_start_incremental_init (NULL_TREE);
/* Note that the call to clear_momentary
is in process_init_element. */
push_momentary (); ;
break;}
case 161:
! #line 964 "c-parse.y"
{ yyval.ttype = pop_init_level (0);
if (yyval.ttype == error_mark_node)
pop_momentary ();
***************
*** 2024,2067 ****
pop_momentary_nofree (); ;
break;}
case 162:
! #line 963 "c-parse.y"
{ yyval.ttype = error_mark_node; ;
break;}
case 163:
! #line 969 "c-parse.y"
{ if (pedantic)
pedwarn ("ANSI C forbids empty initializer braces"); ;
break;}
case 167:
! #line 983 "c-parse.y"
{ process_init_element (yyvsp[0].ttype); ;
break;}
case 168:
! #line 985 "c-parse.y"
{ push_init_level (0); ;
break;}
case 169:
! #line 987 "c-parse.y"
{ process_init_element (pop_init_level (0)); ;
break;}
case 171:
! #line 993 "c-parse.y"
{ set_init_index (yyvsp[-4].ttype, yyvsp[-2].ttype); ;
break;}
case 173:
! #line 996 "c-parse.y"
{ set_init_index (yyvsp[-2].ttype, NULL_TREE); ;
break;}
case 175:
! #line 999 "c-parse.y"
{ set_init_label (yyvsp[-1].ttype); ;
break;}
case 177:
! #line 1002 "c-parse.y"
{ set_init_label (yyvsp[-1].ttype); ;
break;}
case 179:
! #line 1008 "c-parse.y"
{ push_c_function_context ();
if (! start_function (current_declspecs, yyvsp[0].ttype, 1))
{
--- 2356,2399 ----
pop_momentary_nofree (); ;
break;}
case 162:
! #line 971 "c-parse.y"
{ yyval.ttype = error_mark_node; ;
break;}
case 163:
! #line 977 "c-parse.y"
{ if (pedantic)
pedwarn ("ANSI C forbids empty initializer braces"); ;
break;}
case 167:
! #line 991 "c-parse.y"
{ process_init_element (yyvsp[0].ttype); ;
break;}
case 168:
! #line 993 "c-parse.y"
{ push_init_level (0); ;
break;}
case 169:
! #line 995 "c-parse.y"
{ process_init_element (pop_init_level (0)); ;
break;}
case 171:
! #line 1001 "c-parse.y"
{ set_init_index (yyvsp[-4].ttype, yyvsp[-2].ttype); ;
break;}
case 173:
! #line 1004 "c-parse.y"
{ set_init_index (yyvsp[-2].ttype, NULL_TREE); ;
break;}
case 175:
! #line 1007 "c-parse.y"
{ set_init_label (yyvsp[-1].ttype); ;
break;}
case 177:
! #line 1010 "c-parse.y"
{ set_init_label (yyvsp[-1].ttype); ;
break;}
case 179:
! #line 1016 "c-parse.y"
{ push_c_function_context ();
if (! start_function (current_declspecs, yyvsp[0].ttype, 1))
{
***************
*** 2072,2083 ****
store_parm_decls (); ;
break;}
case 180:
! #line 1023 "c-parse.y"
{ finish_function (1);
pop_c_function_context (); ;
break;}
case 181:
! #line 1029 "c-parse.y"
{ push_c_function_context ();
if (! start_function (current_declspecs, yyvsp[0].ttype, 1))
{
--- 2404,2415 ----
store_parm_decls (); ;
break;}
case 180:
! #line 1031 "c-parse.y"
{ finish_function (1);
pop_c_function_context (); ;
break;}
case 181:
! #line 1037 "c-parse.y"
{ push_c_function_context ();
if (! start_function (current_declspecs, yyvsp[0].ttype, 1))
{
***************
*** 2088,2370 ****
store_parm_decls (); ;
break;}
case 182:
! #line 1044 "c-parse.y"
{ finish_function (1);
pop_c_function_context (); ;
break;}
case 185:
! #line 1060 "c-parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
break;}
case 186:
! #line 1062 "c-parse.y"
{ yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
break;}
case 187:
! #line 1067 "c-parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
break;}
case 188:
! #line 1069 "c-parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
break;}
case 189:
! #line 1071 "c-parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;}
case 191:
! #line 1082 "c-parse.y"
{ yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
break;}
case 192:
! #line 1087 "c-parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
break;}
case 193:
! #line 1089 "c-parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
break;}
case 194:
! #line 1091 "c-parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;}
case 196:
! #line 1100 "c-parse.y"
{ yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
break;}
case 197:
! #line 1105 "c-parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
break;}
case 198:
! #line 1107 "c-parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;}
case 199:
! #line 1109 "c-parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
break;}
case 200:
! #line 1111 "c-parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
break;}
case 202:
! #line 1117 "c-parse.y"
{ yyval.ttype = start_struct (RECORD_TYPE, yyvsp[-1].ttype);
/* Start scope of tag before parsing components. */
;
break;}
case 203:
! #line 1121 "c-parse.y"
{ yyval.ttype = finish_struct (yyvsp[-2].ttype, yyvsp[-1].ttype);
/* Really define the structure. */
;
break;}
case 204:
! #line 1125 "c-parse.y"
{ yyval.ttype = finish_struct (start_struct (RECORD_TYPE, NULL_TREE),
yyvsp[-1].ttype); ;
break;}
case 205:
! #line 1128 "c-parse.y"
{ yyval.ttype = xref_tag (RECORD_TYPE, yyvsp[0].ttype); ;
break;}
case 206:
! #line 1130 "c-parse.y"
{ yyval.ttype = start_struct (UNION_TYPE, yyvsp[-1].ttype); ;
break;}
case 207:
! #line 1132 "c-parse.y"
{ yyval.ttype = finish_struct (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
break;}
case 208:
! #line 1134 "c-parse.y"
{ yyval.ttype = finish_struct (start_struct (UNION_TYPE, NULL_TREE),
yyvsp[-1].ttype); ;
break;}
case 209:
! #line 1137 "c-parse.y"
{ yyval.ttype = xref_tag (UNION_TYPE, yyvsp[0].ttype); ;
break;}
case 210:
! #line 1139 "c-parse.y"
{ yyvsp[0].itype = suspend_momentary ();
yyval.ttype = start_enum (yyvsp[-1].ttype); ;
break;}
case 211:
! #line 1142 "c-parse.y"
{ yyval.ttype = finish_enum (yyvsp[-3].ttype, nreverse (yyvsp[-2].ttype));
resume_momentary (yyvsp[-4].itype); ;
break;}
case 212:
! #line 1145 "c-parse.y"
{ yyvsp[0].itype = suspend_momentary ();
yyval.ttype = start_enum (NULL_TREE); ;
break;}
case 213:
! #line 1148 "c-parse.y"
{ yyval.ttype = finish_enum (yyvsp[-3].ttype, nreverse (yyvsp[-2].ttype));
resume_momentary (yyvsp[-4].itype); ;
break;}
case 214:
! #line 1151 "c-parse.y"
{ yyval.ttype = xref_tag (ENUMERAL_TYPE, yyvsp[0].ttype); ;
break;}
case 218:
! #line 1162 "c-parse.y"
{ if (pedantic) pedwarn ("comma at end of enumerator list"); ;
break;}
case 219:
! #line 1167 "c-parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
break;}
case 220:
! #line 1169 "c-parse.y"
{ yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
pedwarn ("no semicolon at end of struct or union"); ;
break;}
case 221:
! #line 1174 "c-parse.y"
{ yyval.ttype = NULL_TREE; ;
break;}
case 222:
! #line 1176 "c-parse.y"
{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
break;}
case 223:
! #line 1178 "c-parse.y"
{ if (pedantic)
pedwarn ("extra semicolon in struct or union specified"); ;
break;}
case 224:
! #line 1193 "c-parse.y"
{ yyval.ttype = yyvsp[0].ttype;
current_declspecs = TREE_VALUE (declspec_stack);
declspec_stack = TREE_CHAIN (declspec_stack);
resume_momentary (yyvsp[-1].itype); ;
break;}
case 225:
! #line 1198 "c-parse.y"
{ if (pedantic)
pedwarn ("ANSI C forbids member declarations with no members");
shadow_tag(yyvsp[0].ttype);
yyval.ttype = NULL_TREE; ;
break;}
case 226:
! #line 1203 "c-parse.y"
{ yyval.ttype = yyvsp[0].ttype;
current_declspecs = TREE_VALUE (declspec_stack);
declspec_stack = TREE_CHAIN (declspec_stack);
resume_momentary (yyvsp[-1].itype); ;
break;}
case 227:
! #line 1208 "c-parse.y"
{ if (pedantic)
pedwarn ("ANSI C forbids member declarations with no members");
shadow_tag(yyvsp[0].ttype);
yyval.ttype = NULL_TREE; ;
break;}
case 228:
! #line 1213 "c-parse.y"
{ yyval.ttype = NULL_TREE; ;
break;}
case 230:
! #line 1219 "c-parse.y"
{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
break;}
case 231:
! #line 1224 "c-parse.y"
{ yyval.ttype = grokfield (yyvsp[-3].filename, yyvsp[-2].lineno, yyvsp[-1].ttype, current_declspecs, NULL_TREE);
decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
break;}
case 232:
! #line 1228 "c-parse.y"
{ yyval.ttype = grokfield (yyvsp[-5].filename, yyvsp[-4].lineno, yyvsp[-3].ttype, current_declspecs, yyvsp[-1].ttype);
decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
break;}
case 233:
! #line 1231 "c-parse.y"
{ yyval.ttype = grokfield (yyvsp[-4].filename, yyvsp[-3].lineno, NULL_TREE, current_declspecs, yyvsp[-1].ttype);
decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
break;}
case 235:
! #line 1243 "c-parse.y"
{ yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-2].ttype); ;
break;}
case 236:
! #line 1249 "c-parse.y"
{ yyval.ttype = build_enumerator (yyvsp[0].ttype, NULL_TREE); ;
break;}
case 237:
! #line 1251 "c-parse.y"
{ yyval.ttype = build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype); ;
break;}
case 238:
! #line 1256 "c-parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;}
case 239:
! #line 1258 "c-parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;}
case 240:
! #line 1263 "c-parse.y"
{ yyval.ttype = NULL_TREE; ;
break;}
case 242:
! #line 1269 "c-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
break;}
case 243:
! #line 1271 "c-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
break;}
case 244:
! #line 1276 "c-parse.y"
{ yyval.ttype = NULL_TREE; ;
break;}
case 245:
! #line 1278 "c-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
break;}
case 246:
! #line 1283 "c-parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
break;}
case 247:
! #line 1286 "c-parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;}
case 248:
! #line 1288 "c-parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
break;}
case 249:
! #line 1290 "c-parse.y"
{ yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
break;}
case 250:
! #line 1292 "c-parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
break;}
case 251:
! #line 1294 "c-parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
break;}
case 252:
! #line 1296 "c-parse.y"
{ yyval.ttype = build_nt (CALL_EXPR, NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
break;}
case 253:
! #line 1298 "c-parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
break;}
case 254:
! #line 1300 "c-parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); ;
break;}
case 261:
! #line 1322 "c-parse.y"
{ emit_line_note (input_filename, lineno);
pushlevel (0);
clear_last_expr ();
--- 2420,2702 ----
store_parm_decls (); ;
break;}
case 182:
! #line 1052 "c-parse.y"
{ finish_function (1);
pop_c_function_context (); ;
break;}
case 185:
! #line 1068 "c-parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
break;}
case 186:
! #line 1070 "c-parse.y"
{ yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
break;}
case 187:
! #line 1075 "c-parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
break;}
case 188:
! #line 1077 "c-parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
break;}
case 189:
! #line 1079 "c-parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;}
case 191:
! #line 1090 "c-parse.y"
{ yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
break;}
case 192:
! #line 1095 "c-parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
break;}
case 193:
! #line 1097 "c-parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
break;}
case 194:
! #line 1099 "c-parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;}
case 196:
! #line 1108 "c-parse.y"
{ yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
break;}
case 197:
! #line 1113 "c-parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
break;}
case 198:
! #line 1115 "c-parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;}
case 199:
! #line 1117 "c-parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
break;}
case 200:
! #line 1119 "c-parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
break;}
case 202:
! #line 1125 "c-parse.y"
{ yyval.ttype = start_struct (RECORD_TYPE, yyvsp[-1].ttype);
/* Start scope of tag before parsing components. */
;
break;}
case 203:
! #line 1129 "c-parse.y"
{ yyval.ttype = finish_struct (yyvsp[-2].ttype, yyvsp[-1].ttype);
/* Really define the structure. */
;
break;}
case 204:
! #line 1133 "c-parse.y"
{ yyval.ttype = finish_struct (start_struct (RECORD_TYPE, NULL_TREE),
yyvsp[-1].ttype); ;
break;}
case 205:
! #line 1136 "c-parse.y"
{ yyval.ttype = xref_tag (RECORD_TYPE, yyvsp[0].ttype); ;
break;}
case 206:
! #line 1138 "c-parse.y"
{ yyval.ttype = start_struct (UNION_TYPE, yyvsp[-1].ttype); ;
break;}
case 207:
! #line 1140 "c-parse.y"
{ yyval.ttype = finish_struct (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
break;}
case 208:
! #line 1142 "c-parse.y"
{ yyval.ttype = finish_struct (start_struct (UNION_TYPE, NULL_TREE),
yyvsp[-1].ttype); ;
break;}
case 209:
! #line 1145 "c-parse.y"
{ yyval.ttype = xref_tag (UNION_TYPE, yyvsp[0].ttype); ;
break;}
case 210:
! #line 1147 "c-parse.y"
{ yyvsp[0].itype = suspend_momentary ();
yyval.ttype = start_enum (yyvsp[-1].ttype); ;
break;}
case 211:
! #line 1150 "c-parse.y"
{ yyval.ttype = finish_enum (yyvsp[-3].ttype, nreverse (yyvsp[-2].ttype));
resume_momentary (yyvsp[-4].itype); ;
break;}
case 212:
! #line 1153 "c-parse.y"
{ yyvsp[0].itype = suspend_momentary ();
yyval.ttype = start_enum (NULL_TREE); ;
break;}
case 213:
! #line 1156 "c-parse.y"
{ yyval.ttype = finish_enum (yyvsp[-3].ttype, nreverse (yyvsp[-2].ttype));
resume_momentary (yyvsp[-4].itype); ;
break;}
case 214:
! #line 1159 "c-parse.y"
{ yyval.ttype = xref_tag (ENUMERAL_TYPE, yyvsp[0].ttype); ;
break;}
case 218:
! #line 1170 "c-parse.y"
{ if (pedantic) pedwarn ("comma at end of enumerator list"); ;
break;}
case 219:
! #line 1175 "c-parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
break;}
case 220:
! #line 1177 "c-parse.y"
{ yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
pedwarn ("no semicolon at end of struct or union"); ;
break;}
case 221:
! #line 1182 "c-parse.y"
{ yyval.ttype = NULL_TREE; ;
break;}
case 222:
! #line 1184 "c-parse.y"
{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
break;}
case 223:
! #line 1186 "c-parse.y"
{ if (pedantic)
pedwarn ("extra semicolon in struct or union specified"); ;
break;}
case 224:
! #line 1201 "c-parse.y"
{ yyval.ttype = yyvsp[0].ttype;
current_declspecs = TREE_VALUE (declspec_stack);
declspec_stack = TREE_CHAIN (declspec_stack);
resume_momentary (yyvsp[-1].itype); ;
break;}
case 225:
! #line 1206 "c-parse.y"
{ if (pedantic)
pedwarn ("ANSI C forbids member declarations with no members");
shadow_tag(yyvsp[0].ttype);
yyval.ttype = NULL_TREE; ;
break;}
case 226:
! #line 1211 "c-parse.y"
{ yyval.ttype = yyvsp[0].ttype;
current_declspecs = TREE_VALUE (declspec_stack);
declspec_stack = TREE_CHAIN (declspec_stack);
resume_momentary (yyvsp[-1].itype); ;
break;}
case 227:
! #line 1216 "c-parse.y"
{ if (pedantic)
pedwarn ("ANSI C forbids member declarations with no members");
shadow_tag(yyvsp[0].ttype);
yyval.ttype = NULL_TREE; ;
break;}
case 228:
! #line 1221 "c-parse.y"
{ yyval.ttype = NULL_TREE; ;
break;}
case 230:
! #line 1227 "c-parse.y"
{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
break;}
case 231:
! #line 1232 "c-parse.y"
{ yyval.ttype = grokfield (yyvsp[-3].filename, yyvsp[-2].lineno, yyvsp[-1].ttype, current_declspecs, NULL_TREE);
decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
break;}
case 232:
! #line 1236 "c-parse.y"
{ yyval.ttype = grokfield (yyvsp[-5].filename, yyvsp[-4].lineno, yyvsp[-3].ttype, current_declspecs, yyvsp[-1].ttype);
decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
break;}
case 233:
! #line 1239 "c-parse.y"
{ yyval.ttype = grokfield (yyvsp[-4].filename, yyvsp[-3].lineno, NULL_TREE, current_declspecs, yyvsp[-1].ttype);
decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
break;}
case 235:
! #line 1251 "c-parse.y"
{ yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-2].ttype); ;
break;}
case 236:
! #line 1257 "c-parse.y"
{ yyval.ttype = build_enumerator (yyvsp[0].ttype, NULL_TREE); ;
break;}
case 237:
! #line 1259 "c-parse.y"
{ yyval.ttype = build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype); ;
break;}
case 238:
! #line 1264 "c-parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;}
case 239:
! #line 1266 "c-parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;}
case 240:
! #line 1271 "c-parse.y"
{ yyval.ttype = NULL_TREE; ;
break;}
case 242:
! #line 1277 "c-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
break;}
case 243:
! #line 1279 "c-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
break;}
case 244:
! #line 1284 "c-parse.y"
{ yyval.ttype = NULL_TREE; ;
break;}
case 245:
! #line 1286 "c-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
break;}
case 246:
! #line 1291 "c-parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
break;}
case 247:
! #line 1294 "c-parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;}
case 248:
! #line 1296 "c-parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
break;}
case 249:
! #line 1298 "c-parse.y"
{ yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
break;}
case 250:
! #line 1300 "c-parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
break;}
case 251:
! #line 1302 "c-parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
break;}
case 252:
! #line 1304 "c-parse.y"
{ yyval.ttype = build_nt (CALL_EXPR, NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
break;}
case 253:
! #line 1306 "c-parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
break;}
case 254:
! #line 1308 "c-parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); ;
break;}
case 261:
! #line 1330 "c-parse.y"
{ emit_line_note (input_filename, lineno);
pushlevel (0);
clear_last_expr ();
***************
*** 2373,2384 ****
;
break;}
case 263:
! #line 1335 "c-parse.y"
{ if (pedantic)
pedwarn ("ANSI C forbids label declarations"); ;
break;}
case 266:
! #line 1346 "c-parse.y"
{ tree link;
for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
{
--- 2705,2716 ----
;
break;}
case 263:
! #line 1343 "c-parse.y"
{ if (pedantic)
pedwarn ("ANSI C forbids label declarations"); ;
break;}
case 266:
! #line 1354 "c-parse.y"
{ tree link;
for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
{
***************
*** 2389,2424 ****
;
break;}
case 267:
! #line 1360 "c-parse.y"
{;
break;}
case 269:
! #line 1365 "c-parse.y"
{ yyval.ttype = convert (void_type_node, integer_zero_node); ;
break;}
case 270:
! #line 1367 "c-parse.y"
{ emit_line_note (input_filename, lineno);
expand_end_bindings (getdecls (), 1, 0);
yyval.ttype = poplevel (1, 1, 0);
pop_momentary (); ;
break;}
case 271:
! #line 1372 "c-parse.y"
{ emit_line_note (input_filename, lineno);
expand_end_bindings (getdecls (), kept_level_p (), 0);
yyval.ttype = poplevel (kept_level_p (), 0, 0);
pop_momentary (); ;
break;}
case 272:
! #line 1377 "c-parse.y"
{ emit_line_note (input_filename, lineno);
expand_end_bindings (getdecls (), kept_level_p (), 0);
yyval.ttype = poplevel (kept_level_p (), 0, 0);
pop_momentary (); ;
break;}
case 275:
! #line 1394 "c-parse.y"
{ emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
expand_start_cond (truthvalue_conversion (yyvsp[-1].ttype), 0);
yyval.itype = stmt_count;
--- 2721,2756 ----
;
break;}
case 267:
! #line 1368 "c-parse.y"
{;
break;}
case 269:
! #line 1373 "c-parse.y"
{ yyval.ttype = convert (void_type_node, integer_zero_node); ;
break;}
case 270:
! #line 1375 "c-parse.y"
{ emit_line_note (input_filename, lineno);
expand_end_bindings (getdecls (), 1, 0);
yyval.ttype = poplevel (1, 1, 0);
pop_momentary (); ;
break;}
case 271:
! #line 1380 "c-parse.y"
{ emit_line_note (input_filename, lineno);
expand_end_bindings (getdecls (), kept_level_p (), 0);
yyval.ttype = poplevel (kept_level_p (), 0, 0);
pop_momentary (); ;
break;}
case 272:
! #line 1385 "c-parse.y"
{ emit_line_note (input_filename, lineno);
expand_end_bindings (getdecls (), kept_level_p (), 0);
yyval.ttype = poplevel (kept_level_p (), 0, 0);
pop_momentary (); ;
break;}
case 275:
! #line 1402 "c-parse.y"
{ emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
expand_start_cond (truthvalue_conversion (yyvsp[-1].ttype), 0);
yyval.itype = stmt_count;
***************
*** 2427,2433 ****
position_after_white_space (); ;
break;}
case 276:
! #line 1407 "c-parse.y"
{ stmt_count++;
emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
/* See comment in `while' alternative, above. */
--- 2759,2765 ----
position_after_white_space (); ;
break;}
case 276:
! #line 1415 "c-parse.y"
{ stmt_count++;
emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
/* See comment in `while' alternative, above. */
***************
*** 2436,2466 ****
position_after_white_space (); ;
break;}
case 277:
! #line 1414 "c-parse.y"
{ expand_loop_continue_here (); ;
break;}
case 278:
! #line 1418 "c-parse.y"
{ yyval.filename = input_filename; ;
break;}
case 279:
! #line 1422 "c-parse.y"
{ yyval.lineno = lineno; ;
break;}
case 280:
! #line 1427 "c-parse.y"
{ ;
break;}
case 281:
! #line 1432 "c-parse.y"
{ ;
break;}
case 282:
! #line 1437 "c-parse.y"
{ ;
break;}
case 284:
! #line 1443 "c-parse.y"
{ int next;
position_after_white_space ();
next = getc (finput);
--- 2768,2798 ----
position_after_white_space (); ;
break;}
case 277:
! #line 1422 "c-parse.y"
{ expand_loop_continue_here (); ;
break;}
case 278:
! #line 1426 "c-parse.y"
{ yyval.filename = input_filename; ;
break;}
case 279:
! #line 1430 "c-parse.y"
{ yyval.lineno = lineno; ;
break;}
case 280:
! #line 1435 "c-parse.y"
{ ;
break;}
case 281:
! #line 1440 "c-parse.y"
{ ;
break;}
case 282:
! #line 1445 "c-parse.y"
{ ;
break;}
case 284:
! #line 1451 "c-parse.y"
{ int next;
position_after_white_space ();
next = getc (finput);
***************
*** 2470,2480 ****
;
break;}
case 285:
! #line 1455 "c-parse.y"
{ stmt_count++; ;
break;}
case 287:
! #line 1458 "c-parse.y"
{ stmt_count++;
emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
/* It appears that this should not be done--that a non-lvalue array
--- 2802,2812 ----
;
break;}
case 285:
! #line 1463 "c-parse.y"
{ stmt_count++; ;
break;}
case 287:
! #line 1466 "c-parse.y"
{ stmt_count++;
emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
/* It appears that this should not be done--that a non-lvalue array
***************
*** 2493,2511 ****
clear_momentary (); ;
break;}
case 288:
! #line 1475 "c-parse.y"
{ expand_start_else ();
yyvsp[-1].itype = stmt_count;
position_after_white_space (); ;
break;}
case 289:
! #line 1479 "c-parse.y"
{ expand_end_cond ();
if (extra_warnings && stmt_count == yyvsp[-3].itype)
warning ("empty body in an else-statement"); ;
break;}
case 290:
! #line 1483 "c-parse.y"
{ expand_end_cond ();
/* This warning is here instead of in simple_if, because we
do not want a warning if an empty if is followed by an
--- 2825,2843 ----
clear_momentary (); ;
break;}
case 288:
! #line 1483 "c-parse.y"
{ expand_start_else ();
yyvsp[-1].itype = stmt_count;
position_after_white_space (); ;
break;}
case 289:
! #line 1487 "c-parse.y"
{ expand_end_cond ();
if (extra_warnings && stmt_count == yyvsp[-3].itype)
warning ("empty body in an else-statement"); ;
break;}
case 290:
! #line 1491 "c-parse.y"
{ expand_end_cond ();
/* This warning is here instead of in simple_if, because we
do not want a warning if an empty if is followed by an
***************
*** 2515,2525 ****
"empty body in an if-statement"); ;
break;}
case 291:
! #line 1494 "c-parse.y"
{ expand_end_cond (); ;
break;}
case 292:
! #line 1496 "c-parse.y"
{ stmt_count++;
emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
/* The emit_nop used to come before emit_line_note,
--- 2847,2857 ----
"empty body in an if-statement"); ;
break;}
case 291:
! #line 1502 "c-parse.y"
{ expand_end_cond (); ;
break;}
case 292:
! #line 1504 "c-parse.y"
{ stmt_count++;
emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
/* The emit_nop used to come before emit_line_note,
***************
*** 2531,2537 ****
emit_nop (); ;
break;}
case 293:
! #line 1506 "c-parse.y"
{ /* Don't start the loop till we have succeeded
in parsing the end test. This is to make sure
that we end every loop we start. */
--- 2863,2869 ----
emit_nop (); ;
break;}
case 293:
! #line 1514 "c-parse.y"
{ /* Don't start the loop till we have succeeded
in parsing the end test. This is to make sure
that we end every loop we start. */
***************
*** 2542,2552 ****
position_after_white_space (); ;
break;}
case 294:
! #line 1515 "c-parse.y"
{ expand_end_loop (); ;
break;}
case 295:
! #line 1518 "c-parse.y"
{ emit_line_note (input_filename, lineno);
expand_exit_loop_if_false (NULL_PTR,
truthvalue_conversion (yyvsp[-2].ttype));
--- 2874,2884 ----
position_after_white_space (); ;
break;}
case 294:
! #line 1523 "c-parse.y"
{ expand_end_loop (); ;
break;}
case 295:
! #line 1526 "c-parse.y"
{ emit_line_note (input_filename, lineno);
expand_exit_loop_if_false (NULL_PTR,
truthvalue_conversion (yyvsp[-2].ttype));
***************
*** 2554,2565 ****
clear_momentary (); ;
break;}
case 296:
! #line 1525 "c-parse.y"
{ expand_end_loop ();
clear_momentary (); ;
break;}
case 297:
! #line 1529 "c-parse.y"
{ stmt_count++;
emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
/* See comment in `while' alternative, above. */
--- 2886,2897 ----
clear_momentary (); ;
break;}
case 296:
! #line 1533 "c-parse.y"
{ expand_end_loop ();
clear_momentary (); ;
break;}
case 297:
! #line 1537 "c-parse.y"
{ stmt_count++;
emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
/* See comment in `while' alternative, above. */
***************
*** 2572,2583 ****
;
break;}
case 298:
! #line 1541 "c-parse.y"
{ yyvsp[0].lineno = lineno;
yyval.filename = input_filename; ;
break;}
case 299:
! #line 1544 "c-parse.y"
{
/* Start the loop. Doing this after parsing
all the expressions ensures we will end the loop. */
--- 2904,2915 ----
;
break;}
case 298:
! #line 1549 "c-parse.y"
{ yyvsp[0].lineno = lineno;
yyval.filename = input_filename; ;
break;}
case 299:
! #line 1552 "c-parse.y"
{
/* Start the loop. Doing this after parsing
all the expressions ensures we will end the loop. */
***************
*** 2595,2601 ****
position_after_white_space (); ;
break;}
case 300:
! #line 1560 "c-parse.y"
{ /* Emit the increment expression, with a line number. */
emit_line_note (yyvsp[-4].filename, yyvsp[-5].lineno);
expand_loop_continue_here ();
--- 2927,2933 ----
position_after_white_space (); ;
break;}
case 300:
! #line 1568 "c-parse.y"
{ /* Emit the increment expression, with a line number. */
emit_line_note (yyvsp[-4].filename, yyvsp[-5].lineno);
expand_loop_continue_here ();
***************
*** 2605,2611 ****
expand_end_loop (); ;
break;}
case 301:
! #line 1568 "c-parse.y"
{ stmt_count++;
emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
c_expand_start_case (yyvsp[-1].ttype);
--- 2937,2943 ----
expand_end_loop (); ;
break;}
case 301:
! #line 1576 "c-parse.y"
{ stmt_count++;
emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
c_expand_start_case (yyvsp[-1].ttype);
***************
*** 2615,2652 ****
position_after_white_space (); ;
break;}
case 302:
! #line 1576 "c-parse.y"
{ expand_end_case (yyvsp[-3].ttype);
pop_momentary (); ;
break;}
case 303:
! #line 1579 "c-parse.y"
{ stmt_count++;
emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
if ( ! expand_exit_something ())
error ("break statement not within loop or switch"); ;
break;}
case 304:
! #line 1584 "c-parse.y"
{ stmt_count++;
emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
if (! expand_continue_loop (NULL_PTR))
error ("continue statement not within a loop"); ;
break;}
case 305:
! #line 1589 "c-parse.y"
{ stmt_count++;
emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
c_expand_return (NULL_TREE); ;
break;}
case 306:
! #line 1593 "c-parse.y"
{ stmt_count++;
emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
c_expand_return (yyvsp[-1].ttype); ;
break;}
case 307:
! #line 1597 "c-parse.y"
{ stmt_count++;
emit_line_note (yyvsp[-7].filename, yyvsp[-6].lineno);
STRIP_NOPS (yyvsp[-2].ttype);
--- 2947,2984 ----
position_after_white_space (); ;
break;}
case 302:
! #line 1584 "c-parse.y"
{ expand_end_case (yyvsp[-3].ttype);
pop_momentary (); ;
break;}
case 303:
! #line 1587 "c-parse.y"
{ stmt_count++;
emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
if ( ! expand_exit_something ())
error ("break statement not within loop or switch"); ;
break;}
case 304:
! #line 1592 "c-parse.y"
{ stmt_count++;
emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
if (! expand_continue_loop (NULL_PTR))
error ("continue statement not within a loop"); ;
break;}
case 305:
! #line 1597 "c-parse.y"
{ stmt_count++;
emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
c_expand_return (NULL_TREE); ;
break;}
case 306:
! #line 1601 "c-parse.y"
{ stmt_count++;
emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
c_expand_return (yyvsp[-1].ttype); ;
break;}
case 307:
! #line 1605 "c-parse.y"
{ stmt_count++;
emit_line_note (yyvsp[-7].filename, yyvsp[-6].lineno);
STRIP_NOPS (yyvsp[-2].ttype);
***************
*** 2658,2664 ****
error ("argument of `asm' is not a constant string"); ;
break;}
case 308:
! #line 1608 "c-parse.y"
{ stmt_count++;
emit_line_note (yyvsp[-9].filename, yyvsp[-8].lineno);
c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
--- 2990,2996 ----
error ("argument of `asm' is not a constant string"); ;
break;}
case 308:
! #line 1616 "c-parse.y"
{ stmt_count++;
emit_line_note (yyvsp[-9].filename, yyvsp[-8].lineno);
c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
***************
*** 2666,2672 ****
input_filename, lineno); ;
break;}
case 309:
! #line 1615 "c-parse.y"
{ stmt_count++;
emit_line_note (yyvsp[-11].filename, yyvsp[-10].lineno);
c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
--- 2998,3004 ----
input_filename, lineno); ;
break;}
case 309:
! #line 1623 "c-parse.y"
{ stmt_count++;
emit_line_note (yyvsp[-11].filename, yyvsp[-10].lineno);
c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
***************
*** 2674,2680 ****
input_filename, lineno); ;
break;}
case 310:
! #line 1623 "c-parse.y"
{ stmt_count++;
emit_line_note (yyvsp[-13].filename, yyvsp[-12].lineno);
c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype,
--- 3006,3012 ----
input_filename, lineno); ;
break;}
case 310:
! #line 1631 "c-parse.y"
{ stmt_count++;
emit_line_note (yyvsp[-13].filename, yyvsp[-12].lineno);
c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype,
***************
*** 2682,2688 ****
input_filename, lineno); ;
break;}
case 311:
! #line 1629 "c-parse.y"
{ tree decl;
stmt_count++;
emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
--- 3014,3020 ----
input_filename, lineno); ;
break;}
case 311:
! #line 1637 "c-parse.y"
{ tree decl;
stmt_count++;
emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
***************
*** 2695,2707 ****
;
break;}
case 312:
! #line 1640 "c-parse.y"
{ stmt_count++;
emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
expand_computed_goto (convert (ptr_type_node, yyvsp[-1].ttype)); ;
break;}
case 315:
! #line 1653 "c-parse.y"
{
/* The value returned by this action is */
/* 1 if everything is OK */
--- 3027,3039 ----
;
break;}
case 312:
! #line 1648 "c-parse.y"
{ stmt_count++;
emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
expand_computed_goto (convert (ptr_type_node, yyvsp[-1].ttype)); ;
break;}
case 315:
! #line 1661 "c-parse.y"
{
/* The value returned by this action is */
/* 1 if everything is OK */
***************
*** 2724,2737 ****
;
break;}
case 316:
! #line 1674 "c-parse.y"
{
if (yyvsp[-1].itype)
iterator_for_loop_end (yyvsp[-3].ttype);
;
break;}
case 317:
! #line 1706 "c-parse.y"
{ register tree value = check_case_value (yyvsp[-1].ttype);
register tree label
= build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
--- 3056,3069 ----
;
break;}
case 316:
! #line 1682 "c-parse.y"
{
if (yyvsp[-1].itype)
iterator_for_loop_end (yyvsp[-3].ttype);
;
break;}
case 317:
! #line 1714 "c-parse.y"
{ register tree value = check_case_value (yyvsp[-1].ttype);
register tree label
= build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
***************
*** 2758,2764 ****
position_after_white_space (); ;
break;}
case 318:
! #line 1731 "c-parse.y"
{ register tree value1 = check_case_value (yyvsp[-3].ttype);
register tree value2 = check_case_value (yyvsp[-1].ttype);
register tree label
--- 3090,3096 ----
position_after_white_space (); ;
break;}
case 318:
! #line 1739 "c-parse.y"
{ register tree value1 = check_case_value (yyvsp[-3].ttype);
register tree value2 = check_case_value (yyvsp[-1].ttype);
register tree label
***************
*** 2789,2795 ****
position_after_white_space (); ;
break;}
case 319:
! #line 1760 "c-parse.y"
{
tree duplicate;
register tree label
--- 3121,3127 ----
position_after_white_space (); ;
break;}
case 319:
! #line 1768 "c-parse.y"
{
tree duplicate;
register tree label
***************
*** 2806,2812 ****
position_after_white_space (); ;
break;}
case 320:
! #line 1775 "c-parse.y"
{ tree label = define_label (input_filename, lineno, yyvsp[-1].ttype);
stmt_count++;
emit_nop ();
--- 3138,3144 ----
position_after_white_space (); ;
break;}
case 320:
! #line 1783 "c-parse.y"
{ tree label = define_label (input_filename, lineno, yyvsp[-1].ttype);
stmt_count++;
emit_nop ();
***************
*** 2815,2866 ****
position_after_white_space (); ;
break;}
case 321:
! #line 1787 "c-parse.y"
{ emit_line_note (input_filename, lineno);
yyval.ttype = NULL_TREE; ;
break;}
case 322:
! #line 1790 "c-parse.y"
{ emit_line_note (input_filename, lineno); ;
break;}
case 323:
! #line 1795 "c-parse.y"
{ yyval.ttype = NULL_TREE; ;
break;}
case 325:
! #line 1802 "c-parse.y"
{ yyval.ttype = NULL_TREE; ;
break;}
case 328:
! #line 1809 "c-parse.y"
{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
break;}
case 329:
! #line 1814 "c-parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
break;}
case 330:
! #line 1819 "c-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE); ;
break;}
case 331:
! #line 1821 "c-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ;
break;}
case 332:
! #line 1827 "c-parse.y"
{ pushlevel (0);
clear_parm_order ();
declare_parm_level (0); ;
break;}
case 333:
! #line 1831 "c-parse.y"
{ yyval.ttype = yyvsp[0].ttype;
parmlist_tags_warning ();
poplevel (0, 0, 0); ;
break;}
case 335:
! #line 1839 "c-parse.y"
{ tree parm;
if (pedantic)
pedwarn ("ANSI C forbids forward parameter declarations");
--- 3147,3198 ----
position_after_white_space (); ;
break;}
case 321:
! #line 1795 "c-parse.y"
{ emit_line_note (input_filename, lineno);
yyval.ttype = NULL_TREE; ;
break;}
case 322:
! #line 1798 "c-parse.y"
{ emit_line_note (input_filename, lineno); ;
break;}
case 323:
! #line 1803 "c-parse.y"
{ yyval.ttype = NULL_TREE; ;
break;}
case 325:
! #line 1810 "c-parse.y"
{ yyval.ttype = NULL_TREE; ;
break;}
case 328:
! #line 1817 "c-parse.y"
{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
break;}
case 329:
! #line 1822 "c-parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
break;}
case 330:
! #line 1827 "c-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE); ;
break;}
case 331:
! #line 1829 "c-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ;
break;}
case 332:
! #line 1835 "c-parse.y"
{ pushlevel (0);
clear_parm_order ();
declare_parm_level (0); ;
break;}
case 333:
! #line 1839 "c-parse.y"
{ yyval.ttype = yyvsp[0].ttype;
parmlist_tags_warning ();
poplevel (0, 0, 0); ;
break;}
case 335:
! #line 1847 "c-parse.y"
{ tree parm;
if (pedantic)
pedwarn ("ANSI C forbids forward parameter declarations");
***************
*** 2870,2943 ****
clear_parm_order (); ;
break;}
case 336:
! #line 1847 "c-parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
break;}
case 337:
! #line 1849 "c-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ;
break;}
case 338:
! #line 1855 "c-parse.y"
{ yyval.ttype = get_parm_info (0); ;
break;}
case 339:
! #line 1857 "c-parse.y"
{ yyval.ttype = get_parm_info (0);
if (pedantic)
pedwarn ("ANSI C requires a named argument before `...'");
;
break;}
case 340:
! #line 1862 "c-parse.y"
{ yyval.ttype = get_parm_info (1); ;
break;}
case 341:
! #line 1864 "c-parse.y"
{ yyval.ttype = get_parm_info (0); ;
break;}
case 342:
! #line 1869 "c-parse.y"
{ push_parm_decl (yyvsp[0].ttype); ;
break;}
case 343:
! #line 1871 "c-parse.y"
{ push_parm_decl (yyvsp[0].ttype); ;
break;}
case 344:
! #line 1878 "c-parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype) ; ;
break;}
case 345:
! #line 1880 "c-parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype) ; ;
break;}
case 346:
! #line 1882 "c-parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;}
case 347:
! #line 1884 "c-parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype) ; ;
break;}
case 348:
! #line 1886 "c-parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;}
case 349:
! #line 1893 "c-parse.y"
{ pushlevel (0);
clear_parm_order ();
declare_parm_level (1); ;
break;}
case 350:
! #line 1897 "c-parse.y"
{ yyval.ttype = yyvsp[0].ttype;
parmlist_tags_warning ();
poplevel (0, 0, 0); ;
break;}
case 352:
! #line 1905 "c-parse.y"
{ tree t;
for (t = yyvsp[-1].ttype; t; t = TREE_CHAIN (t))
if (TREE_VALUE (t) == NULL_TREE)
--- 3202,3275 ----
clear_parm_order (); ;
break;}
case 336:
! #line 1855 "c-parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
break;}
case 337:
! #line 1857 "c-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ;
break;}
case 338:
! #line 1863 "c-parse.y"
{ yyval.ttype = get_parm_info (0); ;
break;}
case 339:
! #line 1865 "c-parse.y"
{ yyval.ttype = get_parm_info (0);
if (pedantic)
pedwarn ("ANSI C requires a named argument before `...'");
;
break;}
case 340:
! #line 1870 "c-parse.y"
{ yyval.ttype = get_parm_info (1); ;
break;}
case 341:
! #line 1872 "c-parse.y"
{ yyval.ttype = get_parm_info (0); ;
break;}
case 342:
! #line 1877 "c-parse.y"
{ push_parm_decl (yyvsp[0].ttype); ;
break;}
case 343:
! #line 1879 "c-parse.y"
{ push_parm_decl (yyvsp[0].ttype); ;
break;}
case 344:
! #line 1886 "c-parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype) ; ;
break;}
case 345:
! #line 1888 "c-parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype) ; ;
break;}
case 346:
! #line 1890 "c-parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;}
case 347:
! #line 1892 "c-parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype) ; ;
break;}
case 348:
! #line 1894 "c-parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;}
case 349:
! #line 1901 "c-parse.y"
{ pushlevel (0);
clear_parm_order ();
declare_parm_level (1); ;
break;}
case 350:
! #line 1905 "c-parse.y"
{ yyval.ttype = yyvsp[0].ttype;
parmlist_tags_warning ();
poplevel (0, 0, 0); ;
break;}
case 352:
! #line 1913 "c-parse.y"
{ tree t;
for (t = yyvsp[-1].ttype; t; t = TREE_CHAIN (t))
if (TREE_VALUE (t) == NULL_TREE)
***************
*** 2945,2968 ****
yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ;
break;}
case 353:
! #line 1915 "c-parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
break;}
case 354:
! #line 1917 "c-parse.y"
{ yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
break;}
case 355:
! #line 1923 "c-parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
break;}
case 356:
! #line 1925 "c-parse.y"
{ yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
break;}
}
/* the action file gets copied in in place of this dollarsign */
! #line 327 "bison.simple"
yyvsp -= yylen;
yyssp -= yylen;
--- 3277,3300 ----
yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ;
break;}
case 353:
! #line 1923 "c-parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
break;}
case 354:
! #line 1925 "c-parse.y"
{ yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
break;}
case 355:
! #line 1931 "c-parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
break;}
case 356:
! #line 1933 "c-parse.y"
{ yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
break;}
}
/* the action file gets copied in in place of this dollarsign */
! #line 465 "/gnu/lib/bison.simple"
yyvsp -= yylen;
yyssp -= yylen;
***************
*** 3021,3029 ****
/* If not already recovering from an error, report this error. */
{
++yynerrs;
! yyerror("parse error");
}
if (yyerrstatus == 3)
{
/* if just tried and failed to reuse lookahead token after an error, discard it. */
--- 3353,3406 ----
/* If not already recovering from an error, report this error. */
{
++yynerrs;
!
! #ifdef YYERROR_VERBOSE
! yyn = yypact[yystate];
!
! if (yyn > YYFLAG && yyn < YYLAST)
! {
! int size = 0;
! char *msg;
! int x, count;
!
! count = 0;
! /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
! for (x = (yyn < 0 ? -yyn : 0);
! x < (sizeof(yytname) / sizeof(char *)); x++)
! if (yycheck[x + yyn] == x)
! size += strlen(yytname[x]) + 15, count++;
! msg = (char *) malloc(size + 15);
! if (msg != 0)
! {
! strcpy(msg, "parse error");
!
! if (count < 5)
! {
! count = 0;
! for (x = (yyn < 0 ? -yyn : 0);
! x < (sizeof(yytname) / sizeof(char *)); x++)
! if (yycheck[x + yyn] == x)
! {
! strcat(msg, count == 0 ? ", expecting `" : " or `");
! strcat(msg, yytname[x]);
! strcat(msg, "'");
! count++;
! }
! }
! yyerror(msg);
! free(msg);
! }
! else
! yyerror ("parse error; also virtual memory exceeded");
! }
! else
! #endif /* YYERROR_VERBOSE */
! yyerror("parse error");
}
+ goto yyerrlab1;
+ yyerrlab1: /* here on error raised explicitly by an action */
+
if (yyerrstatus == 3)
{
/* if just tried and failed to reuse lookahead token after an error, discard it. */
***************
*** 3113,3117 ****
yystate = yyn;
goto yynewstate;
}
! #line 1928 "c-parse.y"
--- 3490,3494 ----
yystate = yyn;
goto yynewstate;
}
! #line 1936 "c-parse.y"
diff -rc --new-file /src/baseline/gcc-2.5.8/c-parse.y gcc-2.5.8/c-parse.y
*** /src/baseline/gcc-2.5.8/c-parse.y Tue Nov 23 19:43:28 1993
--- gcc-2.5.8/c-parse.y Tue Feb 22 11:22:26 1994
***************
*** 898,905 ****
attrib
: IDENTIFIER
! { if (strcmp (IDENTIFIER_POINTER ($1), "packed")
&& strcmp (IDENTIFIER_POINTER ($1), "noreturn"))
warning ("`%s' attribute directive ignored",
IDENTIFIER_POINTER ($1));
$$ = $1; }
--- 898,913 ----
attrib
: IDENTIFIER
! {
! #ifdef HANDLE_ATTRIBUTE0
! /* give the function a chance to validate further attributes */
! if (HANDLE_ATTRIBUTE0 (IDENTIFIER_POINTER ($1)) ||
! (strcmp (IDENTIFIER_POINTER ($1), "packed")
! && strcmp (IDENTIFIER_POINTER ($1), "noreturn")))
! #else
! if (strcmp (IDENTIFIER_POINTER ($1), "packed")
&& strcmp (IDENTIFIER_POINTER ($1), "noreturn"))
+ #endif
warning ("`%s' attribute directive ignored",
IDENTIFIER_POINTER ($1));
$$ = $1; }
diff -rc --new-file /src/baseline/gcc-2.5.8/calls.c gcc-2.5.8/calls.c
*** /src/baseline/gcc-2.5.8/calls.c Thu Dec 2 08:21:43 1993
--- gcc-2.5.8/calls.c Tue Feb 22 11:22:32 1994
***************
*** 2107,2112 ****
--- 2107,2120 ----
argvec = (struct arg *) alloca (nargs * sizeof (struct arg));
+ #if defined (__amigados__)
+ /* how would you do this RIGHT ?? fake a DECL node? dunno... */
+ #ifdef ENCODE_SECTION_INFO
+ /* mark it as a function (to be in the text section that is) */
+ SYMBOL_REF_FLAG (fun) = 1;
+ #endif
+ #endif
+
INIT_CUMULATIVE_ARGS (args_so_far, NULL_TREE, fun);
args_size.constant = 0;
diff -rc --new-file /src/baseline/gcc-2.5.8/cccp.c gcc-2.5.8/cccp.c
*** /src/baseline/gcc-2.5.8/cccp.c Sat Dec 11 09:49:38 1993
--- gcc-2.5.8/cccp.c Tue Feb 22 11:27:02 1994
***************
*** 39,50 ****
#include "config.h"
#endif /* not EMACS */
#ifndef STANDARD_INCLUDE_DIR
! #define STANDARD_INCLUDE_DIR "/usr/include"
#endif
#ifndef LOCAL_INCLUDE_DIR
! #define LOCAL_INCLUDE_DIR "/usr/local/include"
#endif
#if 0 /* We can't get ptrdiff_t, so I arranged not to need PTR_INT_TYPE. */
--- 39,66 ----
#include "config.h"
#endif /* not EMACS */
+ #ifdef amigados
+ /* Since cpp uses alloca to store all its read files, this is quite deadly
+ on a system with non-automatic stackgrowth like amigados, so we better
+ turn it off now. Normally alloca is #defined to __builtin_alloca, so
+ undefining it causes an external alloca to be used.
+
+ Note that it's not wise to generally inhibit __builtin_alloca, since
+ using the generic emulator entitels a serious (!) speed penalty, and
+ it's bad enough that we have to live with it in cccp, don't make cc1
+ unbearably slow as well... */
+
+ #undef alloca
+
+ static int amigados_abs_filename ();
+ #endif
+
#ifndef STANDARD_INCLUDE_DIR
! #define STANDARD_INCLUDE_DIR "/gnu/include"
#endif
#ifndef LOCAL_INCLUDE_DIR
! #define LOCAL_INCLUDE_DIR "/local/include"
#endif
#if 0 /* We can't get ptrdiff_t, so I arranged not to need PTR_INT_TYPE. */
***************
*** 1874,1884 ****
--- 1890,1904 ----
char *p = in_fname;
char *p1 = p;
/* Discard all directory prefixes from P. */
+ #ifdef FILE_NAME_NONDIRECTORY
+ p = FILE_NAME_NONDIRECTORY (p);
+ #else
while (*p1) {
if (*p1 == '/')
p = p1 + 1;
p1++;
}
+ #endif
/* Output P, but remove known suffixes. */
len = strlen (p);
if (p[len - 2] == '.' && p[len - 1] == 'c')
***************
*** 3636,3642 ****
if (!no_output && already_output == 0
&& (kt->pass_thru
! || (kt->type == T_DEFINE
&& (dump_macros == dump_names
|| dump_macros == dump_definitions)))) {
int len;
--- 3656,3662 ----
if (!no_output && already_output == 0
&& (kt->pass_thru
! || ((kt->type == T_DEFINE || kt->type == T_UNDEF)
&& (dump_macros == dump_names
|| dump_macros == dump_definitions)))) {
int len;
***************
*** 3982,3987 ****
--- 4002,4019 ----
search_start = dsp;
#ifndef VMS
ep = rindex (nam, '/');
+
+ #ifdef amigados
+ /* amigados uses unix-style directory-filename separation, but
+ has VMS-style logicals as well */
+
+ if (ep == NULL)
+ {
+ ep = rindex (nam, ':');
+ /* a ':' is part of the directory name, a '/' isn't ! */
+ if (ep != NULL) ep++;
+ }
+ #endif /* amigados */
#else /* VMS */
ep = rindex (nam, ']');
if (ep == NULL) ep = rindex (nam, '>');
***************
*** 4061,4067 ****
--- 4093,4103 ----
/* If specified file name is absolute, just open it. */
+ #ifndef amigados
if (*fbeg == '/') {
+ #else
+ if (amigados_abs_filename (fbeg, flen)) {
+ #endif
strncpy (fname, fbeg, flen);
fname[flen] = 0;
if (redundant_include_p (fname))
***************
*** 4084,4089 ****
--- 4120,4129 ----
if (searchptr->fname[0] == 0)
continue;
strcpy (fname, searchptr->fname);
+
+ #ifdef amigados
+ if (fname[strlen (fname) - 1] != ':')
+ #endif
strcat (fname, "/");
fname[strlen (fname) + flen] = 0;
} else {
***************
*** 9017,9025 ****
perror_with_name (name)
char *name;
{
fprintf (stderr, "%s: ", progname);
! if (errno < sys_nerr)
! fprintf (stderr, "%s: %s\n", name, sys_errlist[errno]);
else
fprintf (stderr, "%s: undocumented I/O error\n", name);
errors++;
--- 9057,9067 ----
perror_with_name (name)
char *name;
{
+ int error = errno;
+
fprintf (stderr, "%s: ", progname);
! if (error < sys_nerr)
! fprintf (stderr, "%s: %s\n", name, sys_errlist[error]);
else
fprintf (stderr, "%s: undocumented I/O error\n", name);
errors++;
***************
*** 9416,9418 ****
--- 9458,9484 ----
return dst;
}
#endif /* VMS */
+
+
+ #ifdef amigados
+
+ /* This function returns whether the LEN characters long filename FNAME
+ is an absolute path specification. */
+
+ static int
+ amigados_abs_filename (fname, len)
+ char *fname;
+ int len;
+ {
+ /* we're using ixemul.library, which treats `/foo' as `foo:', so
+ fname[0] is to be considered absolute as well */
+ if (fname[0] == '/')
+ return 1;
+
+ /* else do an index() on fname, but one which is limited to len characters */
+ while (*fname && *fname != ':' && len)
+ fname++, len--;
+
+ return *fname == ':';
+ }
+ #endif /* amigados */
diff -rc --new-file /src/baseline/gcc-2.5.8/config/m68k/amigados.c gcc-2.5.8/config/m68k/amigados.c
*** /src/baseline/gcc-2.5.8/config/m68k/amigados.c Thu Jan 1 00:00:00 1970
--- gcc-2.5.8/config/m68k/amigados.c Tue Feb 22 11:22:43 1994
***************
*** 0 ****
--- 1,158 ----
+ /* Definitions of target machine for GNU compiler. amiga 68000/68020 version.
+ Copyright (C) 1992 Free Software Foundation, Inc.
+ Contributed by Markus M. Wild (wild@amiga.physik.unizh.ch).
+
+ This file is part of GNU CC.
+
+ GNU CC is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU CC is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU CC; see the file COPYING. If not, write to
+ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
+
+ #include "m68k/m68k.c"
+
+ /* Does operand (which is a symbolic_operand) live in text space? If
+ so SYMBOL_REF_FLAG, which is set by ENCODE_SECTION_INFO, will be true.
+
+ This function is used in base relative code generation. */
+
+ int
+ read_only_operand (operand)
+ rtx operand;
+ {
+ if (GET_CODE (operand) == CONST)
+ operand = XEXP (XEXP (operand, 0), 0);
+ if (GET_CODE (operand) == SYMBOL_REF)
+ return SYMBOL_REF_FLAG (operand) || CONSTANT_POOL_ADDRESS_P (operand);
+ return 1;
+ }
+
+
+ /* the rest of the file is to implement AmigaDOS specific keywords some day.
+ The approach used so far used __attribute__ for this, but this required
+ changes to c-parse.y as well as if we'd use the common keywords used
+ on commercial AmigaDOS C-compilers as well. So in the future I'll probably
+ switch to __saveds and __interrupt keywords as well.
+
+ The rest of this file is currently ignored, because it's no longer
+ working with the current gcc version. */
+
+ #if not_yet_working
+
+ #include "tree.h"
+
+ struct attribute {
+ tree ident;
+ int saveds : 1,
+ interrupt : 1;
+ };
+
+
+ static struct attribute *a_tab = 0;
+ static int a_index, a_size;
+
+ void
+ add_attr_entry (attr)
+ struct attribute *attr;
+ {
+ if (! a_tab)
+ {
+ a_size = 10;
+ a_index = 0;
+ a_tab = (struct attribute *) xmalloc (a_size * sizeof (struct attribute));
+ }
+
+ if (a_index == a_size)
+ {
+ a_size <<= 1;
+ a_tab = (struct attribute *) xrealloc (a_tab, a_size * sizeof (struct attribute));
+ }
+
+ a_tab[a_index++] = *attr;
+ }
+
+
+ void
+ attr_do_saveds (function_ident)
+ tree function_ident;
+ {
+ struct attribute attr, *a;
+ int i;
+
+ for (i = 0, a = a_tab; i < a_index; i++, a++)
+ if (a->ident == function_ident)
+ {
+ a->saveds = 1;
+ return;
+ }
+
+ /* create a new entry for this function */
+ attr.ident = function_ident;
+ attr.saveds = 1;
+ attr.interrupt = 0;
+ add_attr_entry (&attr);
+ }
+
+ void
+ attr_do_interrupt (function_ident)
+ tree function_ident;
+ {
+ struct attribute attr, *a;
+ int i;
+
+ for (i = 0, a = a_tab; i < a_index; i++, a++)
+ if (a->ident == function_ident)
+ {
+ /* __interrupt implies __saveds */
+ a->saveds = 1;
+ a->interrupt = 1;
+ return;
+ }
+
+ /* create a new entry for this function */
+ attr.ident = function_ident;
+ attr.saveds = 1;
+ attr.interrupt = 1;
+ add_attr_entry (&attr);
+ }
+
+ int
+ attr_does_saveds (function_name)
+ char *function_name;
+ {
+ tree ident = get_identifier (function_name);
+ struct attribute *attr;
+ int i;
+
+ for (i = 0, attr = a_tab; i < a_index; i++, attr++)
+ if (attr->ident == ident)
+ return attr->saveds;
+
+ return 0;
+ }
+
+ int
+ attr_does_interrupt (function_name)
+ char *function_name;
+ {
+ tree ident = get_identifier (function_name);
+ struct attribute *attr;
+ int i;
+
+ for (i = 0, attr = a_tab; i < a_index; i++, attr++)
+ if (attr->ident == ident)
+ return attr->interrupt;
+
+ return 0;
+ }
+
+ #endif
diff -rc --new-file /src/baseline/gcc-2.5.8/config/m68k/amigados.h gcc-2.5.8/config/m68k/amigados.h
*** /src/baseline/gcc-2.5.8/config/m68k/amigados.h Thu Jan 1 00:00:00 1970
--- gcc-2.5.8/config/m68k/amigados.h Sat Jul 9 08:48:04 1994
***************
*** 0 ****
--- 1,408 ----
+ /* Definitions of target machine for GNU compiler. amiga 68000/68020 version.
+ Copyright (C) 1992 Free Software Foundation, Inc.
+ Contributed by Markus M. Wild (wild@amiga.physik.unizh.ch).
+
+ This file is part of GNU CC.
+
+ GNU CC is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU CC is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU CC; see the file COPYING. If not, write to
+ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
+
+ #include "m68k/m68k.h"
+
+ /* See m68k.h for bits in TARGET_DEFAULT.
+ 0 means 68000, no hardware fpu (68881/68882/68040).
+ 7 means 68020 (or higher) with hardware fpu. */
+
+ #ifndef TARGET_DEFAULT
+ #define TARGET_DEFAULT 0
+ #endif
+
+ /* Define __HAVE_68881__ in preprocessor according to the -m flags.
+ This will control the use of inline 68881 insns in certain macros.
+ Also inform the program which CPU this is for. */
+
+ #if TARGET_DEFAULT & 02
+
+ /* -m68881 is the default */
+ #define CPP_SPEC \
+ "%{!msoft-float:-D__HAVE_68881__ }\
+ %{!ansi:%{m68000:-Dmc68010}%{mc68000:-Dmc68010}%{!mc68000:%{!m68000:-Dmc68020}}}"
+
+ #else
+
+ /* -msoft-float is the default, assume -mc68000 as well */
+ #define CPP_SPEC \
+ "%{m68881:-D__HAVE_68881__ }\
+ %{!ansi:%{m68020:-Dmc68020}%{mc68020:-Dmc68020}%{!mc68020:%{!m68020:-Dmc68010}}}"
+
+ /* Don't try using XFmode since we don't have appropriate runtime software
+ support. */
+ #undef LONG_DOUBLE_TYPE_SIZE
+ #define LONG_DOUBLE_TYPE_SIZE 64
+
+ #endif
+
+ /* -m68000 requires special flags to the assembler. */
+
+ #if TARGET_DEFAULT & 01
+
+ #define ASM_SPEC \
+ "%{m68000:-mc68010}%{mc68000:-mc68010}%{!mc68000:%{!m68000:-mc68020}} %{msmall-code:-l} "
+
+ #else
+
+ #define ASM_SPEC \
+ "%{m68020:-mc68020}%{mc68020:-mc68020}%{!mc68020:%{!m68020:-mc68010}} %{msmall-code:-l} "
+
+ #endif
+
+ /* amiga/amigados are the new "standard" defines for the Amiga, MCH_AMIGA
+ * was used before and is included for compatibility reasons */
+
+ #define CPP_PREDEFINES "-Dmc68000 -Damiga -Damigados -DMCH_AMIGA -DAMIGA"
+
+ /* Choose the right startup file, depending on whether we use base relative
+ code, base relative code with automatic relocation (-resident), or plain
+ crt0.o.
+
+ Profiling is currently only available for plain startup.
+ mcrt0.o does not (yet) exist. */
+
+ #define STARTFILE_SPEC \
+ "%{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}}}}"
+
+
+ /* Automatically search libamiga.a for AmigaDOS specific functions. Note
+ that we first search the standard C library to resolve as much as
+ possible from there, since it has names that are duplicated in libamiga.a
+ which we *don't* want from there. Then search the standard C library
+ again to resolve any references that libamiga.a might have generated.
+ This may only be a temporary solution since it might be better to simply
+ remove the things from libamiga.a that should be pulled in from libc.a
+ instead, which would eliminate the first reference to libc.a. */
+
+ #define LIB_SPEC "%{!p:%{!pg:-lc -lamiga -lc}}%{p:-lc_p -lamiga -lc_p}%{pg:-lc_p -lamiga -lc_p}"
+
+ /* if debugging, tell the linker to output amiga-hunk symbols *and* a BSD
+ compatible debug hunk (which will probably change in the future, it's not
+ tremendously useful in its current state). */
+
+ #define LINK_SPEC "%{g:-amiga-debug-hunk} %{fbaserel:-databss-together} %{resident:-databss-together -datadata-reloc -flavor libb} "
+
+ #define CC1_SPEC "%{resident:-fbaserel} "
+
+ #define CC1PLUS_SPEC "%{resident:-fbaserel} "
+
+ /* Omit frame pointer at high optimization levels. (This doesn't hurt, since
+ GDB doesn't work under AmigaDOS at the moment anyway..) */
+
+ #define OPTIMIZATION_OPTIONS(OPTIMIZE) \
+ { \
+ if (OPTIMIZE >= 2) \
+ flag_omit_frame_pointer = 1; \
+ }
+
+ /* provide a dummy entry for the small-code switch. This is currently only
+ needed by the assembler (explanations: m68k.h), but will be used by cc1
+ to output 16bit pc-relative code later. */
+
+ #undef TARGET_SWITCHES
+ #define TARGET_SWITCHES \
+ { { "68020", 5}, \
+ { "c68020", 5}, \
+ { "68881", 2}, \
+ { "bitfield", 4}, \
+ { "68000", -5}, \
+ { "c68000", -5}, \
+ { "soft-float", -0102}, \
+ { "nobitfield", -4}, \
+ { "rtd", 8}, \
+ { "nortd", -8}, \
+ { "short", 040}, \
+ { "noshort", -040}, \
+ { "fpa", 0100}, \
+ { "nofpa", -0100}, \
+ { "sky", 0200}, \
+ { "nosky", -0200}, \
+ { "68040", 0407}, \
+ { "68030", -01400}, \
+ { "68030", 7}, \
+ { "68040-only", 01000}, \
+ { "small-code", 0 }, \
+ { "", TARGET_DEFAULT}}
+
+ /* Every structure or union's size must be a multiple of 2 bytes. */
+
+ #define STRUCTURE_SIZE_BOUNDARY 16
+
+ /* This is (almost;-)) BSD, so it wants DBX format. */
+
+ #define DBX_DEBUGGING_INFO
+
+ /* Allow folding division by zero. */
+ #define REAL_INFINITY
+
+ #if 0 /* This apparently is no longer necessary? */
+
+ /* This is how to output an assembler line defining a `double' constant. */
+
+ #undef ASM_OUTPUT_DOUBLE
+ #define ASM_OUTPUT_DOUBLE(FILE,VALUE) \
+ { \
+ if (REAL_VALUE_ISINF (VALUE)) \
+ fprintf (FILE, "\t.double 0r%s99e999\n", (VALUE) > 0 ? "" : "-"); \
+ else if (isnan (VALUE)) \
+ { \
+ union { double d; long l[2];} t; \
+ t.d = (VALUE); \
+ fprintf (FILE, "\t.long 0x%lx\n\t.long 0x%lx\n", t.l[0], t.l[1]); \
+ } \
+ else \
+ fprintf (FILE, "\t.double 0r%.17g\n", VALUE); \
+ }
+
+ /* This is how to output an assembler line defining a `float' constant. */
+
+ #undef ASM_OUTPUT_FLOAT
+ #define ASM_OUTPUT_FLOAT(FILE,VALUE) \
+ { \
+ if (REAL_VALUE_ISINF (VALUE)) \
+ fprintf (FILE, "\t.single 0r%s99e999\n", (VALUE) > 0 ? "" : "-"); \
+ else if (isnan (VALUE)) \
+ { \
+ union { float f; long l;} t; \
+ t.f = (VALUE); \
+ fprintf (FILE, "\t.long 0x%lx\n", t.l); \
+ } \
+ else \
+ fprintf (FILE, "\t.single 0r%.9g\n", VALUE); \
+ }
+
+ /* This is how to output an assembler lines defining floating operands.
+ There's no way to output a NaN's fraction, so we lose it. */
+
+ #undef ASM_OUTPUT_FLOAT_OPERAND
+ #define ASM_OUTPUT_FLOAT_OPERAND(CODE,FILE,VALUE) \
+ do { \
+ if (CODE == 'f') \
+ { \
+ (REAL_VALUE_ISINF ((VALUE)) \
+ ? asm_fprintf (FILE, "%I0r%s99e999", ((VALUE) > 0 ? "" : "-")) \
+ : (VALUE) == -0.0 \
+ ? asm_fprintf (FILE, "%I0r-0.0") \
+ : asm_fprintf (FILE, "%I0r%.9g", (VALUE))) \
+ } else { \
+ long l; \
+ REAL_VALUE_TO_TARGET_SINGLE (VALUE, l); \
+ if (sizeof (int) == sizeof (long)) \
+ asm_fprintf ((FILE), "%I0x%x", l); \
+ else \
+ asm_fprintf ((FILE), "%I0x%lx", l); \
+ } \
+ } while (0)
+
+ #undef ASM_OUTPUT_DOUBLE_OPERAND
+ #define ASM_OUTPUT_DOUBLE_OPERAND(FILE,VALUE) \
+ (REAL_VALUE_ISINF ((VALUE)) \
+ ? asm_fprintf (FILE, "%I0r%s99e999", ((VALUE) > 0 ? "" : "-")) \
+ : (VALUE) == -0.0 \
+ ? asm_fprintf (FILE, "%I0r-0.0") \
+ : asm_fprintf (FILE, "%I0r%.17g", (VALUE)))
+
+ #endif /* 0 */
+
+ /* use A5 as framepointer instead of A6, this makes A6 available as a
+ general purpose register, and can thus be used without problems in
+ direct library calls. */
+
+ #undef FRAME_POINTER_REGNUM
+ #define FRAME_POINTER_REGNUM 13
+ #undef ARG_POINTER_REGNUM
+ #define ARG_POINTER_REGNUM 13
+
+ /* we use A4 for this, not A5, which is the framepointer */
+ #undef PIC_OFFSET_TABLE_REGNUM
+ #define PIC_OFFSET_TABLE_REGNUM 12
+
+ /* setup a default shell return value for those (gazillion..) programs that
+ (inspite of ANSI-C) declare main() to be void (or even VOID...) and thus
+ cause the shell to randomly caugh upon executing such programs (contrary
+ to Unix, AmigaDOS scripts are terminated with an error if a program returns
+ with an error code above the `error' or even `failure' level
+ (which is configurable with the FAILAT command) */
+
+ #define DEFAULT_MAIN_RETURN c_expand_return (integer_zero_node)
+
+ /* we do have an ansi-compliant c-library ;-) */
+ #define HAVE_VPRINTF
+ #define HAVE_VFPRINTF
+ #define HAVE_PUTENV
+ #define HAVE_STRERROR
+ #define HAVE_ATEXIT
+
+ /* given that symbolic_operand(X), return TRUE if no special
+ base relative relocation is necessary */
+
+ #define LEGITIMATE_BASEREL_OPERAND_P(X) \
+ (flag_pic >= 3 && read_only_operand (X))
+
+ #undef LEGITIMATE_PIC_OPERAND_P
+ #define LEGITIMATE_PIC_OPERAND_P(X) \
+ (! symbolic_operand (X, VOIDmode) || LEGITIMATE_BASEREL_OPERAND_P (X))
+
+
+ /* Define this macro if references to a symbol must be treated
+ differently depending on something about the variable or
+ function named by the symbol (such as what section it is in).
+
+ The macro definition, if any, is executed immediately after the
+ rtl for DECL or other node is created.
+ The value of the rtl will be a `mem' whose address is a
+ `symbol_ref'.
+
+ The usual thing for this macro to do is to a flag in the
+ `symbol_ref' (such as `SYMBOL_REF_FLAG') or to store a modified
+ name string in the `symbol_ref' (if one bit is not enough
+ information).
+
+ On the Amiga we use this to indicate if a symbol is in text or
+ data space. */
+
+ #define ENCODE_SECTION_INFO(DECL)\
+ do \
+ { \
+ if (TREE_CODE (DECL) == FUNCTION_DECL) \
+ SYMBOL_REF_FLAG (XEXP (DECL_RTL (DECL), 0)) = 1; \
+ else \
+ { \
+ rtx rtl = (TREE_CODE_CLASS (TREE_CODE (DECL)) != 'd' \
+ ? TREE_CST_RTL (DECL) : DECL_RTL (DECL)); \
+ if (RTX_UNCHANGING_P (rtl) && !MEM_VOLATILE_P (rtl)) \
+ SYMBOL_REF_FLAG (XEXP (rtl, 0)) = 1; \
+ } \
+ } \
+ while (0)
+
+ #undef SELECT_RTX_SECTION
+ #define SELECT_RTX_SECTION(MODE, X) readonly_data_section ();
+
+ /* according to varasm.c, RELOC referrs *only* to whether constants (!)
+ are addressed by address. This doesn't matter in baserelative code,
+ so we allow (inspite of flag_pic) readonly_data_section() in that
+ case */
+
+ #undef SELECT_SECTION
+ #define SELECT_SECTION(DECL, RELOC) \
+ { \
+ if (TREE_CODE (DECL) == STRING_CST) \
+ { \
+ if (! flag_writable_strings) \
+ readonly_data_section (); \
+ else \
+ data_section (); \
+ } \
+ else if (TREE_CODE (DECL) == VAR_DECL) \
+ { \
+ if ((flag_pic && flag_pic < 3 && RELOC) \
+ || !TREE_READONLY (DECL) || TREE_SIDE_EFFECTS (DECL)) \
+ data_section (); \
+ else \
+ readonly_data_section (); \
+ } \
+ else \
+ readonly_data_section (); \
+ }
+
+
+
+ #if not_yet_working
+
+ /* starting support for amiga specific keywords
+ * --------------------------------------------
+ */
+
+ /* validate attributes that don't take a parameter. Currently we support
+ * __attribute__ (saveds) and __attribute__ (interrupt)
+ */
+ #define HANDLE_ATTRIBUTE0(attr) \
+ (strcmp(attr, "saveds") != 0 && strcmp(attr, "interrupt") != 0)
+
+ /* (c-common.c)
+ * install additional attributes
+ */
+ #define HANDLE_EXTRA_ATTRIBUTES(a) \
+ if (TREE_VALUE (a) != 0 \
+ && TREE_CODE (TREE_VALUE (a)) == IDENTIFIER_NODE \
+ && TREE_VALUE (a) == get_identifier ("saveds")) \
+ { \
+ if (TREE_CODE (decl) != FUNCTION_DECL) \
+ { \
+ warning_with_decl (decl, \
+ "saveds attribute specified for non-function `%s'"); \
+ return; \
+ } \
+ \
+ attr_do_saveds (DECL_NAME (decl)); \
+ } \
+ else if (TREE_VALUE (a) != 0 \
+ && TREE_CODE (TREE_VALUE (a)) == IDENTIFIER_NODE \
+ && TREE_VALUE (a) == get_identifier ("interrupt")) \
+ { \
+ if (TREE_CODE (decl) != FUNCTION_DECL) \
+ { \
+ warning_with_decl (decl, \
+ "saveds attribute specified for non-function `%s'"); \
+ return; \
+ } \
+ \
+ attr_do_interrupt (DECL_NAME (decl)); \
+ } \
+
+
+ #define PROLOGUE_EXTRA_SAVE(mask) \
+ { extern char *current_function_name; \
+ /* saveds makes the function preserve d1/a0/a1 as well */ \
+ if (attr_does_saveds (current_function_name)) \
+ mask |= 0x40c0; } \
+
+
+ #define EPILOGUE_EXTRA_RESTORE(mask, nregs) \
+ { extern char *current_function_name; \
+ /* restore those extra registers */ \
+ if (attr_does_saveds (current_function_name)) \
+ { \
+ mask |= 0x0302; \
+ nregs += 3; \
+ } } \
+
+
+ #define EPILOGUE_EXTRA_BARRIER_KLUDGE(stream) \
+ { extern char *current_function_name; \
+ /* PLEASE Help! how is this done cleaner?? */ \
+ if (attr_does_saveds (current_function_name)) \
+ { \
+ fprintf (stderr, \
+ "warning: couldn't cleanup `saveds'-stack in `%s'.\n"); \
+ fprintf (stderr, \
+ " this is only ok, if the function never returns!\n"); \
+ } } \
+
+
+ #define EPILOGUE_EXTRA_TEST(stream) \
+ { extern char *current_function_name; \
+ /* with the interrupt-attribute, we have to set the cc before rts */ \
+ if (attr_does_interrupt (current_function_name)) \
+ asm_fprintf (stream, "\ttstl %s\n", reg_names[0]); } \
+
+ #endif
diff -rc --new-file /src/baseline/gcc-2.5.8/config/m68k/m68k.c gcc-2.5.8/config/m68k/m68k.c
*** /src/baseline/gcc-2.5.8/config/m68k/m68k.c Wed Nov 3 17:17:46 1993
--- gcc-2.5.8/config/m68k/m68k.c Tue Feb 22 11:22:46 1994
***************
*** 61,67 ****
void
finalize_pic ()
{
! if (flag_pic && current_function_uses_pic_offset_table)
emit_insn (gen_rtx (USE, VOIDmode, pic_offset_table_rtx));
}
--- 61,67 ----
void
finalize_pic ()
{
! if (flag_pic && (flag_pic < 3) && current_function_uses_pic_offset_table)
emit_insn (gen_rtx (USE, VOIDmode, pic_offset_table_rtx));
}
***************
*** 181,186 ****
--- 181,189 ----
mask &= ~ (1 << (15 - FRAME_POINTER_REGNUM));
num_saved_regs--;
}
+ #ifdef PROLOGUE_EXTRA_SAVE
+ PROLOGUE_EXTRA_SAVE (mask);
+ #endif
#if NEED_PROBE
fprintf (stream, "\ttstl sp@(%d)\n", NEED_PROBE - num_saved_regs * 4);
***************
*** 214,220 ****
asm_fprintf (stream, "\tmoveml %0I0x%x,%Rsp@-\n", mask);
#endif
}
! if (flag_pic && current_function_uses_pic_offset_table)
{
#ifdef MOTOROLA
asm_fprintf (stream, "\t%Olea (%Rpc, %U_GLOBAL_OFFSET_TABLE_@GOTPC), %s\n",
--- 217,223 ----
asm_fprintf (stream, "\tmoveml %0I0x%x,%Rsp@-\n", mask);
#endif
}
! if (flag_pic && (flag_pic < 3) && current_function_uses_pic_offset_table)
{
#ifdef MOTOROLA
asm_fprintf (stream, "\t%Olea (%Rpc, %U_GLOBAL_OFFSET_TABLE_@GOTPC), %s\n",
***************
*** 279,284 ****
--- 282,290 ----
/* Output just a no-op so that debuggers don't get confused
about which function the pc is in at this address. */
asm_fprintf (stream, "\tnop\n");
+ #ifdef EPILOGUE_EXTRA_BARRIER_KLUDGE
+ EPILOGUE_EXTRA_BARRIER_KLUDGE(stream);
+ #endif
return;
}
***************
*** 309,314 ****
--- 315,323 ----
nregs++;
mask |= 1 << regno;
}
+ #ifdef EPILOGUE_EXTRA_RESTORE
+ EPILOGUE_EXTRA_RESTORE(mask, nregs);
+ #endif
offset = foffset + nregs * 4;
if (offset + fsize >= 0x8000
&& frame_pointer_needed
***************
*** 511,516 ****
--- 520,528 ----
#endif
}
}
+ #ifdef EPILOGUE_EXTRA_TEST
+ EPILOGUE_EXTRA_TEST(stream);
+ #endif
if (current_function_pops_args)
asm_fprintf (stream, "\trtd %0I%d\n", current_function_pops_args);
else
***************
*** 801,815 ****
/* First handle a simple SYMBOL_REF or LABEL_REF */
if (GET_CODE (orig) == SYMBOL_REF || GET_CODE (orig) == LABEL_REF)
{
if (reg == 0)
abort ();
! pic_ref = gen_rtx (MEM, Pmode,
! gen_rtx (PLUS, Pmode,
! pic_offset_table_rtx, orig));
current_function_uses_pic_offset_table = 1;
RTX_UNCHANGING_P (pic_ref) = 1;
emit_move_insn (reg, pic_ref);
return reg;
}
else if (GET_CODE (orig) == CONST)
--- 813,837 ----
/* First handle a simple SYMBOL_REF or LABEL_REF */
if (GET_CODE (orig) == SYMBOL_REF || GET_CODE (orig) == LABEL_REF)
{
+ #ifdef LEGITIMATE_BASEREL_OPERAND_P
+ if (LEGITIMATE_BASEREL_OPERAND_P (orig))
+ return orig;
+ #endif
+
if (reg == 0)
abort ();
! if (flag_pic >= 3)
! pic_ref = gen_rtx (PLUS, Pmode, pic_offset_table_rtx, orig);
! else
! pic_ref = gen_rtx (MEM, Pmode,
! gen_rtx (PLUS, Pmode,
! pic_offset_table_rtx, orig));
!
current_function_uses_pic_offset_table = 1;
RTX_UNCHANGING_P (pic_ref) = 1;
emit_move_insn (reg, pic_ref);
+
return reg;
}
else if (GET_CODE (orig) == CONST)
***************
*** 838,843 ****
--- 860,866 ----
pic_ref = gen_rtx (PLUS, Pmode, base, orig);
/* Likewise, should we set special REG_NOTEs here? */
}
+
return pic_ref;
}
***************
*** 2166,2171 ****
--- 2189,2198 ----
fprintf (file, ":w");
if ((flag_pic == 2) && (breg == pic_offset_table_rtx))
fprintf (file, ":l");
+ if ((flag_pic == 3) && (breg == pic_offset_table_rtx))
+ fprintf (file, ":W");
+ if ((flag_pic == 4) && (breg == pic_offset_table_rtx))
+ fprintf (file, ":L");
}
if (addr != 0 && ireg != 0)
{
diff -rc --new-file /src/baseline/gcc-2.5.8/config/m68k/m68k.h gcc-2.5.8/config/m68k/m68k.h
*** /src/baseline/gcc-2.5.8/config/m68k/m68k.h Fri Nov 5 04:09:54 1993
--- gcc-2.5.8/config/m68k/m68k.h Tue Feb 22 11:22:49 1994
***************
*** 353,361 ****
#ifndef SUPPORT_SUN_FPA
#define CONDITIONAL_REGISTER_USAGE \
! { \
! if (flag_pic) \
! fixed_regs[PIC_OFFSET_TABLE_REGNUM] = 1; \
}
#else /* defined SUPPORT_SUN_FPA */
--- 353,364 ----
#ifndef SUPPORT_SUN_FPA
#define CONDITIONAL_REGISTER_USAGE \
! { \
! if (flag_pic) \
! fixed_regs[PIC_OFFSET_TABLE_REGNUM] = 1; \
! /* prevent saving/restoring of the base reg */ \
! if (flag_pic == 3) \
! call_used_regs[PIC_OFFSET_TABLE_REGNUM] = 1; \
}
#else /* defined SUPPORT_SUN_FPA */
diff -rc --new-file /src/baseline/gcc-2.5.8/config/m68k/m68k.md gcc-2.5.8/config/m68k/m68k.md
*** /src/baseline/gcc-2.5.8/config/m68k/m68k.md Tue Nov 30 20:17:46 1993
--- gcc-2.5.8/config/m68k/m68k.md Tue Feb 22 11:22:53 1994
***************
*** 716,728 ****
{
if (flag_pic && symbolic_operand (operands[1], SImode))
{
! /* The source is an address which requires PIC relocation.
! Call legitimize_pic_address with the source, mode, and a relocation
! register (a new pseudo, or the final destination if reload_in_progress
! is set). Then fall through normally */
! extern rtx legitimize_pic_address();
! rtx temp = reload_in_progress ? operands[0] : gen_reg_rtx (Pmode);
! operands[1] = legitimize_pic_address (operands[1], SImode, temp);
}
}")
--- 716,733 ----
{
if (flag_pic && symbolic_operand (operands[1], SImode))
{
! #ifdef LEGITIMATE_BASEREL_OPERAND_P
! if (flag_pic < 3 || !LEGITIMATE_BASEREL_OPERAND_P (operands[1]))
! #endif
! {
! /* The source is an address which requires PIC relocation.
! Call legitimize_pic_address with the source, mode, and a relocation
! register (a new pseudo, or the final destination if reload_in_progress
! is set). Then fall through normally */
! extern rtx legitimize_pic_address();
! rtx temp = reload_in_progress ? operands[0] : gen_reg_rtx (Pmode);
! operands[1] = legitimize_pic_address (operands[1], SImode, temp);
! }
}
}")
***************
*** 1890,1897 ****
/* These insns can result from reloads to access
stack slots over 64k from the frame pointer. */
! if (GET_CODE (operands[2]) == CONST_INT
! && INTVAL (operands[2]) + 0x8000 >= (unsigned) 0x10000)
return \"move%.l %2,%0\;add%.l %1,%0\";
#ifdef SGS
if (GET_CODE (operands[2]) == REG)
--- 1895,1903 ----
/* These insns can result from reloads to access
stack slots over 64k from the frame pointer. */
! if (((GET_CODE (operands[2]) == CONST_INT
! && INTVAL (operands[2]) + 0x8000 >= (unsigned) 0x10000))
! || (flag_pic == 4 && operands[1] == pic_offset_table_rtx))
return \"move%.l %2,%0\;add%.l %1,%0\";
#ifdef SGS
if (GET_CODE (operands[2]) == REG)
***************
*** 4858,4864 ****
""
"
{
! if (flag_pic && GET_CODE (XEXP (operands[0], 0)) == SYMBOL_REF)
#ifdef MOTOROLA
SYMBOL_REF_FLAG (XEXP (operands[0], 0)) = 1;
#else
--- 4864,4870 ----
""
"
{
! if (flag_pic && flag_pic < 3 && GET_CODE (XEXP (operands[0], 0)) == SYMBOL_REF)
#ifdef MOTOROLA
SYMBOL_REF_FLAG (XEXP (operands[0], 0)) = 1;
#else
***************
*** 4873,4879 ****
(match_operand:SI 1 "general_operand" "g"))]
;; Operand 1 not really used on the m68000.
! "! flag_pic"
"*
#ifdef MOTOROLA
return \"jsr %0\";
--- 4879,4885 ----
(match_operand:SI 1 "general_operand" "g"))]
;; Operand 1 not really used on the m68000.
! "(! flag_pic || flag_pic >= 3)"
"*
#ifdef MOTOROLA
return \"jsr %0\";
***************
*** 4888,4894 ****
(match_operand:SI 1 "general_operand" "g"))]
;; Operand 1 not really used on the m68000.
! "flag_pic"
"*
#ifdef HPUX_ASM
return \"bsr %0\";
--- 4894,4900 ----
(match_operand:SI 1 "general_operand" "g"))]
;; Operand 1 not really used on the m68000.
! "(flag_pic && flag_pic < 3)"
"*
#ifdef HPUX_ASM
return \"bsr %0\";
***************
*** 4913,4919 ****
""
"
{
! if (flag_pic && GET_CODE (XEXP (operands[1], 0)) == SYMBOL_REF)
#ifdef MOTOROLA
SYMBOL_REF_FLAG (XEXP (operands[1], 0)) = 1;
#else
--- 4919,4925 ----
""
"
{
! if (flag_pic && flag_pic < 3 && GET_CODE (XEXP (operands[1], 0)) == SYMBOL_REF)
#ifdef MOTOROLA
SYMBOL_REF_FLAG (XEXP (operands[1], 0)) = 1;
#else
***************
*** 4928,4934 ****
(call (match_operand:QI 1 "memory_operand" "o")
(match_operand:SI 2 "general_operand" "g")))]
;; Operand 2 not really used on the m68000.
! "! flag_pic"
"*
#ifdef MOTOROLA
return \"jsr %1\";
--- 4934,4940 ----
(call (match_operand:QI 1 "memory_operand" "o")
(match_operand:SI 2 "general_operand" "g")))]
;; Operand 2 not really used on the m68000.
! "(! flag_pic || flag_pic >= 3)"
"*
#ifdef MOTOROLA
return \"jsr %1\";
***************
*** 4943,4949 ****
(call (match_operand:QI 1 "memory_operand" "o")
(match_operand:SI 2 "general_operand" "g")))]
;; Operand 2 not really used on the m68000.
! "flag_pic"
"*
#ifdef HPUX_ASM
return \"bsr %1\";
--- 4949,4955 ----
(call (match_operand:QI 1 "memory_operand" "o")
(match_operand:SI 2 "general_operand" "g")))]
;; Operand 2 not really used on the m68000.
! "(flag_pic && flag_pic < 3)"
"*
#ifdef HPUX_ASM
return \"bsr %1\";
diff -rc --new-file /src/baseline/gcc-2.5.8/config/m68k/t-amigados gcc-2.5.8/config/m68k/t-amigados
*** /src/baseline/gcc-2.5.8/config/m68k/t-amigados Thu Jan 1 00:00:00 1970
--- gcc-2.5.8/config/m68k/t-amigados Tue Feb 22 11:27:03 1994
***************
*** 0 ****
--- 1,186 ----
+ # Makefile fragment for amigados target.
+
+ # We generate two additional things:
+ #
+ # libb/libgcc.a
+ # A base relative version of libgcc.a which is used when compiling and
+ # linking with the '-resident' option.
+ #
+ # xgccv
+ # A forking gcc instead of one calling ssytem(). This makes it less
+ # system conformant (can't ^C it when started from make), while providing
+ # increased functionality (-pipe option).
+
+ # Use the vfork'ing version of gcc by default, so that the -pipe option can
+ # get tested. To use the regular version just do "make XGCC=gcc". Note that
+ # PIPE is defined in x-amigados, so if we are doing a native build, it will
+ # be defined. It can be overridden with "make PIPE=".
+
+ XGCC = xgccv $(PIPE)
+ GCC_FOR_TARGET = ./$(XGCC) -B./
+
+ # Build residentable versions of the gcc executables by default. Use
+ # "make RESIDENT=" to build non-residentable versions.
+ # Note: This failed during bootstrapping of 2.5.5.
+
+ #RESIDENT = -resident
+
+ # The standard additional target flags for the compiler.
+
+ T_CFLAGS = $(RESIDENT)
+
+ # Allow the user to override the default target optimizations with gcc, or if
+ # the target compiler is not gcc and doesn't understand -O<N>.
+
+ T_OPTIMISE = -O2
+
+ # Each compilation environment (Manx, Dice, GCC, SAS/C, etc) provides its
+ # own equivalent of the UNIX /usr/include tree. For gcc, the standard headers
+ # are in /gnu/include and system specific headers are in /gnu/os-include.
+ # Use these paths for fixincludes.
+
+ SYSTEM_HEADER_DIR = /gnu/include
+ OTHER_FIXINCLUDES_DIRS = /gnu/os-include
+
+ # We don't need a libgcc1, it's all in ixemul.library
+
+ LIBGCC1 = libgcc1.null
+
+ # Flags to use when compiling the normal version of libgcc.a.
+ # Don't compile with debugging, as long as there is no debugger.
+ # Explicitly leave out the -resident compilation flag and don't use T_CFLAGS.
+
+ LIBGCC2_CFLAGS = $(T_OPTIMIZE) $(INTERNAL_CFLAGS) $(X_CFLAGS) $(CFLAGS) \
+ $(CROSS_GCC_CFLAGS)
+
+ # Flags to use when compiling the base relative version of libgcc.a.
+ # Don't compile with debugging, as long as there is no debugger.
+ # Explicitly force -resident in the compilation flags and don't use T_CFLAGS.
+
+ LIBBGCC2_CFLAGS = $(T_OPTIMIZE) $(INTERNAL_CFLAGS) $(X_CFLAGS) $(CFLAGS) \
+ $(CROSS_GCC_CFLAGS) -resident
+
+ # Build the base relative library.
+ # It is later copied into /gnu/lib/gcc-lib/amigados/<version>/libb/libgcc.a, whereas
+ # libgcc.a is copied into /gnu/lib/gcc-lib/amigados/<version>/libgcc.a.
+ # It doesn't work very well to define one of the EXTRA_* macros to contain
+ # libb/libgcc.a, particularly for doing "make stageN" or "make install".
+
+ GCC_PARTS=$(GCC_PASSES) libgcc.a libb/libgcc.a $(EXTRA_PROGRAMS) $(USE_COLLECT2) $(EXTRA_PARTS)
+
+ # Add install_libbgcc to normal define of INSTALL_LIBGCC. Let install-gccv
+ # hitch a ride on here as well.
+
+ INSTALL_LIBGCC = install-libgcc install-libbgcc install-gccv
+
+ # This includes the knowledge that target amigados doesn't need libgcc1.a
+
+ libb/libgcc.a: libgcc1.null libgcc2.c libgcc2.ready $(CONFIG_H) \
+ $(LIB2FUNCS_EXTRA) machmode.h longlong.h gbl-ctors.h config.status
+ # Actually build it in tmplibbgcc.a, then rename at end,
+ # so that libb/libgcc.a itself remains nonexistent if compilation is aborted.
+ -rm -f tmplibbgcc.a
+ # -e causes any failing command to make this rule fail.
+ # -e doesn't work in certain shells, so we test $$? as well.
+ set -e; \
+ for name in $(LIB2FUNCS); \
+ do \
+ echo $${name}; \
+ $(GCC_FOR_TARGET) $(LIBBGCC2_CFLAGS) $(INCLUDES) -c -DL$${name} \
+ $(srcdir)/libgcc2.c -o $${name}.o; \
+ if [ $$? -eq 0 ] ; then true; else exit 1; fi; \
+ $(AR) $(AR_FLAGS) tmplibbgcc.a $${name}.o; \
+ rm -f $${name}.o; \
+ done
+ # Some shells crash when a loop has no items.
+ # So make sure there is always at least one--`..'.
+ # Then ignore it.
+ # We don't use -e here because there are if statements
+ # that should not make the command give up when the if condition is false.
+ # Instead, we test for failure after each command where it matters.
+ -for file in .. $(LIB2FUNCS_EXTRA); \
+ do \
+ if [ x$${file} != x.. ]; then \
+ name=`echo $${file} | sed -e 's/[.]c$$//' -e 's/[.]asm$$//'`; \
+ echo $${name}; \
+ if [ $${name}.asm = $${file} ]; then \
+ cp $${file} $${name}.s || exit 1; file=$${name}.s; \
+ else true; fi; \
+ $(GCC_FOR_TARGET) $(LIBBGCC2_CFLAGS) $(INCLUDES) -c $${file}; \
+ if [ $$? -eq 0 ] ; then true; else exit 1; fi; \
+ $(AR) $(AR_FLAGS) tmplibbgcc.a $${name}.o; \
+ rm -f $${name}.[so]; \
+ else true; \
+ fi; \
+ done
+ -if $(RANLIB_TEST) ; then $(RANLIB) tmplibbgcc.a; else true; fi
+ -if [ -d libb ] ; then true ; else mkdir libb ; fi
+ mv tmplibbgcc.a libb/libgcc.a
+
+
+ install-libbgcc: libb/libgcc.a install-dir
+ -if [ -d $(libsubdir)/libb ] ; then true ; else mkdir $(libsubdir)/libb ; fi
+ -if [ -f libb/libgcc.a ] ; then \
+ rm -f $(libsubdir)/libb/libgcc.a; \
+ $(INSTALL_DATA) libb/libgcc.a $(libsubdir)/libb/libgcc.a; \
+ if $(RANLIB_TEST) ; then \
+ (cd $(libsubdir)/libb; $(RANLIB) libgcc.a); else true; fi; \
+ chmod a-x $(libsubdir)/libb/libgcc.a; \
+ else true; fi
+
+
+ # The default gcc (xgcc) is built without -DAMIGADOS_FORK_GCC. This gcc (xgccv)
+ # is built with AMIGADOS_FORK_GCC defined, so that it can use '-pipe'. We
+ # don't want to define EXTRA_PASSES to xgccv because that will cause xgccv
+ # to be installed in $(libsubdir), so instead we use the default GCC_PASSES
+ # and add xgccv to it.
+
+ GCC_PASSES = xgcc xgccv cc1 cpp $(EXTRA_PASSES)
+
+ xgccv: xgccv.o version.o $(LIBDEPS)
+ $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o xgccv xgccv.o version.o $(LIBS)
+
+ xgccv.o: gcc.c $(CONFIG_H) gvarargs.h obstack.h
+ $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
+ -DSTANDARD_STARTFILE_PREFIX=\"$(libdir)/\" \
+ -DSTANDARD_EXEC_PREFIX=\"$(libdir)/gcc-lib/\" \
+ -DDEFAULT_TARGET_MACHINE=\"$(target)\" \
+ -DTOOLDIR=\"$(tooldir)/\" \
+ -DAMIGADOS_FORK_GCC \
+ -c `echo $(srcdir)/gcc.c | sed 's,^\./,,'` -o xgccv.o
+
+ install-gccv: xgccv
+ rm -f $(bindir)/gccv
+ $(INSTALL_PROGRAM) xgccv $(bindir)/gccv
+
+ # When making one of the stage<N> dirs, we need to make a libb subdir for
+ # it, and copy libbgcc.a there as libgcc.a.
+
+ EXTRA_STAGE1_TARGETS = stage1-libb
+ EXTRA_STAGE2_TARGETS = stage2-libb
+ EXTRA_STAGE3_TARGETS = stage3-libb
+ EXTRA_STAGE4_TARGETS = stage4-libb
+
+ stage1-libb:
+ -if [ -d stage1 ] ; then true ; else mkdir stage1 ; fi
+ -if [ -d stage1/libb ] ; then true ; else mkdir stage1/libb ; fi
+ -cp libb/libgcc.a stage1/libb/libgcc.a
+ -if $(RANLIB_TEST) ; then $(RANLIB) stage1/libb/libgcc.a; else true; fi
+
+ stage2-libb:
+ -if [ -d stage2 ] ; then true ; else mkdir stage2 ; fi
+ -if [ -d stage2/libb ] ; then true ; else mkdir stage2/libb ; fi
+ -cp libb/libgcc.a stage2/libb/libgcc.a
+ -if $(RANLIB_TEST) ; then $(RANLIB) stage2/libb/libgcc.a; else true; fi
+
+ stage3-libb:
+ -if [ -d stage3 ] ; then true ; else mkdir stage3 ; fi
+ -if [ -d stage3/libb ] ; then true ; else mkdir stage3/libb ; fi
+ -cp libb/libgcc.a stage3/libb/libgcc.a
+ -if $(RANLIB_TEST) ; then $(RANLIB) stage3/libb/libgcc.a; else true; fi
+
+ stage4-libb:
+ -if [ -d stage4 ] ; then true ; else mkdir stage4 ; fi
+ -if [ -d stage4/libb ] ; then true ; else mkdir stage4/libb ; fi
+ -cp libb/libgcc.a stage4/libb/libgcc.a
+ -if $(RANLIB_TEST) ; then $(RANLIB) stage4/libb/libgcc.a; else true; fi
diff -rc --new-file /src/baseline/gcc-2.5.8/config/m68k/x-amigados gcc-2.5.8/config/m68k/x-amigados
*** /src/baseline/gcc-2.5.8/config/m68k/x-amigados Thu Jan 1 00:00:00 1970
--- gcc-2.5.8/config/m68k/x-amigados Tue Feb 22 11:22:55 1994
***************
*** 0 ****
--- 1,44 ----
+ # Note: It doesn't do any good to try to define prefix or local_prefix
+ # in the host overrides because configure will just change them back.
+ # You either have to give an appropriate option to configure or live with
+ # an Amiga specific patch to configure. See the note in configure. -fnf
+
+ # Building under amigados almost certainly requires an already working gcc.
+ # Use gccv, which is a gcc compiled with AMIGADOS_FORK_GCC so "-pipe" will
+ # work and get exercised. To bootstrap with the regular gcc just do
+ # "make CC=gcc". To bootstrap without "-pipe" do "make PIPE=".
+
+ CC = gccv $(PIPE)
+
+ # Disable -pipe for now since I had problems bootstrapping gcc 2.5.5 with
+ # it. (fnf)
+ #PIPE = -pipe
+
+ # Allow the user to override the default host optimization with gcc, or if the
+ # host compiler is not gcc and doesn't understand -O<N>.
+
+ X_OPTIMIZE = -O2
+
+ # The standard additional host flags for the compiler.
+
+ X_CFLAGS = $(X_OPTIMIZE)
+
+ # Man pages get a wierd suffix...
+
+ manext = .0
+
+ # We really shouldn't specify CFLAGS from here, but there's no other way
+ # to get rid of the `-g' indoctrinated by Makefile.in. Note this becomes
+ # part of both the host compilation CFLAGS and the target compilation
+ # CFLAGS.
+
+ CFLAGS =
+
+ # Ranlib does exist, but may not be in a path where the default RANLIB_TEST
+ # expects it, so just force it to true.
+
+ RANLIB_TEST = true
+
+ # My current version of ln doesn't work, so use cp instead. -fnf
+
+ HARDLINK = cp
diff -rc --new-file /src/baseline/gcc-2.5.8/config/m68k/xm-amigados.h gcc-2.5.8/config/m68k/xm-amigados.h
*** /src/baseline/gcc-2.5.8/config/m68k/xm-amigados.h Thu Jan 1 00:00:00 1970
--- gcc-2.5.8/config/m68k/xm-amigados.h Tue Feb 22 11:27:04 1994
***************
*** 0 ****
--- 1,215 ----
+ /* Configuration for GNU C-compiler for Commodore Amiga, running AmigaDOS.
+ Copyright (C) 1992 Free Software Foundation, Inc.
+ Contributed by Markus M. Wild (wild@amiga.physik.unizh.ch).
+
+ This file is part of GNU CC.
+
+ GNU CC is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU CC is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU CC; see the file COPYING. If not, write to
+ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
+
+ /* first include the generic header, then modify some parts.. */
+
+ #include "m68k/xm-m68k.h"
+
+ /* Amiga specific headers, such as from the Native Developer Update kits,
+ go in SYSTEM_INCLUDE_DIR. STANDARD_INCLUDE_DIR is the equivalent of
+ Unix "/usr/include". All other include paths are set in Makefile. */
+
+ #define SYSTEM_INCLUDE_DIR "/gnu/os-include"
+ #define STANDARD_INCLUDE_DIR "/gnu/include"
+
+ /* Fork one piped subcommand. SEARCH_FLAG is the system call to use
+ (either execv or execvp). ARGV is the arg vector to use.
+ NOT_LAST is nonzero if this is not the last subcommand
+ (i.e. its output should be piped to the next one.) */
+
+ #ifndef AMIGADOS_FORK_GCC
+
+ /* This version uses a more or less amigados-conformant way of running a
+ program (in the context of the parent). If you want to use -pipe however,
+ you'll have to use the vfork() version afterwards. */
+
+ #define PEXECUTE(SEARCH_FLAG,PROGRAM,ARGV,NOT_LAST) \
+ ({char *_argline; \
+ int _arglinelength, _i; \
+ \
+ for (_i = 1, _arglinelength=0; ARGV[_i]; ++_i) \
+ _arglinelength += strlen(ARGV[_i]) + 1; \
+ \
+ _arglinelength += strlen(PROGRAM) + 1; \
+ \
+ if (!(_argline = (char *)alloca(_arglinelength))) \
+ pfatal_with_name ("alloca"); \
+ \
+ strcpy(_argline, PROGRAM); \
+ for (_i = 1; ARGV[_i]; ++_i) \
+ { \
+ strcat(_argline, " "); \
+ strcat(_argline, ARGV[_i]); \
+ } \
+ \
+ ssystem(_argline); }) \
+
+ #define PEXECUTE_RESULT(STATUS, COMMAND) \
+ ({ STATUS = COMMAND.pid; })
+
+ #else
+
+ /* the vfork() version. This one has the drawback, that gcc is not
+ interruptible when started from make, since ixemul.library doesn't yet
+ propagate ^C to subprocesses. */
+
+ #define PEXECUTE(SEARCH_FLAG,PROGRAM,ARGV,NOT_LAST) \
+ ({int (*_func)() = (SEARCH_FLAG ? execv : execvp); \
+ int _pid; \
+ int _pdes[2]; \
+ int _input_desc = last_pipe_input; \
+ int _output_desc = STDOUT_FILE_NO; \
+ int _retries, _sleep_interval, _result; \
+ \
+ /* If this isn't the last process, make a pipe for its output, \
+ and record it as waiting to be the input to the next process. */ \
+ \
+ if (NOT_LAST) \
+ { \
+ if (pipe (_pdes) < 0) \
+ pfatal_with_name ("pipe"); \
+ _output_desc = _pdes[WRITE_PORT]; \
+ last_pipe_input = _pdes[READ_PORT]; \
+ } \
+ else \
+ last_pipe_input = STDIN_FILE_NO; \
+ \
+ /* Fork a subprocess; wait and retry if it fails. */ \
+ _sleep_interval = 1; \
+ for (_retries = 0; _retries < 4; _retries++) \
+ { \
+ _pid = vfork (); \
+ if (_pid >= 0) \
+ break; \
+ sleep (_sleep_interval); \
+ _sleep_interval *= 2; \
+ } \
+ \
+ switch (_pid) \
+ { \
+ case -1: \
+ pfatal_with_name ("vfork"); \
+ /* NOTREACHED */ \
+ _result = 0; \
+ break; \
+ \
+ case 0: /* child */ \
+ /* Move the input and output pipes into place, if nec. */ \
+ if (_input_desc != STDIN_FILE_NO) \
+ { \
+ close (STDIN_FILE_NO); \
+ dup (_input_desc); \
+ close (_input_desc); \
+ } \
+ if (_output_desc != STDOUT_FILE_NO) \
+ { \
+ close (STDOUT_FILE_NO); \
+ dup (_output_desc); \
+ close (_output_desc); \
+ } \
+ \
+ /* Close the parent's descs that aren't wanted here. */ \
+ if (last_pipe_input != STDIN_FILE_NO) \
+ close (last_pipe_input); \
+ \
+ /* Exec the program. */ \
+ (*_func) (PROGRAM, ARGV); \
+ perror_exec (PROGRAM); \
+ exit (-1); \
+ /* NOTREACHED */ \
+ _result = 0; \
+ break; \
+ \
+ default: \
+ /* In the parent, after forking. \
+ Close the descriptors that we made for this child. */ \
+ if (_input_desc != STDIN_FILE_NO) \
+ close (_input_desc); \
+ if (_output_desc != STDOUT_FILE_NO) \
+ close (_output_desc); \
+ \
+ /* Return child's process number. */ \
+ _result = _pid; \
+ break; \
+ } \
+ _result; }) \
+
+ #define PEXECUTE_RESULT(STATUS, COMMAND) \
+ ({ wait (& STATUS); })
+
+ #endif /* AMIGADOS_FORK_GCC */
+
+ /* the following macros are stolen more or less from xm-vms.h ... */
+
+ /* This macro is used to help compare filenames in cp-lex.c.
+
+ We also need to make sure that the names are all lower case, because
+ we must be able to compare filenames to determine if a file implements
+ a class. */
+
+ #define FILE_NAME_NONDIRECTORY(C) \
+ ({ \
+ extern char *rindex(); \
+ char * pnt_ = (C), * pnt1_; \
+ pnt1_ = pnt_ - 1; \
+ while (*++pnt1_) \
+ if ((*pnt1_ >= 'A' && *pnt1_ <= 'Z')) *pnt1_ |= 0x20; \
+ pnt1_ = rindex (pnt_, '/'); \
+ pnt1_ = (pnt1_ == 0 ? rindex (pnt_, ':') : pnt1_); \
+ (pnt1_ == 0 ? pnt_ : pnt1_ + 1); \
+ })
+
+ /* Macro to generate the name of the cross reference file. The standard
+ one does not work, since it was written assuming that the conventions
+ of a unix style filesystem will work on the host system.
+
+ Contrary to VMS, I'm using the original unix filename, there's no reason
+ not to use this under AmigaDOS. */
+
+ #define XREF_FILE_NAME(BUFF, NAME) \
+ s = FILE_NAME_NONDIRECTORY (NAME); \
+ if (s == NAME) sprintf(BUFF, ".%s.gxref", NAME); \
+ else { \
+ unsigned char ch = *s; /* could be Latin1 char.. */ \
+ /* temporary: cut the filename from the directory */\
+ *s = 0; \
+ sprintf (BUFF, "%s.%c%s.gxref", NAME, ch, s+1); \
+ /* and restore the filename */ \
+ *s = ch; \
+ } \
+
+ /* Macro that is used in cp-xref.c to determine whether a file name is
+ absolute or not.
+
+ This checks for both, '/' as first character, since we're running under
+ ixemul.library which provides for this unix'ism, and for the usual
+ logical-terminator, ':', somewhere in the filename. */
+
+ #define FILE_NAME_ABSOLUTE_P(NAME) (NAME[0] == '/' || index(NAME, ':'))
+
+ /* the colon conflicts with the name space of logicals */
+
+ #define PATH_SEPARATOR ','
+
+ /* AmigaDOS handles rename(2) *much* better than any link(2)/unlink(2)
+ hacks. It's actually the inverse case as on Unix. rename(2) was always
+ there, link(2) is new with OS 2.0 */
+
+ #define HAVE_rename 1
diff -rc --new-file /src/baseline/gcc-2.5.8/configure gcc-2.5.8/configure
*** /src/baseline/gcc-2.5.8/configure Fri Nov 19 17:44:34 1993
--- gcc-2.5.8/configure Thu Apr 21 22:35:12 1994
***************
*** 4,9 ****
--- 4,13 ----
#This file is part of GNU CC.
+ # AmigaDOS Notes: Where "echo" can be invoked with a first arg that
+ # starts with '-', run the external echo instead, since the pdksh builtin
+ # version botches this case.
+
#GNU CC is free software; you can redistribute it and/or modify
#it under the terms of the GNU General Public License as published by
#the Free Software Foundation; either version 2, or (at your option)
***************
*** 45,52 ****
# Default --srcdir to the directory where the script is found,
# if a directory was specified.
! # The second sed call is to convert `.//configure' to `./configure'.
! srcdir=`echo $0 | sed 's|//|/|' | sed 's|/[^/]*$||'`
if [ x$srcdir = x$0 ]
then
srcdir=
--- 49,58 ----
# Default --srcdir to the directory where the script is found,
# if a directory was specified.
! # The first sed call works around a bug in the AmigaDOS port of sksh, where
! # $0 has a trailing slash appended to it. It is a NOP for other systems.
! # The third sed call is to convert `.//configure' to `./configure'.
! srcdir=`echo $0 | sed 's|/$||' | sed 's|//|/|' | sed 's|/[^/]*$||'`
if [ x$srcdir = x$0 ]
then
srcdir=
***************
*** 54,75 ****
host=
! # Default prefix to /usr/local.
! prefix=/usr/local
! # local_prefix specifies where to find the directory /usr/local/include
# We don't use $(prefix) for this
! # because we always want GCC to search /usr/local/include
! # even if GCC is installed somewhere other than /usr/local.
# Think THREE TIMES before specifying any other value for this!
# DO NOT make this use $prefix!
! local_prefix=/usr/local
# Default is to let the Makefile set exec_prefix from $(prefix)
exec_prefix='$(prefix)'
remove=rm
! hard_link=ln
! symbolic_link='ln -s'
copy=cp
# Record all the arguments, to write them in config.status.
--- 60,87 ----
host=
! # Note: For AmigaDOS we want this to default to /gnu unless we specify
! # otherwise to configure. Changing it in Makefile.in or config/m68k/x-amigados
! # is ineffective since configure will always change them back in the final
! # generated Makefile, so we have to go to the root of the problem, which is
! # here. -fnf
! # Default prefix to "/gnu".
! prefix=/gnu
! # local_prefix specifies where to find the directory /local/include
# We don't use $(prefix) for this
! # because we always want GCC to search /local/include
! # even if GCC is installed somewhere other than /local.
# Think THREE TIMES before specifying any other value for this!
# DO NOT make this use $prefix!
! # Note: See AmigaDOS note above for this AmigaDOS specific change. -fnf
! local_prefix=/local
# Default is to let the Makefile set exec_prefix from $(prefix)
exec_prefix='$(prefix)'
remove=rm
! hard_link=cp
! symbolic_link=cp
copy=cp
# Record all the arguments, to write them in config.status.
***************
*** 121,151 ****
next_arg=--srcdir
;;
-srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=* | --s=*)
! srcdir=`echo $arg | sed 's/-*s[a-z]*=//'`
;;
-host | --host | --hos | --ho | --h)
next_arg=--host
;;
-host=* | --host=* | --hos=* | --ho=* | --h=*)
! host=`echo $arg | sed 's/-*h[a-z]*=//'`
;;
-target | --target | --targe | --targ | --tar | --ta | --t)
next_arg=--target
;;
-target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
! target=`echo $arg | sed 's/-*t[a-z]*=//'`
;;
-build | --build | --buil | --bui | --bu | --b)
next_arg=--build
;;
-build=* | --build=* | --buil=* | --bui=* | --bu=* | --b=*)
! build=`echo $arg | sed 's/-*b[a-z]*=//'`
;;
-prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
next_arg=--prefix
;;
-prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
! prefix=`echo $arg | sed 's/-*p[a-z]*=//'`
;;
-local-prefix | --local-prefix | --local-prefi | --local-pref | --local-pre \
| --local-pr | --local-p | --local- | --local | --loc | --lo | --l)
--- 133,163 ----
next_arg=--srcdir
;;
-srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=* | --s=*)
! srcdir=`/bin/echo $arg | sed 's/-*s[a-z]*=//'`
;;
-host | --host | --hos | --ho | --h)
next_arg=--host
;;
-host=* | --host=* | --hos=* | --ho=* | --h=*)
! host=`/bin/echo $arg | sed 's/-*h[a-z]*=//'`
;;
-target | --target | --targe | --targ | --tar | --ta | --t)
next_arg=--target
;;
-target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
! target=`/bin/echo $arg | sed 's/-*t[a-z]*=//'`
;;
-build | --build | --buil | --bui | --bu | --b)
next_arg=--build
;;
-build=* | --build=* | --buil=* | --bui=* | --bu=* | --b=*)
! build=`/bin/echo $arg | sed 's/-*b[a-z]*=//'`
;;
-prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
next_arg=--prefix
;;
-prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
! prefix=`/bin/echo $arg | sed 's/-*p[a-z]*=//'`
;;
-local-prefix | --local-prefix | --local-prefi | --local-pref | --local-pre \
| --local-pr | --local-p | --local- | --local | --loc | --lo | --l)
***************
*** 154,160 ****
-local-prefix=* | --local-prefix=* | --local-prefi=* | --local-pref=* \
| --local-pre=* | --local-pr=* | --local-p=* | --local-=* | --local=* \
| --loc=* | --lo=* | --l=*)
! local_prefix=`echo $arg | sed 's/-*l[-a-z]*=//'`
;;
-exec-prefix | --exec-prefix | --exec-prefi | --exec-pref | --exec-pre \
| --exec-pr | --exec-p | --exec- | --exec | --exe | --ex | --e)
--- 166,172 ----
-local-prefix=* | --local-prefix=* | --local-prefi=* | --local-pref=* \
| --local-pre=* | --local-pr=* | --local-p=* | --local-=* | --local=* \
| --loc=* | --lo=* | --l=*)
! local_prefix=`/bin/echo $arg | sed 's/-*l[-a-z]*=//'`
;;
-exec-prefix | --exec-prefix | --exec-prefi | --exec-pref | --exec-pre \
| --exec-pr | --exec-p | --exec- | --exec | --exe | --ex | --e)
***************
*** 163,169 ****
-exec-prefix=* | --exec-prefix=* | --exec-prefi=* | --exec-pref=* \
| --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* | --exec=* \
| --exe=* | --ex=* | --e=*)
! exec_prefix=`echo $arg | sed 's/-*e[-a-z]*=//'`
;;
-with-gnu-ld | --with-gnu-ld | --with-gnu-l)
gnu_ld=yes
--- 175,181 ----
-exec-prefix=* | --exec-prefix=* | --exec-prefi=* | --exec-pref=* \
| --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* | --exec=* \
| --exe=* | --ex=* | --e=*)
! exec_prefix=`/bin/echo $arg | sed 's/-*e[-a-z]*=//'`
;;
-with-gnu-ld | --with-gnu-ld | --with-gnu-l)
gnu_ld=yes
***************
*** 297,303 ****
use_collect2=
# Set this to override the default target model.
target_cpu_default=
! # Set this to force use of install.sh.
broken_install=
# Set this to control which fixincludes program to use.
fixincludes=fixincludes
--- 309,316 ----
use_collect2=
# Set this to override the default target model.
target_cpu_default=
! # Set this to force use of install.sh (if set to 'yes')
! # Set to name of installer to use a custom installer.
broken_install=
# Set this to control which fixincludes program to use.
fixincludes=fixincludes
***************
*** 642,647 ****
--- 655,670 ----
tm_file=sparc/lite.h
use_collect2=yes
;;
+ m68k-*-amigados)
+ xm_file=m68k/xm-amigados.h
+ out_file=m68k/amigados.c
+ tm_file=m68k/amigados.h
+ tmake_file=m68k/t-amigados
+ xmake_file=m68k/x-amigados
+ fixincludes=Makefile.in # Headers are already fixed.
+ broken_install=cp
+ install_headers_dir=install-headers-cp
+ ;;
m68k-cbm-sysv4*) # Commodore variant of V.4.
tm_file=m68k/amix.h
xm_file=m68k/xm-amix.h
***************
*** 1763,1770 ****
then true
else
rm -f Makefile.xx
! abssrcdir=`cd ${srcdir}; pwd`
! sed "s|^INSTALL = .*|INSTALL = ${abssrcdir}/install.sh -c|" Makefile.tem > Makefile.xx
rm -f Makefile.tem
mv Makefile.xx Makefile.tem
fi
--- 1786,1799 ----
then true
else
rm -f Makefile.xx
! if [ x$host_broken_install = xyes ]
! then
! abssrcdir=`cd ${srcdir}; pwd`
! installer=${abssrcdir}/install.sh -c
! else
! installer=$host_broken_install
! fi
! sed "s|^INSTALL = .*|INSTALL = ${installer}|" Makefile.tem > Makefile.xx
rm -f Makefile.tem
mv Makefile.xx Makefile.tem
fi
diff -rc --new-file /src/baseline/gcc-2.5.8/cp-parse.c gcc-2.5.8/cp-parse.c
*** /src/baseline/gcc-2.5.8/cp-parse.c Sat Nov 27 07:35:17 1993
--- gcc-2.5.8/cp-parse.c Tue Feb 22 11:23:11 1994
***************
*** 2657,2663 ****
65, 66, 67, 68, 69, 70, 71, 72, 73
};
/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
! #line 3 "/usr/local/lib/bison.simple"
/* Skeleton output parser for bison,
Copyright (C) 1984, 1989, 1990 Bob Corbett and Richard Stallman
--- 2657,2663 ----
65, 66, 67, 68, 69, 70, 71, 72, 73
};
/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
! #line 3 "/usr/lib/bison.simple"
/* Skeleton output parser for bison,
Copyright (C) 1984, 1989, 1990 Bob Corbett and Richard Stallman
***************
*** 2838,2861 ****
#endif
#endif
! #line 184 "/usr/local/lib/bison.simple"
!
! /* The user can define YYPARSE_PARAM as the name of an argument to be passed
! into yyparse. The argument should have type void *.
! It should actually point to an object.
! Grammar actions can access the variable by casting it
! to the proper pointer type. */
!
! #ifdef YYPARSE_PARAM
! #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
! #else
! #define YYPARSE_PARAM
! #define YYPARSE_PARAM_DECL
! #endif
!
int
! yyparse(YYPARSE_PARAM)
! YYPARSE_PARAM_DECL
{
register int yystate;
register int yyn;
--- 2838,2846 ----
#endif
#endif
! #line 184 "/usr/lib/bison.simple"
int
! yyparse()
{
register int yystate;
register int yyn;
***************
*** 7264,7270 ****
break;}
}
/* the action file gets copied in in place of this dollarsign */
! #line 480 "/usr/local/lib/bison.simple"
yyvsp -= yylen;
yyssp -= yylen;
--- 7249,7255 ----
break;}
}
/* the action file gets copied in in place of this dollarsign */
! #line 465 "/usr/lib/bison.simple"
yyvsp -= yylen;
yyssp -= yylen;
diff -rc --new-file /src/baseline/gcc-2.5.8/cpp.info gcc-2.5.8/cpp.info
*** /src/baseline/gcc-2.5.8/cpp.info Thu Oct 14 04:47:18 1993
--- gcc-2.5.8/cpp.info Tue May 3 14:09:31 1994
***************
*** 1,4 ****
! This is Info file cpp.info, produced by Makeinfo-1.54 from the input
file cpp.texi.
This file documents the GNU C Preprocessor.
--- 1,4 ----
! This is Info file cpp.info, produced by Makeinfo-1.55 from the input
file cpp.texi.
This file documents the GNU C Preprocessor.
***************
*** 21,28 ****
Indirect:
cpp.info-1: 778
! cpp.info-2: 50641
! cpp.info-3: 99631
Tag Table:
(Indirect)
--- 21,28 ----
Indirect:
cpp.info-1: 778
! cpp.info-2: 50624
! cpp.info-3: 99614
Tag Table:
(Indirect)
***************
*** 35,74 ****
Node: Include Operation12652
Node: Once-Only14327
Node: Inheritance16636
! Node: Macros19196
! Node: Simple Macros20110
! Node: Argument Macros23230
! Node: Predefined28900
! Node: Standard Predefined29330
! Node: Nonstandard Predefined34543
! Node: Stringification38116
! Node: Concatenation41040
! Node: Undefining44313
! Node: Redefining45346
! Node: Macro Pitfalls46646
! Node: Misnesting47750
! Node: Macro Parentheses48764
! Node: Swallow Semicolon50641
! Node: Side Effects52541
! Node: Self-Reference54239
! Node: Argument Prescan56515
! Node: Cascaded Macros61517
! Node: Newlines in Args62572
! Node: Conditionals63917
! Node: Conditional Uses65263
! Node: Conditional Syntax66628
! Node: #if Command67206
! Node: #else Command69457
! Node: #elif Command70112
! Node: Deleted Code71474
! Node: Conditionals-Macros72010
! Node: Assertions75707
! Node: #error Command79937
! Node: Combining Sources81361
! Node: Other Commands84257
! Node: Output85692
! Node: Invocation86847
! Node: Concept Index97960
! Node: Index99631
End Tag Table
--- 35,74 ----
Node: Include Operation12652
Node: Once-Only14327
Node: Inheritance16636
! Node: Macros19179
! Node: Simple Macros20093
! Node: Argument Macros23213
! Node: Predefined28883
! Node: Standard Predefined29313
! Node: Nonstandard Predefined34526
! Node: Stringification38099
! Node: Concatenation41023
! Node: Undefining44296
! Node: Redefining45329
! Node: Macro Pitfalls46629
! Node: Misnesting47733
! Node: Macro Parentheses48747
! Node: Swallow Semicolon50624
! Node: Side Effects52524
! Node: Self-Reference54222
! Node: Argument Prescan56498
! Node: Cascaded Macros61500
! Node: Newlines in Args62555
! Node: Conditionals63900
! Node: Conditional Uses65246
! Node: Conditional Syntax66611
! Node: #if Command67189
! Node: #else Command69440
! Node: #elif Command70095
! Node: Deleted Code71457
! Node: Conditionals-Macros71993
! Node: Assertions75690
! Node: #error Command79920
! Node: Combining Sources81344
! Node: Other Commands84240
! Node: Output85675
! Node: Invocation86830
! Node: Concept Index97943
! Node: Index99614
End Tag Table
diff -rc --new-file /src/baseline/gcc-2.5.8/cpp.info-1 gcc-2.5.8/cpp.info-1
*** /src/baseline/gcc-2.5.8/cpp.info-1 Thu Oct 14 04:47:17 1993
--- gcc-2.5.8/cpp.info-1 Tue May 3 14:09:29 1994
***************
*** 1,4 ****
! This is Info file cpp.info, produced by Makeinfo-1.54 from the input
file cpp.texi.
This file documents the GNU C Preprocessor.
--- 1,4 ----
! This is Info file cpp.info, produced by Makeinfo-1.55 from the input
file cpp.texi.
This file documents the GNU C Preprocessor.
***************
*** 415,421 ****
file `sys/signal.h', but the version of `/usr/include/sys/signal.h' on
a particular system doesn't do what the application program expects.
It might be convenient to define a "local" version, perhaps under the
! name `/usr/local/include/sys/signal.h', to override or add to the one
supplied by the system.
You can do this by using the option `-I.' for compilation, and
--- 415,421 ----
file `sys/signal.h', but the version of `/usr/include/sys/signal.h' on
a particular system doesn't do what the application program expects.
It might be convenient to define a "local" version, perhaps under the
! name `/gnu/include/sys/signal.h', to override or add to the one
supplied by the system.
You can do this by using the option `-I.' for compilation, and
***************
*** 438,449 ****
searching the list of header file directories *after* the directory in
which the current file was found.
! Suppose you specify `-I /usr/local/include', and the list of
! directories to search also includes `/usr/include'; and suppose that
! both directories contain a file named `sys/signal.h'. Ordinary
! `#include <sys/signal.h>' finds the file under `/usr/local/include'.
! If that file contains `#include_next <sys/signal.h>', it starts
! searching after that directory, and finds the file in `/usr/include'.
File: cpp.info, Node: Macros, Next: Conditionals, Prev: Header Files, Up: Top
--- 438,449 ----
searching the list of header file directories *after* the directory in
which the current file was found.
! Suppose you specify `-I /gnu/include', and the list of directories
! to search also includes `/usr/include'; and suppose that both
! directories contain a file named `sys/signal.h'. Ordinary `#include
! <sys/signal.h>' finds the file under `/gnu/include'. If that file
! contains `#include_next <sys/signal.h>', it starts searching after that
! directory, and finds the file in `/usr/include'.
File: cpp.info, Node: Macros, Next: Conditionals, Prev: Header Files, Up: Top
diff -rc --new-file /src/baseline/gcc-2.5.8/cpp.info-2 gcc-2.5.8/cpp.info-2
*** /src/baseline/gcc-2.5.8/cpp.info-2 Thu Oct 14 04:47:17 1993
--- gcc-2.5.8/cpp.info-2 Tue May 3 14:09:30 1994
***************
*** 1,4 ****
! This is Info file cpp.info, produced by Makeinfo-1.54 from the input
file cpp.texi.
This file documents the GNU C Preprocessor.
--- 1,4 ----
! This is Info file cpp.info, produced by Makeinfo-1.55 from the input
file cpp.texi.
This file documents the GNU C Preprocessor.
diff -rc --new-file /src/baseline/gcc-2.5.8/cpp.info-3 gcc-2.5.8/cpp.info-3
*** /src/baseline/gcc-2.5.8/cpp.info-3 Thu Oct 14 04:47:18 1993
--- gcc-2.5.8/cpp.info-3 Tue May 3 14:09:30 1994
***************
*** 1,4 ****
! This is Info file cpp.info, produced by Makeinfo-1.54 from the input
file cpp.texi.
This file documents the GNU C Preprocessor.
--- 1,4 ----
! This is Info file cpp.info, produced by Makeinfo-1.55 from the input
file cpp.texi.
This file documents the GNU C Preprocessor.
diff -rc --new-file /src/baseline/gcc-2.5.8/cpp.texi gcc-2.5.8/cpp.texi
*** /src/baseline/gcc-2.5.8/cpp.texi Tue Oct 12 02:59:12 1993
--- gcc-2.5.8/cpp.texi Tue Feb 22 11:27:15 1994
***************
*** 477,483 ****
@file{sys/signal.h}, but the version of @file{/usr/include/sys/signal.h}
on a particular system doesn't do what the application program expects.
It might be convenient to define a ``local'' version, perhaps under the
! name @file{/usr/local/include/sys/signal.h}, to override or add to the
one supplied by the system.
You can do this by using the option @samp{-I.} for compilation, and
--- 477,483 ----
@file{sys/signal.h}, but the version of @file{/usr/include/sys/signal.h}
on a particular system doesn't do what the application program expects.
It might be convenient to define a ``local'' version, perhaps under the
! name @file{/gnu/include/sys/signal.h}, to override or add to the
one supplied by the system.
You can do this by using the option @samp{-I.} for compilation, and
***************
*** 503,513 ****
file directories @emph{after} the directory in which the current file
was found.
! Suppose you specify @samp{-I /usr/local/include}, and the list of
directories to search also includes @file{/usr/include}; and suppose that
both directories contain a file named @file{sys/signal.h}. Ordinary
@samp{#include <sys/signal.h>} finds the file under
! @file{/usr/local/include}. If that file contains @samp{#include_next
<sys/signal.h>}, it starts searching after that directory, and finds the
file in @file{/usr/include}.
--- 503,513 ----
file directories @emph{after} the directory in which the current file
was found.
! Suppose you specify @samp{-I /gnu/include}, and the list of
directories to search also includes @file{/usr/include}; and suppose that
both directories contain a file named @file{sys/signal.h}. Ordinary
@samp{#include <sys/signal.h>} finds the file under
! @file{/gnu/include}. If that file contains @samp{#include_next
<sys/signal.h>}, it starts searching after that directory, and finds the
file in @file{/usr/include}.
diff -rc --new-file /src/baseline/gcc-2.5.8/cross-make gcc-2.5.8/cross-make
*** /src/baseline/gcc-2.5.8/cross-make Thu Sep 9 14:17:56 1993
--- gcc-2.5.8/cross-make Tue Feb 22 11:27:19 1994
***************
*** 11,17 ****
RANLIB = $(RANLIB_FOR_TARGET)
RANLIB_TEST = $(RANLIB_TEST_FOR_TARGET)
! # Dir to search for system headers. Normally /usr/include.
SYSTEM_HEADER_DIR = $(tooldir)/include
# Don't try to compile the things we can't compile.
--- 11,17 ----
RANLIB = $(RANLIB_FOR_TARGET)
RANLIB_TEST = $(RANLIB_TEST_FOR_TARGET)
! # Dir to search for system headers. Normally /gnu/include.
SYSTEM_HEADER_DIR = $(tooldir)/include
# Don't try to compile the things we can't compile.
***************
*** 20,26 ****
# Use cross-compiler version of float.h.
FLOAT_H = $(CROSS_FLOAT_H)
! # Don't install assert.h in /usr/local/include.
assertdir = $(tooldir)/include
# Don't run fixproto
--- 20,26 ----
# Use cross-compiler version of float.h.
FLOAT_H = $(CROSS_FLOAT_H)
! # Don't install assert.h in /local/include.
assertdir = $(tooldir)/include
# Don't run fixproto
diff -rc --new-file /src/baseline/gcc-2.5.8/g++.1 gcc-2.5.8/g++.1
*** /src/baseline/gcc-2.5.8/g++.1 Wed Oct 13 19:15:18 1993
--- gcc-2.5.8/g++.1 Tue Feb 22 11:27:23 1994
***************
*** 598,604 ****
.sp
.I LIBDIR
is usually
! .B /usr/local/lib/\c
.IR machine / version .
.br
.I TMPDIR
--- 598,604 ----
.sp
.I LIBDIR
is usually
! .B /gnu/lib/\c
.IR machine / version .
.br
.I TMPDIR
diff -rc --new-file /src/baseline/gcc-2.5.8/gcc.1 gcc-2.5.8/gcc.1
*** /src/baseline/gcc-2.5.8/gcc.1 Wed Oct 13 19:19:36 1993
--- gcc-2.5.8/gcc.1 Tue Feb 22 11:27:28 1994
***************
*** 1542,1548 ****
`\|\c
.B /usr/lib/gcc/\c
\&\|' and `\|\c
! .B /usr/local/lib/gcc-lib/\c
\&\|'. If neither of
those results in a file name that is found, the compiler driver
searches for the unmodified program
--- 1542,1548 ----
`\|\c
.B /usr/lib/gcc/\c
\&\|' and `\|\c
! .B /gnu/lib/gcc-lib/\c
\&\|'. If neither of
those results in a file name that is found, the compiler driver
searches for the unmodified program
***************
*** 3997,4003 ****
.fi
.I LIBDIR
is usually
! .B /usr/local/lib/\c
.IR machine / version .
.br
.I TMPDIR
--- 3997,4003 ----
.fi
.I LIBDIR
is usually
! .B /gnu/lib/\c
.IR machine / version .
.br
.I TMPDIR
diff -rc --new-file /src/baseline/gcc-2.5.8/gcc.c gcc-2.5.8/gcc.c
*** /src/baseline/gcc-2.5.8/gcc.c Thu Dec 23 18:50:01 1993
--- gcc-2.5.8/gcc.c Fri Jul 1 13:45:19 1994
***************
*** 578,584 ****
{".adb", "@ada"},
{".ada", "@ada"},
{"@ada",
! "gnat1 %{gnat*} %{k8:-gnatk8} %{w:-gnatws}\
-dumpbase %b.ada\
%{g*} %{O*} %{p} %{pg:-p} %{f*} %{d*}\
%{pg:%{fomit-frame-pointer:%e-pg and -fomit-frame-pointer are incompatible}}\
--- 578,584 ----
{".adb", "@ada"},
{".ada", "@ada"},
{"@ada",
! "gnat1 %{gnat*} %{k8:-gnatk8} %{!v:-quiet} %{w:-gnatws}\
-dumpbase %b.ada\
%{g*} %{O*} %{p} %{pg:-p} %{f*} %{d*}\
%{pg:%{fomit-frame-pointer:%e-pg and -fomit-frame-pointer are incompatible}}\
***************
*** 1162,1178 ****
#endif
#ifndef STANDARD_EXEC_PREFIX
! #define STANDARD_EXEC_PREFIX "/usr/local/lib/gcc-lib/"
#endif /* !defined STANDARD_EXEC_PREFIX */
static char *standard_exec_prefix = STANDARD_EXEC_PREFIX;
! static char *standard_exec_prefix_1 = "/usr/lib/gcc/";
#ifdef MD_EXEC_PREFIX
static char *md_exec_prefix = MD_EXEC_PREFIX;
#endif
#ifndef STANDARD_STARTFILE_PREFIX
! #define STANDARD_STARTFILE_PREFIX "/usr/local/lib/"
#endif /* !defined STANDARD_STARTFILE_PREFIX */
#ifdef MD_STARTFILE_PREFIX
--- 1162,1178 ----
#endif
#ifndef STANDARD_EXEC_PREFIX
! #define STANDARD_EXEC_PREFIX "/gnu/lib/gcc-lib/"
#endif /* !defined STANDARD_EXEC_PREFIX */
static char *standard_exec_prefix = STANDARD_EXEC_PREFIX;
! static char *standard_exec_prefix_1 = "/local/lib/gcc-lib/";
#ifdef MD_EXEC_PREFIX
static char *md_exec_prefix = MD_EXEC_PREFIX;
#endif
#ifndef STANDARD_STARTFILE_PREFIX
! #define STANDARD_STARTFILE_PREFIX "/gnu/lib/"
#endif /* !defined STANDARD_STARTFILE_PREFIX */
#ifdef MD_STARTFILE_PREFIX
***************
*** 1182,1192 ****
static char *md_startfile_prefix_1 = MD_STARTFILE_PREFIX_1;
#endif
static char *standard_startfile_prefix = STANDARD_STARTFILE_PREFIX;
! static char *standard_startfile_prefix_1 = "/lib/";
! static char *standard_startfile_prefix_2 = "/usr/lib/";
#ifndef TOOLDIR_BASE_PREFIX
! #define TOOLDIR_BASE_PREFIX "/usr/local/"
#endif
static char *tooldir_base_prefix = TOOLDIR_BASE_PREFIX;
static char *tooldir_prefix;
--- 1182,1192 ----
static char *md_startfile_prefix_1 = MD_STARTFILE_PREFIX_1;
#endif
static char *standard_startfile_prefix = STANDARD_STARTFILE_PREFIX;
! static char *standard_startfile_prefix_1 = "/local/lib/";
! static char *standard_startfile_prefix_2 = "/local/lib/";
#ifndef TOOLDIR_BASE_PREFIX
! #define TOOLDIR_BASE_PREFIX "/local/"
#endif
static char *tooldir_base_prefix = TOOLDIR_BASE_PREFIX;
static char *tooldir_prefix;
***************
*** 1398,1405 ****
--- 1398,1409 ----
base = choose_temp_base_try (P_tmpdir, base);
#endif
+ #ifdef amigados
+ base = "ram:";
+ #else
base = choose_temp_base_try ("/usr/tmp", base);
base = choose_temp_base_try ("/tmp", base);
+ #endif
/* If all else fails, use the current directory! */
if (base == (char *)0)
***************
*** 1408,1414 ****
len = strlen (base);
temp_filename = xmalloc (len + sizeof("/ccXXXXXX") + 1);
strcpy (temp_filename, base);
! if (len > 0 && temp_filename[len-1] != '/')
temp_filename[len++] = '/';
strcpy (temp_filename + len, "ccXXXXXX");
--- 1412,1422 ----
len = strlen (base);
temp_filename = xmalloc (len + sizeof("/ccXXXXXX") + 1);
strcpy (temp_filename, base);
! if (len > 0 && temp_filename[len-1] != '/'
! #ifdef amigados
! && temp_filename[len-1] != ':'
! #endif
! )
temp_filename[len++] = '/';
strcpy (temp_filename + len, "ccXXXXXX");
***************
*** 1552,1558 ****
/* Determine the filename to execute (special case for absolute paths). */
! if (*name == '/')
{
if (access (name, mode))
{
--- 1560,1570 ----
/* Determine the filename to execute (special case for absolute paths). */
! if (*name == '/'
! #ifdef amigados
! || index (name, ':')
! #endif
! )
{
if (access (name, mode))
{
***************
*** 1758,1763 ****
--- 1770,1776 ----
NOT_LAST is nonzero if this is not the last subcommand
(i.e. its output should be piped to the next one.) */
+ #ifndef PEXECUTE
#ifndef OS2
#ifdef __MSDOS__
***************
*** 1913,1918 ****
--- 1926,1932 ----
return (search_flag ? spawnv : spawnvp) (1, program, argv);
}
#endif /* not OS2 */
+ #endif /* !defined (PEXECUTE) */
/* Execute the command specified by the arguments on the current line of spec.
When using pipes, this includes several piped-together commands
***************
*** 2007,2015 ****
--- 2021,2035 ----
{
char *string = commands[i].argv[0];
+ #ifdef PEXECUTE
+ commands[i].pid = PEXECUTE (string != commands[i].prog,
+ string, commands[i].argv,
+ i + 1 < n_commands);
+ #else
commands[i].pid = pexecute (string != commands[i].prog,
string, commands[i].argv,
i + 1 < n_commands);
+ #endif
if (string != commands[i].prog)
free (string);
***************
*** 2030,2040 ****
--- 2050,2064 ----
int pid;
char *prog;
+ #ifdef PEXECUTE_RESULT
+ pid = PEXECUTE_RESULT (status, commands[i]);
+ #else /* PEXECUTE_RESULT */
#ifdef __MSDOS__
status = pid = commands[i].pid;
#else
pid = wait (&status);
#endif
+ #endif /* PEXECUTE_RESULT */
if (pid < 0)
abort ();
***************
*** 2141,2146 ****
--- 2165,2171 ----
if (*endp == PATH_SEPARATOR || *endp == 0)
{
strncpy (nstore, startp, endp-startp);
+ #ifndef amigados
if (endp == startp)
{
strcpy (nstore, "./");
***************
*** 2152,2157 ****
--- 2177,2191 ----
}
else
nstore[endp-startp] = 0;
+ #else
+ if (endp[-1] != '/' && endp[-1] != ':')
+ {
+ nstore[endp-startp] = '/';
+ nstore[endp-startp+1] = 0;
+ }
+ else
+ nstore[endp-startp] = 0;
+ #endif
add_prefix (&exec_prefix, nstore, 0, 0, NULL_PTR);
if (*endp == 0)
break;
***************
*** 2174,2179 ****
--- 2208,2214 ----
if (*endp == PATH_SEPARATOR || *endp == 0)
{
strncpy (nstore, startp, endp-startp);
+ #ifndef amigados
if (endp == startp)
{
strcpy (nstore, "./");
***************
*** 2185,2190 ****
--- 2220,2234 ----
}
else
nstore[endp-startp] = 0;
+ #else
+ if (endp[-1] != '/' && endp[-1] != ':')
+ {
+ nstore[endp-startp] = '/';
+ nstore[endp-startp+1] = 0;
+ }
+ else
+ nstore[endp-startp] = 0;
+ #endif
add_prefix (&startfile_prefix, nstore, 0, 0, NULL_PTR);
if (*endp == 0)
break;
***************
*** 2208,2213 ****
--- 2252,2258 ----
if (*endp == PATH_SEPARATOR || *endp == 0)
{
strncpy (nstore, startp, endp-startp);
+ #ifndef amigados
if (endp == startp)
{
strcpy (nstore, "./");
***************
*** 2219,2224 ****
--- 2264,2278 ----
}
else
nstore[endp-startp] = 0;
+ #else
+ if (endp[-1] != '/' && endp[-1] != ':')
+ {
+ nstore[endp-startp] = '/';
+ nstore[endp-startp+1] = 0;
+ }
+ else
+ nstore[endp-startp] = 0;
+ #endif
add_prefix (&startfile_prefix, nstore, 0, 0, NULL_PTR);
if (*endp == 0)
break;
***************
*** 3862,3871 ****
--- 3916,3929 ----
register char *p;
int len;
+ #ifdef FILE_NAME_NONDIRECTORY
+ input_basename = FILE_NAME_NONDIRECTORY (input_filename);
+ #else
input_basename = input_filename;
for (p = input_filename; *p; p++)
if (*p == '/')
input_basename = p + 1;
+ #endif
/* Find a suffix starting with the last period,
and set basename_length to exclude that suffix. */
diff -rc --new-file /src/baseline/gcc-2.5.8/gcc.info gcc-2.5.8/gcc.info
*** /src/baseline/gcc-2.5.8/gcc.info Sat Nov 27 15:39:23 1993
--- gcc-2.5.8/gcc.info Tue May 3 14:10:31 1994
***************
*** 1,4 ****
! This is Info file gcc.info, produced by Makeinfo-1.54 from the input
file gcc.texi.
This file documents the use and the internals of the GNU compiler.
--- 1,4 ----
! This is Info file gcc.info, produced by Makeinfo-1.55 from the input
file gcc.texi.
This file documents the use and the internals of the GNU compiler.
***************
*** 32,57 ****
gcc.info-1: 1305
gcc.info-2: 49956
gcc.info-3: 91430
! gcc.info-4: 136088
! gcc.info-5: 176230
! gcc.info-6: 225032
! gcc.info-7: 274452
! gcc.info-8: 323146
! gcc.info-9: 372521
! gcc.info-10: 411789
! gcc.info-11: 448922
! gcc.info-12: 498287
! gcc.info-13: 541773
! gcc.info-14: 591219
! gcc.info-15: 622815
! gcc.info-16: 670482
! gcc.info-17: 716044
! gcc.info-18: 765468
! gcc.info-19: 812673
! gcc.info-20: 861775
! gcc.info-21: 909034
! gcc.info-22: 944667
! gcc.info-23: 966158
Tag Table:
(Indirect)
--- 32,57 ----
gcc.info-1: 1305
gcc.info-2: 49956
gcc.info-3: 91430
! gcc.info-4: 136070
! gcc.info-5: 176194
! gcc.info-6: 224902
! gcc.info-7: 274304
! gcc.info-8: 322998
! gcc.info-9: 372325
! gcc.info-10: 411593
! gcc.info-11: 448726
! gcc.info-12: 498091
! gcc.info-13: 541577
! gcc.info-14: 591023
! gcc.info-15: 622619
! gcc.info-16: 670286
! gcc.info-17: 715848
! gcc.info-18: 765243
! gcc.info-19: 812448
! gcc.info-20: 861550
! gcc.info-21: 908809
! gcc.info-22: 944442
! gcc.info-23: 965933
Tag Table:
(Indirect)
***************
*** 73,286 ****
Node: Assembler Options107289
Node: Link Options107613
Node: Directory Options111621
! Node: Target Options114521
! Node: Submodel Options118248
! Node: M680x0 Options119594
! Node: VAX Options122978
! Node: SPARC Options123513
! Node: Convex Options125569
! Node: AMD29K Options127750
! Node: M88K Options129898
! Node: RS/6000 and PowerPC Options136088
! Node: RT Options142032
! Node: MIPS Options143736
! Node: i386 Options149801
! Node: HPPA Options151147
! Node: Intel 960 Options152342
! Node: DEC Alpha Options154952
! Node: Clipper Options156624
! Node: System V Options157024
! Node: Code Gen Options157711
! Node: Environment Variables165976
! Node: Running Protoize170001
! Node: Installation176230
! Node: Other Dir211589
! Node: Cross-Compiler213273
! Node: Steps of Cross215085
! Node: Configure Cross216203
! Node: Tools and Libraries216852
! Node: Cross Runtime219295
! Node: Cross Headers223047
! Node: Build Cross225032
! Node: PA Install226937
! Node: Sun Install229239
! Node: 3b1 Install230978
! Node: Unos Install232011
! Node: VMS Install233551
! Node: WE32K Install243486
! Node: MIPS Install244865
! Node: Collect2247727
! Node: Header Dirs250570
! Node: C Extensions251984
! Node: Statement Exprs255159
! Node: Local Labels257053
! Node: Labels as Values259115
! Node: Nested Functions260980
! Node: Constructing Calls264836
! Node: Naming Types266893
! Node: Typeof267987
! Node: Lvalues269852
! Node: Conditionals272117
! Node: Long Long273008
! Node: Complex274452
! Node: Zero Length276314
! Node: Variable Length276988
! Node: Macro Varargs279513
! Node: Subscripting281616
! Node: Pointer Arith282099
! Node: Initializers282664
! Node: Constructors283110
! Node: Labeled Elements284804
! Node: Case Ranges287126
! Node: Cast to Union288085
! Node: Function Attributes289163
! Node: Function Prototypes294844
! Node: Dollar Signs296549
! Node: Character Escapes297336
! Node: Alignment297617
! Node: Variable Attributes299093
! Node: Inline301992
! Node: Extended Asm305727
! Node: Asm Labels316014
! Node: Explicit Reg Vars317333
! Node: Global Reg Vars318581
! Node: Local Reg Vars323146
! Node: Alternate Keywords324738
! Node: Incomplete Enums326140
! Node: Function Names326848
! Node: C++ Extensions327853
! Node: Naming Results328833
! Node: Min and Max332147
! Node: Destructors and Goto333597
! Node: C++ Interface334147
! Node: Trouble339014
! Node: Actual Bugs340582
! Node: Installation Problems341688
! Node: Cross-Compiler Problems355013
! Node: Interoperation356484
! Node: External Bugs370514
! Node: Incompatibilities372521
! Node: Fixed Headers381069
! Node: Disappointments383408
! Node: C++ Misunderstandings387628
! Node: Static Definitions388275
! Node: Temporaries389329
! Node: Protoize Caveats391533
! Node: Non-bugs395488
! Node: Warnings and Errors404690
! Node: Bugs406461
! Node: Bug Criteria407821
! Node: Bug Lists410251
! Node: Bug Reporting411789
! Node: Sending Patches423733
! Node: Service429085
! Node: VMS429646
! Node: Include Files and VMS430001
! Node: Global Declarations433891
! Node: VMS Misc438200
! Node: Portability442526
! Node: Interface444289
! Node: Passes448922
! Node: RTL466265
! Node: RTL Objects468153
! Node: Accessors471197
! Node: Flags476523
! Node: Machine Modes485542
! Node: Constants493099
! Node: Regs and Memory498287
! Node: Arithmetic509997
! Node: Comparisons516065
! Node: Bit Fields520127
! Node: Conversions521491
! Node: RTL Declarations524379
! Node: Side Effects525188
! Node: Incdec537735
! Node: Assembler540251
! Node: Insns541773
! Node: Calls562518
! Node: Sharing565113
! Node: Reading RTL568189
! Node: Machine Desc569133
! Node: Patterns570986
! Node: Example573930
! Node: RTL Template575058
! Node: Output Template587258
! Node: Output Statement591219
! Node: Constraints594932
! Node: Simple Constraints595935
! Node: Multi-Alternative607368
! Node: Class Preferences610204
! Node: Modifiers611084
! Node: Machine Constraints614199
! Node: No Constraints621694
! Node: Standard Names622815
! Node: Pattern Ordering650086
! Node: Dependent Patterns651312
! Node: Jump Patterns654252
! Node: Insn Canonicalizations660068
! Node: Peephole Definitions663563
! Node: Expander Definitions670482
! Node: Insn Splitting677622
! Node: Insn Attributes684636
! Node: Defining Attributes685683
! Node: Expressions687695
! Node: Tagging Insns694017
! Node: Attr Example698380
! Node: Insn Lengths700756
! Node: Constant Attributes704120
! Node: Delay Slots705280
! Node: Function Units708491
! Node: Target Macros714161
! Node: Driver716044
! Node: Run-time Target726307
! Node: Storage Layout731789
! Node: Type Layout744378
! Node: Registers750707
! Node: Register Basics751687
! Node: Allocation Order755680
! Node: Values in Registers757060
! Node: Leaf Functions761814
! Node: Stack Registers764635
! Node: Obsolete Register Macros765468
! Node: Register Classes768163
! Node: Stack and Calling785880
! Node: Frame Layout786255
! Node: Frame Registers789660
! Node: Elimination793379
! Node: Stack Arguments797682
! Node: Register Arguments803998
! Node: Scalar Return812673
! Node: Aggregate Return816636
! Node: Caller Saves820351
! Node: Function Entry821501
! Node: Profiling830429
! Node: Varargs833333
! Node: Trampolines840016
! Node: Library Calls846451
! Node: Addressing Modes854223
! Node: Condition Code861775
! Node: Costs866398
! Node: Sections874777
! Node: PIC879566
! Node: Assembler Format882056
! Node: File Framework883061
! Node: Data Output886768
! Node: Uninitialized Data892207
! Node: Label Output894802
! Node: Initialization902891
! Node: Macros for Initialization909034
! Node: Instruction Output911817
! Node: Dispatch Tables919763
! Node: Alignment Output922105
! Node: Debugging Info923802
! Node: All Debuggers924354
! Node: DBX Options926721
! Node: DBX Hooks931305
! Node: File Names and DBX934608
! Node: SDB and DWARF936536
! Node: Cross-compilation938220
! Node: Misc944667
! Node: Config960043
! Node: Index966158
End Tag Table
--- 73,286 ----
Node: Assembler Options107289
Node: Link Options107613
Node: Directory Options111621
! Node: Target Options114515
! Node: Submodel Options118230
! Node: M680x0 Options119576
! Node: VAX Options122960
! Node: SPARC Options123495
! Node: Convex Options125551
! Node: AMD29K Options127732
! Node: M88K Options129880
! Node: RS/6000 and PowerPC Options136070
! Node: RT Options142014
! Node: MIPS Options143718
! Node: i386 Options149783
! Node: HPPA Options151129
! Node: Intel 960 Options152324
! Node: DEC Alpha Options154934
! Node: Clipper Options156606
! Node: System V Options157006
! Node: Code Gen Options157693
! Node: Environment Variables165958
! Node: Running Protoize169971
! Node: Installation176194
! Node: Other Dir211501
! Node: Cross-Compiler213185
! Node: Steps of Cross214997
! Node: Configure Cross216115
! Node: Tools and Libraries216764
! Node: Cross Runtime219177
! Node: Cross Headers222929
! Node: Build Cross224902
! Node: PA Install226807
! Node: Sun Install229103
! Node: 3b1 Install230842
! Node: Unos Install231875
! Node: VMS Install233415
! Node: WE32K Install243350
! Node: MIPS Install244729
! Node: Collect2247591
! Node: Header Dirs250434
! Node: C Extensions251836
! Node: Statement Exprs255011
! Node: Local Labels256905
! Node: Labels as Values258967
! Node: Nested Functions260832
! Node: Constructing Calls264688
! Node: Naming Types266745
! Node: Typeof267839
! Node: Lvalues269704
! Node: Conditionals271969
! Node: Long Long272860
! Node: Complex274304
! Node: Zero Length276166
! Node: Variable Length276840
! Node: Macro Varargs279365
! Node: Subscripting281468
! Node: Pointer Arith281951
! Node: Initializers282516
! Node: Constructors282962
! Node: Labeled Elements284656
! Node: Case Ranges286978
! Node: Cast to Union287937
! Node: Function Attributes289015
! Node: Function Prototypes294696
! Node: Dollar Signs296401
! Node: Character Escapes297188
! Node: Alignment297469
! Node: Variable Attributes298945
! Node: Inline301844
! Node: Extended Asm305579
! Node: Asm Labels315866
! Node: Explicit Reg Vars317185
! Node: Global Reg Vars318433
! Node: Local Reg Vars322998
! Node: Alternate Keywords324590
! Node: Incomplete Enums325992
! Node: Function Names326700
! Node: C++ Extensions327705
! Node: Naming Results328685
! Node: Min and Max331999
! Node: Destructors and Goto333449
! Node: C++ Interface333999
! Node: Trouble338866
! Node: Actual Bugs340434
! Node: Installation Problems341540
! Node: Cross-Compiler Problems354841
! Node: Interoperation356312
! Node: External Bugs370324
! Node: Incompatibilities372325
! Node: Fixed Headers380873
! Node: Disappointments383212
! Node: C++ Misunderstandings387432
! Node: Static Definitions388079
! Node: Temporaries389133
! Node: Protoize Caveats391337
! Node: Non-bugs395292
! Node: Warnings and Errors404494
! Node: Bugs406265
! Node: Bug Criteria407625
! Node: Bug Lists410055
! Node: Bug Reporting411593
! Node: Sending Patches423537
! Node: Service428889
! Node: VMS429450
! Node: Include Files and VMS429805
! Node: Global Declarations433695
! Node: VMS Misc438004
! Node: Portability442330
! Node: Interface444093
! Node: Passes448726
! Node: RTL466069
! Node: RTL Objects467957
! Node: Accessors471001
! Node: Flags476327
! Node: Machine Modes485346
! Node: Constants492903
! Node: Regs and Memory498091
! Node: Arithmetic509801
! Node: Comparisons515869
! Node: Bit Fields519931
! Node: Conversions521295
! Node: RTL Declarations524183
! Node: Side Effects524992
! Node: Incdec537539
! Node: Assembler540055
! Node: Insns541577
! Node: Calls562322
! Node: Sharing564917
! Node: Reading RTL567993
! Node: Machine Desc568937
! Node: Patterns570790
! Node: Example573734
! Node: RTL Template574862
! Node: Output Template587062
! Node: Output Statement591023
! Node: Constraints594736
! Node: Simple Constraints595739
! Node: Multi-Alternative607172
! Node: Class Preferences610008
! Node: Modifiers610888
! Node: Machine Constraints614003
! Node: No Constraints621498
! Node: Standard Names622619
! Node: Pattern Ordering649890
! Node: Dependent Patterns651116
! Node: Jump Patterns654056
! Node: Insn Canonicalizations659872
! Node: Peephole Definitions663367
! Node: Expander Definitions670286
! Node: Insn Splitting677426
! Node: Insn Attributes684440
! Node: Defining Attributes685487
! Node: Expressions687499
! Node: Tagging Insns693821
! Node: Attr Example698184
! Node: Insn Lengths700560
! Node: Constant Attributes703924
! Node: Delay Slots705084
! Node: Function Units708295
! Node: Target Macros713965
! Node: Driver715848
! Node: Run-time Target726082
! Node: Storage Layout731564
! Node: Type Layout744153
! Node: Registers750482
! Node: Register Basics751462
! Node: Allocation Order755455
! Node: Values in Registers756835
! Node: Leaf Functions761589
! Node: Stack Registers764410
! Node: Obsolete Register Macros765243
! Node: Register Classes767938
! Node: Stack and Calling785655
! Node: Frame Layout786030
! Node: Frame Registers789435
! Node: Elimination793154
! Node: Stack Arguments797457
! Node: Register Arguments803773
! Node: Scalar Return812448
! Node: Aggregate Return816411
! Node: Caller Saves820126
! Node: Function Entry821276
! Node: Profiling830204
! Node: Varargs833108
! Node: Trampolines839791
! Node: Library Calls846226
! Node: Addressing Modes853998
! Node: Condition Code861550
! Node: Costs866173
! Node: Sections874552
! Node: PIC879341
! Node: Assembler Format881831
! Node: File Framework882836
! Node: Data Output886543
! Node: Uninitialized Data891982
! Node: Label Output894577
! Node: Initialization902666
! Node: Macros for Initialization908809
! Node: Instruction Output911592
! Node: Dispatch Tables919538
! Node: Alignment Output921880
! Node: Debugging Info923577
! Node: All Debuggers924129
! Node: DBX Options926496
! Node: DBX Hooks931080
! Node: File Names and DBX934383
! Node: SDB and DWARF936311
! Node: Cross-compilation937995
! Node: Misc944442
! Node: Config959818
! Node: Index965933
End Tag Table
diff -rc --new-file /src/baseline/gcc-2.5.8/gcc.info-1 gcc-2.5.8/gcc.info-1
*** /src/baseline/gcc-2.5.8/gcc.info-1 Sat Nov 27 15:38:42 1993
--- gcc-2.5.8/gcc.info-1 Tue May 3 14:10:10 1994
***************
*** 1,4 ****
! This is Info file gcc.info, produced by Makeinfo-1.54 from the input
file gcc.texi.
This file documents the use and the internals of the GNU compiler.
--- 1,4 ----
! This is Info file gcc.info, produced by Makeinfo-1.55 from the input
file gcc.texi.
This file documents the use and the internals of the GNU compiler.
diff -rc --new-file /src/baseline/gcc-2.5.8/gcc.info-10 gcc-2.5.8/gcc.info-10
*** /src/baseline/gcc-2.5.8/gcc.info-10 Sat Nov 27 15:38:59 1993
--- gcc-2.5.8/gcc.info-10 Tue May 3 14:10:18 1994
***************
*** 1,4 ****
! This is Info file gcc.info, produced by Makeinfo-1.54 from the input
file gcc.texi.
This file documents the use and the internals of the GNU compiler.
--- 1,4 ----
! This is Info file gcc.info, produced by Makeinfo-1.55 from the input
file gcc.texi.
This file documents the use and the internals of the GNU compiler.
diff -rc --new-file /src/baseline/gcc-2.5.8/gcc.info-11 gcc-2.5.8/gcc.info-11
*** /src/baseline/gcc-2.5.8/gcc.info-11 Sat Nov 27 15:38:59 1993
--- gcc-2.5.8/gcc.info-11 Tue May 3 14:10:19 1994
***************
*** 1,4 ****
! This is Info file gcc.info, produced by Makeinfo-1.54 from the input
file gcc.texi.
This file documents the use and the internals of the GNU compiler.
--- 1,4 ----
! This is Info file gcc.info, produced by Makeinfo-1.55 from the input
file gcc.texi.
This file documents the use and the internals of the GNU compiler.
diff -rc --new-file /src/baseline/gcc-2.5.8/gcc.info-12 gcc-2.5.8/gcc.info-12
*** /src/baseline/gcc-2.5.8/gcc.info-12 Sat Nov 27 15:39:04 1993
--- gcc-2.5.8/gcc.info-12 Tue May 3 14:10:20 1994
***************
*** 1,4 ****
! This is Info file gcc.info, produced by Makeinfo-1.54 from the input
file gcc.texi.
This file documents the use and the internals of the GNU compiler.
--- 1,4 ----
! This is Info file gcc.info, produced by Makeinfo-1.55 from the input
file gcc.texi.
This file documents the use and the internals of the GNU compiler.
diff -rc --new-file /src/baseline/gcc-2.5.8/gcc.info-13 gcc-2.5.8/gcc.info-13
*** /src/baseline/gcc-2.5.8/gcc.info-13 Sat Nov 27 15:39:09 1993
--- gcc-2.5.8/gcc.info-13 Tue May 3 14:10:21 1994
***************
*** 1,4 ****
! This is Info file gcc.info, produced by Makeinfo-1.54 from the input
file gcc.texi.
This file documents the use and the internals of the GNU compiler.
--- 1,4 ----
! This is Info file gcc.info, produced by Makeinfo-1.55 from the input
file gcc.texi.
This file documents the use and the internals of the GNU compiler.
diff -rc --new-file /src/baseline/gcc-2.5.8/gcc.info-14 gcc-2.5.8/gcc.info-14
*** /src/baseline/gcc-2.5.8/gcc.info-14 Sat Nov 27 15:39:13 1993
--- gcc-2.5.8/gcc.info-14 Tue May 3 14:10:22 1994
***************
*** 1,4 ****
! This is Info file gcc.info, produced by Makeinfo-1.54 from the input
file gcc.texi.
This file documents the use and the internals of the GNU compiler.
--- 1,4 ----
! This is Info file gcc.info, produced by Makeinfo-1.55 from the input
file gcc.texi.
This file documents the use and the internals of the GNU compiler.
diff -rc --new-file /src/baseline/gcc-2.5.8/gcc.info-15 gcc-2.5.8/gcc.info-15
*** /src/baseline/gcc-2.5.8/gcc.info-15 Sat Nov 27 15:39:14 1993
--- gcc-2.5.8/gcc.info-15 Tue May 3 14:10:23 1994
***************
*** 1,4 ****
! This is Info file gcc.info, produced by Makeinfo-1.54 from the input
file gcc.texi.
This file documents the use and the internals of the GNU compiler.
--- 1,4 ----
! This is Info file gcc.info, produced by Makeinfo-1.55 from the input
file gcc.texi.
This file documents the use and the internals of the GNU compiler.
diff -rc --new-file /src/baseline/gcc-2.5.8/gcc.info-16 gcc-2.5.8/gcc.info-16
*** /src/baseline/gcc-2.5.8/gcc.info-16 Sat Nov 27 15:39:14 1993
--- gcc-2.5.8/gcc.info-16 Tue May 3 14:10:23 1994
***************
*** 1,4 ****
! This is Info file gcc.info, produced by Makeinfo-1.54 from the input
file gcc.texi.
This file documents the use and the internals of the GNU compiler.
--- 1,4 ----
! This is Info file gcc.info, produced by Makeinfo-1.55 from the input
file gcc.texi.
This file documents the use and the internals of the GNU compiler.
diff -rc --new-file /src/baseline/gcc-2.5.8/gcc.info-17 gcc-2.5.8/gcc.info-17
*** /src/baseline/gcc-2.5.8/gcc.info-17 Sat Nov 27 15:39:15 1993
--- gcc-2.5.8/gcc.info-17 Tue May 3 14:10:25 1994
***************
*** 1,4 ****
! This is Info file gcc.info, produced by Makeinfo-1.54 from the input
file gcc.texi.
This file documents the use and the internals of the GNU compiler.
--- 1,4 ----
! This is Info file gcc.info, produced by Makeinfo-1.55 from the input
file gcc.texi.
This file documents the use and the internals of the GNU compiler.
***************
*** 174,182 ****
`STANDARD_EXEC_PREFIX'
Define this macro as a C string constant if you wish to override
! the standard choice of `/usr/local/lib/gcc-lib/' as the default
! prefix to try when searching for the executable files of the
! compiler.
`MD_EXEC_PREFIX'
If defined, this macro is an additional prefix to try after
--- 174,181 ----
`STANDARD_EXEC_PREFIX'
Define this macro as a C string constant if you wish to override
! the standard choice of `/gnu/lib/gcc-lib/' as the default prefix to
! try when searching for the executable files of the compiler.
`MD_EXEC_PREFIX'
If defined, this macro is an additional prefix to try after
***************
*** 185,192 ****
`STANDARD_STARTFILE_PREFIX'
Define this macro as a C string constant if you wish to override
! the standard choice of `/usr/local/lib/' as the default prefix to
! try when searching for startup files such as `crt0.o'.
`MD_STARTFILE_PREFIX'
If defined, this macro supplies an additional prefix to try after
--- 184,191 ----
`STANDARD_STARTFILE_PREFIX'
Define this macro as a C string constant if you wish to override
! the standard choice of `/gnu/lib/' as the default prefix to try
! when searching for startup files such as `crt0.o'.
`MD_STARTFILE_PREFIX'
If defined, this macro supplies an additional prefix to try after
***************
*** 201,212 ****
`LOCAL_INCLUDE_DIR'
Define this macro as a C string constant if you wish to override
! the standard choice of `/usr/local/include' as the default prefix
! to try when searching for local header files. `LOCAL_INCLUDE_DIR'
! comes before `SYSTEM_INCLUDE_DIR' in the search order.
Cross compilers do not use this macro and do not search either
! `/usr/local/include' or its replacement.
`SYSTEM_INCLUDE_DIR'
Define this macro as a C string constant if you wish to specify a
--- 200,211 ----
`LOCAL_INCLUDE_DIR'
Define this macro as a C string constant if you wish to override
! the standard choice of `/gnu/include' as the default prefix to try
! when searching for local header files. `LOCAL_INCLUDE_DIR' comes
! before `SYSTEM_INCLUDE_DIR' in the search order.
Cross compilers do not use this macro and do not search either
! `/gnu/include' or its replacement.
`SYSTEM_INCLUDE_DIR'
Define this macro as a C string constant if you wish to specify a
diff -rc --new-file /src/baseline/gcc-2.5.8/gcc.info-18 gcc-2.5.8/gcc.info-18
*** /src/baseline/gcc-2.5.8/gcc.info-18 Sat Nov 27 15:39:15 1993
--- gcc-2.5.8/gcc.info-18 Tue May 3 14:10:25 1994
***************
*** 1,4 ****
! This is Info file gcc.info, produced by Makeinfo-1.54 from the input
file gcc.texi.
This file documents the use and the internals of the GNU compiler.
--- 1,4 ----
! This is Info file gcc.info, produced by Makeinfo-1.55 from the input
file gcc.texi.
This file documents the use and the internals of the GNU compiler.
diff -rc --new-file /src/baseline/gcc-2.5.8/gcc.info-19 gcc-2.5.8/gcc.info-19
*** /src/baseline/gcc-2.5.8/gcc.info-19 Sat Nov 27 15:39:16 1993
--- gcc-2.5.8/gcc.info-19 Tue May 3 14:10:26 1994
***************
*** 1,4 ****
! This is Info file gcc.info, produced by Makeinfo-1.54 from the input
file gcc.texi.
This file documents the use and the internals of the GNU compiler.
--- 1,4 ----
! This is Info file gcc.info, produced by Makeinfo-1.55 from the input
file gcc.texi.
This file documents the use and the internals of the GNU compiler.
diff -rc --new-file /src/baseline/gcc-2.5.8/gcc.info-2 gcc-2.5.8/gcc.info-2
*** /src/baseline/gcc-2.5.8/gcc.info-2 Sat Nov 27 15:38:47 1993
--- gcc-2.5.8/gcc.info-2 Tue May 3 14:10:11 1994
***************
*** 1,4 ****
! This is Info file gcc.info, produced by Makeinfo-1.54 from the input
file gcc.texi.
This file documents the use and the internals of the GNU compiler.
--- 1,4 ----
! This is Info file gcc.info, produced by Makeinfo-1.55 from the input
file gcc.texi.
This file documents the use and the internals of the GNU compiler.
diff -rc --new-file /src/baseline/gcc-2.5.8/gcc.info-20 gcc-2.5.8/gcc.info-20
*** /src/baseline/gcc-2.5.8/gcc.info-20 Sat Nov 27 15:39:21 1993
--- gcc-2.5.8/gcc.info-20 Tue May 3 14:10:27 1994
***************
*** 1,4 ****
! This is Info file gcc.info, produced by Makeinfo-1.54 from the input
file gcc.texi.
This file documents the use and the internals of the GNU compiler.
--- 1,4 ----
! This is Info file gcc.info, produced by Makeinfo-1.55 from the input
file gcc.texi.
This file documents the use and the internals of the GNU compiler.
diff -rc --new-file /src/baseline/gcc-2.5.8/gcc.info-21 gcc-2.5.8/gcc.info-21
*** /src/baseline/gcc-2.5.8/gcc.info-21 Sat Nov 27 15:39:21 1993
--- gcc-2.5.8/gcc.info-21 Tue May 3 14:10:28 1994
***************
*** 1,4 ****
! This is Info file gcc.info, produced by Makeinfo-1.54 from the input
file gcc.texi.
This file documents the use and the internals of the GNU compiler.
--- 1,4 ----
! This is Info file gcc.info, produced by Makeinfo-1.55 from the input
file gcc.texi.
This file documents the use and the internals of the GNU compiler.
diff -rc --new-file /src/baseline/gcc-2.5.8/gcc.info-22 gcc-2.5.8/gcc.info-22
*** /src/baseline/gcc-2.5.8/gcc.info-22 Sat Nov 27 15:39:22 1993
--- gcc-2.5.8/gcc.info-22 Tue May 3 14:10:29 1994
***************
*** 1,4 ****
! This is Info file gcc.info, produced by Makeinfo-1.54 from the input
file gcc.texi.
This file documents the use and the internals of the GNU compiler.
--- 1,4 ----
! This is Info file gcc.info, produced by Makeinfo-1.55 from the input
file gcc.texi.
This file documents the use and the internals of the GNU compiler.
diff -rc --new-file /src/baseline/gcc-2.5.8/gcc.info-23 gcc-2.5.8/gcc.info-23
*** /src/baseline/gcc-2.5.8/gcc.info-23 Sat Nov 27 15:39:23 1993
--- gcc-2.5.8/gcc.info-23 Tue May 3 14:10:31 1994
***************
*** 1,4 ****
! This is Info file gcc.info, produced by Makeinfo-1.54 from the input
file gcc.texi.
This file documents the use and the internals of the GNU compiler.
--- 1,4 ----
! This is Info file gcc.info, produced by Makeinfo-1.55 from the input
file gcc.texi.
This file documents the use and the internals of the GNU compiler.
diff -rc --new-file /src/baseline/gcc-2.5.8/gcc.info-3 gcc-2.5.8/gcc.info-3
*** /src/baseline/gcc-2.5.8/gcc.info-3 Sat Nov 27 15:38:47 1993
--- gcc-2.5.8/gcc.info-3 Tue May 3 14:10:12 1994
***************
*** 1,4 ****
! This is Info file gcc.info, produced by Makeinfo-1.54 from the input
file gcc.texi.
This file documents the use and the internals of the GNU compiler.
--- 1,4 ----
! This is Info file gcc.info, produced by Makeinfo-1.55 from the input
file gcc.texi.
This file documents the use and the internals of the GNU compiler.
***************
*** 568,577 ****
For each subprogram to be run, the compiler driver first tries the
`-B' prefix, if any. If that name is not found, or if `-B' was
not specified, the driver tries two standard prefixes, which are
! `/usr/lib/gcc/' and `/usr/local/lib/gcc-lib/'. If neither of
! those results in a file name that is found, the unmodified program
! name is searched for using the directories specified in your
! `PATH' environment variable.
`-B' prefixes that effectively specify directory names also apply
to libraries in the linker, because the compiler translates these
--- 568,577 ----
For each subprogram to be run, the compiler driver first tries the
`-B' prefix, if any. If that name is not found, or if `-B' was
not specified, the driver tries two standard prefixes, which are
! `/usr/lib/gcc/' and `/gnu/lib/gcc-lib/'. If neither of those
! results in a file name that is found, the unmodified program name
! is searched for using the directories specified in your `PATH'
! environment variable.
`-B' prefixes that effectively specify directory names also apply
to libraries in the linker, because the compiler translates these
***************
*** 628,640 ****
The `-b' and `-V' options actually work by controlling part of the
file name used for the executable files and libraries used for
compilation. A given version of GNU CC, for a given target machine, is
! normally kept in the directory `/usr/local/lib/gcc-lib/MACHINE/VERSION'.
Thus, sites can customize the effect of `-b' or `-V' either by
changing the names of these directories or adding alternate names (or
! symbolic links). If in directory `/usr/local/lib/gcc-lib/' the file
! `80386' is a link to the file `i386v', then `-b 80386' becomes an alias
! for `-b i386v'.
In one respect, the `-b' or `-V' do not completely change to a
different compiler: the top-level driver program `gcc' that you
--- 628,640 ----
The `-b' and `-V' options actually work by controlling part of the
file name used for the executable files and libraries used for
compilation. A given version of GNU CC, for a given target machine, is
! normally kept in the directory `/gnu/lib/gcc-lib/MACHINE/VERSION'.
Thus, sites can customize the effect of `-b' or `-V' either by
changing the names of these directories or adding alternate names (or
! symbolic links). If in directory `/gnu/lib/gcc-lib/' the file `80386'
! is a link to the file `i386v', then `-b 80386' becomes an alias for `-b
! i386v'.
In one respect, the `-b' or `-V' do not completely change to a
different compiler: the top-level driver program `gcc' that you
diff -rc --new-file /src/baseline/gcc-2.5.8/gcc.info-4 gcc-2.5.8/gcc.info-4
*** /src/baseline/gcc-2.5.8/gcc.info-4 Sat Nov 27 15:38:47 1993
--- gcc-2.5.8/gcc.info-4 Tue May 3 14:10:12 1994
***************
*** 1,4 ****
! This is Info file gcc.info, produced by Makeinfo-1.54 from the input
file gcc.texi.
This file documents the use and the internals of the GNU compiler.
--- 1,4 ----
! This is Info file gcc.info, produced by Makeinfo-1.55 from the input
file gcc.texi.
This file documents the use and the internals of the GNU compiler.
***************
*** 789,801 ****
In addition, the prefix is used in an unusual way in finding the
directories to search for header files. For each of the standard
! directories whose name normally begins with
! `/usr/local/lib/gcc-lib' (more precisely, with the value of
! `GCC_INCLUDE_DIR'), GNU CC tries replacing that beginning with the
! specified prefix to produce an alternate directory name. Thus,
! with `-Bfoo/', GNU CC will search `foo/bar' where it would
! normally search `/usr/local/lib/bar'. These alternate directories
! are searched first; the standard directories come next.
`COMPILER_PATH'
The value of `COMPILER_PATH' is a colon-separated list of
--- 789,801 ----
In addition, the prefix is used in an unusual way in finding the
directories to search for header files. For each of the standard
! directories whose name normally begins with `/gnu/lib/gcc-lib'
! (more precisely, with the value of `GCC_INCLUDE_DIR'), GNU CC tries
! replacing that beginning with the specified prefix to produce an
! alternate directory name. Thus, with `-Bfoo/', GNU CC will search
! `foo/bar' where it would normally search `/gnu/lib/bar'. These
! alternate directories are searched first; the standard directories
! come next.
`COMPILER_PATH'
The value of `COMPILER_PATH' is a colon-separated list of
***************
*** 896,902 ****
`-B DIRECTORY'
Look for the file `SYSCALLS.c.X' in DIRECTORY, instead of the
! usual directory (normally `/usr/local/lib'). This file contains
prototype information about standard system functions. This option
applies only to `protoize'.
--- 896,902 ----
`-B DIRECTORY'
Look for the file `SYSCALLS.c.X' in DIRECTORY, instead of the
! usual directory (normally `/gnu/lib'). This file contains
prototype information about standard system functions. This option
applies only to `protoize'.
diff -rc --new-file /src/baseline/gcc-2.5.8/gcc.info-5 gcc-2.5.8/gcc.info-5
*** /src/baseline/gcc-2.5.8/gcc.info-5 Sat Nov 27 15:38:48 1993
--- gcc-2.5.8/gcc.info-5 Tue May 3 14:10:13 1994
***************
*** 1,4 ****
! This is Info file gcc.info, produced by Makeinfo-1.54 from the input
file gcc.texi.
This file documents the use and the internals of the GNU compiler.
--- 1,4 ----
! This is Info file gcc.info, produced by Makeinfo-1.55 from the input
file gcc.texi.
This file documents the use and the internals of the GNU compiler.
***************
*** 557,576 ****
files do not exist, it means nothing needs to be added for a
given target or host.
! 4. The standard directory for installing GNU CC is `/usr/local/lib'.
! If you want to install its files somewhere else, specify
`--prefix=DIR' when you run `configure'. Here DIR is a directory
! name to use instead of `/usr/local' for all purposes with one
! exception: the directory `/usr/local/include' is searched for
! header files no matter where you install the compiler.
5. Specify `--local-prefix=DIR' if you want the compiler to search
directory `DIR/include' for header files *instead* of
! `/usr/local/include'. (This is for systems that have different
conventions for where to put site-specific things.)
! Unless you have a convention other than `/usr/local' for
! site-specific files, it is a bad idea to specify `--local-prefix'.
6. Make sure the Bison parser generator is installed. (This is
unnecessary if the Bison output files `c-parse.c' and `cexp.c' are
--- 557,576 ----
files do not exist, it means nothing needs to be added for a
given target or host.
! 4. The standard directory for installing GNU CC is `/gnu/lib'. If
! you want to install its files somewhere else, specify
`--prefix=DIR' when you run `configure'. Here DIR is a directory
! name to use instead of `/gnu' for all purposes with one exception:
! the directory `/gnu/include' is searched for header files no
! matter where you install the compiler.
5. Specify `--local-prefix=DIR' if you want the compiler to search
directory `DIR/include' for header files *instead* of
! `/gnu/include'. (This is for systems that have different
conventions for where to put site-specific things.)
! Unless you have a convention other than `/gnu' for site-specific
! files, it is a bad idea to specify `--local-prefix'.
6. Make sure the Bison parser generator is installed. (This is
unnecessary if the Bison output files `c-parse.c' and `cexp.c' are
***************
*** 621,629 ****
If you are building with a previous GNU C compiler, do not use
`CC=gcc' on the make command or by editing the Makefile. Instead,
use a full pathname to specify the compiler, such as
! `CC=/usr/local/bin/gcc'. This is because make might execute the
! `gcc' in the current directory before all of the compiler
! components have been built.
9. If you are building a cross-compiler, stop here. *Note
Cross-Compiler::.
--- 621,629 ----
If you are building with a previous GNU C compiler, do not use
`CC=gcc' on the make command or by editing the Makefile. Instead,
use a full pathname to specify the compiler, such as
! `CC=/gnu/bin/gcc'. This is because make might execute the `gcc'
! in the current directory before all of the compiler components
! have been built.
9. If you are building a cross-compiler, stop here. *Note
Cross-Compiler::.
***************
*** 746,760 ****
This copies the files `cc1', `cpp' and `libgcc.a' to files `cc1',
`cpp' and `libgcc.a' in the directory
! `/usr/local/lib/gcc-lib/TARGET/VERSION', which is where the
! compiler driver program looks for them. Here TARGET is the target
! machine type specified when you ran `configure', and VERSION is
! the version number of GNU CC. This naming scheme permits various
versions and/or cross-compilers to coexist.
! This also copies the driver program `xgcc' into
! `/usr/local/bin/gcc', so that it appears in typical execution
! search paths.
On some systems, this command causes recompilation of some files.
This is usually due to bugs in `make'. You should either ignore
--- 746,759 ----
This copies the files `cc1', `cpp' and `libgcc.a' to files `cc1',
`cpp' and `libgcc.a' in the directory
! `/gnu/lib/gcc-lib/TARGET/VERSION', which is where the compiler
! driver program looks for them. Here TARGET is the target machine
! type specified when you ran `configure', and VERSION is the
! version number of GNU CC. This naming scheme permits various
versions and/or cross-compilers to coexist.
! This also copies the driver program `xgcc' into `/gnu/bin/gcc', so
! that it appears in typical execution search paths.
On some systems, this command causes recompilation of some files.
This is usually due to bugs in `make'. You should either ignore
***************
*** 919,926 ****
----------------------------------------
If you have a cross-assembler and cross-linker available, you should
! install them now. Put them in the directory `/usr/local/TARGET/bin'.
! Here is a table of the tools you should put in this directory:
`as'
This should be the cross-assembler.
--- 918,925 ----
----------------------------------------
If you have a cross-assembler and cross-linker available, you should
! install them now. Put them in the directory `/gnu/TARGET/bin'. Here
! is a table of the tools you should put in this directory:
`as'
This should be the cross-assembler.
***************
*** 949,961 ****
If you want to install libraries to use with the cross-compiler,
such as a standard C library, put them in the directory
! `/usr/local/TARGET/lib'; installation of GNU CC copies all all the
! files in that subdirectory into the proper place for GNU CC to find
! them and link with them. Here's an example of copying some libraries
! from a target machine:
ftp TARGET-MACHINE
! lcd /usr/local/TARGET/lib
cd /lib
get libc.a
cd /usr/lib
--- 948,960 ----
If you want to install libraries to use with the cross-compiler,
such as a standard C library, put them in the directory
! `/gnu/TARGET/lib'; installation of GNU CC copies all all the files in
! that subdirectory into the proper place for GNU CC to find them and
! link with them. Here's an example of copying some libraries from a
! target machine:
ftp TARGET-MACHINE
! lcd /gnu/TARGET/lib
cd /lib
get libc.a
cd /usr/lib
***************
*** 968,981 ****
Many targets require "start files" such as `crt0.o' and `crtn.o'
which are linked into each executable; these too should be placed in
! `/usr/local/TARGET/lib'. There may be several alternatives for
! `crt0.o', for use with profiling or other compilation options. Check
! your target's definition of `STARTFILE_SPEC' to find out what start
! files it uses. Here's an example of copying these files from a target
! machine:
ftp TARGET-MACHINE
! lcd /usr/local/TARGET/lib
prompt
cd /lib
mget *crt*.o
--- 967,979 ----
Many targets require "start files" such as `crt0.o' and `crtn.o'
which are linked into each executable; these too should be placed in
! `/gnu/TARGET/lib'. There may be several alternatives for `crt0.o', for
! use with profiling or other compilation options. Check your target's
! definition of `STARTFILE_SPEC' to find out what start files it uses.
! Here's an example of copying these files from a target machine:
ftp TARGET-MACHINE
! lcd /gnu/TARGET/lib
prompt
cd /lib
mget *crt*.o
***************
*** 1094,1100 ****
cross-compiling.
When you have found suitable header files, put them in
! `/usr/local/TARGET/include', before building the cross compiler. Then
installation will run fixincludes properly and install the corrected
versions of the header files where the compiler will use them.
--- 1092,1098 ----
cross-compiling.
When you have found suitable header files, put them in
! `/gnu/TARGET/include', before building the cross compiler. Then
installation will run fixincludes properly and install the corrected
versions of the header files where the compiler will use them.
***************
*** 1111,1117 ****
Then, on the host machine, do this:
ftp TARGET-MACHINE
! lcd /usr/local/TARGET/include
get tarfile
quit
tar xf tarfile
--- 1109,1115 ----
Then, on the host machine, do this:
ftp TARGET-MACHINE
! lcd /gnu/TARGET/include
get tarfile
quit
tar xf tarfile
diff -rc --new-file /src/baseline/gcc-2.5.8/gcc.info-6 gcc-2.5.8/gcc.info-6
*** /src/baseline/gcc-2.5.8/gcc.info-6 Sat Nov 27 15:38:48 1993
--- gcc-2.5.8/gcc.info-6 Tue May 3 14:10:15 1994
***************
*** 1,4 ****
! This is Info file gcc.info, produced by Makeinfo-1.54 from the input
file gcc.texi.
This file documents the use and the internals of the GNU compiler.
--- 1,4 ----
! This is Info file gcc.info, produced by Makeinfo-1.55 from the input
file gcc.texi.
This file documents the use and the internals of the GNU compiler.
***************
*** 86,92 ****
`jaguar.cs.utah.edu' `dist' subdirectory. You would need to install
GAS in the file
! /usr/local/lib/gcc-lib/CONFIGURATION/GCCVERSION/as
where CONFIGURATION is the configuration name (perhaps `hpNNN-hpux')
and GCCVERSION is the GNU CC version number. Do this *before* starting
--- 86,92 ----
`jaguar.cs.utah.edu' `dist' subdirectory. You would need to install
GAS in the file
! /gnu/lib/gcc-lib/CONFIGURATION/GCCVERSION/as
where CONFIGURATION is the configuration name (perhaps `hpNNN-hpux')
and GCCVERSION is the GNU CC version number. Do this *before* starting
***************
*** 631,638 ****
target independent header files in that directory.
`LOCAL_INCLUDE_DIR' is used only for a native compiler. It is
! normally `/usr/local/include'. GNU CC searches this directory so that
! users can install header files in `/usr/local/include'.
`CROSS_INCLUDE_DIR' is used only for a cross compiler. GNU CC
doesn't install anything there.
--- 631,638 ----
target independent header files in that directory.
`LOCAL_INCLUDE_DIR' is used only for a native compiler. It is
! normally `/gnu/include'. GNU CC searches this directory so that users
! can install header files in `/gnu/include'.
`CROSS_INCLUDE_DIR' is used only for a cross compiler. GNU CC
doesn't install anything there.
diff -rc --new-file /src/baseline/gcc-2.5.8/gcc.info-7 gcc-2.5.8/gcc.info-7
*** /src/baseline/gcc-2.5.8/gcc.info-7 Sat Nov 27 15:38:49 1993
--- gcc-2.5.8/gcc.info-7 Tue May 3 14:10:15 1994
***************
*** 1,4 ****
! This is Info file gcc.info, produced by Makeinfo-1.54 from the input
file gcc.texi.
This file documents the use and the internals of the GNU compiler.
--- 1,4 ----
! This is Info file gcc.info, produced by Makeinfo-1.55 from the input
file gcc.texi.
This file documents the use and the internals of the GNU compiler.
diff -rc --new-file /src/baseline/gcc-2.5.8/gcc.info-8 gcc-2.5.8/gcc.info-8
*** /src/baseline/gcc-2.5.8/gcc.info-8 Sat Nov 27 15:38:54 1993
--- gcc-2.5.8/gcc.info-8 Tue May 3 14:10:16 1994
***************
*** 1,4 ****
! This is Info file gcc.info, produced by Makeinfo-1.54 from the input
file gcc.texi.
This file documents the use and the internals of the GNU compiler.
--- 1,4 ----
! This is Info file gcc.info, produced by Makeinfo-1.55 from the input
file gcc.texi.
This file documents the use and the internals of the GNU compiler.
***************
*** 509,516 ****
* In previous versions of GNU CC, the `gcc' driver program looked for
`as' and `ld' in various places; for example, in files beginning
! with `/usr/local/lib/gcc-'. GNU CC version 2 looks for them in
! the directory `/usr/local/lib/gcc-lib/TARGET/VERSION'.
Thus, to use a version of `as' or `ld' that is not the system
default, for example `gas' or GNU `ld', you must put them in that
--- 509,516 ----
* In previous versions of GNU CC, the `gcc' driver program looked for
`as' and `ld' in various places; for example, in files beginning
! with `/gnu/lib/gcc-'. GNU CC version 2 looks for them in the
! directory `/gnu/lib/gcc-lib/TARGET/VERSION'.
Thus, to use a version of `as' or `ld' that is not the system
default, for example `gas' or GNU `ld', you must put them in that
***************
*** 680,687 ****
* On System V, if you get an error like this,
! /usr/local/lib/bison.simple: In function `yyparse':
! /usr/local/lib/bison.simple:625: virtual memory exhausted
that too indicates a problem with disk space, ULIMIT, or `MAXUMEM'.
--- 680,687 ----
* On System V, if you get an error like this,
! /gnu/lib/bison.simple: In function `yyparse':
! /gnu/lib/bison.simple:625: virtual memory exhausted
that too indicates a problem with disk space, ULIMIT, or `MAXUMEM'.
***************
*** 871,877 ****
Instead, you should use these options (when compiling C programs):
! -I/usr/local/lib/gcc-lib/TARGET/VERSION/include -I/usr/include
For C++ programs, GNU CC also uses a special directory that
defines C++ interfaces to standard C subroutines. This directory
--- 871,877 ----
Instead, you should use these options (when compiling C programs):
! -I/gnu/lib/gcc-lib/TARGET/VERSION/include -I/usr/include
For C++ programs, GNU CC also uses a special directory that
defines C++ interfaces to standard C subroutines. This directory
***************
*** 880,886 ****
C++ programs and specifying include directories explicitly, use
this option first, then the two options above:
! -I/usr/local/lib/g++-include
* On some SGI systems, when you use `-lgl_s' as an option, it gets
translated magically to `-lgl_s -lX11_s -lc_s'. Naturally, this
--- 880,886 ----
C++ programs and specifying include directories explicitly, use
this option first, then the two options above:
! -I/gnu/lib/g++-include
* On some SGI systems, when you use `-lgl_s' as an option, it gets
translated magically to `-lgl_s -lX11_s -lc_s'. Naturally, this
***************
*** 1098,1104 ****
with the ordinary C compiler. If you do so, you must specify the
following options:
! -L/usr/local/lib/gcc-lib/we32k-att-sysv/2.5 -lgcc -lc_s
The first specifies where to find the library `libgcc.a' specified
with the `-lgcc' option.
--- 1098,1104 ----
with the ordinary C compiler. If you do so, you must specify the
following options:
! -L/gnu/lib/gcc-lib/we32k-att-sysv/2.5 -lgcc -lc_s
The first specifies where to find the library `libgcc.a' specified
with the `-lgcc' option.
***************
*** 1167,1173 ****
If you have installed GNU malloc as a separate library package,
use this option when you relink GNU CC:
! MALLOC=/usr/local/lib/libgmalloc.a
Alternatively, if you have compiled `gmalloc.c' from Emacs 19, copy
the object file to `gmalloc.o' and use this option when you relink
--- 1167,1173 ----
If you have installed GNU malloc as a separate library package,
use this option when you relink GNU CC:
! MALLOC=/gnu/lib/libgmalloc.a
Alternatively, if you have compiled `gmalloc.c' from Emacs 19, copy
the object file to `gmalloc.o' and use this option when you relink
diff -rc --new-file /src/baseline/gcc-2.5.8/gcc.info-9 gcc-2.5.8/gcc.info-9
*** /src/baseline/gcc-2.5.8/gcc.info-9 Sat Nov 27 15:38:54 1993
--- gcc-2.5.8/gcc.info-9 Tue May 3 14:10:17 1994
***************
*** 1,4 ****
! This is Info file gcc.info, produced by Makeinfo-1.54 from the input
file gcc.texi.
This file documents the use and the internals of the GNU compiler.
--- 1,4 ----
! This is Info file gcc.info, produced by Makeinfo-1.55 from the input
file gcc.texi.
This file documents the use and the internals of the GNU compiler.
diff -rc --new-file /src/baseline/gcc-2.5.8/gcc.texi gcc-2.5.8/gcc.texi
*** /src/baseline/gcc-2.5.8/gcc.texi Sat Nov 27 15:13:22 1993
--- gcc-2.5.8/gcc.texi Tue Feb 22 11:27:42 1994
***************
*** 1075,1083 ****
@item
In previous versions of GNU CC, the @code{gcc} driver program looked for
@code{as} and @code{ld} in various places; for example, in files
! beginning with @file{/usr/local/lib/gcc-}. GNU CC version 2 looks for
them in the directory
! @file{/usr/local/lib/gcc-lib/@var{target}/@var{version}}.
Thus, to use a version of @code{as} or @code{ld} that is not the system
default, for example @code{gas} or GNU @code{ld}, you must put them in
--- 1075,1083 ----
@item
In previous versions of GNU CC, the @code{gcc} driver program looked for
@code{as} and @code{ld} in various places; for example, in files
! beginning with @file{/gnu/lib/gcc-}. GNU CC version 2 looks for
them in the directory
! @file{/gnu/lib/gcc-lib/@var{target}/@var{version}}.
Thus, to use a version of @code{as} or @code{ld} that is not the system
default, for example @code{gas} or GNU @code{ld}, you must put them in
***************
*** 1276,1283 ****
On System V, if you get an error like this,
@example
! /usr/local/lib/bison.simple: In function `yyparse':
! /usr/local/lib/bison.simple:625: virtual memory exhausted
@end example
@noindent
--- 1276,1283 ----
On System V, if you get an error like this,
@example
! /gnu/lib/bison.simple: In function `yyparse':
! /gnu/lib/bison.simple:625: virtual memory exhausted
@end example
@noindent
***************
*** 1507,1513 ****
Instead, you should use these options (when compiling C programs):
@smallexample
! -I/usr/local/lib/gcc-lib/@var{target}/@var{version}/include -I/usr/include
@end smallexample
For C++ programs, GNU CC also uses a special directory that defines C++
--- 1507,1513 ----
Instead, you should use these options (when compiling C programs):
@smallexample
! -I/gnu/lib/gcc-lib/@var{target}/@var{version}/include -I/usr/include
@end smallexample
For C++ programs, GNU CC also uses a special directory that defines C++
***************
*** 1518,1524 ****
options above:
@example
! -I/usr/local/lib/g++-include
@end example
@ignore
--- 1518,1524 ----
options above:
@example
! -I/gnu/lib/g++-include
@end example
@ignore
***************
*** 1789,1795 ****
options:
@smallexample
! -L/usr/local/lib/gcc-lib/we32k-att-sysv/2.5 -lgcc -lc_s
@end smallexample
The first specifies where to find the library @file{libgcc.a}
--- 1789,1795 ----
options:
@smallexample
! -L/gnu/lib/gcc-lib/we32k-att-sysv/2.5 -lgcc -lc_s
@end smallexample
The first specifies where to find the library @file{libgcc.a}
***************
*** 1869,1875 ****
option when you relink GNU CC:
@example
! MALLOC=/usr/local/lib/libgmalloc.a
@end example
Alternatively, if you have compiled @file{gmalloc.c} from Emacs 19, copy
--- 1869,1875 ----
option when you relink GNU CC:
@example
! MALLOC=/gnu/lib/libgmalloc.a
@end example
Alternatively, if you have compiled @file{gmalloc.c} from Emacs 19, copy
diff -rc --new-file /src/baseline/gcc-2.5.8/genconfig.c gcc-2.5.8/genconfig.c
*** /src/baseline/gcc-2.5.8/genconfig.c Tue Oct 13 00:11:48 1992
--- gcc-2.5.8/genconfig.c Tue Feb 22 11:23:23 1994
***************
*** 303,310 ****
--- 303,318 ----
printf ("/* Generated automatically by the program `genconfig'\n\
from the machine description file `md'. */\n\n");
+ #ifdef amigados
+ /* this constant probably better be 14 in general, or a cross compiling
+ host might choke on some amigados header files... */
+
+ /* Allow at least 14 operands for the sake of asm constructs. */
+ max_recog_operands = 14;
+ #else
/* Allow at least 10 operands for the sake of asm constructs. */
max_recog_operands = 9; /* We will add 1 later. */
+ #endif
max_dup_operands = 1;
/* Read the machine description. */
diff -rc --new-file /src/baseline/gcc-2.5.8/gstdarg.h gcc-2.5.8/gstdarg.h
*** /src/baseline/gcc-2.5.8/gstdarg.h Fri Nov 12 21:54:16 1993
--- gcc-2.5.8/gstdarg.h Tue Feb 22 11:23:26 1994
***************
*** 157,160 ****
--- 157,166 ----
#endif /* __GNUC__ */
#endif /* not _ANSI_STDARG_H_ */
+ #ifdef amigados
+ # ifndef _VA_LIST
+ # define _VA_LIST
+ typedef __gnuc_va_list va_list;
+ # endif
+ #endif /* amigados */
#endif /* not _STDARG_H */
diff -rc --new-file /src/baseline/gcc-2.5.8/gstddef.h gcc-2.5.8/gstddef.h
*** /src/baseline/gcc-2.5.8/gstddef.h Fri Dec 3 07:47:17 1993
--- gcc-2.5.8/gstddef.h Tue Feb 22 11:23:31 1994
***************
*** 3,8 ****
--- 3,48 ----
#ifndef _ANSI_STDDEF_H
#ifndef __STDDEF_H__
+ #ifdef amigados
+
+ /* GNU libc has special support in this file, 4.3bsd-net2 libc deserves that
+ just as well. The system headers are ANSI compliant, the used compiler IS
+ gcc, so it's really ok to use the system header, no reason to hassle
+ with a jungle of ifdefs. Besides, amigados is only defined if compiling
+ with host=amigados, it doesn't apply if compiling with target=amigados
+ on a different host with possibly different system headers. Same thing
+ would apply to gstdarg.h and gvarargs.h, but those headers are more
+ easily fixable than this one and I'm sick of writing the same comment
+ there as well. MW
+
+ Include the contents of <stddef.h> inline rather than with a #include,
+ to avoid infinite include recursion when this file is installed in
+ gcc's include directory as stddef.h. (fnf) */
+
+ #define _STDDEF_H_
+
+ #include <machine/ansi.h>
+
+ typedef _PTRDIFF_T_ ptrdiff_t;
+
+ #ifdef _SIZE_T_
+ typedef _SIZE_T_ size_t;
+ #undef _SIZE_T_
+ #endif
+
+ #ifdef _WCHAR_T_
+ typedef _WCHAR_T_ wchar_t;
+ #undef _WCHAR_T_
+ #endif
+
+ #ifndef NULL
+ #define NULL 0
+ #endif
+
+ #define offsetof(type, member) ((size_t)(&((type *)0)->member))
+
+ #else /* not amigados */
+
/* Any one of these symbols __need_* means that GNU libc
wants us just to define one data type. So don't define
the symbols that indicate this file's entire job has been done. */
***************
*** 172,177 ****
--- 212,219 ----
#ifndef __WCHAR_TYPE__
#define __WCHAR_TYPE__ int
#endif
+
+ #endif /* not amigados */
#ifdef __GNUG__
/* In C++, wchar_t is a distinct basic type,
and we can expect __wchar_t to be defined by cc1plus. */
diff -rc --new-file /src/baseline/gcc-2.5.8/gvarargs.h gcc-2.5.8/gvarargs.h
*** /src/baseline/gcc-2.5.8/gvarargs.h Sat Nov 13 04:33:41 1993
--- gcc-2.5.8/gvarargs.h Tue Feb 22 11:23:35 1994
***************
*** 156,162 ****
/* The macro _VA_LIST_T_H is used in the Bull dpx2 */
#ifndef _VA_LIST_T_H
#define _VA_LIST_T_H
! #if !(defined (__BSD_NET2__) || defined (____386BSD____) || defined (__bsdi__) || defined (__sequent__))
#define _VA_LIST_
#endif
#define _VA_LIST
--- 156,162 ----
/* The macro _VA_LIST_T_H is used in the Bull dpx2 */
#ifndef _VA_LIST_T_H
#define _VA_LIST_T_H
! #if !(defined (__BSD_NET2__) || defined (____386BSD____) || defined (__bsdi__) || defined (__sequent__) || defined (__amigados__))
#define _VA_LIST_
#endif
#define _VA_LIST
***************
*** 172,176 ****
--- 172,183 ----
#ifdef _BSD_VA_LIST
#undef _BSD_VA_LIST
#endif
+
+ #ifdef amigados
+ # ifndef _VA_LIST
+ # define _VA_LIST
+ typedef __gnuc_va_list va_list;
+ # endif
+ #endif /* amigados */
#endif /* __GNUC__ */
diff -rc --new-file /src/baseline/gcc-2.5.8/install.texi gcc-2.5.8/install.texi
*** /src/baseline/gcc-2.5.8/install.texi Wed Nov 24 16:09:49 1993
--- gcc-2.5.8/install.texi Tue Feb 22 11:27:48 1994
***************
*** 599,618 ****
@end itemize
@item
! The standard directory for installing GNU CC is @file{/usr/local/lib}.
If you want to install its files somewhere else, specify
@samp{--prefix=@var{dir}} when you run @file{configure}. Here @var{dir}
! is a directory name to use instead of @file{/usr/local} for all purposes
! with one exception: the directory @file{/usr/local/include} is searched
for header files no matter where you install the compiler.
@item
Specify @samp{--local-prefix=@var{dir}} if you want the compiler to
search directory @file{@var{dir}/include} for header files
! @emph{instead} of @file{/usr/local/include}. (This is for systems that
have different conventions for where to put site-specific things.)
! Unless you have a convention other than @file{/usr/local} for
site-specific files, it is a bad idea to specify @samp{--local-prefix}.
@cindex Bison parser generator
--- 599,618 ----
@end itemize
@item
! The standard directory for installing GNU CC is @file{/gnu/lib}.
If you want to install its files somewhere else, specify
@samp{--prefix=@var{dir}} when you run @file{configure}. Here @var{dir}
! is a directory name to use instead of @file{/gnu} for all purposes
! with one exception: the directory @file{/gnu/include} is searched
for header files no matter where you install the compiler.
@item
Specify @samp{--local-prefix=@var{dir}} if you want the compiler to
search directory @file{@var{dir}/include} for header files
! @emph{instead} of @file{/gnu/include}. (This is for systems that
have different conventions for where to put site-specific things.)
! Unless you have a convention other than @file{/gnu} for
site-specific files, it is a bad idea to specify @samp{--local-prefix}.
@cindex Bison parser generator
***************
*** 673,679 ****
If you are building with a previous GNU C compiler, do not
use @samp{CC=gcc} on the make command or by editing the Makefile.
Instead, use a full pathname to specify the compiler, such as
! @samp{CC=/usr/local/bin/gcc}. This is because make might execute
the @file{gcc} in the current directory before all of the
compiler components have been built.
--- 673,679 ----
If you are building with a previous GNU C compiler, do not
use @samp{CC=gcc} on the make command or by editing the Makefile.
Instead, use a full pathname to specify the compiler, such as
! @samp{CC=/gnu/bin/gcc}. This is because make might execute
the @file{gcc} in the current directory before all of the
compiler components have been built.
***************
*** 827,840 ****
@noindent
This copies the files @file{cc1}, @file{cpp} and @file{libgcc.a} to
files @file{cc1}, @file{cpp} and @file{libgcc.a} in the directory
! @file{/usr/local/lib/gcc-lib/@var{target}/@var{version}}, which is where
the compiler driver program looks for them. Here @var{target} is the
target machine type specified when you ran @file{configure}, and
@var{version} is the version number of GNU CC. This naming scheme
permits various versions and/or cross-compilers to coexist.
This also copies the driver program @file{xgcc} into
! @file{/usr/local/bin/gcc}, so that it appears in typical execution
search paths.
On some systems, this command causes recompilation of some files. This
--- 827,840 ----
@noindent
This copies the files @file{cc1}, @file{cpp} and @file{libgcc.a} to
files @file{cc1}, @file{cpp} and @file{libgcc.a} in the directory
! @file{/gnu/lib/gcc-lib/@var{target}/@var{version}}, which is where
the compiler driver program looks for them. Here @var{target} is the
target machine type specified when you ran @file{configure}, and
@var{version} is the version number of GNU CC. This naming scheme
permits various versions and/or cross-compilers to coexist.
This also copies the driver program @file{xgcc} into
! @file{/gnu/bin/gcc}, so that it appears in typical execution
search paths.
On some systems, this command causes recompilation of some files. This
***************
*** 1021,1027 ****
If you have a cross-assembler and cross-linker available, you should
install them now. Put them in the directory
! @file{/usr/local/@var{target}/bin}. Here is a table of the tools
you should put in this directory:
@table @file
--- 1021,1027 ----
If you have a cross-assembler and cross-linker available, you should
install them now. Put them in the directory
! @file{/gnu/@var{target}/bin}. Here is a table of the tools
you should put in this directory:
@table @file
***************
*** 1052,1065 ****
If you want to install libraries to use with the cross-compiler, such as
a standard C library, put them in the directory
! @file{/usr/local/@var{target}/lib}; installation of GNU CC copies all
all the files in that subdirectory into the proper place for GNU CC to
find them and link with them. Here's an example of copying some
libraries from a target machine:
@example
ftp @var{target-machine}
! lcd /usr/local/@var{target}/lib
cd /lib
get libc.a
cd /usr/lib
--- 1052,1065 ----
If you want to install libraries to use with the cross-compiler, such as
a standard C library, put them in the directory
! @file{/gnu/@var{target}/lib}; installation of GNU CC copies all
all the files in that subdirectory into the proper place for GNU CC to
find them and link with them. Here's an example of copying some
libraries from a target machine:
@example
ftp @var{target-machine}
! lcd /gnu/@var{target}/lib
cd /lib
get libc.a
cd /usr/lib
***************
*** 1075,1081 ****
@cindex start files
Many targets require ``start files'' such as @file{crt0.o} and
@file{crtn.o} which are linked into each executable; these too should be
! placed in @file{/usr/local/@var{target}/lib}. There may be several
alternatives for @file{crt0.o}, for use with profiling or other
compilation options. Check your target's definition of
@code{STARTFILE_SPEC} to find out what start files it uses.
--- 1075,1081 ----
@cindex start files
Many targets require ``start files'' such as @file{crt0.o} and
@file{crtn.o} which are linked into each executable; these too should be
! placed in @file{/gnu/@var{target}/lib}. There may be several
alternatives for @file{crt0.o}, for use with profiling or other
compilation options. Check your target's definition of
@code{STARTFILE_SPEC} to find out what start files it uses.
***************
*** 1083,1089 ****
@example
ftp @var{target-machine}
! lcd /usr/local/@var{target}/lib
prompt
cd /lib
mget *crt*.o
--- 1083,1089 ----
@example
ftp @var{target-machine}
! lcd /gnu/@var{target}/lib
prompt
cd /lib
mget *crt*.o
***************
*** 1201,1207 ****
cross-compiling.
When you have found suitable header files, put them in
! @file{/usr/local/@var{target}/include}, before building the cross
compiler. Then installation will run fixincludes properly and install
the corrected versions of the header files where the compiler will use
them.
--- 1201,1207 ----
cross-compiling.
When you have found suitable header files, put them in
! @file{/gnu/@var{target}/include}, before building the cross
compiler. Then installation will run fixincludes properly and install
the corrected versions of the header files where the compiler will use
them.
***************
*** 1222,1228 ****
@example
ftp @var{target-machine}
! lcd /usr/local/@var{target}/include
get tarfile
quit
tar xf tarfile
--- 1222,1228 ----
@example
ftp @var{target-machine}
! lcd /gnu/@var{target}/include
get tarfile
quit
tar xf tarfile
***************
*** 1283,1289 ****
@samp{dist} subdirectory. You would need to install GAS in the file
@example
! /usr/local/lib/gcc-lib/@var{configuration}/@var{gccversion}/as
@end example
@noindent
--- 1283,1289 ----
@samp{dist} subdirectory. You would need to install GAS in the file
@example
! /gnu/lib/gcc-lib/@var{configuration}/@var{gccversion}/as
@end example
@noindent
***************
*** 1915,1922 ****
installs only target independent header files in that directory.
@code{LOCAL_INCLUDE_DIR} is used only for a native compiler. It is
! normally @file{/usr/local/include}. GNU CC searches this directory so
! that users can install header files in @file{/usr/local/include}.
@code{CROSS_INCLUDE_DIR} is used only for a cross compiler. GNU CC
doesn't install anything there.
--- 1915,1922 ----
installs only target independent header files in that directory.
@code{LOCAL_INCLUDE_DIR} is used only for a native compiler. It is
! normally @file{/gnu/include}. GNU CC searches this directory so
! that users can install header files in @file{/gnu/include}.
@code{CROSS_INCLUDE_DIR} is used only for a cross compiler. GNU CC
doesn't install anything there.
diff -rc --new-file /src/baseline/gcc-2.5.8/invoke.texi gcc-2.5.8/invoke.texi
*** /src/baseline/gcc-2.5.8/invoke.texi Thu Nov 11 09:32:01 1993
--- gcc-2.5.8/invoke.texi Tue Feb 22 11:27:55 1994
***************
*** 2079,2085 ****
For each subprogram to be run, the compiler driver first tries the
@samp{-B} prefix, if any. If that name is not found, or if @samp{-B}
was not specified, the driver tries two standard prefixes, which are
! @file{/usr/lib/gcc/} and @file{/usr/local/lib/gcc-lib/}. If neither of
those results in a file name that is found, the unmodified program
name is searched for using the directories specified in your
@samp{PATH} environment variable.
--- 2079,2085 ----
For each subprogram to be run, the compiler driver first tries the
@samp{-B} prefix, if any. If that name is not found, or if @samp{-B}
was not specified, the driver tries two standard prefixes, which are
! @file{/usr/lib/gcc/} and @file{/gnu/lib/gcc-lib/}. If neither of
those results in a file name that is found, the unmodified program
name is searched for using the directories specified in your
@samp{PATH} environment variable.
***************
*** 2145,2155 ****
The @samp{-b} and @samp{-V} options actually work by controlling part of
the file name used for the executable files and libraries used for
compilation. A given version of GNU CC, for a given target machine, is
! normally kept in the directory @file{/usr/local/lib/gcc-lib/@var{machine}/@var{version}}.@refill
Thus, sites can customize the effect of @samp{-b} or @samp{-V} either by
changing the names of these directories or adding alternate names (or
! symbolic links). If in directory @file{/usr/local/lib/gcc-lib/} the
file @file{80386} is a link to the file @file{i386v}, then @samp{-b
80386} becomes an alias for @samp{-b i386v}.
--- 2145,2155 ----
The @samp{-b} and @samp{-V} options actually work by controlling part of
the file name used for the executable files and libraries used for
compilation. A given version of GNU CC, for a given target machine, is
! normally kept in the directory @file{/gnu/lib/gcc-lib/@var{machine}/@var{version}}.@refill
Thus, sites can customize the effect of @samp{-b} or @samp{-V} either by
changing the names of these directories or adding alternate names (or
! symbolic links). If in directory @file{/gnu/lib/gcc-lib/} the
file @file{80386} is a link to the file @file{i386v}, then @samp{-b
80386} becomes an alias for @samp{-b i386v}.
***************
*** 3526,3536 ****
In addition, the prefix is used in an unusual way in finding the
directories to search for header files. For each of the standard
! directories whose name normally begins with @samp{/usr/local/lib/gcc-lib}
(more precisely, with the value of @code{GCC_INCLUDE_DIR}), GNU CC tries
replacing that beginning with the specified prefix to produce an
alternate directory name. Thus, with @samp{-Bfoo/}, GNU CC will search
! @file{foo/bar} where it would normally search @file{/usr/local/lib/bar}.
These alternate directories are searched first; the standard directories
come next.
--- 3526,3536 ----
In addition, the prefix is used in an unusual way in finding the
directories to search for header files. For each of the standard
! directories whose name normally begins with @samp{/gnu/lib/gcc-lib}
(more precisely, with the value of @code{GCC_INCLUDE_DIR}), GNU CC tries
replacing that beginning with the specified prefix to produce an
alternate directory name. Thus, with @samp{-Bfoo/}, GNU CC will search
! @file{foo/bar} where it would normally search @file{/gnu/lib/bar}.
These alternate directories are searched first; the standard directories
come next.
***************
*** 3641,3647 ****
@table @code
@item -B @var{directory}
Look for the file @file{SYSCALLS.c.X} in @var{directory}, instead of the
! usual directory (normally @file{/usr/local/lib}). This file contains
prototype information about standard system functions. This option
applies only to @code{protoize}.
--- 3641,3647 ----
@table @code
@item -B @var{directory}
Look for the file @file{SYSCALLS.c.X} in @var{directory}, instead of the
! usual directory (normally @file{/gnu/lib}). This file contains
prototype information about standard system functions. This option
applies only to @code{protoize}.
diff -rc --new-file /src/baseline/gcc-2.5.8/machmode.h gcc-2.5.8/machmode.h
*** /src/baseline/gcc-2.5.8/machmode.h Sun Jun 27 21:18:48 1993
--- gcc-2.5.8/machmode.h Tue Feb 22 11:23:39 1994
***************
*** 92,98 ****
/* Get the name of mode MODE as a string. */
! extern char *mode_name[];
#define GET_MODE_NAME(MODE) (mode_name[(int)(MODE)])
enum mode_class { MODE_RANDOM, MODE_INT, MODE_FLOAT, MODE_PARTIAL_INT, MODE_CC,
--- 92,98 ----
/* Get the name of mode MODE as a string. */
! extern char * const mode_name[];
#define GET_MODE_NAME(MODE) (mode_name[(int)(MODE)])
enum mode_class { MODE_RANDOM, MODE_INT, MODE_FLOAT, MODE_PARTIAL_INT, MODE_CC,
***************
*** 101,107 ****
/* Get the general kind of object that mode MODE represents
(integer, floating, complex, etc.) */
! extern enum mode_class mode_class[];
#define GET_MODE_CLASS(MODE) (mode_class[(int)(MODE)])
/* Nonzero if MODE is an integral mode. */
--- 101,107 ----
/* Get the general kind of object that mode MODE represents
(integer, floating, complex, etc.) */
! extern const enum mode_class mode_class[];
#define GET_MODE_CLASS(MODE) (mode_class[(int)(MODE)])
/* Nonzero if MODE is an integral mode. */
***************
*** 117,128 ****
/* Get the size in bytes of an object of mode MODE. */
! extern int mode_size[];
#define GET_MODE_SIZE(MODE) (mode_size[(int)(MODE)])
/* Get the size in bytes of the basic parts of an object of mode MODE. */
! extern int mode_unit_size[];
#define GET_MODE_UNIT_SIZE(MODE) (mode_unit_size[(int)(MODE)])
/* Get the number of units in the object. */
--- 117,128 ----
/* Get the size in bytes of an object of mode MODE. */
! extern const int mode_size[];
#define GET_MODE_SIZE(MODE) (mode_size[(int)(MODE)])
/* Get the size in bytes of the basic parts of an object of mode MODE. */
! extern const int mode_unit_size[];
#define GET_MODE_UNIT_SIZE(MODE) (mode_unit_size[(int)(MODE)])
/* Get the number of units in the object. */
***************
*** 144,150 ****
/* Get the next wider natural mode (eg, QI -> HI -> SI -> DI -> TI). */
! extern enum machine_mode mode_wider_mode[];
#define GET_MODE_WIDER_MODE(MODE) (mode_wider_mode[(int)(MODE)])
/* Return the mode for data of a given size SIZE and mode class CLASS.
--- 144,150 ----
/* Get the next wider natural mode (eg, QI -> HI -> SI -> DI -> TI). */
! extern const enum machine_mode mode_wider_mode[];
#define GET_MODE_WIDER_MODE(MODE) (mode_wider_mode[(int)(MODE)])
/* Return the mode for data of a given size SIZE and mode class CLASS.
diff -rc --new-file /src/baseline/gcc-2.5.8/objc-parse.c gcc-2.5.8/objc-parse.c
*** /src/baseline/gcc-2.5.8/objc-parse.c Sat Nov 27 07:34:19 1993
--- gcc-2.5.8/objc-parse.c Tue Feb 22 11:23:46 1994
***************
*** 1529,1535 ****
53
};
/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
! #line 3 "/usr/local/lib/bison.simple"
/* Skeleton output parser for bison,
Copyright (C) 1984, 1989, 1990 Bob Corbett and Richard Stallman
--- 1529,1535 ----
53
};
/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
! #line 3 "/usr/lib/bison.simple"
/* Skeleton output parser for bison,
Copyright (C) 1984, 1989, 1990 Bob Corbett and Richard Stallman
***************
*** 1710,1733 ****
#endif
#endif
! #line 184 "/usr/local/lib/bison.simple"
!
! /* The user can define YYPARSE_PARAM as the name of an argument to be passed
! into yyparse. The argument should have type void *.
! It should actually point to an object.
! Grammar actions can access the variable by casting it
! to the proper pointer type. */
!
! #ifdef YYPARSE_PARAM
! #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
! #else
! #define YYPARSE_PARAM
! #define YYPARSE_PARAM_DECL
! #endif
!
int
! yyparse(YYPARSE_PARAM)
! YYPARSE_PARAM_DECL
{
register int yystate;
register int yyn;
--- 1710,1718 ----
#endif
#endif
! #line 184 "/usr/lib/bison.simple"
int
! yyparse()
{
register int yystate;
register int yyn;
***************
*** 4516,4522 ****
break;}
}
/* the action file gets copied in in place of this dollarsign */
! #line 480 "/usr/local/lib/bison.simple"
yyvsp -= yylen;
yyssp -= yylen;
--- 4501,4507 ----
break;}
}
/* the action file gets copied in in place of this dollarsign */
! #line 465 "/usr/lib/bison.simple"
yyvsp -= yylen;
yyssp -= yylen;
diff -rc --new-file /src/baseline/gcc-2.5.8/print-tree.c gcc-2.5.8/print-tree.c
*** /src/baseline/gcc-2.5.8/print-tree.c Wed Oct 27 01:55:26 1993
--- gcc-2.5.8/print-tree.c Tue Feb 22 11:23:51 1994
***************
*** 24,30 ****
extern char **tree_code_name;
! extern char *mode_name[];
void print_node ();
void indent_to ();
--- 24,30 ----
extern char **tree_code_name;
! extern char *const mode_name[];
void print_node ();
void indent_to ();
diff -rc --new-file /src/baseline/gcc-2.5.8/protoize.c gcc-2.5.8/protoize.c
*** /src/baseline/gcc-2.5.8/protoize.c Wed Nov 24 15:31:26 1993
--- gcc-2.5.8/protoize.c Tue Feb 22 11:28:02 1994
***************
*** 202,208 ****
/* Define a default place to find the SYSCALLS.X file. */
#ifndef STD_PROTO_DIR
! #define STD_PROTO_DIR "/usr/local/lib"
#endif /* !defined (STD_PROTO_DIR) */
/* Suffix of aux_info files. */
--- 202,208 ----
/* Define a default place to find the SYSCALLS.X file. */
#ifndef STD_PROTO_DIR
! #define STD_PROTO_DIR "/gnu/lib"
#endif /* !defined (STD_PROTO_DIR) */
/* Suffix of aux_info files. */
***************
*** 266,276 ****
just as it is done in cccp.c. */
#ifndef STANDARD_INCLUDE_DIR
! #define STANDARD_INCLUDE_DIR "/usr/include"
#endif
#ifndef LOCAL_INCLUDE_DIR
! #define LOCAL_INCLUDE_DIR "/usr/local/include"
#endif
struct default_include { const char *fname; int cplusplus; } include_defaults[]
--- 266,276 ----
just as it is done in cccp.c. */
#ifndef STANDARD_INCLUDE_DIR
! #define STANDARD_INCLUDE_DIR "/gnu/include"
#endif
#ifndef LOCAL_INCLUDE_DIR
! #define LOCAL_INCLUDE_DIR "/local/include"
#endif
struct default_include { const char *fname; int cplusplus; } include_defaults[]
***************
*** 839,846 ****
--- 839,851 ----
{
struct default_include *p;
+ #ifdef FILE_NAME_ABSOLUTE_P
+ if (! FILE_NAME_ABSOLUTE_P (path))
+ abort ();
+ #else
if (path[0] != '/')
abort (); /* Must be an absolutized filename. */
+ #endif
for (p = include_defaults; p->fname; p++)
if (!strncmp (path, p->fname, strlen (p->fname))
***************
*** 1267,1273 ****
--- 1272,1282 ----
{
const char *src_p;
+ #ifdef FILE_NAME_ABSOLUTE_P
+ if (! FILE_NAME_ABSOLUTE_P (rel_filename))
+ #else
if (rel_filename[0] != '/')
+ #endif
{
src_p = cwd2;
while (*endp++ = *src_p++)
***************
*** 1530,1535 ****
--- 1539,1563 ----
return ++q;
}
+ /* Use this macro to advance a char * over the filename part in a line
+ read from an aux-info file. */
+
+ #ifndef amigados
+ /* Version for file systems where the colon has no special meaning */
+ #define ADVANCE_PAST_FILENAME(CP) \
+ while (* (CP) != ':') (CP)++
+ #else
+ /* Have to heuristically decide whether the colon is part of the filename
+ or whether it serves to delimit the filename from the line number. If
+ it's the latter case, then the character following the colon *must*
+ be a digit. Note that this heuristic fails if the filename starts
+ with a digit. */
+ #define ADVANCE_PAST_FILENAME(CP) \
+ while ((CP)[0] != ':' || !isdigit ((CP)[1])) \
+ (CP)++;
+ #endif
+
+
/* Given a line from an aux info file, and a time at which the aux info
file it came from was created, check to see if the item described in
the line comes from a file which has been modified since the aux info
***************
*** 1551,1558 ****
{
const char *filename_start = p = l + 3;
! while (*p != ':')
! p++;
filename = (char *) alloca ((size_t) (p - filename_start) + 1);
strncpy (filename, filename_start, (size_t) (p - filename_start));
filename[p-filename_start] = '\0';
--- 1579,1585 ----
{
const char *filename_start = p = l + 3;
! ADVANCE_PAST_FILENAME (p);
filename = (char *) alloca ((size_t) (p - filename_start) + 1);
strncpy (filename, filename_start, (size_t) (p - filename_start));
filename[p-filename_start] = '\0';
***************
*** 1609,1616 ****
const char *filename_start = p = l + 3;
char *filename;
! while (*p != ':')
! p++;
filename = (char *) alloca ((size_t) (p - filename_start) + 1);
strncpy (filename, filename_start, (size_t) (p - filename_start));
filename[p-filename_start] = '\0';
--- 1636,1642 ----
const char *filename_start = p = l + 3;
char *filename;
! ADVANCE_PAST_FILENAME (p);
filename = (char *) alloca ((size_t) (p - filename_start) + 1);
strncpy (filename, filename_start, (size_t) (p - filename_start));
filename[p-filename_start] = '\0';
***************
*** 2330,2336 ****
{
char *p = aux_info_base;
! while (*p != ':')
p++;
p++;
while (*p == ' ')
--- 2356,2364 ----
{
char *p = aux_info_base;
! /* have to make sure at least one space is following the colon to make
! sure the colon is not part of the filename */
! while (*p != ':' && p[1] != ' ')
p++;
p++;
while (*p == ' ')
***************
*** 2344,2350 ****
continue;
aux_info_second_line = p;
aux_info_relocated_name = 0;
! if (invocation_filename[0] != '/')
{
/* INVOCATION_FILENAME is relative;
append it to BASE_SOURCE_FILENAME's dir. */
--- 2372,2382 ----
continue;
aux_info_second_line = p;
aux_info_relocated_name = 0;
! #ifdef FILE_NAME_ABSOLUTE_P
! if (! FILE_NAME_ABSOLUTE_P (invocation_filename))
! #else
! if (invocation_filename[0] != '/')
! #endif
{
/* INVOCATION_FILENAME is relative;
append it to BASE_SOURCE_FILENAME's dir. */
***************
*** 2432,2438 ****
#ifndef UNPROTOIZE
/* Check an individual filename for a .c suffix. If the filename has this
! suffix, rename the file such that its suffix is changed to .C. This
function implements the -C option. */
static void
--- 2464,2470 ----
#ifndef UNPROTOIZE
/* Check an individual filename for a .c suffix. If the filename has this
! suffix, rename the file such that its suffix is changed to .cc. This
function implements the -C option. */
static void
***************
*** 2441,2447 ****
{
const char *filename = hp->symbol;
int last_char_index = strlen (filename) - 1;
! char *const new_filename = (char *) alloca (strlen (filename) + 1);
/* Note that we don't care here if the given file was converted or not. It
is possible that the given file was *not* converted, simply because there
--- 2473,2479 ----
{
const char *filename = hp->symbol;
int last_char_index = strlen (filename) - 1;
! char *const new_filename = (char *) alloca (strlen (filename) + 2);
/* Note that we don't care here if the given file was converted or not. It
is possible that the given file was *not* converted, simply because there
***************
*** 2453,2460 ****
return;
strcpy (new_filename, filename);
! new_filename[last_char_index] = 'C';
if (my_link (filename, new_filename) == -1)
{
fprintf (stderr, "%s: warning: can't link file `%s' to `%s': %s\n",
--- 2485,2509 ----
return;
strcpy (new_filename, filename);
! strcat (new_filename + last_char_index, "cc");
!
! /* use rename(2) if available !! Update config files to include HAVE_rename
! if the used OS provides it. Advantages are: it's atomic, it's one
! system call compared to two. */
+ #ifdef HAVE_rename
+ /* if the mentioned systems (POSIX 1003.1-1988) have rename(2), this has
+ to be changed to `my_rename' as well. */
+
+ if (rename (filename, new_filename) == -1)
+ {
+ fprintf (stderr, "%s: warning: can't rename file `%s' to `%s': %s\n",
+ pname, shortpath (NULL, filename),
+ shortpath (NULL, new_filename), sys_errlist[errno]);
+ errors++;
+ return;
+ }
+ #else
if (my_link (filename, new_filename) == -1)
{
fprintf (stderr, "%s: warning: can't link file `%s' to `%s': %s\n",
***************
*** 2471,2476 ****
--- 2520,2526 ----
errors++;
return;
}
+ #endif
}
#endif /* !defined (UNPROTOIZE) */
diff -rc --new-file /src/baseline/gcc-2.5.8/real.c gcc-2.5.8/real.c
*** /src/baseline/gcc-2.5.8/real.c Wed Oct 13 15:46:38 1993
--- gcc-2.5.8/real.c Tue Feb 22 11:24:04 1994
***************
*** 4333,4341 ****
if (y[NE - 1] == 0x7fff)
{
if (sign)
! sprintf (wstring, " -Infinity ");
else
! sprintf (wstring, " Infinity ");
goto bxit;
}
--- 4333,4341 ----
if (y[NE - 1] == 0x7fff)
{
if (sign)
! sprintf (wstring, " -NaN ");
else
! sprintf (wstring, " NaN ");
goto bxit;
}
diff -rc --new-file /src/baseline/gcc-2.5.8/rtl.c gcc-2.5.8/rtl.c
*** /src/baseline/gcc-2.5.8/rtl.c Thu Oct 7 17:05:00 1993
--- gcc-2.5.8/rtl.c Tue Feb 22 11:24:10 1994
***************
*** 50,56 ****
#define DEF_RTL_EXPR(ENUM, NAME, FORMAT, CLASS) NAME ,
! char *rtx_name[] = {
#include "rtl.def" /* rtl expressions are documented here */
};
--- 50,56 ----
#define DEF_RTL_EXPR(ENUM, NAME, FORMAT, CLASS) NAME ,
! char * const rtx_name[] = {
#include "rtl.def" /* rtl expressions are documented here */
};
***************
*** 61,67 ****
#define DEF_MACHMODE(SYM, NAME, CLASS, SIZE, UNIT, WIDER) NAME,
! char *mode_name[(int) MAX_MACHINE_MODE] = {
#include "machmode.def"
#ifdef EXTRA_CC_MODES
--- 61,67 ----
#define DEF_MACHMODE(SYM, NAME, CLASS, SIZE, UNIT, WIDER) NAME,
! char * const mode_name[(int) MAX_MACHINE_MODE] = {
#include "machmode.def"
#ifdef EXTRA_CC_MODES
***************
*** 77,83 ****
#define DEF_MACHMODE(SYM, NAME, CLASS, SIZE, UNIT, WIDER) CLASS,
! enum mode_class mode_class[(int) MAX_MACHINE_MODE] = {
#include "machmode.def"
};
--- 77,83 ----
#define DEF_MACHMODE(SYM, NAME, CLASS, SIZE, UNIT, WIDER) CLASS,
! const enum mode_class mode_class[(int) MAX_MACHINE_MODE] = {
#include "machmode.def"
};
***************
*** 88,94 ****
#define DEF_MACHMODE(SYM, NAME, CLASS, SIZE, UNIT, WIDER) SIZE,
! int mode_size[(int) MAX_MACHINE_MODE] = {
#include "machmode.def"
};
--- 88,94 ----
#define DEF_MACHMODE(SYM, NAME, CLASS, SIZE, UNIT, WIDER) SIZE,
! const int mode_size[(int) MAX_MACHINE_MODE] = {
#include "machmode.def"
};
***************
*** 99,105 ****
#define DEF_MACHMODE(SYM, NAME, CLASS, SIZE, UNIT, WIDER) UNIT,
! int mode_unit_size[(int) MAX_MACHINE_MODE] = {
#include "machmode.def" /* machine modes are documented here */
};
--- 99,105 ----
#define DEF_MACHMODE(SYM, NAME, CLASS, SIZE, UNIT, WIDER) UNIT,
! const int mode_unit_size[(int) MAX_MACHINE_MODE] = {
#include "machmode.def" /* machine modes are documented here */
};
***************
*** 112,118 ****
#define DEF_MACHMODE(SYM, NAME, CLASS, SIZE, UNIT, WIDER) \
(enum machine_mode) WIDER,
! enum machine_mode mode_wider_mode[(int) MAX_MACHINE_MODE] = {
#include "machmode.def" /* machine modes are documented here */
};
--- 112,118 ----
#define DEF_MACHMODE(SYM, NAME, CLASS, SIZE, UNIT, WIDER) \
(enum machine_mode) WIDER,
! const enum machine_mode mode_wider_mode[(int) MAX_MACHINE_MODE] = {
#include "machmode.def" /* machine modes are documented here */
};
***************
*** 126,132 ****
rtx's of that code. The sequence is a C string in which
each character describes one operand. */
! char *rtx_format[] = {
/* "*" undefined.
can cause a warning message
"0" field is unused (or used in a phase-dependent manner)
--- 126,132 ----
rtx's of that code. The sequence is a C string in which
each character describes one operand. */
! char *const rtx_format[] = {
/* "*" undefined.
can cause a warning message
"0" field is unused (or used in a phase-dependent manner)
***************
*** 157,163 ****
/* Indexed by rtx code, gives a character representing the "class" of
that rtx code. See rtl.def for documentation on the defined classes. */
! char rtx_class[] = {
#define DEF_RTL_EXPR(ENUM, NAME, FORMAT, CLASS) CLASS,
#include "rtl.def" /* rtl expressions are defined here */
#undef DEF_RTL_EXPR
--- 157,163 ----
/* Indexed by rtx code, gives a character representing the "class" of
that rtx code. See rtl.def for documentation on the defined classes. */
! const char rtx_class[] = {
#define DEF_RTL_EXPR(ENUM, NAME, FORMAT, CLASS) CLASS,
#include "rtl.def" /* rtl expressions are defined here */
#undef DEF_RTL_EXPR
***************
*** 165,171 ****
/* Names for kinds of NOTEs and REG_NOTEs. */
! char *note_insn_name[] = { 0 , "NOTE_INSN_DELETED",
"NOTE_INSN_BLOCK_BEG", "NOTE_INSN_BLOCK_END",
"NOTE_INSN_LOOP_BEG", "NOTE_INSN_LOOP_END",
"NOTE_INSN_FUNCTION_END", "NOTE_INSN_SETJMP",
--- 165,171 ----
/* Names for kinds of NOTEs and REG_NOTEs. */
! char * const note_insn_name[] = { 0 , "NOTE_INSN_DELETED",
"NOTE_INSN_BLOCK_BEG", "NOTE_INSN_BLOCK_END",
"NOTE_INSN_LOOP_BEG", "NOTE_INSN_LOOP_END",
"NOTE_INSN_FUNCTION_END", "NOTE_INSN_SETJMP",
***************
*** 173,179 ****
"NOTE_INSN_PROLOGUE_END", "NOTE_INSN_EPILOGUE_BEG",
"NOTE_INSN_DELETED_LABEL", "NOTE_INSN_FUNCTION_BEG"};
! char *reg_note_name[] = { "", "REG_DEAD", "REG_INC", "REG_EQUIV", "REG_WAS_0",
"REG_EQUAL", "REG_RETVAL", "REG_LIBCALL",
"REG_NONNEG", "REG_NO_CONFLICT", "REG_UNUSED",
"REG_CC_SETTER", "REG_CC_USER", "REG_LABEL",
--- 173,180 ----
"NOTE_INSN_PROLOGUE_END", "NOTE_INSN_EPILOGUE_BEG",
"NOTE_INSN_DELETED_LABEL", "NOTE_INSN_FUNCTION_BEG"};
! char * const reg_note_name[] =
! { "", "REG_DEAD", "REG_INC", "REG_EQUIV", "REG_WAS_0",
"REG_EQUAL", "REG_RETVAL", "REG_LIBCALL",
"REG_NONNEG", "REG_NO_CONFLICT", "REG_UNUSED",
"REG_CC_SETTER", "REG_CC_USER", "REG_LABEL",
diff -rc --new-file /src/baseline/gcc-2.5.8/rtl.h gcc-2.5.8/rtl.h
*** /src/baseline/gcc-2.5.8/rtl.h Wed Sep 29 18:34:24 1993
--- gcc-2.5.8/rtl.h Tue Feb 22 11:24:14 1994
***************
*** 44,56 ****
extern int rtx_length[];
#define GET_RTX_LENGTH(CODE) (rtx_length[(int)(CODE)])
! extern char *rtx_name[];
#define GET_RTX_NAME(CODE) (rtx_name[(int)(CODE)])
! extern char *rtx_format[];
#define GET_RTX_FORMAT(CODE) (rtx_format[(int)(CODE)])
! extern char rtx_class[];
#define GET_RTX_CLASS(CODE) (rtx_class[(int)(CODE)])
/* Common union for an element of an rtx. */
--- 44,56 ----
extern int rtx_length[];
#define GET_RTX_LENGTH(CODE) (rtx_length[(int)(CODE)])
! extern char * const rtx_name[];
#define GET_RTX_NAME(CODE) (rtx_name[(int)(CODE)])
! extern char * const rtx_format[];
#define GET_RTX_FORMAT(CODE) (rtx_format[(int)(CODE)])
! extern const char rtx_class[];
#define GET_RTX_CLASS(CODE) (rtx_class[(int)(CODE)])
/* Common union for an element of an rtx. */
***************
*** 331,337 ****
/* Names for REG_NOTE's in EXPR_LIST insn's. */
! extern char *reg_note_name[];
#define GET_REG_NOTE_NAME(MODE) (reg_note_name[(int)(MODE)])
/* The label-number of a code-label. The assembler label
--- 331,337 ----
/* Names for REG_NOTE's in EXPR_LIST insn's. */
! extern char *const reg_note_name[];
#define GET_REG_NOTE_NAME(MODE) (reg_note_name[(int)(MODE)])
/* The label-number of a code-label. The assembler label
***************
*** 408,414 ****
/* Names for NOTE insn's other than line numbers. */
! extern char *note_insn_name[];
#define GET_NOTE_INSN_NAME(NOTE_CODE) (note_insn_name[-(NOTE_CODE)])
/* The name of a label, in case it corresponds to an explicit label
--- 408,414 ----
/* Names for NOTE insn's other than line numbers. */
! extern char *const note_insn_name[];
#define GET_NOTE_INSN_NAME(NOTE_CODE) (note_insn_name[-(NOTE_CODE)])
/* The name of a label, in case it corresponds to an explicit label
diff -rc --new-file /src/baseline/gcc-2.5.8/scan-types.sh gcc-2.5.8/scan-types.sh
*** /src/baseline/gcc-2.5.8/scan-types.sh Tue Oct 26 19:01:02 1993
--- gcc-2.5.8/scan-types.sh Tue Feb 22 11:24:18 1994
***************
*** 1,4 ****
! #! /bin/sh
# Deduce values of standard ANSI and POSIX types (e.g. size_t, pid_t).
# Emits macros definitions for these, and some other types.
# Intended to be used to massage the sys-protos.h file.
--- 1,4 ----
! #!/bin/sh
# Deduce values of standard ANSI and POSIX types (e.g. size_t, pid_t).
# Emits macros definitions for these, and some other types.
# Intended to be used to massage the sys-protos.h file.
diff -rc --new-file /src/baseline/gcc-2.5.8/tm.texi gcc-2.5.8/tm.texi
*** /src/baseline/gcc-2.5.8/tm.texi Thu Nov 11 09:45:26 1993
--- gcc-2.5.8/tm.texi Tue Feb 22 11:28:11 1994
***************
*** 205,211 ****
@findex STANDARD_EXEC_PREFIX
@item STANDARD_EXEC_PREFIX
Define this macro as a C string constant if you wish to override the
! standard choice of @file{/usr/local/lib/gcc-lib/} as the default prefix to
try when searching for the executable files of the compiler.
@findex MD_EXEC_PREFIX
--- 205,211 ----
@findex STANDARD_EXEC_PREFIX
@item STANDARD_EXEC_PREFIX
Define this macro as a C string constant if you wish to override the
! standard choice of @file{/gnu/lib/gcc-lib/} as the default prefix to
try when searching for the executable files of the compiler.
@findex MD_EXEC_PREFIX
***************
*** 218,224 ****
@findex STANDARD_STARTFILE_PREFIX
@item STANDARD_STARTFILE_PREFIX
Define this macro as a C string constant if you wish to override the
! standard choice of @file{/usr/local/lib/} as the default prefix to
try when searching for startup files such as @file{crt0.o}.
@findex MD_STARTFILE_PREFIX
--- 218,224 ----
@findex STANDARD_STARTFILE_PREFIX
@item STANDARD_STARTFILE_PREFIX
Define this macro as a C string constant if you wish to override the
! standard choice of @file{/gnu/lib/} as the default prefix to
try when searching for startup files such as @file{crt0.o}.
@findex MD_STARTFILE_PREFIX
***************
*** 237,248 ****
@findex LOCAL_INCLUDE_DIR
@item LOCAL_INCLUDE_DIR
Define this macro as a C string constant if you wish to override the
! standard choice of @file{/usr/local/include} as the default prefix to
try when searching for local header files. @code{LOCAL_INCLUDE_DIR}
comes before @code{SYSTEM_INCLUDE_DIR} in the search order.
Cross compilers do not use this macro and do not search either
! @file{/usr/local/include} or its replacement.
@findex SYSTEM_INCLUDE_DIR
@item SYSTEM_INCLUDE_DIR
--- 237,248 ----
@findex LOCAL_INCLUDE_DIR
@item LOCAL_INCLUDE_DIR
Define this macro as a C string constant if you wish to override the
! standard choice of @file{/gnu/include} as the default prefix to
try when searching for local header files. @code{LOCAL_INCLUDE_DIR}
comes before @code{SYSTEM_INCLUDE_DIR} in the search order.
Cross compilers do not use this macro and do not search either
! @file{/gnu/include} or its replacement.
@findex SYSTEM_INCLUDE_DIR
@item SYSTEM_INCLUDE_DIR
diff -rc --new-file /src/baseline/gcc-2.5.8/toplev.c gcc-2.5.8/toplev.c
*** /src/baseline/gcc-2.5.8/toplev.c Fri Dec 10 20:59:54 1993
--- gcc-2.5.8/toplev.c Tue Feb 22 11:24:24 1994
***************
*** 504,509 ****
--- 504,510 ----
{"unroll-all-loops", &flag_unroll_all_loops, 1},
{"writable-strings", &flag_writable_strings, 1},
{"peephole", &flag_no_peephole, 0},
+ {"large-baserel", &flag_pic, 4},
{"force-mem", &flag_force_mem, 1},
{"force-addr", &flag_force_addr, 1},
{"function-cse", &flag_no_function_cse, 0},
***************
*** 522,527 ****
--- 523,529 ----
{"schedule-insns2", &flag_schedule_insns_after_reload, 1},
{"pic", &flag_pic, 1},
{"PIC", &flag_pic, 2},
+ {"baserel", &flag_pic, 3},
{"fast-math", &flag_fast_math, 1},
{"common", &flag_no_common, 0},
{"inhibit-size-directive", &flag_inhibit_size_directive, 1},
***************
*** 1530,1535 ****
--- 1532,1540 ----
FILE *asm_file;
char *input_name;
{
+ #ifdef FILE_NAME_NONDIRECTORY
+ char *na = FILE_NAME_NONDIRECTORY (input_name);
+ #else
int len = strlen (input_name);
char *na = input_name + len;
***************
*** 1540,1545 ****
--- 1545,1551 ----
break;
na--;
}
+ #endif
#ifdef ASM_OUTPUT_MAIN_SOURCE_FILENAME
ASM_OUTPUT_MAIN_SOURCE_FILENAME (asm_file, na);
***************
*** 3507,3512 ****
--- 3513,3519 ----
#ifndef OS2
#ifndef VMS
+ #ifndef amigados
if (flag_print_mem)
{
char *lim = (char *) sbrk (0);
***************
*** 3521,3526 ****
--- 3528,3534 ----
system ("ps v");
#endif /* not USG */
}
+ #endif /* not amigados */
#endif /* not VMS */
#endif /* not OS2 */
diff -rc --new-file /src/baseline/gcc-2.5.8/tree.c gcc-2.5.8/tree.c
*** /src/baseline/gcc-2.5.8/tree.c Tue Jan 4 08:36:01 1994
--- gcc-2.5.8/tree.c Tue Feb 22 11:24:31 1994
***************
*** 248,254 ****
/* Unique id for next type created. */
static int next_type_uid = 1;
! extern char *mode_name[];
void gcc_obstack_init ();
static tree stabilize_reference_1 ();
--- 248,254 ----
/* Unique id for next type created. */
static int next_type_uid = 1;
! extern char *const mode_name[];
void gcc_obstack_init ();
static tree stabilize_reference_1 ();