summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog90
-rw-r--r--gcc/Makefile.in73
-rw-r--r--gcc/config.gcc68
-rw-r--r--gcc/config/a29k/t-a29k5
-rw-r--r--gcc/config/a29k/t-a29kbare6
-rw-r--r--gcc/config/a29k/t-vx29k6
-rw-r--r--gcc/config/alpha/alpha.h17
-rw-r--r--gcc/config/alpha/t-interix8
-rw-r--r--gcc/config/alpha/t-osf5
-rw-r--r--gcc/config/alpha/t-vms5
-rw-r--r--gcc/config/arc/lib1funcs.asm2
-rw-r--r--gcc/config/arc/t-arc1
-rw-r--r--gcc/config/arm/lib1funcs.asm2
-rw-r--r--gcc/config/arm/t-arm-aout1
-rw-r--r--gcc/config/arm/t-arm-coff3
-rw-r--r--gcc/config/arm/t-arm-elf3
-rw-r--r--gcc/config/arm/t-linux4
-rw-r--r--gcc/config/arm/t-pe1
-rw-r--r--gcc/config/arm/t-semi5
-rw-r--r--gcc/config/arm/t-semiaof67
-rw-r--r--gcc/config/arm/t-strongarm-coff3
-rw-r--r--gcc/config/arm/t-strongarm-elf3
-rw-r--r--gcc/config/arm/t-strongarm-pe3
-rw-r--r--gcc/config/arm/t-xscale-coff3
-rw-r--r--gcc/config/arm/t-xscale-elf3
-rw-r--r--gcc/config/avr/t-avr4
-rw-r--r--gcc/config/c4x/libgcc.S2
-rw-r--r--gcc/config/c4x/t-c4x4
-rw-r--r--gcc/config/d30v/d30v.h70
-rw-r--r--gcc/config/d30v/libgcc1.asm2
-rw-r--r--gcc/config/d30v/t-d30v3
-rw-r--r--gcc/config/fp-bit.c8
-rw-r--r--gcc/config/fr30/lib1funcs.asm2
-rw-r--r--gcc/config/fr30/t-fr309
-rw-r--r--gcc/config/h8300/lib1funcs.asm2
-rw-r--r--gcc/config/h8300/t-h83001
-rw-r--r--gcc/config/i370/t-i3704
-rw-r--r--gcc/config/i370/t-linux4
-rw-r--r--gcc/config/i370/t-mvs4
-rw-r--r--gcc/config/i370/t-oe4
-rw-r--r--gcc/config/i386/386bsd.h3
-rw-r--r--gcc/config/i386/beos-elf.h3
-rw-r--r--gcc/config/i386/cygwin.asm2
-rw-r--r--gcc/config/i386/i386.h7
-rw-r--r--gcc/config/i386/linux-aout.h3
-rw-r--r--gcc/config/i386/linux-oldld.h3
-rw-r--r--gcc/config/i386/linux.h3
-rw-r--r--gcc/config/i386/mach.h3
-rw-r--r--gcc/config/i386/netbsd.h3
-rw-r--r--gcc/config/i386/openbsd.h3
-rw-r--r--gcc/config/i386/osfrose.h3
-rw-r--r--gcc/config/i386/perform.h98
-rw-r--r--gcc/config/i386/rtemself.h3
-rw-r--r--gcc/config/i386/t-beos4
-rw-r--r--gcc/config/i386/t-cygwin2
-rw-r--r--gcc/config/i386/t-djgpp2
-rw-r--r--gcc/config/i386/t-i386bare3
-rw-r--r--gcc/config/i386/t-i386elf3
-rw-r--r--gcc/config/i386/t-interix7
-rw-r--r--gcc/config/i386/t-netware3
-rw-r--r--gcc/config/i386/t-next4
-rw-r--r--gcc/config/i386/t-rtems-i3863
-rw-r--r--gcc/config/i386/t-sol26
-rw-r--r--gcc/config/i386/t-vsta2
-rw-r--r--gcc/config/i386/uwin.asm2
-rw-r--r--gcc/config/i860/fx2800.h8
-rw-r--r--gcc/config/i860/i860.h18
-rw-r--r--gcc/config/i960/t-960bare3
-rw-r--r--gcc/config/i960/t-vxworks9603
-rw-r--r--gcc/config/ia64/t-hpux6
-rw-r--r--gcc/config/ia64/t-ia645
-rw-r--r--gcc/config/m32r/t-m32r3
-rw-r--r--gcc/config/m68hc11/larith.asm2
-rw-r--r--gcc/config/m68hc11/t-m68hc11-gas1
-rw-r--r--gcc/config/m68k/lb1sf68.asm2
-rw-r--r--gcc/config/m68k/t-lynx1
-rw-r--r--gcc/config/m68k/t-m68kbare3
-rw-r--r--gcc/config/m68k/t-m68kelf3
-rw-r--r--gcc/config/m68k/t-mot3300-gald3
-rw-r--r--gcc/config/m68k/t-mot3300-gas3
-rw-r--r--gcc/config/m68k/t-next4
-rw-r--r--gcc/config/m68k/t-vxworks683
-rw-r--r--gcc/config/m88k/t-bug2
-rw-r--r--gcc/config/m88k/t-dgux2
-rw-r--r--gcc/config/m88k/t-dgux-gas2
-rw-r--r--gcc/config/m88k/t-dguxbcs2
-rw-r--r--gcc/config/m88k/t-luna2
-rw-r--r--gcc/config/m88k/t-luna-gas2
-rw-r--r--gcc/config/m88k/t-m88k2
-rw-r--r--gcc/config/m88k/t-m88k-gas2
-rw-r--r--gcc/config/m88k/t-sysv42
-rw-r--r--gcc/config/mcore/lib1.asm2
-rw-r--r--gcc/config/mcore/t-mcore4
-rw-r--r--gcc/config/mcore/t-mcore-pe5
-rw-r--r--gcc/config/mips/t-bsd5
-rw-r--r--gcc/config/mips/t-bsd-gas5
-rw-r--r--gcc/config/mips/t-cross645
-rw-r--r--gcc/config/mips/t-ecoff9
-rw-r--r--gcc/config/mips/t-elf9
-rw-r--r--gcc/config/mips/t-iris65
-rw-r--r--gcc/config/mips/t-mips4
-rw-r--r--gcc/config/mips/t-mips-gas4
-rw-r--r--gcc/config/mips/t-osfrose4
-rw-r--r--gcc/config/mips/t-r39009
-rw-r--r--gcc/config/mips/t-svr35
-rw-r--r--gcc/config/mips/t-svr3-gas5
-rw-r--r--gcc/config/mips/t-svr45
-rw-r--r--gcc/config/mips/t-svr4-gas5
-rw-r--r--gcc/config/mips/t-ultrix5
-rw-r--r--gcc/config/mn10200/lib1funcs.asm2
-rw-r--r--gcc/config/mn10200/t-mn102002
-rw-r--r--gcc/config/mn10300/t-mn103003
-rw-r--r--gcc/config/pa/t-linux4
-rw-r--r--gcc/config/pa/t-linux645
-rw-r--r--gcc/config/pa/t-pa2
-rw-r--r--gcc/config/pa/t-pa644
-rw-r--r--gcc/config/pa/t-pro8
-rw-r--r--gcc/config/pdp11/t-pdp117
-rw-r--r--gcc/config/pj/t-pj2
-rw-r--r--gcc/config/rs6000/t-aix434
-rw-r--r--gcc/config/rs6000/t-beos4
-rw-r--r--gcc/config/rs6000/t-darwin4
-rw-r--r--gcc/config/rs6000/t-newas5
-rw-r--r--gcc/config/rs6000/t-ppccomm6
-rw-r--r--gcc/config/rs6000/t-rs60005
-rw-r--r--gcc/config/sh/lib1funcs.asm2
-rw-r--r--gcc/config/sh/t-linux1
-rw-r--r--gcc/config/sh/t-sh1
-rw-r--r--gcc/config/sparc/lb1spc.asm4
-rw-r--r--gcc/config/sparc/lb1spl.asm4
-rw-r--r--gcc/config/sparc/t-chorus-elf7
-rw-r--r--gcc/config/sparc/t-elf10
-rw-r--r--gcc/config/sparc/t-sol27
-rw-r--r--gcc/config/sparc/t-sp642
-rw-r--r--gcc/config/sparc/t-sp86x1
-rw-r--r--gcc/config/sparc/t-sparcbare1
-rw-r--r--gcc/config/sparc/t-sparclite1
-rw-r--r--gcc/config/sparc/t-splet1
-rw-r--r--gcc/config/sparc/t-sunos407
-rw-r--r--gcc/config/sparc/t-sunos414
-rw-r--r--gcc/config/sparc/t-vxsparc7
-rw-r--r--gcc/config/sparc/t-vxsparc649
-rw-r--r--gcc/config/t-libc-ok2
-rw-r--r--gcc/config/t-linux6
-rw-r--r--gcc/config/t-linux-aout6
-rw-r--r--gcc/config/t-netbsd4
-rw-r--r--gcc/config/t-openbsd2
-rw-r--r--gcc/config/v850/lib1funcs.asm2
-rw-r--r--gcc/config/v850/t-v8501
-rw-r--r--gcc/config/vax/t-openbsd3
-rw-r--r--gcc/config/vax/t-vax3
-rw-r--r--gcc/cross-make5
-rw-r--r--gcc/crtstuff.c2
-rw-r--r--gcc/floatlib.c3
-rw-r--r--gcc/gcc.texi44
-rw-r--r--gcc/install.texi119
-rw-r--r--gcc/invoke.texi2
-rw-r--r--gcc/libgcc1.c590
-rw-r--r--gcc/longlong.h2
-rw-r--r--gcc/mklibgcc.in117
-rw-r--r--gcc/po/ChangeLog4
-rw-r--r--gcc/po/POTFILES.in3
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gcc.dg/complete-port.c (renamed from gcc/libgcc1-test.c)33
-rw-r--r--gcc/tm.texi84
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