diff options
Diffstat (limited to 'gcc')
165 files changed, 201 insertions, 1848 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9a7bc72cbab..fee0ec8a250 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,93 @@ +2001-05-16 Zack Weinberg <zackw@stanford.edu> + + * libgcc1-test.c, libgcc1.c, config/i386/perform.h: Delete file. + + * Makefile.in: Delete variables: OLDCC, CCLIBFLAGS, OLDAR, + OLDAR_FLAGS, LIBGCC1, LIBGCC1_TEST, CROSS_LIBGCC1, + LIB1FUNCS, and LIB1FUNCS_EXTRA. Delete rules: libgcc1-test, + libgcc1-test.o. Clarify commentary now that libgcc1 no longer exists. + * cross-make: Don't set LIBGCC1. + * mklibgcc.in: Delete all code for building from libgcc1.c. + Always honor LIB1ASMFUNCS if set. + + * crtstuff.c, floatlib.c, longlong.h, config/fp-bit.c, + config/arc/lib1funcs.asm, config/arm/lib1funcs.asm, + config/d30v/libgcc1.asm, config/fr30/lib1funcs.asm, + config/h8300/lib1funcs.asm, config/i386/cygwin.asm, + config/i386/uwin.asm, config/m68hc11/larith.asm, + config/m68k/lb1sf68.asm, config/mcore/lib1.asm, + config/mn10200/lib1funcs.asm, config/sh/lib1funcs.asm, + config/sparc/lb1spc.asm, config/sparc/lb1spl.asm, + config/v850/lib1funcs.asm, config/c4x/libgcc.S: + Delete or update references to libgcc1 in commentary. + + * config/t-libc-ok, config/t-linux, config/t-linux-aout, + config/t-netbsd, config/a29k/t-a29kbare, config/a29k/t-vx29k, + config/alpha/t-interix, config/alpha/t-osf, config/alpha/t-vms, + config/arc/t-arc, config/arm/t-arm-aout, config/arm/t-arm-coff, + config/arm/t-arm-elf, config/arm/t-linux, config/arm/t-pe, + config/arm/t-semi, config/arm/t-strongarm-coff, + config/arm/t-strongarm-elf, config/arm/t-strongarm-pe, + config/arm/t-xscale-coff, config/arm/t-xscale-elf, config/avr/t-avr, + config/c4x/t-c4x, config/d30v/t-d30v, config/fr30/t-fr30, + config/h8300/t-h8300, config/i386/t-beos, config/i386/t-cygwin, + config/i386/t-i386elf, config/i386/t-interix, config/i386/t-netware, + config/i386/t-next, config/i386/t-rtems-i386, config/i386/t-sol2, + config/i960/t-960bare, config/i960/t-vxworks960, config/ia64/t-ia64, + config/m32r/t-m32r, config/m68hc11/t-m68hc11-gas, config/m68k/t-lynx, + config/m68k/t-m68kbare, config/m68k/t-m68kelf, + config/m68k/t-mot3300-gald, config/m68k/t-mot3300-gas, + config/m68k/t-next, config/m68k/t-vxworks68, config/m88k/t-bug, + config/m88k/t-dgux, config/m88k/t-dgux-gas, config/m88k/t-dguxbcs, + config/m88k/t-luna, config/m88k/t-luna-gas, config/m88k/t-m88k, + config/m88k/t-m88k-gas, config/m88k/t-sysv4, config/mcore/t-mcore, + config/mcore/t-mcore-pe, config/mips/t-bsd, config/mips/t-bsd-gas, + config/mips/t-cross64, config/mips/t-ecoff, config/mips/t-elf, + config/mips/t-iris6, config/mips/t-r3900, config/mips/t-svr3, + config/mips/t-svr3-gas, config/mips/t-svr4, config/mips/t-svr4-gas, + config/mips/t-ultrix, config/mn10200/t-mn10200, + config/mn10300/t-mn10300, config/pa/t-linux, config/pa/t-linux64, + config/pa/t-pa, config/pa/t-pa64, config/pa/t-pro, + config/pdp11/t-pdp11, config/pj/t-pj, config/rs6000/t-aix43, + config/rs6000/t-beos, config/rs6000/t-darwin, config/rs6000/t-newas, + config/rs6000/t-ppccomm, config/rs6000/t-rs6000, config/sh/t-linux, + config/sh/t-sh, config/sparc/t-chorus-elf, config/sparc/t-elf, + config/sparc/t-sol2, config/sparc/t-sp86x, config/sparc/t-sparcbare, + config/sparc/t-sparclite, config/sparc/t-splet, + config/sparc/t-sunos41, config/sparc/t-vxsparc, + config/sparc/t-vxsparc64, config/v850/t-v850: + Don't set any of LIBGCC1, CROSS_LIBGCC1, or LIBGCC1_TEST. + + * config/alpha/alpha.h, config/i386/i386.h, config/i860/i860.h: + Don't set FLOAT_VALUE_TYPE, FLOAT_ARG_TYPE, INTIFY, or FLOATIFY. + * config/d30v/d30v.h: Don't mention LIBGCC_NEEDS_DOUBLE, + FLOAT_VALUE_TYPE, FLOAT_ARG_TYPE, FLOATIFY, INTIFY, + nongcc_SI_type, nongcc_word_type, or perform_* + * config/i860/fx2800: Don't define perform_umodsi3 or perform_modsi3. + + * config/i386/386bsd.h, config/i386/beos-elf.h, + config/i386/linux-aout.h, config/i386/linux-oldld.h, + config/i386/linux.h, config/i386/mach.h, config/i386/netbsd.h, + config/i386/openbsd.h, config/i386/osfrose.h, config/i386/rtemself.h: + Don't include i386/perform.h. + + * config/a29k/t-a29k, config/arm/t-semiaof, config/i370/t-i370, + config/i370/t-linux, config/i370/t-mvs, config/i370/t-oe, + config/i386/t-djgpp, config/i386/t-i386bare, config/i386/t-vsta, + config/ia64/t-hpux, config/mips/t-mips, config/mips/t-mips-gas, + config/mips/t-osfrose, config/sparc/t-sp64, config/sparc/t-sunos40, + config/vax/t-openbsd, config/vax/t-vax: Delete. + + * config.gcc: Remove references to deleted files. + (arm-semi-aof): Use arm/t-semi for tmake_file. + + * gcc.texi, install.texi, invoke.texi, tm.texi: + Delete or rewrite text which is no longer relevant now that + libgcc1 no longer exists. + + * config/t-openbsd, config/alpha/t-interix, config/i386/t-interix: + No need to set INSTALL_ASSERT_H. (Missed in previous sweep.) + 2001-05-16 Wolfgang Bangerth <wolfgang.bangerth@iwr.uni-heidelberg.de> Bruce Korb <bkorb@gnu.org> diff --git a/gcc/Makefile.in b/gcc/Makefile.in index dbaf8b5daa8..7a7f7009d71 100644 --- a/gcc/Makefile.in +++ b/gcc/Makefile.in @@ -152,20 +152,6 @@ ZLIBINC = @zlibinc@ # Substitution type for target's getgroups 2nd arg. TARGET_GETGROUPS_T = @TARGET_GETGROUPS_T@ -# Compiler to use for compiling libgcc1.a. -# OLDCC should not be the GNU C compiler, -# since that would compile typical libgcc1.a functions such as mulsi3 -# into infinite recursions. -OLDCC = cc - -# CFLAGS for use with OLDCC, for compiling libgcc1.a. -# NOTE: -O does not work on some Unix systems! -CCLIBFLAGS = -O - -# Version of ar to use when compiling libgcc1.a. -OLDAR = ar -OLDAR_FLAGS = qc - # Target to use when installing include directory. Either # install-headers-tar or install-headers-cpio. INSTALL_HEADERS_DIR = @build_install_headers_dir@ @@ -177,7 +163,7 @@ USER_H = $(srcdir)/ginclude/stdarg.h $(srcdir)/ginclude/stddef.h \ $(srcdir)/ginclude/stdbool.h $(srcdir)/ginclude/iso646.h \ $(EXTRA_HEADERS) $(LANG_EXTRA_HEADERS) -# The GCC to use for compiling libgcc.a, enquire, and libgcc1-test. +# The GCC to use for compiling libgcc.a, enquire, and crt*.o. # Usually the one we just built. # Don't use this as a dependency--use $(GCC_PASSES) or $(GCC_PARTS). GCC_FOR_TARGET = ./xgcc -B./ -B$(build_tooldir)/bin/ -isystem $(build_tooldir)/include @@ -368,20 +354,11 @@ VFPRINTF=@vfprintf@ DOPRINT=@doprint@ STRSTR=@strstr@ -# Specify the rule for actually making libgcc.a, +# libgcc.a may be built directly or via stmp-multilib, +# and installed likewise. Overridden by t-fragment. LIBGCC = libgcc.a -# and the rule for installing it. INSTALL_LIBGCC = install-libgcc -# Specify the rule for actually making libgcc1.a. -# The value may be empty; that means to do absolutely nothing -# with or for libgcc1.a. -LIBGCC1 = libgcc1.a - -# Specify the rule for making libgcc1.a for a cross-compiler. -# The default rule assumes that libgcc1.a is supplied by the user. -CROSS_LIBGCC1 = libgcc1.cross - # Options to use when compiling libgcc2.a. # -g1 causes output of debug info only for file-scope entities. # we use this here because that should be enough, and also @@ -402,9 +379,6 @@ LIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/unwind-dw2-fde.c \ $(srcdir)/unwind-sjlj.c LIB2ADDEHDEP = unwind.inc unwind-dw2-fde.h -# libgcc1-test target (must also be overridable for a target) -LIBGCC1_TEST = libgcc1-test - # nm flags to list global symbols in libgcc object files. SHLIB_NM_FLAGS = -pg @@ -436,16 +410,12 @@ EXTRA_HEADERS =@extra_headers_list@ USE_COLLECT2 = @will_use_collect2@ # If we might be using collect2, then this variable will be set to # -DUSE_COLLECT2. toplev.c, collect2.c and libgcc2.c all need to -# if we may be using collect2. +# know if we may be using collect2. MAYBE_USE_COLLECT2 = @maybe_use_collect2@ # It is convenient for configure to add the assignment at the beginning, # so don't override it here. USE_COLLECT2 = collect2$(exeext) -# List of extra C and assembler files to add to libgcc1.a. -# Assembler files should have names ending in `.asm'. -LIB1FUNCS_EXTRA = - # List of extra C and assembler files to add to static and shared libgcc2. # Assembler files should have names ending in `.asm'. LIB2FUNCS_EXTRA = @@ -776,15 +746,6 @@ STAGESTUFF = *$(objext) insn-flags.h insn-config.h insn-codes.h \ gcov$(exeext) *.[0-9][0-9].* *.[si] libcpp.a libbackend.a libgcc.mk \ $(LANG_STAGESTUFF) -# Members of libgcc1.a. -LIB1FUNCS = _mulsi3 _udivsi3 _divsi3 _umodsi3 _modsi3 \ - _lshrsi3 _ashrsi3 _ashlsi3 \ - _divdf3 _muldf3 _negdf2 _adddf3 _subdf3 \ - _fixdfsi _fixsfsi _floatsidf _floatsisf _truncdfsf2 _extendsfdf2 \ - _addsf3 _negsf2 _subsf3 _mulsf3 _divsf3 \ - _eqdf2 _nedf2 _gtdf2 _gedf2 _ltdf2 _ledf2 \ - _eqsf2 _nesf2 _gtsf2 _gesf2 _ltsf2 _lesf2 - # Library members defined in libgcc2.c. LIB2FUNCS = _muldi3 _divdi3 _moddi3 _udivdi3 _umoddi3 _negdi2 \ _lshrdi3 _ashldi3 _ashrdi3 _ffsdi2 _clz \ @@ -952,7 +913,7 @@ all.internal: start.encap rest.encap doc # Note that we can compile enquire using the cross-compiler just built, # although we can't run it on this machine. all.cross: native gcc-cross cpp$(exeext) specs \ - $(LIBGCC) $(LIBGCC1_TEST) $(EXTRA_PARTS) lang.all.cross doc + $(LIBGCC) $(EXTRA_PARTS) lang.all.cross doc # This is what to compile if making gcc with a cross-compiler. all.build: native xgcc$(exeext) cpp$(exeext) $(EXTRA_PARTS) lang.all.build # This is what must be made before installing GCC and converting libraries. @@ -976,15 +937,6 @@ PROTO: proto # This does the things that can't be done on the host machine. rest.cross: $(LIBGCC) specs -# Verify that it works to compile and link libgcc1-test. -# If it does, then there are sufficient replacements for libgcc1.a. -libgcc1-test: libgcc1-test.o native $(GCC_PARTS) - @echo "Testing libgcc1. Ignore linker warning messages." - $(GCC_FOR_TARGET) $(GCC_CFLAGS) libgcc1-test.o -o libgcc1-test \ - -nostartfiles -nostdlib `$(GCC_FOR_TARGET) --print-libgcc-file-name` -libgcc1-test.o: libgcc1-test.c native xgcc$(exeext) stmp-int-hdrs - $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(ALL_CPPFLAGS) -c $(srcdir)/libgcc1-test.c - # Recompile all the language-independent object files. # This is used only if the user explicitly asks for it. compilations: $(BACKEND) @@ -1042,11 +994,7 @@ LIB2ADD_ST = $(LIB2FUNCS_STATIC_EXTRA) libgcc.mk: config.status Makefile mklibgcc $(LIB2ADD) $(LIB2ADD_ST) xgcc$(exeext) objext='$(objext)' \ - OLDCC='$(OLDCC)' \ - LIBGCC1='$(LIBGCC1)' \ - LIB1FUNCS='$(LIB1FUNCS)' \ LIB1ASMFUNCS='$(LIB1ASMFUNCS)' \ - LIB1FUNCS_EXTRA='$(LIB1FUNCS_EXTRA)' \ LIB2FUNCS='$(LIB2FUNCS)' \ LIB2FUNCS_ST='$(LIB2FUNCS_ST)' \ LIB2ADD='$(LIB2ADD)' \ @@ -1071,10 +1019,10 @@ libgcc.mk: config.status Makefile mklibgcc $(LIB2ADD) $(LIB2ADD_ST) xgcc$(exeext # All the things that might cause us to want to recompile bits of libgcc. LIBGCC_DEPS = $(GCC_PASSES) $(LANGUAGES) stmp-int-hdrs $(STMP_FIXPROTO) \ - libgcc.mk $(srcdir)/libgcc1.c $(srcdir)/libgcc2.c $(TCONFIG_H) \ + libgcc.mk $(srcdir)/libgcc2.c $(TCONFIG_H) \ $(MACHMODE_H) longlong.h gbl-ctors.h config.status stmp-int-hdrs \ tsystem.h $(FPBIT) $(DPBIT) $(LIB2ADD) $(LIB2ADD_ST) $(LIB2ADDEH) \ - $(LIB2ADDEHDEP) $(EXTRA_PARTS) + $(LIB2ADDEHDEP) $(EXTRA_PARTS) $(LIB1ASMSRC) libgcc.a: $(LIBGCC_DEPS) $(MAKE) GCC_FOR_TARGET="$(GCC_FOR_TARGET)" \ @@ -1082,7 +1030,6 @@ libgcc.a: $(LIBGCC_DEPS) AR_FOR_TARGET="$(AR_FOR_TARGET)" \ AR_CREATE_FOR_TARGET="$(AR_CREATE_FOR_TARGET)" \ AR_FLAGS_FOR_TARGET="$(AR_FLAGS_FOR_TARGET)" \ - OLDCC="$(OLDCC)" CCLIBFLAGS="$(CCLIBFLAGS)" \ CFLAGS="$(CFLAGS) $(WARN_CFLAGS)" \ RANLIB_FOR_TARGET="$(RANLIB_FOR_TARGET)" \ RANLIB_TEST_FOR_TARGET="$(RANLIB_TEST_FOR_TARGET)" \ @@ -1117,7 +1064,6 @@ stmp-multilib: $(LIBGCC_DEPS) AR_FOR_TARGET="$(AR_FOR_TARGET)" \ AR_CREATE_FOR_TARGET="$(AR_CREATE_FOR_TARGET)" \ AR_FLAGS_FOR_TARGET="$(AR_FLAGS_FOR_TARGET)" \ - OLDCC="$(OLDCC)" CCLIBFLAGS="$(CCLIBFLAGS)" \ CFLAGS="$(CFLAGS) $(WARN_CFLAGS)" \ RANLIB_FOR_TARGET="$(RANLIB_FOR_TARGET)" \ RANLIB_TEST_FOR_TARGET="$(RANLIB_TEST_FOR_TARGET)" \ @@ -2323,8 +2269,7 @@ mostlyclean: $(INTL_MOSTLYCLEAN) lang.mostlyclean -rm -f $(HOST_PREFIX_1)rtl.c -rm -f $(HOST_PREFIX_1)obstack.c # Delete the temp files made in the course of building libgcc.a. - -rm -f xlimits.h libgcc1-test - for name in $(LIB1FUNCS); do rm -f $${name}.c; done + -rm -f xlimits.h # Delete other built files. -rm -f t-float.h-cross xsys-protos.hT # Delete the stamp and temporary files. @@ -2650,7 +2595,6 @@ install-libgcc: libgcc.mk libgcc.a installdirs AR_FOR_TARGET="$(AR_FOR_TARGET)" \ AR_CREATE_FOR_TARGET="$(AR_CREATE_FOR_TARGET)" \ AR_FLAGS_FOR_TARGET="$(AR_FLAGS_FOR_TARGET)" \ - OLDCC="$(OLDCC)" CCLIBFLAGS="$(CCLIBFLAGS)" \ CFLAGS="$(CFLAGS) $(WARN_CFLAGS)" \ RANLIB_TEST_FOR_TARGET="$(RANLIB_TEST_FOR_TARGET)" \ NM_FOR_TARGET="$(NM_FOR_TARGET)" AWK="$(AWK)" \ @@ -2677,7 +2621,6 @@ install-multilib: stmp-multilib installdirs AR_FOR_TARGET="$(AR_FOR_TARGET)" \ AR_CREATE_FOR_TARGET="$(AR_CREATE_FOR_TARGET)" \ AR_FLAGS_FOR_TARGET="$(AR_FLAGS_FOR_TARGET)" \ - OLDCC="$(OLDCC)" CCLIBFLAGS="$(CCLIBFLAGS)" \ CFLAGS="$(CFLAGS) $(WARN_CFLAGS)" \ RANLIB_TEST_FOR_TARGET="$(RANLIB_TEST_FOR_TARGET)" \ NM_FOR_TARGET="$(NM_FOR_TARGET)" AWK="$(AWK)" \ diff --git a/gcc/config.gcc b/gcc/config.gcc index f9d4d09e82a..f9ee01b8492 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -517,7 +517,7 @@ arm-semi-aout | armel-semi-aout) ;; arm-semi-aof | armel-semi-aof) tm_file=arm/semiaof.h - tmake_file=arm/t-semiaof + tmake_file=arm/t-semi ;; arm*-*-netbsd*) tm_file=arm/netbsd.h @@ -866,17 +866,15 @@ i370-*-opened*) # IBM 360/370/390 Architecture xm_defines='POSIX FATAL_EXIT_CODE=12' tm_file=i370/oe.h xmake_file=i370/x-oe - tmake_file=i370/t-oe ;; i370-*-mvs*) xm_defines='POSIX FATAL_EXIT_CODE=12' tm_file=i370/mvs.h - tmake_file=i370/t-mvs ;; i370-*-linux*) xmake_file=x-linux tm_file="i370/linux.h ${tm_file}" - tmake_file="t-linux i370/t-linux" + tmake_file=t-linux # broken_install=yes extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" # extra_parts="crtbegin.o crtend.o" @@ -982,12 +980,10 @@ i386-sun-sunos*) # Sun i386 roadrunner ;; i[34567]86-wrs-vxworks*) tm_file=i386/vxi386.h - tmake_file=i386/t-i386bare thread_file='vxworks' ;; i[34567]86-*-aout*) tm_file=i386/i386-aout.h - tmake_file=i386/t-i386bare ;; i[34567]86-*-beoself* | i[34567]86-*-beos*) xm_defines=POSIX @@ -1007,11 +1003,11 @@ i[34567]86-*-bsd*) # use_collect2=yes ;; i[34567]86-*-freebsd[12] | i[34567]86-*-freebsd[12].* | i[34567]86-*-freebsd*aout*) - tm_file="i386/freebsd-aout.h i386/perform.h" + tm_file=i386/freebsd-aout.h tmake_file=t-freebsd ;; i[34567]86-*-freebsd*) - tm_file="i386/i386.h i386/att.h svr4.h freebsd.h i386/freebsd.h i386/perform.h" + tm_file="i386/i386.h i386/att.h svr4.h freebsd.h i386/freebsd.h" extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" tmake_file=t-freebsd gas=yes @@ -1035,7 +1031,6 @@ i[34567]86-*-openbsd*) ;; i[34567]86-*-coff*) tm_file=i386/i386-coff.h - tmake_file=i386/t-i386bare ;; i[34567]86-*-isc*) # 80386 running ISC system xm_defines=POSIX @@ -1049,7 +1044,6 @@ i[34567]86-*-isc*) # 80386 running ISC system tmake_file=i386/t-crtstuff extra_parts="crtbegin.o crtend.o" fi - tmake_file="$tmake_file i386/t-i386bare" install_headers_dir=install-headers-cpio ;; i[34567]86-*-linux*oldld*) # Intel 80386's running GNU/Linux @@ -1103,7 +1097,6 @@ i[34567]86-go32-msdos | i[34567]86-*-go32*) i[34567]86-pc-msdosdjgpp*) xm_file=i386/xm-djgpp.h tm_file=i386/djgpp.h - tmake_file=i386/t-djgpp xmake_file=i386/x-djgpp gnu_ld=yes gas=yes @@ -1127,7 +1120,6 @@ i[34567]86-*-lynxos*) else tm_file=i386/lynx-ng.h fi - tmake_file=i386/t-i386bare ;; i[34567]86-*-mach*) tm_file=i386/mach.h @@ -1157,7 +1149,7 @@ i[34567]86-go32-rtems*) i[34567]86-*-rtemscoff*) cpu_type=i386 tm_file=i386/rtems.h - tmake_file="i386/t-i386bare t-rtems" + tmake_file=t-rtems if test x$enable_threads = xyes; then thread_file='rtems' fi @@ -1183,7 +1175,6 @@ i[34567]86-*-sco3.2v5*) # 80386 running SCO Open Server 5 else tmake_file=i386/t-sco5 fi - tmake_file="$tmake_file i386/t-i386bare" extra_parts="crti.o crtbegin.o crtend.o crtbeginS.o crtendS.o" ;; i[34567]86-*-solaris2*) @@ -1193,7 +1184,7 @@ i[34567]86-*-solaris2*) # Only needed if gas does not support -s tm_file="i386/sol2gas.h ${tm_file}" fi - tmake_file="i386/t-i386bare i386/t-sol2" + tmake_file=i386/t-sol2 extra_parts="crt1.o crti.o crtn.o gcrt1.o gmon.o crtbegin.o crtend.o" xmake_file=x-svr4 if test x${enable_threads} = x; then @@ -1217,7 +1208,7 @@ i[34567]86-*-sysv5*) # Intel x86 on System V Release 5 then tm_file="${tm_file} dbx.h" fi - tmake_file="i386/t-i386bare i386/t-crtpic" + tmake_file=i386/t-crtpic xmake_file=x-svr4 extra_parts="crtbegin.o crtend.o" if test x$enable_threads = xyes; then @@ -1231,14 +1222,14 @@ i[34567]86-*-sysv4*) # Intel 80386's running system V.4 then tm_file="${tm_file} dbx.h" fi - tmake_file="i386/t-i386bare i386/t-crtpic" + tmake_file=i386/t-crtpic xmake_file=x-svr4 extra_parts="crtbegin.o crtend.o" ;; i[34567]86-*-udk*) # Intel x86 on SCO UW/OSR5 Dev Kit xm_defines=POSIX tm_file=i386/udk.h - tmake_file="i386/t-i386bare i386/t-crtpic i386/t-udk" + tmake_file="i386/t-crtpic i386/t-udk" xmake_file=x-svr4 extra_parts="crtbegin.o crtend.o" install_headers_dir=install-headers-cpio @@ -1280,7 +1271,6 @@ i[34567]86-*-sysv*) # Intel 80386's running system V i386-*-vsta) # Intel 80386's running VSTa kernel xm_file=i386/xm-vsta.h tm_file=i386/vsta.h - tmake_file=i386/t-vsta ;; i[34567]86-*-win32) xm_defines=POSIX @@ -1463,7 +1453,6 @@ ia64*-*-linux*) ;; ia64*-*-hpux*) tm_file="ia64/ia64.h svr4.h ia64/sysv4.h ia64/hpux.h" - tmake_file="ia64/t-ia64 ia64/t-hpux" target_cpu_default="MASK_GNU_AS" if test x$enable_threads = xyes; then thread_file='posix' @@ -2035,7 +2024,6 @@ mips-sni-sysv4) tm_file=mips/sni-svr4.h fi xm_defines=POSIX - tmake_file=mips/t-mips-gas if test x$gnu_ld != xyes then use_collect2=yes @@ -2056,7 +2044,6 @@ mips-sgi-irix5*) # SGI System V.4., IRIX 5 xm_file=mips/xm-iris5.h xmake_file=mips/x-iris # mips-tfile doesn't work yet - tmake_file=mips/t-mips-gas # See comment in mips/iris5.h file. use_collect2=yes # if test x$enable_threads = xyes; then @@ -2071,8 +2058,7 @@ mips-sgi-irix4loser*) # Mostly like a MIPS. xm_defines=POSIX xmake_file=mips/x-iris if test x$gas = xyes - then - tmake_file=mips/t-mips-gas + then : else extra_passes="mips-tfile mips-tdump" fi @@ -2092,8 +2078,7 @@ mips-sgi-irix4*) # Mostly like a MIPS. xm_defines=POSIX xmake_file=mips/x-iris if test x$gas = xyes - then - tmake_file=mips/t-mips-gas + then : else extra_passes="mips-tfile mips-tdump" fi @@ -2112,8 +2097,7 @@ mips-sgi-*) # Mostly like a MIPS. fi xm_defines=POSIX if test x$gas = xyes - then - tmake_file=mips/t-mips-gas + then : else extra_passes="mips-tfile mips-tdump" fi @@ -2124,7 +2108,6 @@ mips-sgi-*) # Mostly like a MIPS. ;; mips-dec-osfrose*) # Decstation running OSF/1 reference port with OSF/rose. tm_file="mips/osfrose.h ${tm_file}" - tmake_file=mips/t-osfrose extra_objs=halfpic.o use_collect2=yes ;; @@ -2134,8 +2117,7 @@ mips-dec-osf*) # Decstation running OSF/1 as shipped by DIGITAL tm_file="${tm_file} dbx.h" fi if test x$gas = xyes - then - tmake_file=mips/t-mips-gas + then : else tmake_file=mips/t-ultrix extra_passes="mips-tfile mips-tdump" @@ -2148,8 +2130,7 @@ mips-dec-osf*) # Decstation running OSF/1 as shipped by DIGITAL mips-dec-bsd*) # Decstation running 4.4 BSD tm_file=mips/dec-bsd.h if test x$gas = xyes - then - tmake_file=mips/t-mips-gas + then : else tmake_file=mips/t-ultrix extra_passes="mips-tfile mips-tdump" @@ -2191,8 +2172,7 @@ mips-sony-bsd* | mips-sony-newsos*) # Sony NEWS 3600 or risc/news. tm_file="${tm_file} dbx.h" fi if test x$gas = xyes - then - tmake_file=mips/t-mips-gas + then : else extra_passes="mips-tfile mips-tdump" fi @@ -2210,8 +2190,7 @@ mips-sony-sysv*) # Sony NEWS 3800 with NEWSOS5.0. fi xm_defines=POSIX if test x$gas = xyes - then - tmake_file=mips/t-mips-gas + then : else extra_passes="mips-tfile mips-tdump" fi @@ -2228,10 +2207,8 @@ mips-tandem-sysv4*) # Tandem S2 running NonStop UX xm_defines=POSIX if test x$gas = xyes then - tmake_file=mips/t-mips-gas extra_parts="crtbegin.o crtend.o" else - tmake_file=mips/t-mips extra_passes="mips-tfile mips-tdump" fi if test x$gnu_ld != xyes @@ -2245,8 +2222,7 @@ mips-*-ultrix* | mips-dec-mach3) # Decstation. tm_file="${tm_file} dbx.h" fi if test x$gas = xyes - then - tmake_file=mips/t-mips-gas + then : else tmake_file=mips/t-ultrix extra_passes="mips-tfile mips-tdump" @@ -2367,8 +2343,7 @@ mips-*-riscos[56789]*) # Default MIPS RISC-OS 5.0. tm_file="${tm_file} dbx.h" fi if test x$gas = xyes - then - tmake_file=mips/t-mips-gas + then : else extra_passes="mips-tfile mips-tdump" fi @@ -2444,8 +2419,7 @@ mips-*-*) # Default MIPS RISC-OS 4.0. tm_file="${tm_file} dbx.h" fi if test x$gas = xyes - then - tmake_file=mips/t-mips-gas + then : else extra_passes="mips-tfile mips-tdump" fi @@ -2969,7 +2943,6 @@ sparc-*-solaris2*) ;; sparc-*-sunos4.0*) tm_file=sparc/sunos4.h - tmake_file=sparc/t-sunos40 use_collect2=yes ;; sparc-*-sunos4*) @@ -3022,11 +2995,9 @@ sparc86x-*-elf*) extra_parts="crtbegin.o crtend.o" ;; sparc64-*-aout*) - tmake_file=sparc/t-sp64 tm_file=sparc/sp64-aout.h ;; sparc64-*-elf*) - tmake_file=sparc/t-sp64 tm_file=sparc/sp64-elf.h extra_parts="crtbegin.o crtend.o" ;; @@ -3107,7 +3078,6 @@ vax-*-netbsd*) use_collect2=yes ;; vax-*-openbsd*) - tmake_file="${tmake_file} vax/t-openbsd" tm_file="vax/vax.h vax/openbsd1.h openbsd.h ${tm_file}" float_format=vax use_collect2=yes diff --git a/gcc/config/a29k/t-a29k b/gcc/config/a29k/t-a29k deleted file mode 100644 index 74684229a13..00000000000 --- a/gcc/config/a29k/t-a29k +++ /dev/null @@ -1,5 +0,0 @@ -LIBGCC1 = -CROSS_LIBGCC1 = - -# We need crt0.o. -LIBGCC1_TEST = diff --git a/gcc/config/a29k/t-a29kbare b/gcc/config/a29k/t-a29kbare index c6702348d14..c304196c3a8 100644 --- a/gcc/config/a29k/t-a29kbare +++ b/gcc/config/a29k/t-a29kbare @@ -1,9 +1,3 @@ -LIBGCC1 = -CROSS_LIBGCC1 = - -# We need crt0.o. -LIBGCC1_TEST = - # We want fine grained libraries, so use the new code to build the # floating point emulation libraries. FPBIT = fp-bit.c diff --git a/gcc/config/a29k/t-vx29k b/gcc/config/a29k/t-vx29k index 298871e4122..d6c79852ca4 100644 --- a/gcc/config/a29k/t-vx29k +++ b/gcc/config/a29k/t-vx29k @@ -1,9 +1,3 @@ -LIBGCC1 = -CROSS_LIBGCC1 = - -# We need crt0.o. -LIBGCC1_TEST = - # We don't want to put exit in libgcc.a for VxWorks, because VxWorks # does not have _exit. TARGET_LIBGCC2_CFLAGS = -Dexit=unused_exit diff --git a/gcc/config/alpha/alpha.h b/gcc/config/alpha/alpha.h index 195d4218266..c0b96e0bca7 100644 --- a/gcc/config/alpha/alpha.h +++ b/gcc/config/alpha/alpha.h @@ -392,23 +392,6 @@ extern const char *alpha_mlat_string; /* For -mmemory-latency= */ /* Define to enable software floating point emulation. */ #define REAL_ARITHMETIC -/* The following #defines are used when compiling the routines in - libgcc1.c. Since the Alpha calling conventions require single - precision floats to be passed in the floating-point registers - (rather than in the general registers) we have to build the - libgcc1.c routines in such a way that they know the actual types - of their formal arguments and the actual types of their return - values. Otherwise, gcc will generate calls to the libgcc1.c - routines, passing arguments in the floating-point registers, - but the libgcc1.c routines will expect their arguments on the - stack (where the Alpha calling conventions require structs & - unions to be passed). */ - -#define FLOAT_VALUE_TYPE double -#define INTIFY(FLOATVAL) (FLOATVAL) -#define FLOATIFY(INTVAL) (INTVAL) -#define FLOAT_ARG_TYPE double - /* Define the size of `int'. The default is the same as the word size. */ #define INT_TYPE_SIZE 32 diff --git a/gcc/config/alpha/t-interix b/gcc/config/alpha/t-interix index d6d80e9c085..c064046c521 100644 --- a/gcc/config/alpha/t-interix +++ b/gcc/config/alpha/t-interix @@ -4,13 +4,5 @@ # Even LANG_EXTRA_HEADERS may be temporary. USER_H=$(LANG_EXTRA_HEADERS) -# We don't want this one either. -INSTALL_ASSERT_H= - - - -CROSS_LIBGCC1 = libgcc1-asm.a -LIBGCC1 = libgcc1-asm.a - LIB1ASMSRC = alpha/lib1funcs.asm LIB1ASMFUNCS = _divqu _divq _divlu _divl _remqu _remq _remlu _reml diff --git a/gcc/config/alpha/t-osf b/gcc/config/alpha/t-osf index bcfed02e02f..b3d41609364 100644 --- a/gcc/config/alpha/t-osf +++ b/gcc/config/alpha/t-osf @@ -1,6 +1 @@ -# Do not build libgcc1. Let gcc generate those functions. -LIBGCC1 = -CROSS_LIBGCC1 = -LIBGCC1_TEST = - EXTRA_HEADERS = $(srcdir)/config/alpha/va_list.h diff --git a/gcc/config/alpha/t-vms b/gcc/config/alpha/t-vms index 12ac24098ce..852c77f29fd 100644 --- a/gcc/config/alpha/t-vms +++ b/gcc/config/alpha/t-vms @@ -1,6 +1 @@ -# Do not build libgcc1. -LIBGCC1 = -CROSS_LIBGCC1 = - LIB2FUNCS_EXTRA = tramp.s - diff --git a/gcc/config/arc/lib1funcs.asm b/gcc/config/arc/lib1funcs.asm index f058661f531..e0dcd363071 100644 --- a/gcc/config/arc/lib1funcs.asm +++ b/gcc/config/arc/lib1funcs.asm @@ -1,4 +1,4 @@ -; libgcc1 routines for ARC cpu. +; libgcc routines for ARC cpu. /* Copyright (C) 1995, 1997 Free Software Foundation, Inc. diff --git a/gcc/config/arc/t-arc b/gcc/config/arc/t-arc index 339e25c1fc2..34c8dd48e86 100644 --- a/gcc/config/arc/t-arc +++ b/gcc/config/arc/t-arc @@ -1,4 +1,3 @@ -CROSS_LIBGCC1 = libgcc1-asm.a LIB1ASMSRC = arc/lib1funcs.asm LIB1ASMFUNCS = _mulsi3 _umulsidi3 _udivsi3 _divsi3 _umodsi3 _modsi3 _divmod_tools diff --git a/gcc/config/arm/lib1funcs.asm b/gcc/config/arm/lib1funcs.asm index 4e762b49cff..36f121e94ae 100644 --- a/gcc/config/arm/lib1funcs.asm +++ b/gcc/config/arm/lib1funcs.asm @@ -1,4 +1,4 @@ -@ libgcc1 routines for ARM cpu. +@ libgcc routines for ARM cpu. @ Division routines, written by Richard Earnshaw, (rearnsha@armltd.co.uk) /* Copyright 1995, 1996, 1998, 1999, 2000 Free Software Foundation, Inc. diff --git a/gcc/config/arm/t-arm-aout b/gcc/config/arm/t-arm-aout index 811b2c2ae1a..2ce20e4fb74 100644 --- a/gcc/config/arm/t-arm-aout +++ b/gcc/config/arm/t-arm-aout @@ -1,4 +1,3 @@ -CROSS_LIBGCC1 = libgcc1-asm.a LIB1ASMSRC = arm/lib1funcs.asm LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_tls _call_via_rX _interwork_call_via_rX diff --git a/gcc/config/arm/t-arm-coff b/gcc/config/arm/t-arm-coff index 5422257eb3b..bf37a37d4dd 100644 --- a/gcc/config/arm/t-arm-coff +++ b/gcc/config/arm/t-arm-coff @@ -1,4 +1,3 @@ -CROSS_LIBGCC1 = libgcc1-asm.a LIB1ASMSRC = arm/lib1funcs.asm LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_tls _bb_init_func _call_via_rX _interwork_call_via_rX @@ -30,6 +29,6 @@ LIBGCC = stmp-multilib INSTALL_LIBGCC = install-multilib # Currently there is a bug somwehere in GCC's alias analysis -# or scheduling code that is breaking _fpmul_parts in libgcc1.c. +# or scheduling code that is breaking _fpmul_parts in fp-bit.c. # Disabling function inlining is a workaround for this problem. TARGET_LIBGCC2_CFLAGS = -Dinhibit_libc -fno-inline diff --git a/gcc/config/arm/t-arm-elf b/gcc/config/arm/t-arm-elf index b93fb299406..3c5d5a33dab 100644 --- a/gcc/config/arm/t-arm-elf +++ b/gcc/config/arm/t-arm-elf @@ -1,4 +1,3 @@ -CROSS_LIBGCC1 = libgcc1-asm.a LIB1ASMSRC = arm/lib1funcs.asm LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_tls _bb_init_func _call_via_rX _interwork_call_via_rX @@ -77,6 +76,6 @@ LIBGCC = stmp-multilib INSTALL_LIBGCC = install-multilib # Currently there is a bug somewhere in GCC's alias analysis -# or scheduling code that is breaking _fpmul_parts in libgcc1.c. +# or scheduling code that is breaking _fpmul_parts in fp-bit.c. # Disabling function inlining is a workaround for this problem. TARGET_LIBGCC2_CFLAGS = -Dinhibit_libc -fno-inline diff --git a/gcc/config/arm/t-linux b/gcc/config/arm/t-linux index b57fb016a3a..7dbd0c0e277 100644 --- a/gcc/config/arm/t-linux +++ b/gcc/config/arm/t-linux @@ -6,10 +6,6 @@ LIBGCC2_DEBUG_CFLAGS = -g0 # Don't build enquire ENQUIRE= -# Since libgcc1 is an assembler file, we can build it automatically for the -# cross-compiler. -CROSS_LIBGCC1 = libgcc1-asm.a -LIBGCC1 = libgcc1-asm.a LIB1ASMSRC = arm/lib1funcs.asm LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx diff --git a/gcc/config/arm/t-pe b/gcc/config/arm/t-pe index 7d71f5ccf7e..4de366521c0 100644 --- a/gcc/config/arm/t-pe +++ b/gcc/config/arm/t-pe @@ -1,4 +1,3 @@ -CROSS_LIBGCC1 = libgcc1-asm.a LIB1ASMSRC = arm/lib1funcs.asm LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_tls _call_via_rX _interwork_call_via_rX diff --git a/gcc/config/arm/t-semi b/gcc/config/arm/t-semi index bc793e8bcfa..ce394606386 100644 --- a/gcc/config/arm/t-semi +++ b/gcc/config/arm/t-semi @@ -6,11 +6,6 @@ LIBGCC2_DEBUG_CFLAGS = -g0 # Don't build enquire ENQUIRE= -# Can't test libgcc1 since it tries to bring in things like malloc, and -# there probably isn't a libc to link against until we have a compiler. -LIBGCC1_TEST = - -CROSS_LIBGCC1 = libgcc1-asm.a LIB1ASMSRC = arm/lib1funcs.asm LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_tls _call_via_rX _interwork_call_via_rX diff --git a/gcc/config/arm/t-semiaof b/gcc/config/arm/t-semiaof deleted file mode 100644 index 22887939655..00000000000 --- a/gcc/config/arm/t-semiaof +++ /dev/null @@ -1,67 +0,0 @@ -OLDCC = armcc -w -# Don't build enquire -ENQUIRE= -CROSS_LIBGCC1 = libgcc1-aof.a -LIBGCC2 = libgcc2-aof.a -LIBGCC = libgcc-aof.a -TARGET_LIBGCC2_CFLAGS = -fomit-frame-pointer -LIBGCC2_DEBUG_CFLAGS = -g0 - -LIBGCC1_TEST = #libgcc1-atest -EXTRA_PARTS = crtbegin.o crtend.o -STMP_FIXPROTO = - -# Rule to build libgcc1.a and libgcc2.a and libgcc.a, since the librarian -# for the ARM tools is somewhat quirky, and needs a special rule to use it. -libgcc1-aof.a: libgcc1.c $(CONFIG_H) config.status - -rm -rf tmplib libgcc1.a libgcc1-aof.a tmplibgcc1.a - mkdir tmplib - for name in $(LIB1FUNCS); \ - do \ - echo $${name}; \ - rm -f $${name}$(objext); \ - $(OLDCC) $(CCLIBFLAGS) $(INCLUDES) -c -DL$${name} $(srcdir)/libgcc1.c; \ - if [ $$? -eq 0 ] ; then true; else exit 1; fi; \ - mv libgcc1$(objext) tmplib/$${name}$(objext); \ - done - (cd tmplib; \ - armlib -c tmplibgcc1.a *; \ - mv tmplibgcc1.a ..) - mv tmplibgcc1.a libgcc1-aof.a - rm -rf tmplib - -libgcc2-aof.a: libgcc2.c libgcc2.ready $(CONFIG_H) $(LIB2FUNCS_EXTRA) \ - machmode.h longlong.h gbl-ctors.h config.status - -rm -f tmplibgcc2.a - -rm -rf tmplib - mkdir tmplib - for name in $(LIB2FUNCS); \ - do \ - echo $${name}; \ - $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) $(INCLUDES) -c -DL$${name} \ - $(srcdir)/libgcc2.c -o tmplib/$${name}$(objext); \ - if [ $$? -eq 0 ] ; then true; else exit 1; fi; \ - done - (cd tmplib; \ - armlib -c tmplibgcc2.a *; \ - mv tmplibgcc2.a ..) - mv tmplibgcc2.a libgcc2-aof.a - rm -rf tmplib - -# Combine the various libraries into a single library, libgcc.a. -libgcc-aof.a: $(CROSS_LIBGCC1) $(LIBGCC2) - -rm -rf tmplibgcc.a libgcc.a tmpcopy libgcc-aof.a - mkdir tmpcopy - (cd tmpcopy; armlib -e ../$(LIBGCC1) \*) - -(cd tmpcopy; chmod +w * > /dev/null 2>&1) - (cd tmpcopy; armlib -e ../$(LIBGCC2) \*) - (cd tmpcopy; armlib -co ../tmplibgcc.a *$(objext)) - rm -rf tmpcopy - mv tmplibgcc.a libgcc.a - ln libgcc.a libgcc-aof.a - -libgcc1-atest: libgcc1-test.o native $(GCC_PARTS) $(EXTRA_PARTS) - @echo "Testing libgcc1. Ignore linker warning messages." - $(GCC_FOR_TARGET) $(GCC_CFLAGS) libgcc1-test.o -o libgcc1-test \ - -v - diff --git a/gcc/config/arm/t-strongarm-coff b/gcc/config/arm/t-strongarm-coff index 269ee33373d..0a66360cb27 100644 --- a/gcc/config/arm/t-strongarm-coff +++ b/gcc/config/arm/t-strongarm-coff @@ -1,4 +1,3 @@ -CROSS_LIBGCC1 = libgcc1-asm.a LIB1ASMSRC = arm/lib1funcs.asm LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_tls _bb_init_func @@ -30,6 +29,6 @@ LIBGCC = stmp-multilib INSTALL_LIBGCC = install-multilib # Currently there is a bug somwehere in GCC's alias analysis -# or scheduling code that is breaking _fpmul_parts in libgcc1.c. +# or scheduling code that is breaking _fpmul_parts in fp-bit.c. # Disabling function inlining is a workaround for this problem. TARGET_LIBGCC2_CFLAGS = -Dinhibit_libc -fno-inline diff --git a/gcc/config/arm/t-strongarm-elf b/gcc/config/arm/t-strongarm-elf index a0f009b47c5..a2bb6446194 100644 --- a/gcc/config/arm/t-strongarm-elf +++ b/gcc/config/arm/t-strongarm-elf @@ -1,4 +1,3 @@ -CROSS_LIBGCC1 = libgcc1-asm.a LIB1ASMSRC = arm/lib1funcs.asm LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_tls _bb_init_func @@ -34,6 +33,6 @@ LIBGCC = stmp-multilib INSTALL_LIBGCC = install-multilib # Currently there is a bug somewhere in GCC's alias analysis -# or scheduling code that is breaking _fpmul_parts in libgcc1.c. +# or scheduling code that is breaking _fpmul_parts in fp-bit.c. # Disabling function inlining is a workaround for this problem. TARGET_LIBGCC2_CFLAGS = -Dinhibit_libc -fno-inline diff --git a/gcc/config/arm/t-strongarm-pe b/gcc/config/arm/t-strongarm-pe index e487e5d931b..6a44132bd07 100644 --- a/gcc/config/arm/t-strongarm-pe +++ b/gcc/config/arm/t-strongarm-pe @@ -1,4 +1,3 @@ -CROSS_LIBGCC1 = libgcc1-asm.a LIB1ASMSRC = arm/lib1funcs.asm LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_tls _bb_init_func @@ -33,6 +32,6 @@ LIBGCC = stmp-multilib INSTALL_LIBGCC = install-multilib # Currently there is a bug somwehere in GCC's alias analysis -# or scheduling code that is breaking _fpmul_parts in libgcc1.c. +# or scheduling code that is breaking _fpmul_parts in fp-bit.c. # Disabling function inlining is a workaround for this problem. TARGET_LIBGCC2_CFLAGS = -Dinhibit_libc -fno-inline diff --git a/gcc/config/arm/t-xscale-coff b/gcc/config/arm/t-xscale-coff index d7e1d068015..5a5eb9851cf 100644 --- a/gcc/config/arm/t-xscale-coff +++ b/gcc/config/arm/t-xscale-coff @@ -1,4 +1,3 @@ -CROSS_LIBGCC1 = libgcc1-asm.a LIB1ASMSRC = arm/lib1funcs.asm LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_tls _bb_init_func _call_via_rX _interwork_call_via_rX @@ -43,6 +42,6 @@ LIBGCC = stmp-multilib INSTALL_LIBGCC = install-multilib # Currently there is a bug somewhere in GCC's alias analysis -# or scheduling code that is breaking _fpmul_parts in libgcc1.c. +# or scheduling code that is breaking _fpmul_parts in fp-bit.c. # Disabling function inlining is a workaround for this problem. TARGET_LIBGCC2_CFLAGS = -Dinhibit_libc -fno-inline diff --git a/gcc/config/arm/t-xscale-elf b/gcc/config/arm/t-xscale-elf index d7e1d068015..5a5eb9851cf 100644 --- a/gcc/config/arm/t-xscale-elf +++ b/gcc/config/arm/t-xscale-elf @@ -1,4 +1,3 @@ -CROSS_LIBGCC1 = libgcc1-asm.a LIB1ASMSRC = arm/lib1funcs.asm LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_tls _bb_init_func _call_via_rX _interwork_call_via_rX @@ -43,6 +42,6 @@ LIBGCC = stmp-multilib INSTALL_LIBGCC = install-multilib # Currently there is a bug somewhere in GCC's alias analysis -# or scheduling code that is breaking _fpmul_parts in libgcc1.c. +# or scheduling code that is breaking _fpmul_parts in fp-bit.c. # Disabling function inlining is a workaround for this problem. TARGET_LIBGCC2_CFLAGS = -Dinhibit_libc -fno-inline diff --git a/gcc/config/avr/t-avr b/gcc/config/avr/t-avr index bc6aeeb5ffd..ecffea32145 100644 --- a/gcc/config/avr/t-avr +++ b/gcc/config/avr/t-avr @@ -2,7 +2,6 @@ AR_FOR_TARGET = avr-ar RANLIB_FOR_TARGET = avr-ranlib -CROSS_LIBGCC1 = libgcc1-asm.a LIB1ASMSRC = avr/libgcc.S LIB1ASMFUNCS = \ _mulqi3 \ @@ -20,9 +19,6 @@ LIB1ASMFUNCS = \ _cleanup \ _tablejump -# libgcc... -LIBGCC1_TEST = - # We do not have the DF type. # Most of the C functions in libgcc2 use almost all registers, # so use -mcall-prologues for smaller code size. diff --git a/gcc/config/c4x/libgcc.S b/gcc/config/c4x/libgcc.S index 06b1a756aba..c3b3c7e56ae 100644 --- a/gcc/config/c4x/libgcc.S +++ b/gcc/config/c4x/libgcc.S @@ -1,4 +1,4 @@ -/* libgcc1 routines for the Texas Instruments TMS320C[34]x +/* libgcc routines for the Texas Instruments TMS320C[34]x Copyright (C) 1997,98, 1999 Free Software Foundation, Inc. Contributed by Michael Hayes (m.hayes@elec.canterbury.ac.nz) diff --git a/gcc/config/c4x/t-c4x b/gcc/config/c4x/t-c4x index 49afe1d6467..c88eba4a1f7 100644 --- a/gcc/config/c4x/t-c4x +++ b/gcc/config/c4x/t-c4x @@ -1,4 +1,3 @@ -CROSS_LIBGCC1 = libgcc1-asm.a LIB1ASMSRC = c4x/libgcc.S LIB1ASMFUNCS = _divsf3 _divsi3 _udivsi3 _umodsi3 _modsi3 _mulsi3 \ _muldf3 _divdf3 _unsfltconst _unsfltcompare \ @@ -15,6 +14,3 @@ MULTILIB_EXCEPTIONS = MULTILIB_EXTRA_OPTS = LIBGCC = stmp-multilib INSTALL_LIBGCC = install-multilib - -# Don't make libgcc1-test since require crt0.o -LIBGCC1_TEST = diff --git a/gcc/config/d30v/d30v.h b/gcc/config/d30v/d30v.h index 4015227abae..7ac16e654c1 100644 --- a/gcc/config/d30v/d30v.h +++ b/gcc/config/d30v/d30v.h @@ -3307,76 +3307,6 @@ typedef struct machine_function Defined in svr4.h. */ /* #define TARGET_MEM_FUNCTIONS */ -/* Define this macro if only `float' arguments cannot be passed to library - routines (so they must be converted to `double'). This macro affects both - how library calls are generated and how the library routines in `libgcc1.c' - accept their arguments. It is useful on machines where floating and fixed - point arguments are passed differently, such as the i860. */ -/* #define LIBGCC_NEEDS_DOUBLE */ - -/* Define this macro to override the type used by the library routines to pick - up arguments of type `float'. (By default, they use a union of `float' and - `int'.) - - The obvious choice would be `float'--but that won't work with traditional C - compilers that expect all arguments declared as `float' to arrive as - `double'. To avoid this conversion, the library routines ask for the value - as some other type and then treat it as a `float'. - - On some systems, no other type will work for this. For these systems, you - must use `LIBGCC_NEEDS_DOUBLE' instead, to force conversion of the values - `double' before they are passed. */ -/* #define FLOAT_ARG_TYPE */ - -/* Define this macro to override the way library routines redesignate a `float' - argument as a `float' instead of the type it was passed as. The default is - an expression which takes the `float' field of the union. */ -/* #define FLOATIFY(PASSED_VALUE) */ - -/* Define this macro to override the type used by the library routines to - return values that ought to have type `float'. (By default, they use - `int'.) - - The obvious choice would be `float'--but that won't work with traditional C - compilers gratuitously convert values declared as `float' into `double'. */ -/* #define FLOAT_VALUE_TYPE */ - -/* Define this macro to override the way the value of a `float'-returning - library routine should be packaged in order to return it. These functions - are actually declared to return type `FLOAT_VALUE_TYPE' (normally `int'). - - These values can't be returned as type `float' because traditional C - compilers would gratuitously convert the value to a `double'. - - A local variable named `intify' is always available when the macro `INTIFY' - is used. It is a union of a `float' field named `f' and a field named `i' - whose type is `FLOAT_VALUE_TYPE' or `int'. - - If you don't define this macro, the default definition works by copying the - value through that union. */ -/* #define INTIFY(FLOAT_VALUE) */ - -/* Define this macro as the name of the data type corresponding to `SImode' in - the system's own C compiler. - - You need not define this macro if that type is `long int', as it usually is. */ -/* #define nongcc_SI_type */ - -/* Define this macro as the name of the data type corresponding to the - word_mode in the system's own C compiler. - - You need not define this macro if that type is `long int', as it usually is. */ -/* #define nongcc_word_type */ - -/* Define these macros to supply explicit C statements to carry out various - arithmetic operations on types `float' and `double' in the library routines - in `libgcc1.c'. See that file for a full list of these macros and their - arguments. - - On most machines, you don't need to define any of these macros, because the - C compiler that comes with the system takes care of doing them. */ -/* #define perform_... */ - /* Define this macro to generate code for Objective C message sending using the calling convention of the NeXT system. This calling convention involves passing the object, the selector and the method arguments all at once to the diff --git a/gcc/config/d30v/libgcc1.asm b/gcc/config/d30v/libgcc1.asm index 22e436cd9f7..ed359fc552e 100644 --- a/gcc/config/d30v/libgcc1.asm +++ b/gcc/config/d30v/libgcc1.asm @@ -1,4 +1,4 @@ -/* Assembly support functions for libgcc1. +/* Assembly support functions for libgcc. * * Copyright (C) 1997 Free Software Foundation, Inc. * Contributed by Cygnus Support diff --git a/gcc/config/d30v/t-d30v b/gcc/config/d30v/t-d30v index 52ce08857b5..2544f3db35e 100644 --- a/gcc/config/d30v/t-d30v +++ b/gcc/config/d30v/t-d30v @@ -1,6 +1,3 @@ -# Build libgcc1 from assembler sources -LIBGCC1 = libgcc1-asm.a -CROSS_LIBGCC1 = libgcc1-asm.a LIB1ASMSRC = d30v/libgcc1.asm LIB1ASMFUNCS = _udivsi3 _divsi3 diff --git a/gcc/config/fp-bit.c b/gcc/config/fp-bit.c index ff41d81343d..3eb9ec75893 100644 --- a/gcc/config/fp-bit.c +++ b/gcc/config/fp-bit.c @@ -1,6 +1,5 @@ -/* This is a software floating point library which can be used instead of - the floating point routines in libgcc1.c for targets without hardware - floating point. +/* This is a software floating point library which can be used + for targets without hardware floating point. Copyright (C) 1994, 1995, 1996, 1997, 1998, 2000, 2001 Free Software Foundation, Inc. @@ -57,8 +56,7 @@ Boston, MA 02111-1307, USA. */ CMPtype: Specify the type that floating point compares should return. This defaults to SItype, aka int. US_SOFTWARE_GOFAST: This makes all entry points use the same names as the - US Software goFast library. If this is not defined, the entry points use - the same names as libgcc1.c. + US Software goFast library. _DEBUG_BITFLOAT: This makes debugging the code a little easier, by adding two integers to the FLO_union_type. NO_DENORMALS: Disable handling of denormals. diff --git a/gcc/config/fr30/lib1funcs.asm b/gcc/config/fr30/lib1funcs.asm index da0451bbe33..850af433997 100644 --- a/gcc/config/fr30/lib1funcs.asm +++ b/gcc/config/fr30/lib1funcs.asm @@ -1,4 +1,4 @@ -/* libgcc1 routines for the FR30. +/* libgcc routines for the FR30. Copyright (C) 1998, 1999 Free Software Foundation, Inc. This file is part of GNU CC. diff --git a/gcc/config/fr30/t-fr30 b/gcc/config/fr30/t-fr30 index 69df6de22f1..5ee0808e0da 100644 --- a/gcc/config/fr30/t-fr30 +++ b/gcc/config/fr30/t-fr30 @@ -1,12 +1,3 @@ - -# Name of assembly file containing libgcc1 functions. -# This entry must be present, but it can be empty if the target does -# not need any assembler functions to support its code generation. -# CROSS_LIBGCC1 = -# -# Alternatively if assembler functions *are* needed then define the -# entries below: -CROSS_LIBGCC1 = libgcc1-asm.a LIB1ASMSRC = fr30/lib1funcs.asm LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 diff --git a/gcc/config/h8300/lib1funcs.asm b/gcc/config/h8300/lib1funcs.asm index 41cb3bc9f55..b05a930d5b4 100644 --- a/gcc/config/h8300/lib1funcs.asm +++ b/gcc/config/h8300/lib1funcs.asm @@ -1,4 +1,4 @@ -;; libgcc1 routines for the Hitachi H8/300 CPU. +;; libgcc routines for the Hitachi H8/300 CPU. ;; Contributed by Steve Chamberlain <sac@cygnus.com> /* Copyright (C) 1994, 2000 Free Software Foundation, Inc. diff --git a/gcc/config/h8300/t-h8300 b/gcc/config/h8300/t-h8300 index fbc4d731440..199082754f5 100644 --- a/gcc/config/h8300/t-h8300 +++ b/gcc/config/h8300/t-h8300 @@ -1,4 +1,3 @@ -CROSS_LIBGCC1 = libgcc1-asm.a LIB1ASMSRC = h8300/lib1funcs.asm LIB1ASMFUNCS = _cmpsi2 _ucmpsi2 _divhi3 _divsi3 _mulhi3 _mulsi3 diff --git a/gcc/config/i370/t-i370 b/gcc/config/i370/t-i370 deleted file mode 100644 index d20ab385dcc..00000000000 --- a/gcc/config/i370/t-i370 +++ /dev/null @@ -1,4 +0,0 @@ -# There is no libgcc for mvs -LIBGCC = -INSTALL_LIBGCC = -LIBGCC1_TEST = diff --git a/gcc/config/i370/t-linux b/gcc/config/i370/t-linux deleted file mode 100644 index 12cd6b8f5e8..00000000000 --- a/gcc/config/i370/t-linux +++ /dev/null @@ -1,4 +0,0 @@ -# config/i370/t-linux: this file defines Makefile overrides when building -# for a Linux target. Thes definitions are in addition to config/t-linux. -# pretty busted at the moment -CROSS_LIBGCC1 = diff --git a/gcc/config/i370/t-mvs b/gcc/config/i370/t-mvs deleted file mode 100644 index d20ab385dcc..00000000000 --- a/gcc/config/i370/t-mvs +++ /dev/null @@ -1,4 +0,0 @@ -# There is no libgcc for mvs -LIBGCC = -INSTALL_LIBGCC = -LIBGCC1_TEST = diff --git a/gcc/config/i370/t-oe b/gcc/config/i370/t-oe deleted file mode 100644 index 622402daf33..00000000000 --- a/gcc/config/i370/t-oe +++ /dev/null @@ -1,4 +0,0 @@ -# There is no libgcc for OpenEdition -LIBGCC = -INSTALL_LIBGCC = -LIBGCC1_TEST = diff --git a/gcc/config/i386/386bsd.h b/gcc/config/i386/386bsd.h index f38f730b29c..84d17940ab5 100644 --- a/gcc/config/i386/386bsd.h +++ b/gcc/config/i386/386bsd.h @@ -5,9 +5,6 @@ #include "i386/gstabs.h" -/* Get perform_* macros to build libgcc.a. */ -#include "i386/perform.h" - #undef CPP_PREDEFINES #define CPP_PREDEFINES "-Dunix -D____386BSD____ -D__386BSD__ -DBSD_NET2 -Asystem=unix -Asystem=bsd" diff --git a/gcc/config/i386/beos-elf.h b/gcc/config/i386/beos-elf.h index 2ed31de53ad..be948a3759c 100644 --- a/gcc/config/i386/beos-elf.h +++ b/gcc/config/i386/beos-elf.h @@ -134,9 +134,6 @@ Boston, MA 02111-1307, USA. */ #undef ENDFILE_SPEC #define ENDFILE_SPEC "crtend.o%s crtn.o%s" -/* Get perform_* macros to build libgcc.a. */ -#include "i386/perform.h" - /* A C statement (sans semicolon) to output to the stdio stream FILE the assembler definition of uninitialized global DECL named NAME whose size is SIZE bytes and alignment is ALIGN bytes. diff --git a/gcc/config/i386/cygwin.asm b/gcc/config/i386/cygwin.asm index 4ac4c91a3b1..656c1128eae 100644 --- a/gcc/config/i386/cygwin.asm +++ b/gcc/config/i386/cygwin.asm @@ -1,4 +1,4 @@ -/* stuff needed for libgcc1 on win32. */ +/* stuff needed for libgcc on win32. */ #ifdef L_chkstk diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h index 6a229b7a8ad..d751fc7b087 100644 --- a/gcc/config/i386/i386.h +++ b/gcc/config/i386/i386.h @@ -3064,13 +3064,6 @@ do { long l; \ } \ } while (0) -/* Routines in libgcc that return floats must return them in an fp reg, - just as other functions do which return such values. - These macros make that happen. */ - -#define FLOAT_VALUE_TYPE float -#define INTIFY(FLOATVAL) FLOATVAL - /* a letter which is not needed by the normal asm syntax, which we can use for operand syntax in the extended asm */ diff --git a/gcc/config/i386/linux-aout.h b/gcc/config/i386/linux-aout.h index b21980898f9..302ee69a32a 100644 --- a/gcc/config/i386/linux-aout.h +++ b/gcc/config/i386/linux-aout.h @@ -69,6 +69,3 @@ Boston, MA 02111-1307, USA. */ #undef LINK_SPEC #define LINK_SPEC "-m i386linux" - -/* Get perform_* macros to build libgcc.a. */ -#include "i386/perform.h" diff --git a/gcc/config/i386/linux-oldld.h b/gcc/config/i386/linux-oldld.h index 8a837370414..6102aa8cd9f 100644 --- a/gcc/config/i386/linux-oldld.h +++ b/gcc/config/i386/linux-oldld.h @@ -70,6 +70,3 @@ Boston, MA 02111-1307, USA. */ #undef LINK_SPEC #define LINK_SPEC "" - -/* Get perform_* macros to build libgcc.a. */ -#include <i386/perform.h> diff --git a/gcc/config/i386/linux.h b/gcc/config/i386/linux.h index 0ec749d972c..a93955092f2 100644 --- a/gcc/config/i386/linux.h +++ b/gcc/config/i386/linux.h @@ -143,9 +143,6 @@ Boston, MA 02111-1307, USA. */ %{static:-static}}}" #endif -/* Get perform_* macros to build libgcc.a. */ -#include "i386/perform.h" - /* A C statement (sans semicolon) to output to the stdio stream FILE the assembler definition of uninitialized global DECL named NAME whose size is SIZE bytes and alignment is ALIGN bytes. diff --git a/gcc/config/i386/mach.h b/gcc/config/i386/mach.h index 2ec9f295841..7e2b1cc267d 100644 --- a/gcc/config/i386/mach.h +++ b/gcc/config/i386/mach.h @@ -6,9 +6,6 @@ #include "i386/gstabs.h" -/* Get perform_* macros to build libgcc.a. */ -#include "i386/perform.h" - #undef CPP_PREDEFINES #define CPP_PREDEFINES "-Dunix -DMACH -Asystem=unix -Asystem=mach" diff --git a/gcc/config/i386/netbsd.h b/gcc/config/i386/netbsd.h index 3b5bf9c3e9d..1a2c57c46a8 100644 --- a/gcc/config/i386/netbsd.h +++ b/gcc/config/i386/netbsd.h @@ -3,9 +3,6 @@ #include <i386/gstabs.h> -/* Get perform_* macros to build libgcc.a. */ -#include <i386/perform.h> - /* Get generic NetBSD definitions. */ #include <netbsd.h> diff --git a/gcc/config/i386/openbsd.h b/gcc/config/i386/openbsd.h index b24a94cdc19..e82166e7125 100644 --- a/gcc/config/i386/openbsd.h +++ b/gcc/config/i386/openbsd.h @@ -23,9 +23,6 @@ Boston, MA 02111-1307, USA. */ #include <i386/gstabs.h> -/* Get perform_* macros to build libgcc.a. */ -#include <i386/perform.h> - /* Get generic OpenBSD definitions. */ #define OBSD_OLD_GAS #include <openbsd.h> diff --git a/gcc/config/i386/osfrose.h b/gcc/config/i386/osfrose.h index 138ef67688b..3385d7a5c17 100644 --- a/gcc/config/i386/osfrose.h +++ b/gcc/config/i386/osfrose.h @@ -23,9 +23,6 @@ Boston, MA 02111-1307, USA. */ #include "halfpic.h" #include "i386/gstabs.h" -/* Get perform_* macros to build libgcc.a. */ -#include "i386/perform.h" - #define OSF_OS #undef WORD_SWITCH_TAKES_ARG diff --git a/gcc/config/i386/perform.h b/gcc/config/i386/perform.h deleted file mode 100644 index 8d6d0b71dfe..00000000000 --- a/gcc/config/i386/perform.h +++ /dev/null @@ -1,98 +0,0 @@ -/* Definitions for AT&T assembler syntax for the Intel 80386. - Copyright (C) 1993 Free Software Foundation, Inc. - -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, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* Defines to be able to build libgcc.a with GCC. */ - -/* It might seem that these are not important, since gcc 2 will never - call libgcc for these functions. But programs might be linked with - code compiled by gcc 1, and then these will be used. */ - -/* The arg names used to be a and b, but `a' appears inside strings - and that confuses non-ANSI cpp. */ - -#define perform_udivsi3(arg0,arg1) \ -{ \ - register int dx asm("dx"); \ - register int ax asm("ax"); \ - \ - dx = 0; \ - ax = arg0; \ - asm ("divl %3" : "=a" (ax), "=d" (dx) : "a" (ax), "g" (arg1), "d" (dx)); \ - return ax; \ -} - -#define perform_divsi3(arg0,arg1) \ -{ \ - register int dx asm("dx"); \ - register int ax asm("ax"); \ - register int cx asm("cx"); \ - \ - ax = arg0; \ - cx = arg1; \ - asm ("cltd\n\tidivl %3" : "=a" (ax), "=&d" (dx) : "a" (ax), "c" (cx)); \ - return ax; \ -} - -#define perform_umodsi3(arg0,arg1) \ -{ \ - register int dx asm("dx"); \ - register int ax asm("ax"); \ - \ - dx = 0; \ - ax = arg0; \ - asm ("divl %3" : "=a" (ax), "=d" (dx) : "a" (ax), "g" (arg1), "d" (dx)); \ - return dx; \ -} - -#define perform_modsi3(arg0,arg1) \ -{ \ - register int dx asm("dx"); \ - register int ax asm("ax"); \ - register int cx asm("cx"); \ - \ - ax = arg0; \ - cx = arg1; \ - asm ("cltd\n\tidivl %3" : "=a" (ax), "=&d" (dx) : "a" (ax), "c" (cx)); \ - return dx; \ -} - -#define perform_fixdfsi(arg0) \ -{ \ - auto unsigned short ostatus; \ - auto unsigned short nstatus; \ - auto int ret; \ - auto double tmp; \ - \ - &ostatus; /* guarantee these land in memory */ \ - &nstatus; \ - &ret; \ - &tmp; \ - \ - asm volatile ("fnstcw %0" : "=m" (ostatus)); \ - nstatus = ostatus | 0x0c00; \ - asm volatile ("fldcw %0" : /* no outputs */ : "m" (nstatus)); \ - tmp = arg0; \ - asm volatile ("fldl %0" : /* no outputs */ : "m" (tmp)); \ - asm volatile ("fistpl %0" : "=m" (ret)); \ - asm volatile ("fldcw %0" : /* no outputs */ : "m" (ostatus)); \ - \ - return ret; \ -} - diff --git a/gcc/config/i386/rtemself.h b/gcc/config/i386/rtemself.h index 7844007ebab..003f248fb05 100644 --- a/gcc/config/i386/rtemself.h +++ b/gcc/config/i386/rtemself.h @@ -86,9 +86,6 @@ Boston, MA 02111-1307, USA. */ #undef CPP_PREDEFINES #define CPP_PREDEFINES "-Drtems -D__rtems__ -Asystem=rtems" -/* Get perform_* macros to build libgcc.a. */ -#include "i386/perform.h" - /* A C statement (sans semicolon) to output to the stdio stream FILE the assembler definition of uninitialized global DECL named NAME whose size is SIZE bytes and alignment is ALIGN bytes. diff --git a/gcc/config/i386/t-beos b/gcc/config/i386/t-beos index f63e2d4e1b5..b5c8ec20871 100644 --- a/gcc/config/i386/t-beos +++ b/gcc/config/i386/t-beos @@ -1,7 +1,3 @@ -# Do not build libgcc1. -LIBGCC1 = -CROSS_LIBGCC1 = - # There are system headers elsewhere, but these are the ones that # we are most likely to want to apply any fixes to. SYSTEM_HEADER_DIR = /boot/develop/headers/posix diff --git a/gcc/config/i386/t-cygwin b/gcc/config/i386/t-cygwin index 1909f154308..360faca79fa 100644 --- a/gcc/config/i386/t-cygwin +++ b/gcc/config/i386/t-cygwin @@ -1,5 +1,3 @@ -LIBGCC1 = libgcc1-asm.a -CROSS_LIBGCC1 = libgcc1-asm.a LIB1ASMSRC = i386/cygwin.asm LIB1ASMFUNCS = _chkstk diff --git a/gcc/config/i386/t-djgpp b/gcc/config/i386/t-djgpp deleted file mode 100644 index 6160b7ec945..00000000000 --- a/gcc/config/i386/t-djgpp +++ /dev/null @@ -1,2 +0,0 @@ -LIBGCC1 = libgcc1.null -CROSS_LIBGCC1 = libgcc1.null diff --git a/gcc/config/i386/t-i386bare b/gcc/config/i386/t-i386bare deleted file mode 100644 index 2970fa71415..00000000000 --- a/gcc/config/i386/t-i386bare +++ /dev/null @@ -1,3 +0,0 @@ -# The i386 md has all of these taken care of, according to sef. -LIBGCC1 = -CROSS_LIBGCC1 = diff --git a/gcc/config/i386/t-i386elf b/gcc/config/i386/t-i386elf index 405976dcb91..9560d905521 100644 --- a/gcc/config/i386/t-i386elf +++ b/gcc/config/i386/t-i386elf @@ -1,6 +1,3 @@ -LIBGCC1 = libgcc1.null -CROSS_LIBGCC1 = libgcc1.null - # For svr4 we build crtbegin.o and crtend.o which serve to add begin and # end labels to the .ctors and .dtors section when we link using gcc. diff --git a/gcc/config/i386/t-interix b/gcc/config/i386/t-interix index 4c6d84f1b39..2c883b127fa 100644 --- a/gcc/config/i386/t-interix +++ b/gcc/config/i386/t-interix @@ -1,7 +1,3 @@ -# t-interix -LIBGCC1 = libgcc1-asm.a -CROSS_LIBGCC1 = libgcc1-asm.a - LIB1ASMSRC = i386/cygwin.asm LIB1ASMFUNCS = _chkstk @@ -11,6 +7,3 @@ interix.o: $(srcdir)/config/i386/interix.c # System headers will track gcc's needs. # Even LANG_EXTRA_HEADERS may be temporary. USER_H=$(LANG_EXTRA_HEADERS) - -# We don't want this one either. -INSTALL_ASSERT_H= diff --git a/gcc/config/i386/t-netware b/gcc/config/i386/t-netware index 68fe92fe9d4..66ba228551f 100644 --- a/gcc/config/i386/t-netware +++ b/gcc/config/i386/t-netware @@ -1,5 +1,2 @@ -LIBGCC1 = libgcc1.null -CROSS_LIBGCC1 = libgcc1.null - # Our header files are supposed to be correct, nein? STMP_FIXPROTO = diff --git a/gcc/config/i386/t-next b/gcc/config/i386/t-next index effa6953b9a..4b70ba78ae0 100644 --- a/gcc/config/i386/t-next +++ b/gcc/config/i386/t-next @@ -1,7 +1,3 @@ -# libgcc1.c is not needed, since the standard library has these functions. -LIBGCC1=libgcc1.null -CROSS_LIBGCC1=libgcc1.null - # Specify other dirs of system header files to be fixed. OTHER_FIXINCLUDES_DIRS= /LocalDeveloper/Headers diff --git a/gcc/config/i386/t-rtems-i386 b/gcc/config/i386/t-rtems-i386 index d112e2e7e2d..d301ed96d5f 100644 --- a/gcc/config/i386/t-rtems-i386 +++ b/gcc/config/i386/t-rtems-i386 @@ -5,9 +5,6 @@ # version of these files. # -LIBGCC1 = -CROSS_LIBGCC1 = - crti.o: $(srcdir)/config/i386/sol2-ci.asm $(GCC_PASSES) sed -e '/^!/d' <$(srcdir)/config/i386/sol2-ci.asm >crti.s $(GCC_FOR_TARGET) -c -o crti.o crti.s diff --git a/gcc/config/i386/t-sol2 b/gcc/config/i386/t-sol2 index 5dc59cc375e..5d7522c3dab 100644 --- a/gcc/config/i386/t-sol2 +++ b/gcc/config/i386/t-sol2 @@ -1,9 +1,3 @@ -# we need to supply our own assembly versions of libgcc1.c files, -# since the user may not have native 'cc' available - -LIBGCC1 = libgcc1.null -CROSS_LIBGCC1 = libgcc1.null - # gmon build rule: gmon.o: $(srcdir)/config/i386/gmon-sol2.c $(GCC_PASSES) $(CONFIG_H) $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) \ diff --git a/gcc/config/i386/t-vsta b/gcc/config/i386/t-vsta deleted file mode 100644 index 6160b7ec945..00000000000 --- a/gcc/config/i386/t-vsta +++ /dev/null @@ -1,2 +0,0 @@ -LIBGCC1 = libgcc1.null -CROSS_LIBGCC1 = libgcc1.null diff --git a/gcc/config/i386/uwin.asm b/gcc/config/i386/uwin.asm index 6268343f4c0..0ae6b267316 100644 --- a/gcc/config/i386/uwin.asm +++ b/gcc/config/i386/uwin.asm @@ -1,4 +1,4 @@ -/* stuff needed for libgcc1 on win32. */ +/* stuff needed for libgcc on win32. */ #ifdef L_chkstk diff --git a/gcc/config/i860/fx2800.h b/gcc/config/i860/fx2800.h index cb11204c275..1ace6e8f157 100644 --- a/gcc/config/i860/fx2800.h +++ b/gcc/config/i860/fx2800.h @@ -235,19 +235,13 @@ Boston, MA 02111-1307, USA. */ /* Undefine some things defined in i860.h because the native C compiler on the FX/2800 emits code to do these operations inline. For GCC, we will use the default implementation of these things... i.e. - generating calls to libgcc1 routines. */ + generating calls to libgcc routines. */ #undef DIVSI3_LIBCALL #undef UDIVSI3_LIBCALL #undef REMSI3_LIBCALL #undef UREMSI3_LIBCALL -/* The Alliant compiler's mod function gives the wrong result after a - shift operation. This bug typically hits in hash functions. */ - -#define perform_umodsi3(a, b) a %= b; if (a == b) a=0; return a -#define perform_modsi3(a, b) a %= b; if (a == b) a=0; return a - /* Global pointer needs to be 8 byte aligned? Link error if not... */ #define DATA_ALIGNMENT(dummy,align) \ diff --git a/gcc/config/i860/i860.h b/gcc/config/i860/i860.h index 07257b5372d..063e886b599 100644 --- a/gcc/config/i860/i860.h +++ b/gcc/config/i860/i860.h @@ -1372,24 +1372,6 @@ extern const char *i860_reg_prefix; } \ } -/* The following #defines are used when compiling the routines in - libgcc1.c. Since the i860 calling conventions require single - precision floats to be passed in the floating-point registers - (rather than in the general registers) we have to build the - libgcc1.c routines in such a way that they know the actual types - of their formal arguments and the actual types of their return - values. Otherwise, gcc will generate calls to the libgcc1.c - routines, passing arguments in the floating-point registers, - but the libgcc1.c routines will expect their arguments on the - stack (where the i860 calling conventions require structs & - unions to be passed). */ - -#define FLOAT_VALUE_TYPE float -#define INTIFY(FLOATVAL) (FLOATVAL) -#define FLOATIFY(INTVAL) (INTVAL) -#define FLOAT_ARG_TYPE float - - /* Optionally define this if you have added predicates to `MACHINE.c'. This macro is called within an initializer of an array of structures. The first field in the structure is the diff --git a/gcc/config/i960/t-960bare b/gcc/config/i960/t-960bare index 17c99a1cef2..7a5149f9f97 100644 --- a/gcc/config/i960/t-960bare +++ b/gcc/config/i960/t-960bare @@ -1,6 +1,3 @@ -LIBGCC1 = -CROSS_LIBGCC1 = - LIB2FUNCS_EXTRA = xp-bit.c # We want fine grained libraries, so use the new code to build the diff --git a/gcc/config/i960/t-vxworks960 b/gcc/config/i960/t-vxworks960 index 7878591764b..39c49838de7 100644 --- a/gcc/config/i960/t-vxworks960 +++ b/gcc/config/i960/t-vxworks960 @@ -1,6 +1,3 @@ -LIBGCC1 = -CROSS_LIBGCC1 = - # We don't want to put exit in libgcc.a for VxWorks, because VxWorks # does not have _exit. TARGET_LIBGCC2_CFLAGS = -Dexit=unused_exit diff --git a/gcc/config/ia64/t-hpux b/gcc/config/ia64/t-hpux deleted file mode 100644 index 4aa43876eaf..00000000000 --- a/gcc/config/ia64/t-hpux +++ /dev/null @@ -1,6 +0,0 @@ -# HP-UX gets an undefined main when building LIBGCC1_TEST because the -# linkspec has "-u main" and we want that for linking but it makes -# LIBGCC1_TEST fail because it uses -nostdlib -nostartup and main is -# not defined in the test program. - -LIBGCC1_TEST = diff --git a/gcc/config/ia64/t-ia64 b/gcc/config/ia64/t-ia64 index 274f9a44826..f89e80ba9e2 100644 --- a/gcc/config/ia64/t-ia64 +++ b/gcc/config/ia64/t-ia64 @@ -1,8 +1,3 @@ -# Name of assembly file containing libgcc1 functions. -# This entry must be present, but it can be empty if the target does -# not need any assembler functions to support its code generation. -CROSS_LIBGCC1 = libgcc1-asm.a -LIBGCC1 = libgcc1-asm.a LIB1ASMSRC = ia64/lib1funcs.asm # ??? We change the names of the DImode div/mod files so that they won't diff --git a/gcc/config/m32r/t-m32r b/gcc/config/m32r/t-m32r index 5a60e18adc1..79e89458387 100644 --- a/gcc/config/m32r/t-m32r +++ b/gcc/config/m32r/t-m32r @@ -1,6 +1,3 @@ -# lib1funcs.asm is currently empty. -CROSS_LIBGCC1 = - # We want fine grained libraries, so use the new code to build the # floating point emulation libraries. FPBIT = fp-bit.c diff --git a/gcc/config/m68hc11/larith.asm b/gcc/config/m68hc11/larith.asm index e7b486c8ee6..5ff3e9a6bfc 100644 --- a/gcc/config/m68hc11/larith.asm +++ b/gcc/config/m68hc11/larith.asm @@ -1,4 +1,4 @@ -/* libgcc1 routines for M68HC11 & M68HC12. +/* libgcc routines for M68HC11 & M68HC12. Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc. This file is part of GNU CC. diff --git a/gcc/config/m68hc11/t-m68hc11-gas b/gcc/config/m68hc11/t-m68hc11-gas index 9ee3c313f8a..a73fe893da5 100644 --- a/gcc/config/m68hc11/t-m68hc11-gas +++ b/gcc/config/m68hc11/t-m68hc11-gas @@ -15,7 +15,6 @@ RANLIB_FOR_TARGET = ` \ T_CPPFLAGS = -DUSE_GAS -CROSS_LIBGCC1 = libgcc1-asm.a LIB1ASMSRC = m68hc11/larith.asm LIB1ASMFUNCS = _mulsi3 \ _mulqi3 _ashlsi3 _ashrsi3 _lshrsi3 \ diff --git a/gcc/config/m68k/lb1sf68.asm b/gcc/config/m68k/lb1sf68.asm index ef40a340763..7bcee2eabe4 100644 --- a/gcc/config/m68k/lb1sf68.asm +++ b/gcc/config/m68k/lb1sf68.asm @@ -1,4 +1,4 @@ -/* libgcc1 routines for 68000 w/o floating-point hardware. +/* libgcc routines for 68000 w/o floating-point hardware. Copyright (C) 1994, 1996, 1997, 1998 Free Software Foundation, Inc. This file is part of GNU CC. diff --git a/gcc/config/m68k/t-lynx b/gcc/config/m68k/t-lynx index 6f2cabaaed5..2e30d9105e4 100644 --- a/gcc/config/m68k/t-lynx +++ b/gcc/config/m68k/t-lynx @@ -1,4 +1,3 @@ -CROSS_LIBGCC1 = libgcc1-asm.a LIB1ASMSRC = m68k/lb1sf68.asm LIB1ASMFUNCS = _mulsi3 _udivsi3 _divsi3 _umodsi3 _modsi3 \ _double _float _floatex \ diff --git a/gcc/config/m68k/t-m68kbare b/gcc/config/m68k/t-m68kbare index d334eabfc1e..faad439867d 100644 --- a/gcc/config/m68k/t-m68kbare +++ b/gcc/config/m68k/t-m68kbare @@ -1,12 +1,9 @@ -CROSS_LIBGCC1 = libgcc1-asm.a LIB1ASMSRC = m68k/lb1sf68.asm LIB1ASMFUNCS = _mulsi3 _udivsi3 _divsi3 _umodsi3 _modsi3 \ _double _float _floatex \ _eqdf2 _nedf2 _gtdf2 _gedf2 _ltdf2 _ledf2 \ _eqsf2 _nesf2 _gtsf2 _gesf2 _ltsf2 _lesf2 -# These are really part of libgcc1, but this will cause them to be -# built correctly, so... LIB2FUNCS_EXTRA = fpgnulib.c xfgnulib.c fpgnulib.c: $(srcdir)/config/m68k/fpgnulib.c diff --git a/gcc/config/m68k/t-m68kelf b/gcc/config/m68k/t-m68kelf index d0f857a496d..955bdaa7bb4 100644 --- a/gcc/config/m68k/t-m68kelf +++ b/gcc/config/m68k/t-m68kelf @@ -1,12 +1,9 @@ -CROSS_LIBGCC1 = libgcc1-asm.a LIB1ASMSRC = m68k/lb1sf68.asm LIB1ASMFUNCS = _mulsi3 _udivsi3 _divsi3 _umodsi3 _modsi3 \ _double _float _floatex \ _eqdf2 _nedf2 _gtdf2 _gedf2 _ltdf2 _ledf2 \ _eqsf2 _nesf2 _gtsf2 _gesf2 _ltsf2 _lesf2 -# These are really part of libgcc1, but this will cause them to be -# built correctly, so... LIB2FUNCS_EXTRA = fpgnulib.c xfgnulib.c fpgnulib.c: $(srcdir)/config/m68k/fpgnulib.c diff --git a/gcc/config/m68k/t-mot3300-gald b/gcc/config/m68k/t-mot3300-gald index b9ab6b8cfce..1d6cd3d8dd7 100644 --- a/gcc/config/m68k/t-mot3300-gald +++ b/gcc/config/m68k/t-mot3300-gald @@ -1,15 +1,12 @@ T_CPPFLAGS = -DUSE_GAS -DUSE_GLD TARGET_LIBGCC2_CFLAGS = -DUSE_GAS -CROSS_LIBGCC1 = libgcc1-asm.a LIB1ASMSRC = m68k/lb1sf68.asm LIB1ASMFUNCS = _mulsi3 _udivsi3 _divsi3 _umodsi3 _modsi3 \ _double _float _floatex \ _eqdf2 _nedf2 _gtdf2 _gedf2 _ltdf2 _ledf2 \ _eqsf2 _nesf2 _gtsf2 _gesf2 _ltsf2 _lesf2 -# These are really part of libgcc1, but this will cause them to be -# built correctly, so... LIB2FUNCS_EXTRA = fpgnulib.c xfgnulib.c fpgnulib.c: $(srcdir)/config/m68k/fpgnulib.c diff --git a/gcc/config/m68k/t-mot3300-gas b/gcc/config/m68k/t-mot3300-gas index 7fea4f998df..ba222499084 100644 --- a/gcc/config/m68k/t-mot3300-gas +++ b/gcc/config/m68k/t-mot3300-gas @@ -1,15 +1,12 @@ T_CPPFLAGS = -DUSE_GAS TARGET_LIBGCC2_CFLAGS = -DUSE_GAS -CROSS_LIBGCC1 = libgcc1-asm.a LIB1ASMSRC = m68k/lb1sf68.asm LIB1ASMFUNCS = _mulsi3 _udivsi3 _divsi3 _umodsi3 _modsi3 \ _double _float _floatex \ _eqdf2 _nedf2 _gtdf2 _gedf2 _ltdf2 _ledf2 \ _eqsf2 _nesf2 _gtsf2 _gesf2 _ltsf2 _lesf2 -# These are really part of libgcc1, but this will cause them to be -# built correctly, so... LIB2FUNCS_EXTRA = fpgnulib.c xfgnulib.c fpgnulib.c: $(srcdir)/config/m68k/fpgnulib.c diff --git a/gcc/config/m68k/t-next b/gcc/config/m68k/t-next index 787ee79968e..12711447dae 100644 --- a/gcc/config/m68k/t-next +++ b/gcc/config/m68k/t-next @@ -1,6 +1,2 @@ -# libgcc1.c is not needed, since the standard library has these functions. -LIBGCC1= -CROSS_LIBGCC1= - nextstep.o: $(srcdir)/config/nextstep.c $(CONFIG_H) flags.h tree.h $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $< diff --git a/gcc/config/m68k/t-vxworks68 b/gcc/config/m68k/t-vxworks68 index 7fa59430a28..f3f8d7bd13c 100644 --- a/gcc/config/m68k/t-vxworks68 +++ b/gcc/config/m68k/t-vxworks68 @@ -1,4 +1,3 @@ -CROSS_LIBGCC1 = libgcc1-asm.a LIB1ASMSRC = m68k/lb1sf68.asm LIB1ASMFUNCS = _mulsi3 _udivsi3 _divsi3 _umodsi3 _modsi3 \ _double _float _floatex \ @@ -9,8 +8,6 @@ LIB1ASMFUNCS = _mulsi3 _udivsi3 _divsi3 _umodsi3 _modsi3 \ # does not have _exit. TARGET_LIBGCC2_CFLAGS = -Dexit=unused_exit -# These are really part of libgcc1, but this will cause them to be -# built correctly, so... LIB2FUNCS_EXTRA = fpgnulib.c xfgnulib.c fpgnulib.c: $(srcdir)/config/m68k/fpgnulib.c diff --git a/gcc/config/m88k/t-bug b/gcc/config/m88k/t-bug index a5e71ddf3fc..c4406233d97 100644 --- a/gcc/config/m88k/t-bug +++ b/gcc/config/m88k/t-bug @@ -8,5 +8,3 @@ $(MOVE_ASM): $(srcdir)/config/m88k/m88k-move.sh $(srcdir)/config/m88k/m88k-move.sh LIB2FUNCS_EXTRA = $(MOVE_ASM) -LIBGCC1 = libgcc1.null -CROSS_LIBGCC1 = libgcc1.null diff --git a/gcc/config/m88k/t-dgux b/gcc/config/m88k/t-dgux index cced6b1eca2..384100b0f79 100644 --- a/gcc/config/m88k/t-dgux +++ b/gcc/config/m88k/t-dgux @@ -8,8 +8,6 @@ $(MOVE_ASM): $(srcdir)/config/m88k/m88k-move.sh $(srcdir)/config/m88k/m88k-move.sh LIB2FUNCS_EXTRA = $(MOVE_ASM) -LIBGCC1 = libgcc1.null -CROSS_LIBGCC1 = libgcc1.null # In a coff environment, a link script is required for ctors and dtors. m88kdgux.ld: $(srcdir)/config/m88k/dgux.ld diff --git a/gcc/config/m88k/t-dgux-gas b/gcc/config/m88k/t-dgux-gas index c7368c3c216..1627b277c81 100644 --- a/gcc/config/m88k/t-dgux-gas +++ b/gcc/config/m88k/t-dgux-gas @@ -8,8 +8,6 @@ $(MOVE_ASM): $(srcdir)/config/m88k/m88k-move.sh $(srcdir)/config/m88k/m88k-move.sh LIB2FUNCS_EXTRA = $(MOVE_ASM) -LIBGCC1 = libgcc1.null -CROSS_LIBGCC1 = libgcc1.null T_CPPFLAGS = -DUSE_GAS # In a coff environment, a link script is required. diff --git a/gcc/config/m88k/t-dguxbcs b/gcc/config/m88k/t-dguxbcs index c42a9bf18d5..6a3461a478a 100644 --- a/gcc/config/m88k/t-dguxbcs +++ b/gcc/config/m88k/t-dguxbcs @@ -8,8 +8,6 @@ $(MOVE_ASM): $(srcdir)/config/m88k/m88k-move.sh $(srcdir)/config/m88k/m88k-move.sh LIB2FUNCS_EXTRA = $(MOVE_ASM) -LIBGCC1 = libgcc1.null -CROSS_LIBGCC1 = libgcc1.null # In a coff environment, a link script is required for ctors and dtors. m88kdgux.ld: $(srcdir)/config/m88k/dgux.ld diff --git a/gcc/config/m88k/t-luna b/gcc/config/m88k/t-luna index dce5f225931..ddbfa73da12 100644 --- a/gcc/config/m88k/t-luna +++ b/gcc/config/m88k/t-luna @@ -8,5 +8,3 @@ $(MOVE_ASM): $(srcdir)/config/m88k/m88k-move.sh $(srcdir)/config/m88k/m88k-move.sh -no-tdesc LIB2FUNCS_EXTRA = $(MOVE_ASM) -LIBGCC1 = libgcc1.null -CROSS_LIBGCC1 = libgcc1.null diff --git a/gcc/config/m88k/t-luna-gas b/gcc/config/m88k/t-luna-gas index 780e75cec9f..2b2d72784be 100644 --- a/gcc/config/m88k/t-luna-gas +++ b/gcc/config/m88k/t-luna-gas @@ -8,6 +8,4 @@ $(MOVE_ASM): $(srcdir)/config/m88k/m88k-move.sh $(SHELL) $(srcdir)/config/m88k/m88k-move.sh -no-tdesc LIB2FUNCS_EXTRA = $(MOVE_ASM) -LIBGCC1 = libgcc1.null -CROSS_LIBGCC1 = libgcc1.null T_CPPFLAGS = -DUSE_GAS diff --git a/gcc/config/m88k/t-m88k b/gcc/config/m88k/t-m88k index a5e71ddf3fc..c4406233d97 100644 --- a/gcc/config/m88k/t-m88k +++ b/gcc/config/m88k/t-m88k @@ -8,5 +8,3 @@ $(MOVE_ASM): $(srcdir)/config/m88k/m88k-move.sh $(srcdir)/config/m88k/m88k-move.sh LIB2FUNCS_EXTRA = $(MOVE_ASM) -LIBGCC1 = libgcc1.null -CROSS_LIBGCC1 = libgcc1.null diff --git a/gcc/config/m88k/t-m88k-gas b/gcc/config/m88k/t-m88k-gas index dc436e181be..c5096ea53b9 100644 --- a/gcc/config/m88k/t-m88k-gas +++ b/gcc/config/m88k/t-m88k-gas @@ -8,8 +8,6 @@ $(MOVE_ASM): $(srcdir)/config/m88k/m88k-move.sh $(srcdir)/config/m88k/m88k-move.sh LIB2FUNCS_EXTRA = $(MOVE_ASM) -LIBGCC1 = libgcc1.null -CROSS_LIBGCC1 = libgcc1.null T_CPPFLAGS = -DUSE_GAS # For svr4 we build crtbegin.o and crtend.o which serve to add begin and diff --git a/gcc/config/m88k/t-sysv4 b/gcc/config/m88k/t-sysv4 index 3f90cd577ef..858fdc0476e 100644 --- a/gcc/config/m88k/t-sysv4 +++ b/gcc/config/m88k/t-sysv4 @@ -10,8 +10,6 @@ $(MOVE_ASM): $(srcdir)/config/m88k/m88k-move.sh $(srcdir)/config/m88k/m88k-move.sh -abi LIB2FUNCS_EXTRA = $(MOVE_ASM) -LIBGCC1 = libgcc1.null -CROSS_LIBGCC1 = libgcc1.null # We need to use -fPIC when we are using gcc to compile the routines in # crtstuff.c. This is only really needed when we are going to use gcc/g++ diff --git a/gcc/config/mcore/lib1.asm b/gcc/config/mcore/lib1.asm index 83e33229916..09661d6ef45 100644 --- a/gcc/config/mcore/lib1.asm +++ b/gcc/config/mcore/lib1.asm @@ -1,4 +1,4 @@ -/* libgcc1 routines for the MCore. +/* libgcc routines for the MCore. Copyright (C) 1993, 1999, 2000 Free Software Foundation, Inc. This file is part of GNU CC. diff --git a/gcc/config/mcore/t-mcore b/gcc/config/mcore/t-mcore index de526942f96..313853d399a 100644 --- a/gcc/config/mcore/t-mcore +++ b/gcc/config/mcore/t-mcore @@ -1,8 +1,4 @@ -# Name of assembly file containing libgcc1 functions. -# This entry must be present, but it can be empty if the target does -# not need any assembler functions to support its code generation. -CROSS_LIBGCC1 = libgcc1-asm.a LIB1ASMSRC = mcore/lib1.asm LIB1ASMFUNCS = _divsi3 _udivsi3 _modsi3 _umodsi3 diff --git a/gcc/config/mcore/t-mcore-pe b/gcc/config/mcore/t-mcore-pe index c055a711399..0c94d38ef85 100644 --- a/gcc/config/mcore/t-mcore-pe +++ b/gcc/config/mcore/t-mcore-pe @@ -1,8 +1,3 @@ -# Name of assembly file containing libgcc1 functions. -# This entry must be present, but it can be empty if the target does -# not need any assembler functions to support its code generation. - -CROSS_LIBGCC1 = libgcc1-asm.a LIB1ASMSRC = mcore/lib1.asm LIB1ASMFUNCS = _divsi3 _udivsi3 _modsi3 _umodsi3 diff --git a/gcc/config/mips/t-bsd b/gcc/config/mips/t-bsd index 919508f0fe9..3dc437caa81 100644 --- a/gcc/config/mips/t-bsd +++ b/gcc/config/mips/t-bsd @@ -1,8 +1,3 @@ # Exactly the same as t-mips, except we must define SYSTEM_HEADER_DIR # to point to the bsd43 include files. SYSTEM_HEADER_DIR = /bsd43/usr/include - -# Suppress building libgcc1.a, since the MIPS compiler port is complete -# and does not need anything from libgcc1.a. -LIBGCC1 = -CROSS_LIBGCC1 = diff --git a/gcc/config/mips/t-bsd-gas b/gcc/config/mips/t-bsd-gas index bfa5a7ec38b..2cdad601a9b 100644 --- a/gcc/config/mips/t-bsd-gas +++ b/gcc/config/mips/t-bsd-gas @@ -1,8 +1,3 @@ # Exactly the same as t-mips-gas, except we must define SYSTEM_HEADER_DIR # to point to the bsd43 include files. SYSTEM_HEADER_DIR = /bsd43/usr/include - -# Suppress building libgcc1.a, since the MIPS compiler port is complete -# and does not need anything from libgcc1.a. -LIBGCC1 = -CROSS_LIBGCC1 = diff --git a/gcc/config/mips/t-cross64 b/gcc/config/mips/t-cross64 index bfca95072f7..6eb5217a937 100644 --- a/gcc/config/mips/t-cross64 +++ b/gcc/config/mips/t-cross64 @@ -4,11 +4,6 @@ AR = /usr/cross64/usr/bin/ar # The rest of the file is identical to t-iris6. -# Suppress building libgcc1.a, since the MIPS compiler port is complete -# and does not need anything from libgcc1.a. -LIBGCC1 = -CROSS_LIBGCC1 = - MULTILIB_OPTIONS=mips1/mips2/mips3/mips4 MULTILIB_DIRNAMES= MULTILIB_MATCHES= diff --git a/gcc/config/mips/t-ecoff b/gcc/config/mips/t-ecoff index 143126e2d49..8d7abc053bc 100644 --- a/gcc/config/mips/t-ecoff +++ b/gcc/config/mips/t-ecoff @@ -1,12 +1,5 @@ CONFIG2_H = $(srcdir)/config/mips/ecoff.h -# Suppress building libgcc1.a, since the MIPS compiler port is complete -# and does not need anything from libgcc1.a. -LIBGCC1 = - -# When building a cross compiler, put the mips16 support functions in -# libgcc1.a. -CROSS_LIBGCC1 = libgcc1-asm.a LIB1ASMSRC = mips/mips16.S LIB1ASMFUNCS = _m16addsf3 _m16subsf3 _m16mulsf3 _m16divsf3 \ _m16eqsf2 _m16nesf2 _m16gtsf2 _m16gesf2 _m16lesf2 _m16ltsf2 \ @@ -26,8 +19,6 @@ LIB1ASMFUNCS = _m16addsf3 _m16subsf3 _m16mulsf3 _m16divsf3 \ # without the $gp register. TARGET_LIBGCC2_CFLAGS = -G 0 -# fp-bit and dp-bit are really part of libgcc1, but this will cause -# them to be built correctly, so... [taken from t-sparclite] # We want fine grained libraries, so use the new code to build the # floating point emulation libraries. FPBIT = fp-bit.c diff --git a/gcc/config/mips/t-elf b/gcc/config/mips/t-elf index 410646e1a4a..43df4932993 100644 --- a/gcc/config/mips/t-elf +++ b/gcc/config/mips/t-elf @@ -1,16 +1,9 @@ CONFIG2_H = $(srcdir)/config/mips/ecoff.h -# Suppress building libgcc1.a, since the MIPS compiler port is complete -# and does not need anything from libgcc1.a. -LIBGCC1 = - EXTRA_MULTILIB_PARTS = crtbegin.o crtend.o # Don't let CTOR_LIST end up in sdata section. CRTSTUFF_T_CFLAGS = -G 0 -# When building a cross compiler, put the mips16 support functions in -# libgcc1.a. -CROSS_LIBGCC1 = libgcc1-asm.a LIB1ASMSRC = mips/mips16.S LIB1ASMFUNCS = _m16addsf3 _m16subsf3 _m16mulsf3 _m16divsf3 \ _m16eqsf2 _m16nesf2 _m16gtsf2 _m16gesf2 _m16lesf2 _m16ltsf2 \ @@ -30,8 +23,6 @@ LIB1ASMFUNCS = _m16addsf3 _m16subsf3 _m16mulsf3 _m16divsf3 \ # without the $gp register. TARGET_LIBGCC2_CFLAGS = -G 0 -# fp-bit and dp-bit are really part of libgcc1, but this will cause -# them to be built correctly, so... [taken from t-sparclite] # We want fine grained libraries, so use the new code to build the # floating point emulation libraries. FPBIT = fp-bit.c diff --git a/gcc/config/mips/t-iris6 b/gcc/config/mips/t-iris6 index 6fab3fcf9ce..36a8545e95c 100644 --- a/gcc/config/mips/t-iris6 +++ b/gcc/config/mips/t-iris6 @@ -1,8 +1,3 @@ -# Suppress building libgcc1.a, since the MIPS compiler port is complete -# and does not need anything from libgcc1.a. -LIBGCC1 = -CROSS_LIBGCC1 = - # ??? If no mabi=X option given, but a mipsX option is, then should deal # with that. # ??? mabi=32 is deliberately left off the list because it doesn't work yet. diff --git a/gcc/config/mips/t-mips b/gcc/config/mips/t-mips deleted file mode 100644 index 94f1c442b68..00000000000 --- a/gcc/config/mips/t-mips +++ /dev/null @@ -1,4 +0,0 @@ -# Suppress building libgcc1.a, since the MIPS compiler port is complete -# and does not need anything from libgcc1.a. -LIBGCC1 = -CROSS_LIBGCC1 = diff --git a/gcc/config/mips/t-mips-gas b/gcc/config/mips/t-mips-gas deleted file mode 100644 index 94f1c442b68..00000000000 --- a/gcc/config/mips/t-mips-gas +++ /dev/null @@ -1,4 +0,0 @@ -# Suppress building libgcc1.a, since the MIPS compiler port is complete -# and does not need anything from libgcc1.a. -LIBGCC1 = -CROSS_LIBGCC1 = diff --git a/gcc/config/mips/t-osfrose b/gcc/config/mips/t-osfrose deleted file mode 100644 index 94f1c442b68..00000000000 --- a/gcc/config/mips/t-osfrose +++ /dev/null @@ -1,4 +0,0 @@ -# Suppress building libgcc1.a, since the MIPS compiler port is complete -# and does not need anything from libgcc1.a. -LIBGCC1 = -CROSS_LIBGCC1 = diff --git a/gcc/config/mips/t-r3900 b/gcc/config/mips/t-r3900 index f499da9b1ff..85a6c545ac5 100644 --- a/gcc/config/mips/t-r3900 +++ b/gcc/config/mips/t-r3900 @@ -1,12 +1,5 @@ CONFIG2_H = $(srcdir)/config/mips/ecoff.h -# Suppress building libgcc1.a, since the MIPS compiler port is complete -# and does not need anything from libgcc1.a. -LIBGCC1 = - -# When building a cross compiler, put the mips16 support functions in -# libgcc1.a. -CROSS_LIBGCC1 = libgcc1-asm.a LIB1ASMSRC = mips/mips16.S LIB1ASMFUNCS = _m16addsf3 _m16subsf3 _m16mulsf3 _m16divsf3 \ _m16eqsf2 _m16nesf2 _m16gtsf2 _m16gesf2 _m16lesf2 _m16ltsf2 \ @@ -26,8 +19,6 @@ LIB1ASMFUNCS = _m16addsf3 _m16subsf3 _m16mulsf3 _m16divsf3 \ # without the $gp register. TARGET_LIBGCC2_CFLAGS = -G 0 -# fp-bit and dp-bit are really part of libgcc1, but this will cause -# them to be built correctly, so... [taken from t-sparclite] # We want fine grained libraries, so use the new code to build the # floating point emulation libraries. FPBIT = fp-bit.c diff --git a/gcc/config/mips/t-svr3 b/gcc/config/mips/t-svr3 index be398e08e55..e27c02b19ff 100644 --- a/gcc/config/mips/t-svr3 +++ b/gcc/config/mips/t-svr3 @@ -1,8 +1,3 @@ # Exactly the same as t-mips, except we must define SYSTEM_HEADER_DIR # to point to the svr3 include files. SYSTEM_HEADER_DIR = /sysv/usr/include - -# Suppress building libgcc1.a, since the MIPS compiler port is complete -# and does not need anything from libgcc1.a. -LIBGCC1 = -CROSS_LIBGCC1 = diff --git a/gcc/config/mips/t-svr3-gas b/gcc/config/mips/t-svr3-gas index 99238f25928..e9f3f9e6da9 100644 --- a/gcc/config/mips/t-svr3-gas +++ b/gcc/config/mips/t-svr3-gas @@ -1,8 +1,3 @@ # Exactly the same as t-mips-gas, except we must define SYSTEM_HEADER_DIR # to point to the svr3 include files. SYSTEM_HEADER_DIR = /sysv/usr/include - -# Suppress building libgcc1.a, since the MIPS compiler port is complete -# and does not need anything from libgcc1.a. -LIBGCC1 = -CROSS_LIBGCC1 = diff --git a/gcc/config/mips/t-svr4 b/gcc/config/mips/t-svr4 index 8730b601d93..2b1a24e804f 100644 --- a/gcc/config/mips/t-svr4 +++ b/gcc/config/mips/t-svr4 @@ -1,8 +1,3 @@ # Exactly the same as t-mips, except we must define SYSTEM_HEADER_DIR # to point to the svr4 include files. SYSTEM_HEADER_DIR = /svr4/usr/include - -# Suppress building libgcc1.a, since the MIPS compiler port is complete -# and does not need anything from libgcc1.a. -LIBGCC1 = -CROSS_LIBGCC1 = diff --git a/gcc/config/mips/t-svr4-gas b/gcc/config/mips/t-svr4-gas index 845b091ef38..8c4bff8bc41 100644 --- a/gcc/config/mips/t-svr4-gas +++ b/gcc/config/mips/t-svr4-gas @@ -1,8 +1,3 @@ # Exactly the same as t-mips-gas, except we must define SYSTEM_HEADER_DIR # to point to the svr4 include files. SYSTEM_HEADER_DIR = /svr4/usr/include - -# Suppress building libgcc1.a, since the MIPS compiler port is complete -# and does not need anything from libgcc1.a. -LIBGCC1 = -CROSS_LIBGCC1 = diff --git a/gcc/config/mips/t-ultrix b/gcc/config/mips/t-ultrix index c6a298ae711..ab400409111 100644 --- a/gcc/config/mips/t-ultrix +++ b/gcc/config/mips/t-ultrix @@ -1,6 +1 @@ CONFIG2_H = $(srcdir)/config/mips/mips.h - -# Suppress building libgcc1.a, since the MIPS compiler port is complete -# and does not need anything from libgcc1.a. -LIBGCC1 = -CROSS_LIBGCC1 = diff --git a/gcc/config/mn10200/lib1funcs.asm b/gcc/config/mn10200/lib1funcs.asm index 5e71812a031..90ae1beba80 100644 --- a/gcc/config/mn10200/lib1funcs.asm +++ b/gcc/config/mn10200/lib1funcs.asm @@ -1,4 +1,4 @@ -/* libgcc1 routines for Matsushita mn10200. +/* libgcc routines for Matsushita mn10200. Copyright (C) 1997 Free Software Foundation, Inc. This file is part of GNU CC. diff --git a/gcc/config/mn10200/t-mn10200 b/gcc/config/mn10200/t-mn10200 index 072d6f42b88..7b2dcea652f 100644 --- a/gcc/config/mn10200/t-mn10200 +++ b/gcc/config/mn10200/t-mn10200 @@ -1,5 +1,3 @@ -LIBGCC1=libgcc1.null -CROSS_LIBGCC1 = libgcc1-asm.a LIB1ASMSRC = mn10200/lib1funcs.asm LIB1ASMFUNCS = _divhi3 \ _modhi3 \ diff --git a/gcc/config/mn10300/t-mn10300 b/gcc/config/mn10300/t-mn10300 index 2610f7937c0..2e26e229acc 100644 --- a/gcc/config/mn10300/t-mn10300 +++ b/gcc/config/mn10300/t-mn10300 @@ -1,6 +1,3 @@ -LIBGCC1=libgcc1.null -CROSS_LIBGCC1=libgcc1.null - # We want fine grained libraries, so use the new code to build the # floating point emulation libraries. FPBIT = fp-bit.c diff --git a/gcc/config/pa/t-linux b/gcc/config/pa/t-linux index 5e9b037dc0e..65f16c9566f 100644 --- a/gcc/config/pa/t-linux +++ b/gcc/config/pa/t-linux @@ -1,6 +1,3 @@ -LIBGCC1=libgcc1-asm.a -CROSS_LIBGCC1=libgcc1-asm.a - #Plug millicode routines into libgcc.a We want these on both native and #cross compiles. @@ -16,7 +13,6 @@ LIB1ASMSRC = pa/milli32.S CRTSTUFF_T_CFLAGS_S = -fPIC # Compile libgcc2.a as PIC. -# This is also used when compiling libgcc1 if libgcc1 is the asm variety. TARGET_LIBGCC2_CFLAGS = -fPIC -DELF=1 -DLINUX=1 ADA_CFLAGS=-mdisable-indexing diff --git a/gcc/config/pa/t-linux64 b/gcc/config/pa/t-linux64 index 9ab75100426..e376d22538e 100644 --- a/gcc/config/pa/t-linux64 +++ b/gcc/config/pa/t-linux64 @@ -1,11 +1,7 @@ -LIBGCC1=libgcc1-asm.a -CROSS_LIBGCC1=libgcc1-asm.a - #Plug millicode routines into libgcc.a We want these on both native and #cross compiles. LIB1ASMFUNCS = _divI _divU _remI _remU _div_const _mulI - LIB1ASMSRC = pa/milli64.S # Compile crtbeginS.o and crtendS.o as PIC. @@ -13,5 +9,4 @@ LIB1ASMSRC = pa/milli64.S CRTSTUFF_T_CFLAGS_S = -fPIC # Compile libgcc2.a as PIC. -# This is also used when compiling libgcc1 if libgcc1 is the asm variety. TARGET_LIBGCC2_CFLAGS = -fPIC -Dpa64=1 -DELF=1 diff --git a/gcc/config/pa/t-pa b/gcc/config/pa/t-pa index 5d2a72ca286..c32e7427a4c 100644 --- a/gcc/config/pa/t-pa +++ b/gcc/config/pa/t-pa @@ -1,5 +1,3 @@ -LIBGCC1=libgcc1.null -CROSS_LIBGCC1=libgcc1.null ADA_CFLAGS=-mdisable-indexing LIB2FUNCS_EXTRA=lib2funcs.asm quadlib.c diff --git a/gcc/config/pa/t-pa64 b/gcc/config/pa/t-pa64 index 790b32c236c..8647948aad0 100644 --- a/gcc/config/pa/t-pa64 +++ b/gcc/config/pa/t-pa64 @@ -1,6 +1,3 @@ -LIBGCC1=libgcc1.null -CROSS_LIBGCC1=libgcc1-asm.a - LIB1ASMFUNCS = _divI _divU _remI _remU _div_const LIB1ASMSRC = pa/milli64.S TARGET_LIBGCC2_CFLAGS = -fPIC -Dpa64=1 -DELF=1 @@ -17,4 +14,3 @@ LIB2FUNCS_EXTRA=quadlib.c quadlib.c: $(srcdir)/config/pa/quadlib.c rm -f quadlib.c cp $(srcdir)/config/pa/quadlib.c . - diff --git a/gcc/config/pa/t-pro b/gcc/config/pa/t-pro index 26ced7e73dd..882467bfcc7 100644 --- a/gcc/config/pa/t-pro +++ b/gcc/config/pa/t-pro @@ -1,10 +1,3 @@ -LIBGCC1=libgcc1.null -CROSS_LIBGCC1 = libgcc1.null -LIB1ASMSRC = -LIB1ASMFUNCS = - -LIBGCC1_TEST = - ADA_CFLAGS=-mdisable-indexing LIB2FUNCS_EXTRA=lib2funcs.asm @@ -14,7 +7,6 @@ LIB2FUNCS_EXTRA=lib2funcs.asm FPBIT = fp-bit.c DPBIT = dp-bit.c - dp-bit.c: $(srcdir)/config/fp-bit.c cat $(srcdir)/config/fp-bit.c > dp-bit.c diff --git a/gcc/config/pdp11/t-pdp11 b/gcc/config/pdp11/t-pdp11 index ebcdbb3a352..38bf1473a44 100644 --- a/gcc/config/pdp11/t-pdp11 +++ b/gcc/config/pdp11/t-pdp11 @@ -1,8 +1 @@ -LIBGCC1 = libgcc1.null -CROSS_LIBGCC1 = libgcc1.null - -# forget the libgcc1... -LIBGCC1_TEST = - TARGET_LIBGCC2_CFLAGS = -O2 -mfloat32 -#LIB2FUNCS_EXTRA = diff --git a/gcc/config/pj/t-pj b/gcc/config/pj/t-pj index 2ba90874d57..af390cf9c25 100644 --- a/gcc/config/pj/t-pj +++ b/gcc/config/pj/t-pj @@ -1,7 +1,5 @@ -CROSS_LIBGCC1 = libgcc1-asm.a LIB1ASMSRC = pj/lib1funcs.S LIB1ASMFUNCS = vhelper pjucmpdi2 -LIB2FUNCS_EXTRA = # For svr4 we build crtbegin.o and crtend.o which serve to add begin and # end labels to the .ctors and .dtors section when we link using gcc. diff --git a/gcc/config/rs6000/t-aix43 b/gcc/config/rs6000/t-aix43 index ceb8a692600..1327bca0414 100644 --- a/gcc/config/rs6000/t-aix43 +++ b/gcc/config/rs6000/t-aix43 @@ -1,7 +1,3 @@ -# Do not build libgcc1. -LIBGCC1 = -CROSS_LIBGCC1 = - # We want fine grained libraries, so use the new code to build the # floating point emulation libraries. FPBIT = fp-bit.c diff --git a/gcc/config/rs6000/t-beos b/gcc/config/rs6000/t-beos index b9b578ce2b8..1d4fbf74475 100644 --- a/gcc/config/rs6000/t-beos +++ b/gcc/config/rs6000/t-beos @@ -1,7 +1,3 @@ -# Do not build libgcc1. -LIBGCC1 = -CROSS_LIBGCC1 = - # We want fine grained libraries, so use the new code to build the # floating point emulation libraries. FPBIT = fp-bit.c diff --git a/gcc/config/rs6000/t-darwin b/gcc/config/rs6000/t-darwin index c514fdaa000..d2e211f11ed 100644 --- a/gcc/config/rs6000/t-darwin +++ b/gcc/config/rs6000/t-darwin @@ -1,7 +1,3 @@ -# Do not build libgcc1. -LIBGCC1 = -CROSS_LIBGCC1 = - # We want fine grained libraries, so use the new code to build the # floating point emulation libraries. FPBIT = fp-bit.c diff --git a/gcc/config/rs6000/t-newas b/gcc/config/rs6000/t-newas index fe858d11cfa..b8e715a220a 100644 --- a/gcc/config/rs6000/t-newas +++ b/gcc/config/rs6000/t-newas @@ -1,8 +1,3 @@ -# Do not build libgcc1. -LIBGCC1 = -CROSS_LIBGCC1 = -LIBGCC1_TEST = - # We want fine grained libraries, so use the new code to build the # floating point emulation libraries. FPBIT = fp-bit.c diff --git a/gcc/config/rs6000/t-ppccomm b/gcc/config/rs6000/t-ppccomm index 7d500c36894..73e0ff7e081 100644 --- a/gcc/config/rs6000/t-ppccomm +++ b/gcc/config/rs6000/t-ppccomm @@ -1,11 +1,5 @@ # Common support for PowerPC ELF targets (both EABI and SVR4). -# Do not build libgcc1. -LIBGCC1 = -CROSS_LIBGCC1 = - -# These are really part of libgcc1, but this will cause them to be -# built correctly, so... [taken from t-sparclite] LIB2FUNCS_EXTRA = tramp.S # This one can't end up in shared libgcc diff --git a/gcc/config/rs6000/t-rs6000 b/gcc/config/rs6000/t-rs6000 index 5cbed6a6cd6..f50ef17027c 100644 --- a/gcc/config/rs6000/t-rs6000 +++ b/gcc/config/rs6000/t-rs6000 @@ -1,8 +1,3 @@ -# Do not build libgcc1. -LIBGCC1 = -CROSS_LIBGCC1 = -LIBGCC1_TEST = - # We want fine grained libraries, so use the new code to build the # floating point emulation libraries. FPBIT = fp-bit.c diff --git a/gcc/config/sh/lib1funcs.asm b/gcc/config/sh/lib1funcs.asm index 192e3adfbad..d2a860efb5c 100644 --- a/gcc/config/sh/lib1funcs.asm +++ b/gcc/config/sh/lib1funcs.asm @@ -25,7 +25,7 @@ along with this program; see the file COPYING. If not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -!! libgcc1 routines for the Hitachi SH cpu. +!! libgcc routines for the Hitachi SH cpu. !! Contributed by Steve Chamberlain. !! sac@cygnus.com diff --git a/gcc/config/sh/t-linux b/gcc/config/sh/t-linux index c7fe9e9d8e3..5e4ed91a3c1 100644 --- a/gcc/config/sh/t-linux +++ b/gcc/config/sh/t-linux @@ -1,5 +1,4 @@ TARGET_LIBGCC2_CFLAGS = -fpic -LIBGCC1 = libgcc1-asm.a LIB1ASMFUNCS = _ashiftrt _ashiftrt_n _ashiftlt _lshiftrt _movstr \ _movstr_i4 _mulsi3 _sdivsi3 _sdivsi3_i4 _udivsi3 _udivsi3_i4 _set_fpscr \ _ic_invalidate diff --git a/gcc/config/sh/t-sh b/gcc/config/sh/t-sh index a5604de6e15..9788c49c7d9 100644 --- a/gcc/config/sh/t-sh +++ b/gcc/config/sh/t-sh @@ -1,4 +1,3 @@ -CROSS_LIBGCC1 = libgcc1-asm.a LIB1ASMSRC = sh/lib1funcs.asm LIB1ASMFUNCS = _ashiftrt _ashiftrt_n _ashiftlt _lshiftrt _movstr \ _movstr_i4 _mulsi3 _sdivsi3 _sdivsi3_i4 _udivsi3 _udivsi3_i4 _set_fpscr diff --git a/gcc/config/sparc/lb1spc.asm b/gcc/config/sparc/lb1spc.asm index 831f33a988f..b31f82c8122 100644 --- a/gcc/config/sparc/lb1spc.asm +++ b/gcc/config/sparc/lb1spc.asm @@ -1,5 +1,5 @@ -/* This is an assembly language implementation of libgcc1.c for the sparc - processor. +/* This is an assembly language implementation of mulsi3, divsi3, and modsi3 + for the sparc processor. These routines are derived from the Sparc Architecture Manual, version 8, slightly edited to match the desired calling convention, and also to diff --git a/gcc/config/sparc/lb1spl.asm b/gcc/config/sparc/lb1spl.asm index 4c8bc30b83d..9dda6755fb7 100644 --- a/gcc/config/sparc/lb1spl.asm +++ b/gcc/config/sparc/lb1spl.asm @@ -1,5 +1,5 @@ -/* This is an assembly language implementation of libgcc1.c for the sparclite - processor. +/* This is an assembly language implementation of mulsi3, divsi3, and modsi3 + for the sparclite processor. These routines are all from the Sparclite User's Guide, slightly edited to match the desired calling convention, and also to optimize them. */ diff --git a/gcc/config/sparc/t-chorus-elf b/gcc/config/sparc/t-chorus-elf index 993d7a3dea9..5fc405bf627 100644 --- a/gcc/config/sparc/t-chorus-elf +++ b/gcc/config/sparc/t-chorus-elf @@ -1,13 +1,6 @@ -# we need to supply our own assembly versions of libgcc1.c files, -# since the user may not have native 'cc' available - -CROSS_LIBGCC1 = libgcc1-asm.a LIB1ASMSRC = sparc/lb1spc.asm LIB1ASMFUNCS = _mulsi3 _divsi3 _modsi3 -# crt0 is built elsewhere -LIBGCC1_TEST = - # We want fine grained libraries, so use the new code to build the # floating point emulation libraries. FPBIT = fp-bit.c diff --git a/gcc/config/sparc/t-elf b/gcc/config/sparc/t-elf index d05f9907a12..ead6e25610d 100644 --- a/gcc/config/sparc/t-elf +++ b/gcc/config/sparc/t-elf @@ -1,13 +1,3 @@ -# we need to supply our own assembly versions of libgcc1.c files, -# since the user may not have native 'cc' available - -CROSS_LIBGCC1 = libgcc1-asm.a -LIB1ASMSRC = sparc/lb1spc.asm -LIB1ASMFUNCS = _mulsi3 _divsi3 _modsi3 - -# crt0 is built elsewhere -LIBGCC1_TEST = - # We want fine grained libraries, so use the new code to build the # floating point emulation libraries. FPBIT = fp-bit.c diff --git a/gcc/config/sparc/t-sol2 b/gcc/config/sparc/t-sol2 index a9b6ee14793..4a5a13b8618 100644 --- a/gcc/config/sparc/t-sol2 +++ b/gcc/config/sparc/t-sol2 @@ -1,10 +1,3 @@ -# we need to supply our own assembly versions of libgcc1.c files, -# since the user may not have native 'cc' available - -LIBGCC1 = -CROSS_LIBGCC1 = -LIBGCC1_TEST = - # gmon build rule: $(T)gmon.o: $(srcdir)/config/sparc/gmon-sol2.c $(GCC_PASSES) $(CONFIG_H) stmp-int-hdrs $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) \ diff --git a/gcc/config/sparc/t-sp64 b/gcc/config/sparc/t-sp64 deleted file mode 100644 index 99acd5d5423..00000000000 --- a/gcc/config/sparc/t-sp64 +++ /dev/null @@ -1,2 +0,0 @@ -LIBGCC1 = -CROSS_LIBGCC1 = diff --git a/gcc/config/sparc/t-sp86x b/gcc/config/sparc/t-sp86x index 13bc9e709bf..6dd5c03e619 100644 --- a/gcc/config/sparc/t-sp86x +++ b/gcc/config/sparc/t-sp86x @@ -1,4 +1,3 @@ -CROSS_LIBGCC1 = libgcc1-asm.a LIB1ASMSRC = sparc/lb1spc.asm LIB1ASMFUNCS = _divsi3 _modsi3 diff --git a/gcc/config/sparc/t-sparcbare b/gcc/config/sparc/t-sparcbare index 01562b24b7c..bac38de9b79 100644 --- a/gcc/config/sparc/t-sparcbare +++ b/gcc/config/sparc/t-sparcbare @@ -1,6 +1,5 @@ # configuration file for a bare sparc cpu -CROSS_LIBGCC1 = libgcc1-asm.a LIB1ASMSRC = sparc/lb1spc.asm LIB1ASMFUNCS = _mulsi3 _divsi3 _modsi3 diff --git a/gcc/config/sparc/t-sparclite b/gcc/config/sparc/t-sparclite index b5ccbb1e99f..03c44b5411b 100644 --- a/gcc/config/sparc/t-sparclite +++ b/gcc/config/sparc/t-sparclite @@ -1,4 +1,3 @@ -CROSS_LIBGCC1 = libgcc1-asm.a LIB1ASMSRC = sparc/lb1spl.asm LIB1ASMFUNCS = _divsi3 _udivsi3 _modsi3 _umodsi3 diff --git a/gcc/config/sparc/t-splet b/gcc/config/sparc/t-splet index ecead404966..3334200dd64 100644 --- a/gcc/config/sparc/t-splet +++ b/gcc/config/sparc/t-splet @@ -1,6 +1,5 @@ # configuration file for a bare sparclet cpu, aout format files -CROSS_LIBGCC1 = libgcc1-asm.a LIB1ASMSRC = sparc/lb1spc.asm LIB1ASMFUNCS = _mulsi3 _divsi3 _modsi3 diff --git a/gcc/config/sparc/t-sunos40 b/gcc/config/sparc/t-sunos40 deleted file mode 100644 index 3e10575eaea..00000000000 --- a/gcc/config/sparc/t-sunos40 +++ /dev/null @@ -1,7 +0,0 @@ -# SunOS 4.0.* -# /bin/as doesn't recognize the v8 instructions, so we can't do a v8 -# multilib build. - -LIBGCC1 = -CROSS_LIBGCC1 = -LIBGCC1_TEST = diff --git a/gcc/config/sparc/t-sunos41 b/gcc/config/sparc/t-sunos41 index 5783d6a2625..1056d931f8a 100644 --- a/gcc/config/sparc/t-sunos41 +++ b/gcc/config/sparc/t-sunos41 @@ -1,9 +1,5 @@ # SunOS 4.1.* -LIBGCC1 = -CROSS_LIBGCC1 = -LIBGCC1_TEST = - MULTILIB_OPTIONS = fpic/fPIC mcpu=v8 MULTILIB_DIRNAMES = pic ucpic v8 MULTILIB_MATCHES = mcpu?v8=mv8 diff --git a/gcc/config/sparc/t-vxsparc b/gcc/config/sparc/t-vxsparc index 0c7a14a4429..5a47341ac40 100644 --- a/gcc/config/sparc/t-vxsparc +++ b/gcc/config/sparc/t-vxsparc @@ -1,10 +1,3 @@ -LIBGCC1 = -CROSS_LIBGCC1 = - -# We don't want to build .umul, etc., because VxWorks provides them, -# which means that libgcc1-test will fail. -LIBGCC1_TEST = - # We don't want to put exit in libgcc.a for VxWorks, because VxWorks # does not have _exit. TARGET_LIBGCC2_CFLAGS = -Dexit=unused_exit diff --git a/gcc/config/sparc/t-vxsparc64 b/gcc/config/sparc/t-vxsparc64 index 23efb371268..ee779eec91b 100644 --- a/gcc/config/sparc/t-vxsparc64 +++ b/gcc/config/sparc/t-vxsparc64 @@ -1,16 +1,7 @@ -LIBGCC1 = -CROSS_LIBGCC1 = - -# We don't want to build .umul, etc., because VxWorks provides them, -# which means that libgcc1-test will fail. -LIBGCC1_TEST = - # We don't want to put exit in libgcc.a for VxWorks, because VxWorks # does not have _exit. TARGET_LIBGCC2_CFLAGS = -Dexit=unused_exit -# fp-bit and dp-bit are really part of libgcc1, but this will cause -# them to be built correctly, so... [taken from t-sparclite] LIB2FUNCS_EXTRA = fp-bit.c dp-bit.c dp-bit.c: $(srcdir)/config/fp-bit.c diff --git a/gcc/config/t-libc-ok b/gcc/config/t-libc-ok index 43e4f5e9e04..9b0fb383a58 100644 --- a/gcc/config/t-libc-ok +++ b/gcc/config/t-libc-ok @@ -1,3 +1 @@ -LIBGCC1=libgcc1.null -CROSS_LIBGCC1=libgcc1.null CRTSTUFF_T_FLAGS_S=-fPIC diff --git a/gcc/config/t-linux b/gcc/config/t-linux index 0becd19f8e8..d16db7de615 100644 --- a/gcc/config/t-linux +++ b/gcc/config/t-linux @@ -20,9 +20,3 @@ SHLIB_INSTALL = $(INSTALL_DATA) @shlib_base_name@.so $$(slibdir)/@shlib_base_nam $(LN_S) @shlib_base_name@.so.0 $$(slibdir)/@shlib_base_name@.so SHLIB_MKMAP = $(srcdir)/mkmap-symver.awk SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver $(srcdir)/config/libgcc-glibc.ver - -# Do not build libgcc1. Let gcc generate those functions. The GNU/Linux -# C library can handle them. -LIBGCC1 = -CROSS_LIBGCC1 = -LIBGCC1_TEST = diff --git a/gcc/config/t-linux-aout b/gcc/config/t-linux-aout index d08bcff9867..d284b3e7e41 100644 --- a/gcc/config/t-linux-aout +++ b/gcc/config/t-linux-aout @@ -1,8 +1,2 @@ # Don't run fixproto STMP_FIXPROTO = - -# Do not build libgcc1. Let gcc generate those functions. The GNU/Linux -# C library can handle them. -LIBGCC1 = -CROSS_LIBGCC1 = -LIBGCC1_TEST = diff --git a/gcc/config/t-netbsd b/gcc/config/t-netbsd index f64fe29b6d1..d284b3e7e41 100644 --- a/gcc/config/t-netbsd +++ b/gcc/config/t-netbsd @@ -1,6 +1,2 @@ -LIBGCC1=libgcc1.null -CROSS_LIBGCC1=libgcc1.null -LIBGCC1_TEST= - # Don't run fixproto STMP_FIXPROTO = diff --git a/gcc/config/t-openbsd b/gcc/config/t-openbsd index 14bebc13e6b..0489e872038 100644 --- a/gcc/config/t-openbsd +++ b/gcc/config/t-openbsd @@ -3,5 +3,3 @@ STMP_FIXPROTO = # We don't need GCC's own include files but we do need lang specific ones. USER_H = ${LANG_EXTRA_HEADERS} -INSTALL_ASSERT_H = - diff --git a/gcc/config/v850/lib1funcs.asm b/gcc/config/v850/lib1funcs.asm index 9248acb117b..621ba60a486 100644 --- a/gcc/config/v850/lib1funcs.asm +++ b/gcc/config/v850/lib1funcs.asm @@ -1,4 +1,4 @@ -/* libgcc1 routines for NEC V850. +/* libgcc routines for NEC V850. Copyright (C) 1996, 1997 Free Software Foundation, Inc. This file is part of GNU CC. diff --git a/gcc/config/v850/t-v850 b/gcc/config/v850/t-v850 index 479a2357205..1b96a8adc6f 100644 --- a/gcc/config/v850/t-v850 +++ b/gcc/config/v850/t-v850 @@ -1,4 +1,3 @@ -CROSS_LIBGCC1 = libgcc1-asm.a LIB1ASMSRC = v850/lib1funcs.asm LIB1ASMFUNCS = _mulsi3 \ _divsi3 \ diff --git a/gcc/config/vax/t-openbsd b/gcc/config/vax/t-openbsd deleted file mode 100644 index fbc85d12a32..00000000000 --- a/gcc/config/vax/t-openbsd +++ /dev/null @@ -1,3 +0,0 @@ -# We need urem and udiv from some kind of support library (e.g. libc) and -# at this point we don't have that available -LIBGCC1_TEST = diff --git a/gcc/config/vax/t-vax b/gcc/config/vax/t-vax deleted file mode 100644 index 1d64c37b208..00000000000 --- a/gcc/config/vax/t-vax +++ /dev/null @@ -1,3 +0,0 @@ -LIBGCC1=libgcc1.null -CROSS_LIBGCC1=libgcc1.null - diff --git a/gcc/cross-make b/gcc/cross-make index 241edba8ad0..38bacfd1276 100644 --- a/gcc/cross-make +++ b/gcc/cross-make @@ -1,8 +1,3 @@ -# Build libgcc1.a for a cross-compiler. -# By default this expects the user to provide libgcc1.a, -# and gives up immediately if the user has not done so. -LIBGCC1 = $(CROSS_LIBGCC1) - # 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 = $(CROSS_SYSTEM_HEADER_DIR) diff --git a/gcc/crtstuff.c b/gcc/crtstuff.c index 2e18e5a6d07..b8f6df588f8 100644 --- a/gcc/crtstuff.c +++ b/gcc/crtstuff.c @@ -30,7 +30,7 @@ along with GNU CC; see the file COPYING. If not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* This file is a bit like libgcc1.c/libgcc2.c in that it is compiled +/* This file is a bit like libgcc2.c in that it is compiled multiple times and yields multiple .o files. This file is useful on target machines where the object file format diff --git a/gcc/floatlib.c b/gcc/floatlib.c index dc791393724..ed139033d69 100644 --- a/gcc/floatlib.c +++ b/gcc/floatlib.c @@ -10,8 +10,7 @@ Warning! Only single-precision is actually implemented. This file won't really be much use until double-precision is supported. -However, once that is done, this file might eventually become a -replacement for libgcc1.c. It might also make possible +However, once that is done, this file might make possible cross-compilation for an IEEE target machine from a non-IEEE host such as a VAX. diff --git a/gcc/gcc.texi b/gcc/gcc.texi index a2b90f1e217..b0060c90801 100644 --- a/gcc/gcc.texi +++ b/gcc/gcc.texi @@ -3445,18 +3445,11 @@ with @samp{-msoft-float}. Some standard parts of the C library, such as @code{bcopy} or @code{memcpy}, are also called automatically. The usual function call interface is used for calling the library routines. -These library routines should be defined in the library @file{libgcc.a}, -which GCC automatically searches whenever it links a program. On -machines that have multiply and divide instructions, if hardware -floating point is in use, normally @file{libgcc.a} is not needed, but it -is searched just in case. - -Each arithmetic function is defined in @file{libgcc1.c} to use the -corresponding C arithmetic operator. As long as the file is compiled -with another C compiler, which supports all the C arithmetic operators, -this file will work portably. However, @file{libgcc1.c} does not work if -compiled with GCC, because each arithmetic function would compile -into a call to itself! +Some of these routines can be defined in mostly machine-independent C; +they appear in @file{libgcc2.c}. Others must be hand-written in +assembly language for each processor. Wherever they are defined, they +are compiled into the support library, @file{libgcc.a}, which is +automatically searched when you link programs with GCC. @end ifset @ifset INTERNALS @@ -4201,19 +4194,6 @@ The target makefile fragment, @file{t-@var{target}}, defines special target dependent variables and targets used in the @file{Makefile}: @table @code -@findex LIBGCC1 -@item LIBGCC1 -The rule to use to build @file{libgcc1.a}. -If your target does not need to use the functions in @file{libgcc1.a}, -set this to empty. -@xref{Interface}. - -@findex CROSS_LIBGCC1 -@item CROSS_LIBGCC1 -The rule to use to build @file{libgcc1.a} when building a cross -compiler. If your target does not need to use the functions in -@file{libgcc1.a}, set this to empty. @xref{Cross Runtime}. - @findex LIBGCC2_CFLAGS @item LIBGCC2_CFLAGS Compiler flags to use when compiling @file{libgcc2.c}. @@ -4336,20 +4316,6 @@ dependent variables and targets used in the @file{Makefile}: @item CC The compiler to use when building the first stage. -@findex CLIB -@item CLIB -Additional host libraries to link with. - -@findex OLDCC -@item OLDCC -The compiler to use when building @file{libgcc1.a} for a native -compilation. - -@findex OLDAR -@item OLDAR -The version of @code{ar} to use when building @file{libgcc1.a} for a native -compilation. - @findex INSTALL @item INSTALL The install program to use. diff --git a/gcc/install.texi b/gcc/install.texi index 07c617c3d20..35f4dbf43b8 100644 --- a/gcc/install.texi +++ b/gcc/install.texi @@ -1592,7 +1592,6 @@ for the target machine that you can install on the host machine. * Tools and Libraries:: Where to put the linker and assembler, and the C library. * Cross Headers:: Finding and installing header files for a cross-compiler. -* Cross Runtime:: Supplying arithmetic runtime routines (@file{libgcc1.a}). * Build Cross:: Actually compiling the cross-compiler. @end menu @@ -1716,97 +1715,6 @@ mget *crt*.o quit @end example -@node Cross Runtime -@subsection @file{libgcc.a} and Cross-Compilers - -Code compiled by GNU CC uses certain runtime support functions -implicitly. Some of these functions can be compiled successfully with -GNU CC itself, but a few cannot be. These problem functions are in the -source file @file{libgcc1.c}; the library made from them is called -@file{libgcc1.a}. - -When you build a native compiler, these functions are compiled with some -other compiler--the one that you use for bootstrapping GNU CC. -Presumably it knows how to open code these operations, or else knows how -to call the run-time emulation facilities that the machine comes with. -But this approach doesn't work for building a cross-compiler. The -compiler that you use for building knows about the host system, not the -target system. - -So, when you build a cross-compiler you have to supply a suitable -library @file{libgcc1.a} that does the job it is expected to do. - -To compile @file{libgcc1.c} with the cross-compiler itself does not -work. The functions in this file are supposed to implement arithmetic -operations that GNU CC does not know how to open code for your target -machine. If these functions are compiled with GNU CC itself, they -will compile into infinite recursion. - -On any given target, most of these functions are not needed. If GNU CC -can open code an arithmetic operation, it will not call these functions -to perform the operation. It is possible that on your target machine, -none of these functions is needed. If so, you can supply an empty -library as @file{libgcc1.a}. - -Many targets need library support only for multiplication and division. -If you are linking with a library that contains functions for -multiplication and division, you can tell GNU CC to call them directly -by defining the macros @code{MULSI3_LIBCALL}, and the like. These -macros need to be defined in the target description macro file. For -some targets, they are defined already. This may be sufficient to -avoid the need for libgcc1.a; if so, you can supply an empty library. - -Some targets do not have floating point instructions; they need other -functions in @file{libgcc1.a}, which do floating arithmetic. -Recent versions of GNU CC have a file which emulates floating point. -With a certain amount of work, you should be able to construct a -floating point emulator that can be used as @file{libgcc1.a}. Perhaps -future versions will contain code to do this automatically and -conveniently. That depends on whether someone wants to implement it. - -Some embedded targets come with all the necessary @file{libgcc1.a} -routines written in C or assembler. These targets build -@file{libgcc1.a} automatically and you do not need to do anything -special for them. Other embedded targets do not need any -@file{libgcc1.a} routines since all the necessary operations are -supported by the hardware. - -If your target system has another C compiler, you can configure GNU CC -as a native compiler on that machine, build just @file{libgcc1.a} with -@samp{make libgcc1.a} on that machine, and use the resulting file with -the cross-compiler. To do this, execute the following on the target -machine: - -@example -cd @var{target-build-dir} -./configure --host=sparc --target=sun3 -make libgcc1.a -@end example - -@noindent -And then this on the host machine: - -@example -ftp @var{target-machine} -binary -cd @var{target-build-dir} -get libgcc1.a -quit -@end example - -Another way to provide the functions you need in @file{libgcc1.a} is to -define the appropriate @code{perform_@dots{}} macros for those -functions. If these definitions do not use the C arithmetic operators -that they are meant to implement, you should be able to compile them -with the cross-compiler you are building. (If these definitions already -exist for your target file, then you are all set.) - -To build @file{libgcc1.a} using the perform macros, use -@samp{LIBGCC1=libgcc1.a OLDCC=./xgcc} when building the compiler. -Otherwise, you should place your replacement library under the name -@file{libgcc1.a} in the directory in which you will build the -cross-compiler, before you run @code{make}. - @node Cross Headers @subsection Cross-Compilers and Header Files @@ -1863,22 +1771,17 @@ tar xf tarfile @subsection Actually Building the Cross-Compiler Now you can proceed just as for compiling a single-machine compiler -through the step of building stage 1. If you have not provided some -sort of @file{libgcc1.a}, then compilation will give up at the point -where it needs that file, printing a suitable error message. If you -do provide @file{libgcc1.a}, then building the compiler will automatically -compile and link a test program called @file{libgcc1-test}; if you get -errors in the linking, it means that not all of the necessary routines -in @file{libgcc1.a} are available. - -You must provide the header file @file{float.h}. One way to do this is -to compile @file{enquire} and run it on your target machine. The job of -@file{enquire} is to run on the target machine and figure out by -experiment the nature of its floating point representation. -@file{enquire} records its findings in the header file @file{float.h}. -If you can't produce this file by running @file{enquire} on the target -machine, then you will need to come up with a suitable @file{float.h} in -some other way (or else, avoid using it in your programs). +through the step of building stage 1. + +If your target is exotic, you may need to provide the header file +@file{float.h}.One way to do this is to compile @file{enquire} and run +it on your target machine. The job of @file{enquire} is to run on the +target machine and figure out by experiment the nature of its floating +point representation. @file{enquire} records its findings in the header +file @file{float.h}. If you can't produce this file by running +@file{enquire} on the target machine, then you will need to come up with +a suitable @file{float.h} in some other way (or else, avoid using it in +your programs). Do not try to build stage 2 for a cross-compiler. It doesn't work to rebuild GNU CC as a cross-compiler using the cross-compiler, because diff --git a/gcc/invoke.texi b/gcc/invoke.texi index c496458482c..3f639b8ff8d 100644 --- a/gcc/invoke.texi +++ b/gcc/invoke.texi @@ -7125,7 +7125,7 @@ These @samp{-m} options are defined for the DEC Alpha implementations: @itemx -msoft-float Use (do not use) the hardware floating-point instructions for floating-point operations. When @option{-msoft-float} is specified, -functions in @file{libgcc1.c} will be used to perform floating-point +functions in @file{libgcc.a} will be used to perform floating-point operations. Unless they are replaced by routines that emulate the floating-point operations, or compiled in such a way as to call such emulations routines, these routines will issue floating-point diff --git a/gcc/libgcc1.c b/gcc/libgcc1.c deleted file mode 100644 index 8ec6391b9a4..00000000000 --- a/gcc/libgcc1.c +++ /dev/null @@ -1,590 +0,0 @@ -/* Subroutines needed by GCC output code on some machines. */ -/* Compile this file with the Unix C compiler! */ -/* Copyright (C) 1987, 1988, 1992, 1994, 1995 Free Software Foundation, Inc. - -This file 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. - -In addition to the permissions in the GNU General Public License, the -Free Software Foundation gives you unlimited permission to link the -compiled version of this file into combinations with other programs, -and to distribute those combinations without any restriction coming -from the use of this file. (The General Public License restrictions -do apply in other respects; for example, they cover modification of -the file, and distribution when not linked into a combine -executable.) - -This file 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 this program; see the file COPYING. If not, write to -the Free Software Foundation, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -#include "config.h" - -/* Don't use `fancy_abort' here even if config.h says to use it. */ -#ifdef abort -#undef abort -#endif - -/* On some machines, cc is really GCC. For these machines, we can't - expect these functions to be properly compiled unless GCC open codes - the operation (which is precisely when the function won't be used). - So allow tm.h to specify ways of accomplishing the operations - by defining the macros perform_*. - - On a machine where cc is some other compiler, there is usually no - reason to define perform_*. The other compiler normally has other ways - of implementing all of these operations. - - In some cases a certain machine may come with GCC installed as cc - or may have some other compiler. Then it may make sense for tm.h - to define perform_* only if __GNUC__ is defined. */ - -#ifndef perform_mulsi3 -#define perform_mulsi3(a, b) return a * b -#endif - -#ifndef perform_divsi3 -#define perform_divsi3(a, b) return a / b -#endif - -#ifndef perform_udivsi3 -#define perform_udivsi3(a, b) return a / b -#endif - -#ifndef perform_modsi3 -#define perform_modsi3(a, b) return a % b -#endif - -#ifndef perform_umodsi3 -#define perform_umodsi3(a, b) return a % b -#endif - -#ifndef perform_lshrsi3 -#define perform_lshrsi3(a, b) return a >> b -#endif - -#ifndef perform_ashrsi3 -#define perform_ashrsi3(a, b) return a >> b -#endif - -#ifndef perform_ashlsi3 -#define perform_ashlsi3(a, b) return a << b -#endif - -#ifndef perform_adddf3 -#define perform_adddf3(a, b) return a + b -#endif - -#ifndef perform_subdf3 -#define perform_subdf3(a, b) return a - b -#endif - -#ifndef perform_muldf3 -#define perform_muldf3(a, b) return a * b -#endif - -#ifndef perform_divdf3 -#define perform_divdf3(a, b) return a / b -#endif - -#ifndef perform_addsf3 -#define perform_addsf3(a, b) return INTIFY (a + b) -#endif - -#ifndef perform_subsf3 -#define perform_subsf3(a, b) return INTIFY (a - b) -#endif - -#ifndef perform_mulsf3 -#define perform_mulsf3(a, b) return INTIFY (a * b) -#endif - -#ifndef perform_divsf3 -#define perform_divsf3(a, b) return INTIFY (a / b) -#endif - -#ifndef perform_negdf2 -#define perform_negdf2(a) return -a -#endif - -#ifndef perform_negsf2 -#define perform_negsf2(a) return INTIFY (-a) -#endif - -#ifndef perform_fixdfsi -#define perform_fixdfsi(a) return (nongcc_SI_type) a; -#endif - -#ifndef perform_fixsfsi -#define perform_fixsfsi(a) return (nongcc_SI_type) a -#endif - -#ifndef perform_floatsidf -#define perform_floatsidf(a) return (double) a -#endif - -#ifndef perform_floatsisf -#define perform_floatsisf(a) return INTIFY ((float) a) -#endif - -#ifndef perform_extendsfdf2 -#define perform_extendsfdf2(a) return a -#endif - -#ifndef perform_truncdfsf2 -#define perform_truncdfsf2(a) return INTIFY (a) -#endif - -/* Note that eqdf2 returns a value for "true" that is == 0, - nedf2 returns a value for "true" that is != 0, - gtdf2 returns a value for "true" that is > 0, - and so on. */ - -#ifndef perform_eqdf2 -#define perform_eqdf2(a, b) return !(a == b) -#endif - -#ifndef perform_nedf2 -#define perform_nedf2(a, b) return a != b -#endif - -#ifndef perform_gtdf2 -#define perform_gtdf2(a, b) return a > b -#endif - -#ifndef perform_gedf2 -#define perform_gedf2(a, b) return (a >= b) - 1 -#endif - -#ifndef perform_ltdf2 -#define perform_ltdf2(a, b) return -(a < b) -#endif - -#ifndef perform_ledf2 -#define perform_ledf2(a, b) return 1 - (a <= b) -#endif - -#ifndef perform_eqsf2 -#define perform_eqsf2(a, b) return !(a == b) -#endif - -#ifndef perform_nesf2 -#define perform_nesf2(a, b) return a != b -#endif - -#ifndef perform_gtsf2 -#define perform_gtsf2(a, b) return a > b -#endif - -#ifndef perform_gesf2 -#define perform_gesf2(a, b) return (a >= b) - 1 -#endif - -#ifndef perform_ltsf2 -#define perform_ltsf2(a, b) return -(a < b) -#endif - -#ifndef perform_lesf2 -#define perform_lesf2(a, b) return 1 - (a <= b); -#endif - -/* Define the C data type to use for an SImode value. */ - -#ifndef nongcc_SI_type -#define nongcc_SI_type long int -#endif - -/* Define the C data type to use for a value of word size */ -#ifndef nongcc_word_type -#define nongcc_word_type nongcc_SI_type -#endif - -/* Define the type to be used for returning an SF mode value - and the method for turning a float into that type. - These definitions work for machines where an SF value is - returned in the same register as an int. */ - -#ifndef FLOAT_VALUE_TYPE -#define FLOAT_VALUE_TYPE int -#endif - -#ifndef INTIFY -#define INTIFY(FLOATVAL) (intify.f = (FLOATVAL), intify.i) -#endif - -#ifndef FLOATIFY -#define FLOATIFY(INTVAL) ((INTVAL).f) -#endif - -#ifndef FLOAT_ARG_TYPE -#define FLOAT_ARG_TYPE union flt_or_int -#endif - -union flt_or_value { FLOAT_VALUE_TYPE i; float f; }; - -union flt_or_int { int i; float f; }; - - -#ifdef L_mulsi3 -nongcc_SI_type -__mulsi3 (a, b) - nongcc_SI_type a, b; -{ - perform_mulsi3 (a, b); -} -#endif - -#ifdef L_udivsi3 -nongcc_SI_type -__udivsi3 (a, b) - unsigned nongcc_SI_type a, b; -{ - perform_udivsi3 (a, b); -} -#endif - -#ifdef L_divsi3 -nongcc_SI_type -__divsi3 (a, b) - nongcc_SI_type a, b; -{ - perform_divsi3 (a, b); -} -#endif - -#ifdef L_umodsi3 -nongcc_SI_type -__umodsi3 (a, b) - unsigned nongcc_SI_type a, b; -{ - perform_umodsi3 (a, b); -} -#endif - -#ifdef L_modsi3 -nongcc_SI_type -__modsi3 (a, b) - nongcc_SI_type a, b; -{ - perform_modsi3 (a, b); -} -#endif - -#ifdef L_lshrsi3 -nongcc_SI_type -__lshrsi3 (a, b) - unsigned nongcc_SI_type a, b; -{ - perform_lshrsi3 (a, b); -} -#endif - -#ifdef L_ashrsi3 -nongcc_SI_type -__ashrsi3 (a, b) - nongcc_SI_type a, b; -{ - perform_ashrsi3 (a, b); -} -#endif - -#ifdef L_ashlsi3 -nongcc_SI_type -__ashlsi3 (a, b) - nongcc_SI_type a, b; -{ - perform_ashlsi3 (a, b); -} -#endif - -#ifdef L_divdf3 -double -__divdf3 (a, b) - double a, b; -{ - perform_divdf3 (a, b); -} -#endif - -#ifdef L_muldf3 -double -__muldf3 (a, b) - double a, b; -{ - perform_muldf3 (a, b); -} -#endif - -#ifdef L_negdf2 -double -__negdf2 (a) - double a; -{ - perform_negdf2 (a); -} -#endif - -#ifdef L_adddf3 -double -__adddf3 (a, b) - double a, b; -{ - perform_adddf3 (a, b); -} -#endif - -#ifdef L_subdf3 -double -__subdf3 (a, b) - double a, b; -{ - perform_subdf3 (a, b); -} -#endif - -/* Note that eqdf2 returns a value for "true" that is == 0, - nedf2 returns a value for "true" that is != 0, - gtdf2 returns a value for "true" that is > 0, - and so on. */ - -#ifdef L_eqdf2 -nongcc_word_type -__eqdf2 (a, b) - double a, b; -{ - /* Value == 0 iff a == b. */ - perform_eqdf2 (a, b); -} -#endif - -#ifdef L_nedf2 -nongcc_word_type -__nedf2 (a, b) - double a, b; -{ - /* Value != 0 iff a != b. */ - perform_nedf2 (a, b); -} -#endif - -#ifdef L_gtdf2 -nongcc_word_type -__gtdf2 (a, b) - double a, b; -{ - /* Value > 0 iff a > b. */ - perform_gtdf2 (a, b); -} -#endif - -#ifdef L_gedf2 -nongcc_word_type -__gedf2 (a, b) - double a, b; -{ - /* Value >= 0 iff a >= b. */ - perform_gedf2 (a, b); -} -#endif - -#ifdef L_ltdf2 -nongcc_word_type -__ltdf2 (a, b) - double a, b; -{ - /* Value < 0 iff a < b. */ - perform_ltdf2 (a, b); -} -#endif - -#ifdef L_ledf2 -nongcc_word_type -__ledf2 (a, b) - double a, b; -{ - /* Value <= 0 iff a <= b. */ - perform_ledf2 (a, b); -} -#endif - -#ifdef L_fixdfsi -nongcc_SI_type -__fixdfsi (a) - double a; -{ - perform_fixdfsi (a); -} -#endif - -#ifdef L_fixsfsi -nongcc_SI_type -__fixsfsi (a) - FLOAT_ARG_TYPE a; -{ - union flt_or_value intify; - perform_fixsfsi (FLOATIFY (a)); -} -#endif - -#ifdef L_floatsidf -double -__floatsidf (a) - nongcc_SI_type a; -{ - perform_floatsidf (a); -} -#endif - -#ifdef L_floatsisf -FLOAT_VALUE_TYPE -__floatsisf (a) - nongcc_SI_type a; -{ - union flt_or_value intify; - perform_floatsisf (a); -} -#endif - -#ifdef L_addsf3 -FLOAT_VALUE_TYPE -__addsf3 (a, b) - FLOAT_ARG_TYPE a, b; -{ - union flt_or_value intify; - perform_addsf3 (FLOATIFY (a), FLOATIFY (b)); -} -#endif - -#ifdef L_negsf2 -FLOAT_VALUE_TYPE -__negsf2 (a) - FLOAT_ARG_TYPE a; -{ - union flt_or_value intify; - perform_negsf2 (FLOATIFY (a)); -} -#endif - -#ifdef L_subsf3 -FLOAT_VALUE_TYPE -__subsf3 (a, b) - FLOAT_ARG_TYPE a, b; -{ - union flt_or_value intify; - perform_subsf3 (FLOATIFY (a), FLOATIFY (b)); -} -#endif - -#ifdef L_eqsf2 -nongcc_word_type -__eqsf2 (a, b) - FLOAT_ARG_TYPE a, b; -{ - union flt_or_int intify; - /* Value == 0 iff a == b. */ - perform_eqsf2 (FLOATIFY (a), FLOATIFY (b)); -} -#endif - -#ifdef L_nesf2 -nongcc_word_type -__nesf2 (a, b) - FLOAT_ARG_TYPE a, b; -{ - union flt_or_int intify; - /* Value != 0 iff a != b. */ - perform_nesf2 (FLOATIFY (a), FLOATIFY (b)); -} -#endif - -#ifdef L_gtsf2 -nongcc_word_type -__gtsf2 (a, b) - FLOAT_ARG_TYPE a, b; -{ - union flt_or_int intify; - /* Value > 0 iff a > b. */ - perform_gtsf2 (FLOATIFY (a), FLOATIFY (b)); -} -#endif - -#ifdef L_gesf2 -nongcc_word_type -__gesf2 (a, b) - FLOAT_ARG_TYPE a, b; -{ - union flt_or_int intify; - /* Value >= 0 iff a >= b. */ - perform_gesf2 (FLOATIFY (a), FLOATIFY (b)); -} -#endif - -#ifdef L_ltsf2 -nongcc_word_type -__ltsf2 (a, b) - FLOAT_ARG_TYPE a, b; -{ - union flt_or_int intify; - /* Value < 0 iff a < b. */ - perform_ltsf2 (FLOATIFY (a), FLOATIFY (b)); -} -#endif - -#ifdef L_lesf2 -nongcc_word_type -__lesf2 (a, b) - FLOAT_ARG_TYPE a, b; -{ - union flt_or_int intify; - /* Value <= 0 iff a <= b. */ - perform_lesf2 (FLOATIFY (a), FLOATIFY (b)); -} -#endif - -#ifdef L_mulsf3 -FLOAT_VALUE_TYPE -__mulsf3 (a, b) - FLOAT_ARG_TYPE a, b; -{ - union flt_or_value intify; - perform_mulsf3 (FLOATIFY (a), FLOATIFY (b)); -} -#endif - -#ifdef L_divsf3 -FLOAT_VALUE_TYPE -__divsf3 (a, b) - FLOAT_ARG_TYPE a, b; -{ - union flt_or_value intify; - perform_divsf3 (FLOATIFY (a), FLOATIFY (b)); -} -#endif - -#ifdef L_truncdfsf2 -FLOAT_VALUE_TYPE -__truncdfsf2 (a) - double a; -{ - union flt_or_value intify; - perform_truncdfsf2 (a); -} -#endif - -#ifdef L_extendsfdf2 -double -__extendsfdf2 (a) - FLOAT_ARG_TYPE a; -{ - union flt_or_value intify; - perform_extendsfdf2 (FLOATIFY (a)); -} -#endif diff --git a/gcc/longlong.h b/gcc/longlong.h index 0d9838bf263..70f9e1adf69 100644 --- a/gcc/longlong.h +++ b/gcc/longlong.h @@ -222,7 +222,7 @@ extern const UQItype __clz_tab[]; "rIJ" ((USItype) (bh)), \ "r" ((USItype) (al)), \ "rIJ" ((USItype) (bl))) -/* Call libgcc1 routine. */ +/* Call libgcc routine. */ #define umul_ppmm(w1, w0, u, v) \ do { \ DWunion __w; \ diff --git a/gcc/mklibgcc.in b/gcc/mklibgcc.in index 4ec3af6560f..512529d9e9c 100644 --- a/gcc/mklibgcc.in +++ b/gcc/mklibgcc.in @@ -8,11 +8,7 @@ # of them, and positional args becomes quite ugly. # # objext -# OLDCC -# LIBGCC1 -# LIB1FUNCS # LIB1ASMFUNCS -# LIB1FUNCS_EXTRA # LIB2FUNCS # LIB2FUNCS_ST # LIB2ADD @@ -42,23 +38,6 @@ echo echo 'force:' echo -# Detect gcc as OLDCC. This indicates a target for which LIB1FUNCS -# is not needed. This is not quite the same as libgcc1.null, even -# on a target not using libgcc1-asm.a. - -if [ "@build_canonical@" = "@target@" ]; then - tmp="tmp-$$.c" - cat > $tmp <<EOF -#ifdef __GNUC__ - yes; -#endif -EOF - if $OLDCC -E $tmp | grep yes > /dev/null 2>&1; then - LIB1FUNCS="" - fi - rm -f $tmp -fi - # Disable SHLIB_LINK if shared libgcc not enabled. if [ "@enable_shared@" = "no" ]; then SHLIB_LINK="" @@ -67,7 +46,6 @@ fi # Build lines. gcc_compile='$(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) $(INCLUDES)' -oldcc_compile='$(OLDCC) -DIN_LIBGCC1 $(CCLIBFLAGS) $(INCLUDES)' make_compile='$(MAKE) GCC_FOR_TARGET="$(GCC_FOR_TARGET)" \ AR_FOR_TARGET="$(AR_FOR_TARGET)" \ AR_CREATE_FOR_TARGET="$(AR_CREATE_FOR_TARGET)" \ @@ -78,13 +56,10 @@ make_compile='$(MAKE) GCC_FOR_TARGET="$(GCC_FOR_TARGET)" \ HOST_PREFIX_1="$(HOST_PREFIX_1)" \ LANGUAGES="$(LANGUAGES)"' -# Dependancies for libgcc1.c -libgcc1_c_dep='stmp-dirs $(srcdir)/libgcc1.c $(CONFIG_H)' - -# Dependancies for libgcc2.c +# Dependencies for libgcc2.c libgcc2_c_dep='stmp-dirs $(srcdir)/libgcc2.c $(CONFIG_H) $(MACHMODE_H) longlong.h gbl-ctors.h config.status stmp-int-hdrs tsystem.h'" $LIB2ADDEHDEP" -# Dependancies for fp-bit.c +# Dependencies for fp-bit.c fpbit_c_dep='stmp-dirs config.status tsystem.h' # @@ -93,76 +68,24 @@ fpbit_c_dep='stmp-dirs config.status tsystem.h' libgcc1_objs="" -case X"$LIBGCC1" in - Xlibgcc1.null | X) - ;; - - Xlibgcc1.cross) - echo "You must find a way to make libgcc1 components yourself" 1>&2 - ;; - - Xlibgcc1-asm.a) - for name in $LIB1ASMFUNCS; do - for ml in $MULTILIBS; do - dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'` - flags=`echo ${ml} | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`; - out="libgcc/${dir}/${name}${objext}" +for name in $LIB1ASMFUNCS; do + for ml in $MULTILIBS; do + dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'` + flags=`echo ${ml} | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`; + out="libgcc/${dir}/${name}${objext}" - echo ${out}: stmp-dirs '$(srcdir)/config/$(LIB1ASMSRC)' - echo " $gcc_compile" $flags -DL$name -xassembler-with-cpp \ + echo ${out}: stmp-dirs '$(srcdir)/config/$(LIB1ASMSRC)' + echo " $gcc_compile" $flags -DL$name -xassembler-with-cpp \ -c '$(srcdir)/config/$(LIB1ASMSRC)' -o $out - # Remove any objects from LIB2FUNCS that are defined as optimized - # assembly code in LIB1ASMFUNCS. - LIB2FUNCS=`echo $LIB2FUNCS | sed -e 's/^'$name' //' \ - -e 's/ '$name' / /' \ - -e 's/ '$name'$//'` - done - libgcc1_objs="$libgcc1_objs ${name}${objext}" - done - ;; - - Xlibgcc1.a) - for name in $LIB1FUNCS; do - out="libgcc/${name}${objext}" - - echo $out: $libgcc1_c_dep - if [ -z "@NO_MINUS_C_MINUS_O@" ]; then - echo " $oldcc_compile" -DL$name $flags -c '$(srcdir)/libgcc1.c' -o $out - else - echo " $oldcc_compile" -DL$name $flags -c '$(srcdir)/libgcc1.c' - echo " mv libgcc1${objext} $out" - fi - - libgcc1_objs="$libgcc1_objs ${name}${objext}" - done - - for file in $LIB1FUNCS_EXTRA; do - name=`echo $file | sed -e 's/[.][cS]$//' -e 's/[.]asm$//'` - out="libgcc/${name}${objext}" - - echo $out: $file - if [ ${name}.asm = $file ]; then - echo " cp $file ${name}.s" - file=${name}.s - fi - - if [ -z "@NO_MINUS_C_MINUS_O@" ]; then - echo " $oldcc_compile" -c $file -o $out - else - echo " $oldcc_compile" -c $file - tmp=`echo $file | sed -e 's/[.][cs]$/'${objext}/ -e 's,.*/,,'` - echo " mv $tmp $out" - fi - - libgcc1_objs="$libgcc1_objs ${name}${objext}" - done - ;; - *) - echo "I'm confused about libgcc1." 1>&2 - exit 1 - ;; -esac + # Remove any objects from LIB2FUNCS that are defined as optimized + # assembly code in LIB1ASMFUNCS. + LIB2FUNCS=`echo $LIB2FUNCS | sed -e 's/^'$name' //' \ + -e 's/ '$name' / /' \ + -e 's/ '$name'$//'` + done + libgcc1_objs="$libgcc1_objs ${name}${objext}" +done # # Build libgcc2 components. @@ -289,11 +212,7 @@ for ml in $MULTILIBS; do libgcc_objs="" for o in $libgcc1_objs; do - if [ "$LIBGCC1" = libgcc1-asm.a ]; then - libgcc_objs="$libgcc_objs libgcc/${dir}/$o" - else - libgcc_objs="$libgcc_objs libgcc/$o" - fi + libgcc_objs="$libgcc_objs libgcc/${dir}/$o" done for o in $libgcc2_objs; do libgcc_objs="$libgcc_objs libgcc/${dir}/$o" diff --git a/gcc/po/ChangeLog b/gcc/po/ChangeLog index 375bc5193d9..73cdc7d5efd 100644 --- a/gcc/po/ChangeLog +++ b/gcc/po/ChangeLog @@ -1,3 +1,7 @@ +2001-05-16 Zack Weinberg <zackw@stanford.edu> + + * POTFILES.in: Remove libgcc1-test.c and libgcc1.c. + 2001-05-13 Mark Mitchell <mark@codesourcery.com> * Makefile.in.in (STAMP): New macro. diff --git a/gcc/po/POTFILES.in b/gcc/po/POTFILES.in index 4e204514924..e9b40c893df 100644 --- a/gcc/po/POTFILES.in +++ b/gcc/po/POTFILES.in @@ -181,7 +181,6 @@ config/i386/osf1elf.h config/i386/osf1elfgdb.h config/i386/osfelf.h config/i386/osfrose.h -config/i386/perform.h config/i386/ptx4-i.h config/i386/rtems.h config/i386/rtemself.h @@ -629,8 +628,6 @@ intl/localealias.c intl/textdomain.c jump.c lcm.c -#libgcc1-test.c is used only by GCC maintainers and installers -#libgcc1.c is part of the GCC library #libgcc2.c is part of the GCC library limitx.h limity.h diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 4789e96cdb5..372cca68618 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2001-05-16 Zack Weinberg <zackw@stanford.edu> + + * gcc.dg/complete-port.c: New (revised version of libgcc1-test.c) + Wed May 16 20:33:57 CEST 2001 Jan Hubicka <jh@suse.cz> * gcc.c-torture/compile/20010516-1.c: New test. diff --git a/gcc/libgcc1-test.c b/gcc/testsuite/gcc.dg/complete-port.c index 67c7639deea..c8ebcc10e42 100644 --- a/gcc/libgcc1-test.c +++ b/gcc/testsuite/gcc.dg/complete-port.c @@ -1,7 +1,7 @@ -/* This small function uses all the arithmetic operators that - libgcc1.c can handle. If you can link it, then - you have provided replacements for all the libgcc1.c functions that - your target machine needs. */ +/* This small program uses all the arithmetic operators that may + generate calls to library routines which must be implemented in + port-specific assembly language. */ +/* { dg-do link } */ #include <stddef.h> @@ -10,11 +10,8 @@ double dfoo (); void discard (int); void ddiscard (double); -/* We don't want __main here because that can drag in atexit (among other - things) which won't necessarily exist yet. */ - int -main_without__main () +main (void) { int a = foo (), b = foo (); unsigned int au = foo (), bu = foo (); @@ -97,23 +94,3 @@ dfoo () return table[idx++]; } - -/* Provide functions that some versions of the linker use to default - the start address if -e symbol is not used, to avoid the warning - message saying the start address is defaulted. */ -extern void start() __asm__("start"); -extern void _start() __asm__("_start"); -extern void __start() __asm__("__start"); - -/* Provide functions that might be needed by soft-float emulation routines. */ -void *memcpy(void *to, - const void *from __attribute__((__unused__)), - size_t len __attribute__((__unused__))) -{ - return to; -} - -void start() {} -void _start() {} -void __start() {} -void mainCRTStartup() {} diff --git a/gcc/tm.texi b/gcc/tm.texi index e777ea9a37b..2c1fe71a8e5 100644 --- a/gcc/tm.texi +++ b/gcc/tm.texi @@ -4485,89 +4485,13 @@ Define this macro if GCC should generate calls to the ISO C @findex LIBGCC_NEEDS_DOUBLE @item LIBGCC_NEEDS_DOUBLE -Define this macro if only @code{float} arguments cannot be passed to -library routines (so they must be converted to @code{double}). This -macro affects both how library calls are generated and how the library -routines in @file{libgcc1.c} accept their arguments. It is useful on +Define this macro if @code{float} arguments cannot be passed to library +routines (so they must be converted to @code{double}). This macro +affects both how library calls are generated and how the library +routines in @file{libgcc.a} accept their arguments. It is useful on machines where floating and fixed point arguments are passed differently, such as the i860. -@findex FLOAT_ARG_TYPE -@item FLOAT_ARG_TYPE -Define this macro to override the type used by the library routines to -pick up arguments of type @code{float}. (By default, they use a union -of @code{float} and @code{int}.) - -The obvious choice would be @code{float}---but that won't work with -traditional C compilers that expect all arguments declared as @code{float} -to arrive as @code{double}. To avoid this conversion, the library routines -ask for the value as some other type and then treat it as a @code{float}. - -On some systems, no other type will work for this. For these systems, -you must use @code{LIBGCC_NEEDS_DOUBLE} instead, to force conversion of -the values @code{double} before they are passed. - -@findex FLOATIFY -@item FLOATIFY (@var{passed-value}) -Define this macro to override the way library routines redesignate a -@code{float} argument as a @code{float} instead of the type it was -passed as. The default is an expression which takes the @code{float} -field of the union. - -@findex FLOAT_VALUE_TYPE -@item FLOAT_VALUE_TYPE -Define this macro to override the type used by the library routines to -return values that ought to have type @code{float}. (By default, they -use @code{int}.) - -The obvious choice would be @code{float}---but that won't work with -traditional C compilers gratuitously convert values declared as -@code{float} into @code{double}. - -@findex INTIFY -@item INTIFY (@var{float-value}) -Define this macro to override the way the value of a -@code{float}-returning library routine should be packaged in order to -return it. These functions are actually declared to return type -@code{FLOAT_VALUE_TYPE} (normally @code{int}). - -These values can't be returned as type @code{float} because traditional -C compilers would gratuitously convert the value to a @code{double}. - -A local variable named @code{intify} is always available when the macro -@code{INTIFY} is used. It is a union of a @code{float} field named -@code{f} and a field named @code{i} whose type is -@code{FLOAT_VALUE_TYPE} or @code{int}. - -If you don't define this macro, the default definition works by copying -the value through that union. - -@findex nongcc_SI_type -@item nongcc_SI_type -Define this macro as the name of the data type corresponding to -@code{SImode} in the system's own C compiler. - -You need not define this macro if that type is @code{long int}, as it usually -is. - -@findex nongcc_word_type -@item nongcc_word_type -Define this macro as the name of the data type corresponding to the -word_mode in the system's own C compiler. - -You need not define this macro if that type is @code{long int}, as it usually -is. - -@findex perform_@dots{} -@item perform_@dots{} -Define these macros to supply explicit C statements to carry out various -arithmetic operations on types @code{float} and @code{double} in the -library routines in @file{libgcc1.c}. See that file for a full list -of these macros and their arguments. - -On most machines, you don't need to define any of these macros, because -the C compiler that comes with the system takes care of doing them. - @findex NEXT_OBJC_RUNTIME @item NEXT_OBJC_RUNTIME Define this macro to generate code for Objective C message sending using |