This is the "crossgcc" patch for gcc 2.8.1. It makes gcc-2.8.1 build using the "one-tree" method. To apply this patch: cd gcc-2.8.1 patch -p1 < this-file Send comments or bug reports to crossgcc@cygnus.com. Tue May 19 22:31:20 1998 Jeffrey A Law (law@cygnus.com) * Makefile.in (deduced.h): Only run scan-types if $(SYSTEM_HEADER_DIR) exists. (stmp-fixproto): Simlarly for running fixproto. * cross-make (SYSTEM_HEADER_DIR): Now $(tooldir)/sys-include. Fri Oct 10 13:46:56 1997 Doug Evans * configure.in: Handle --with-newlib. * Makefile.in (LIBGCC2_CFLAGS): Add @inhibit_libc@. Sun Sep 7 09:59:08 1997 Jan-Jaap van der Heijden (J.J.vanderHeijden@student.utwente.nl) * configure.in: Make symlink to as-new rather than as.new. Similarly for ld-new. * configure: Rebuilt. * config/i386/x-go32: New file. * configure.in: Don't build objc unless --enable-objc. (i386-go32): Set xmake_file to x-go32. * configure: Regenerate. diff -rcp2N /tege/gcc/gcc-2.8.1/config/i386/x-go32 ./config/i386/x-go32 *** /tege/gcc/gcc-2.8.1/config/i386/x-go32 Wed Dec 31 16:00:00 1969 --- ./config/i386/x-go32 Sat Mar 15 16:44:28 1997 *************** *** 0 **** --- 1,2 ---- + # FIXME: Protoize doesn't build on go32, so disable it. + LANGUAGES = c c++ objective-c *** /tege/gcc/gcc-2.8.1/configure.in Sat Feb 28 12:58:12 1998 --- ./configure.in Thu Jul 9 13:09:00 1998 *************** *** 860,865 **** --- 860,866 ---- xm_file=i386/xm-go32.h tm_file=i386/go32.h tmake_file=i386/t-go32 + xmake_file=i386/x-go32 ;; i[[34567]]86-pc-msdosdjgpp*) xm_file=i386/xm-go32.h *************** *** 3017,3031 **** # If we have gas in the build tree, make a link to it. if [[ -f ../gas/Makefile ]]; then ! rm -f as; $symbolic_link ../gas/as.new as 2>/dev/null fi # If we have ld in the build tree, make a link to it. if [[ -f ../ld/Makefile ]]; then if [[ x$use_collect2 = x ]]; then ! rm -f ld; $symbolic_link ../ld/ld.new ld 2>/dev/null else ! rm -f collect-ld; $symbolic_link ../ld/ld.new collect-ld 2>/dev/null fi fi --- 3018,3032 ---- # If we have gas in the build tree, make a link to it. if [[ -f ../gas/Makefile ]]; then ! rm -f as; $symbolic_link ../gas/as-new as 2>/dev/null fi # If we have ld in the build tree, make a link to it. if [[ -f ../ld/Makefile ]]; then if [[ x$use_collect2 = x ]]; then ! rm -f ld; $symbolic_link ../ld/ld-new ld 2>/dev/null else ! rm -f collect-ld; $symbolic_link ../ld/ld-new collect-ld 2>/dev/null fi fi *************** *** 3038,3043 **** --- 3039,3051 ---- # The odd quoting in the next line works around # an apparent bug in bash 1.12 on linux. ${srcdir}/[[*]]/config-lang.in) ;; + # Don't build objc unless explicitly enabled since it doesn't + # "just work" in cross compilers (stdio.h,ctype.h "missing"). + ${srcdir}/objc/config-lang.in) + if [[ x$enable_objc = xyes ]]; then + subdirs="$subdirs `echo $lang | sed -e 's,^.*/\([[^/]]*\)/config-lang.in$,\1,'`" + fi + ;; *) subdirs="$subdirs `echo $lang | sed -e 's,^.*/\([[^/]]*\)/config-lang.in$,\1,'`" ;; esac done *************** *** 3162,3167 **** --- 3170,3185 ---- fi echo "source ${srcdir}/.gdbinit" >> .gdbinit fi + + # If this is using newlib, then define inhibit_libc in + # LIBGCC2_CFLAGS. This will cause __eprintf to be left out of + # libgcc.a, but that's OK because newib should have its own version of + # assert.h. + inhibit_libc= + if [[ x$with_newlib = xyes ]]; then + inhibit_libc=-Dinhibit_libc + fi + AC_SUBST(inhibit_libc) # Process the language and host/target makefile fragments. ${CONFIG_SHELL-/bin/sh} $srcdir/configure.frag $srcdir "$subdirs" "$dep_host_xmake_file" "$dep_tmake_file" *** /tege/gcc/gcc-2.8.1/configure Sat Feb 28 18:02:02 1998 --- ./configure Thu Jul 9 13:09:17 1998 *************** *** 3354,3359 **** --- 3354,3360 ---- xm_file=i386/xm-go32.h tm_file=i386/go32.h tmake_file=i386/t-go32 + xmake_file=i386/x-go32 ;; i[34567]86-pc-msdosdjgpp*) xm_file=i386/xm-go32.h *************** *** 5511,5525 **** # If we have gas in the build tree, make a link to it. if [ -f ../gas/Makefile ]; then ! rm -f as; $symbolic_link ../gas/as.new as 2>/dev/null fi # If we have ld in the build tree, make a link to it. if [ -f ../ld/Makefile ]; then if [ x$use_collect2 = x ]; then ! rm -f ld; $symbolic_link ../ld/ld.new ld 2>/dev/null else ! rm -f collect-ld; $symbolic_link ../ld/ld.new collect-ld 2>/dev/null fi fi --- 5512,5526 ---- # If we have gas in the build tree, make a link to it. if [ -f ../gas/Makefile ]; then ! rm -f as; $symbolic_link ../gas/as-new as 2>/dev/null fi # If we have ld in the build tree, make a link to it. if [ -f ../ld/Makefile ]; then if [ x$use_collect2 = x ]; then ! rm -f ld; $symbolic_link ../ld/ld-new ld 2>/dev/null else ! rm -f collect-ld; $symbolic_link ../ld/ld-new collect-ld 2>/dev/null fi fi *************** *** 5532,5537 **** --- 5533,5545 ---- # The odd quoting in the next line works around # an apparent bug in bash 1.12 on linux. ${srcdir}/[*]/config-lang.in) ;; + # Don't build objc unless explicitly enabled since it doesn't + # "just work" in cross compilers (stdio.h,ctype.h "missing"). + ${srcdir}/objc/config-lang.in) + if [ x$enable_objc = xyes ]; then + subdirs="$subdirs `echo $lang | sed -e 's,^.*/\([^/]*\)/config-lang.in$,\1,'`" + fi + ;; *) subdirs="$subdirs `echo $lang | sed -e 's,^.*/\([^/]*\)/config-lang.in$,\1,'`" ;; esac done *************** *** 5657,5662 **** --- 5665,5681 ---- echo "source ${srcdir}/.gdbinit" >> .gdbinit fi + + # If this is using newlib, then define inhibit_libc in + # LIBGCC2_CFLAGS. This will cause __eprintf to be left out of + # libgcc.a, but that's OK because newib should have its own version of + # assert.h. + inhibit_libc= + if [ x$with_newlib = xyes ]; then + inhibit_libc=-Dinhibit_libc + fi + + # Process the language and host/target makefile fragments. ${CONFIG_SHELL-/bin/sh} $srcdir/configure.frag $srcdir "$subdirs" "$dep_host_xmake_file" "$dep_tmake_file" *************** *** 5905,5910 **** --- 5924,5930 ---- s%@CPP@%$CPP%g s%@manext@%$manext%g s%@objext@%$objext%g + s%@inhibit_libc@%$inhibit_libc%g s%@subdirs@%$subdirs%g s%@all_languages@%$all_languages%g s%@all_boot_languages@%$all_boot_languages%g *** /tege/gcc/gcc-2.8.1/Makefile.in.~1~ Mon Mar 2 17:54:31 1998 --- ./Makefile.in Thu Jul 9 12:04:56 1998 *************** *** 276,282 **** # we use this here because that should be enough, and also # so that -g1 will be tested. LIBGCC2_DEBUG_CFLAGS = -g1 ! LIBGCC2_CFLAGS = -O2 $(LIBGCC2_INCLUDES) $(GCC_CFLAGS) $(TARGET_LIBGCC2_CFLAGS) $(LIBGCC2_DEBUG_CFLAGS) -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -fexceptions # Additional options to use when compiling libgcc2.a. # Some targets override this to -Iinclude --- 276,282 ---- # we use this here because that should be enough, and also # so that -g1 will be tested. LIBGCC2_DEBUG_CFLAGS = -g1 ! LIBGCC2_CFLAGS = -O2 $(LIBGCC2_INCLUDES) $(GCC_CFLAGS) $(TARGET_LIBGCC2_CFLAGS) $(LIBGCC2_DEBUG_CFLAGS) -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -fexceptions @inhibit_libc@ # Additional options to use when compiling libgcc2.a. # Some targets override this to -Iinclude *************** *** 1935,1944 **** # Files related to the fixproto script. deduced.h: $(GCC_PASSES) $(srcdir)/scan-types.sh stmp-int-hdrs ! CC="$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(ALL_CPPFLAGS) -I. -I$(srcdir) -Iinclude -I${SYSTEM_HEADER_DIR}"; \ export CC; \ ! $(SHELL) $(srcdir)/scan-types.sh "$(srcdir)" >tmp-deduced.h ! mv tmp-deduced.h deduced.h gen-protos: gen-protos.o scan.o cppalloc.o $(HOST_LIBDEPS) ${HOST_CC} $(HOST_CFLAGS) $(HOST_LDFLAGS) -o $@ \ --- 1935,1949 ---- # Files related to the fixproto script. deduced.h: $(GCC_PASSES) $(srcdir)/scan-types.sh stmp-int-hdrs ! if [ -d $(SYSTEM_HEADER_DIR) ]; \ ! then \ ! CC="$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(ALL_CPPFLAGS) -I. -I$(srcdir) -Iinclude -I${SYSTEM_HEADER_DIR}"; \ export CC; \ ! $(SHELL) $(srcdir)/scan-types.sh "$(srcdir)" >tmp-deduced.h; \ ! mv tmp-deduced.h deduced.h; \ ! else \ ! touch deduced.h; \ ! fi gen-protos: gen-protos.o scan.o cppalloc.o $(HOST_LIBDEPS) ${HOST_CC} $(HOST_CFLAGS) $(HOST_LDFLAGS) -o $@ \ *************** *** 1992,1998 **** else \ : This line works around a 'make' bug in BSDI 1.1.; \ FIXPROTO_DEFINES="$(FIXPROTO_DEFINES)"; export FIXPROTO_DEFINES; \ ! $(SHELL) ${srcdir}/fixproto include include $(SYSTEM_HEADER_DIR); \ touch include/fixed; \ fi touch stmp-fixproto --- 1997,2005 ---- else \ : This line works around a 'make' bug in BSDI 1.1.; \ FIXPROTO_DEFINES="$(FIXPROTO_DEFINES)"; export FIXPROTO_DEFINES; \ ! if [ -d $(SYSTEM_HEADER_DIR) ] ; then \ ! $(SHELL) ${srcdir}/fixproto include include $(SYSTEM_HEADER_DIR); \ ! else true; fi; \ touch include/fixed; \ fi touch stmp-fixproto *** /tege/gcc/gcc-2.8.1/cross-make Sat Feb 10 12:12:59 1996 --- ./cross-make Thu Jul 9 14:26:38 1998 *************** *** 12,18 **** 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. ALL = all.cross --- 12,19 ---- RANLIB_TEST = $(RANLIB_TEST_FOR_TARGET) # Dir to search for system headers. Normally /usr/include. ! # Use CROSS_INCLUDE_DIR not TOOL_INCLUDE_DIR for other vendor's headers. ! SYSTEM_HEADER_DIR = $(tooldir)/sys-include # Don't try to compile the things we can't compile. ALL = all.cross