diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9a7bc72cbabe057b49c9979f9ace1c2fcfe2b801..fee0ec8a250aedb78e61c2cc78d3ed93709663d4 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 dbaf8b5daa89a40441afec1ba809ca4d749ab810..7a7f7009d71e46ef3cf2d209f27264fa24aafa58 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 f9d4d09e82a7cf456d023a9f188637beef198bd8..f9ee01b84929e5a220ef04a198c965e90924d409 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 74684229a1348afbe6c46a6911b32ceb5d422f61..0000000000000000000000000000000000000000
--- 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 c6702348d1499675e5e4ee6539c7aa626e7779b2..c304196c3a804a32e93ec30195071968e3a07c0a 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 298871e4122e2ba5dde351453cb44ac8556c4fae..d6c79852ca48bcdb0f36fbe67e8bdae04863cf82 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 195d42182661d297db63975503e9bce563064946..c0b96e0bca733fe98a609a585847408172cc76a6 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 d6d80e9c085ec98e414e09a68e1dc5740ecb17bb..c064046c521f77ad7c3321326680a19c674bf482 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 bcfed02e02ff38a80735e8398fbdf335f7d820fa..b3d4160936485aefaf67e7074b16d77f4c1c5140 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 12ac24098ce70e5e97b7daa749df4f115a859667..852c77f29fd2fcecab0f0d4aa776e65e2439764e 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 f058661f531f7303dfdd34799a62f9e221f46091..e0dcd3630712fc3c166aef2bd98f41cea4551a04 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 339e25c1fc20ec55dec99cc9b914ff5b52824b75..34c8dd48e86df01b372659e4339ef2c785c69ee9 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 4e762b49cff16dc77eebddfbf64a947c316ccf7c..36f121e94aedf9ae1b32a4568ac4b966c7018d18 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 811b2c2ae1ac4f53896605aa44483ededc7a9cba..2ce20e4fb74472306d869f094300bfd380fa10e4 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 5422257eb3b3b8cdc8f683088a1e3291befc8780..bf37a37d4ddc5ebfe2364d9246c6e024c9ba92c0 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 b93fb299406f9955d7e6fac2914a4dc5bfd37548..3c5d5a33dab67e518c5b57495159dcb151a0e1c4 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 b57fb016a3a48591fc0dda29b6c80fd32b996a79..7dbd0c0e277622464be0e042f4c28d0496e8d334 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 7d71f5ccf7eba935cc89db928b9415fe89cb03d2..4de366521c068a5bf488f3f8dc60fed4c791b132 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 bc793e8bcfa12b8fdc4dffb98623ff5a11be90f4..ce394606386490d733992df0c151802d6ff06a6e 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 228879396557dddf9f5c8e5ae1b3d76f63c8286e..0000000000000000000000000000000000000000
--- 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 269ee33373d2e3e9273e6bb64fb35ff90a7229c5..0a66360cb277d0c0489629a1c62800f5ee653e8c 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 a0f009b47c5acc220452f9e1b389fc81816dfe10..a2bb6446194cd02b80d8ff262af838595fdd8ca5 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 e487e5d931b72f979fbfd2676318e52f3c9ee6cb..6a44132bd07d2c389ca4697a597e5442444fda61 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 d7e1d068015516ebf5f9a5b960fe7757d87c966e..5a5eb9851cf31fa09cd179146ac88fd3ac3a6e0a 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 d7e1d068015516ebf5f9a5b960fe7757d87c966e..5a5eb9851cf31fa09cd179146ac88fd3ac3a6e0a 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 bc6aeeb5ffd163d529c920934d112e8e6fd4f0a5..ecffea3214572f56d520048bea9bbf28fcfc0d2c 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 06b1a756aba3e12b4b35a951c6a09b309ca3481c..c3b3c7e56ae80470472ba5d23106a9a3c156f3c9 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 49afe1d64671bdaf8257049f259ef3ea391252ef..c88eba4a1f79da58909a542b7840a952186459c4 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 4015227abaec9a3893d58aca16f20f4bdb02a96b..7ac16e654c150572a9e23978c44af3a964af1e37 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 22e436cd9f740729d2f642aa1382c29d14ff1dfa..ed359fc552ec8d0fa1deb99f24db8bd00d5d540a 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 52ce08857b52bd9c8c2aa452997d29b69e4f1b02..2544f3db35e4932889d70bb95794768871a5d579 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 ff41d81343d3358d9286c7c052d8bca6c082a0d7..3eb9ec75893440467d7476b5c01536373108754e 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 da0451bbe3327060d430dce2376fb32820e0c6a0..850af433997fccf3d383060b4620782c5b3f1115 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 69df6de22f1b2d4a862a76e9250037fb356dae43..5ee0808e0daefc9426facdba101fa3d6d043c95d 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 41cb3bc9f55d96caa460ab8ed35d5a08d403ce8b..b05a930d5b476819e46c744430aaff38aeadabec 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 fbc4d7314406076936b94267ed68a1e3e00508e3..199082754f5061e3ea07ca883709a739cd4301a8 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 d20ab385dcc48550cf99793a947687f32cedab6d..0000000000000000000000000000000000000000
--- 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 12cd6b8f5e88a6cde9940c60054c052ee8813e51..0000000000000000000000000000000000000000
--- 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 d20ab385dcc48550cf99793a947687f32cedab6d..0000000000000000000000000000000000000000
--- 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 622402daf3305123ab903dcdf5040205b002da03..0000000000000000000000000000000000000000
--- 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 f38f730b29c4f46ce5e073b013d0272947f23dcf..84d17940ab52cf02da98505921d8bb3c08ddeed3 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 2ed31de53adcc01050f22df89f1af544fea2b4fb..be948a3759c5a3ac6aee0fc0b8ebdbbd3fccffdb 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 4ac4c91a3b18d8cff5e27f970b0d25a2f012aa34..656c1128eaed9d101278b8ba3987a7cbe3e8adeb 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 6a229b7a8adeb49d267dc623d3f8c01b755f9202..d751fc7b08716f7a4b3822e30a97504e3c3b8a6a 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 b21980898f907439fe2a46ce56ec106569eced72..302ee69a32a0a6855b263b32a020ae7f305d3605 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 8a83737041441da30c3ef8cb219cf174f7d14f8d..6102aa8cd9fa06148edfb01984f79a67555f03fc 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 0ec749d972cf3626f45c0f3bdeae8db318f24a73..a93955092f2b852378175d6f36cb82db484edf9b 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 2ec9f29584190c0853f984498de6d6f1f4dde939..7e2b1cc267d5cf255a64df4a9540d705f14561dc 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 3b5bf9c3e9d9ecc8d7941e21851d1919dcb1d05f..1a2c57c46a89d9654fda623069dfd8a3c32fef7b 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 b24a94cdc1999cac2d6f47c242634a298fa44a73..e82166e7125e372c1a57d077d934fa5bccd5f77f 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 138ef67688b7b8d79040c903c4d94c4c877070a3..3385d7a5c17b81d934d78b546f4f6847249cd455 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 8d6d0b71dfeb84aae380c42d85f34ced70d6c404..0000000000000000000000000000000000000000
--- 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 7844007ebab201a4e78ca54a950fb3565112ce65..003f248fb05750005dfdb7ef3f3903c6264878e3 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 f63e2d4e1b571d61cd739201a21e6639d7fe91b1..b5c8ec208716e8fe119248210e13ba3aae304a7f 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 1909f154308e2144f0709a637efb883580523956..360faca79faea380ec8db16438081fe3599ef114 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 6160b7ec945d4e0b05196bdbeb36c763b30010e0..0000000000000000000000000000000000000000
--- 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 2970fa714155b364ce9485dbfab3022ee054d8e6..0000000000000000000000000000000000000000
--- 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 405976dcb9190a93dae30f9fb8349431e18dcd81..9560d905521130f1d8bb8df4620203ac6e2f817f 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 4c6d84f1b3918d303ad21672bbd73e4ef80ab6d7..2c883b127fa11c0ba2607221becbb0e6cca21e94 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 68fe92fe9d44ee99b43b3335231ca7767dc9d107..66ba228551fcffdb821f780d3f6b6a9ef1cdd367 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 effa6953b9a7bac5db0d61ef99c9dac915a362b8..4b70ba78ae0fc57ae11ba4a1888cebc777aa6784 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 d112e2e7e2da7d1f350d59cbd06354936dbcfbf1..d301ed96d5f6924ca5342eb671bedc44c95187a6 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 5dc59cc375ede558615d948214e857eba262a6ad..5d7522c3dab4968eaaa6e42ecf62e90f1557fe42 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 6160b7ec945d4e0b05196bdbeb36c763b30010e0..0000000000000000000000000000000000000000
--- 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 6268343f4c021f9ed745dbcb183e4b7bb9b0fcf0..0ae6b2673163326a3649de7f846fb709903f56f9 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 cb11204c2755b0f90f278ace03bd5797a529f272..1ace6e8f1573c1b6579374755e455de3b57b09df 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 07257b5372d3a6cab346ddfb0569ec7cf825ad67..063e886b599d08c2ac7f0aef3715e83a3e4491dd 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 17c99a1cef26cb61d5a08c5b5fc5667e24d7f799..7a5149f9f9784ecc23ef57b6db217ebfa4623e2e 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 7878591764bca19fc739dd29dce6b9bda570f9e5..39c49838de7990240d308f7f44f67070c306a0b3 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 4aa43876eaf0dea743e1635d958f442dc19cf389..0000000000000000000000000000000000000000
--- 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 274f9a44826c137a1a47a6552a922ed454cd278d..f89e80ba9e24bfca3a56a483ed7e3ed7fa19da08 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 5a60e18adc16c2d108f2d83266f91663a4843986..79e8945838740236b2a782f544ec80cff407ff7d 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 e7b486c8ee65fa25b177aec804aa96114ace72f1..5ff3e9a6bfc6a2a770a204ddb704566b22939cb3 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 9ee3c313f8a9f9bc954659a3441796488776fc25..a73fe893da5518b73fbadfd8c56e9b894d141263 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 ef40a340763351fe947fc505bc608268129bfa78..7bcee2eabe489e72166e1bcadf4ff8a719672d53 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 6f2cabaaed567b259f5ed76d66dc32ec902c5f3e..2e30d9105e458d56784a708f12631875f4a6ca60 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 d334eabfc1e5a7c3e260e5ad28056823f430fdd0..faad439867d18c17cda3096dccd572372409b16a 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 d0f857a496d9bcde3c92cd9534b572a02814bc1f..955bdaa7bb4ed59aff7a83edc8078f4d2579ed3c 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 b9ab6b8cfce5607eb3ff7c2dd29d3278dc6a2d22..1d6cd3d8dd7f22276071fbd8d72f994f1cec2446 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 7fea4f998df621eac9685307591842ec5650e045..ba222499084f57c49b433e74aec16820780079eb 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 787ee79968e7858111f829914aab5072d5f6cd8b..12711447dae9de206c4a34e6ec7fb47b57fb49fd 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 7fa59430a288e8a836364cdb19866003859cd8a5..f3f8d7bd13c5589d2ecd4d34d046e08e269972d1 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 a5e71ddf3fccb900d3c7258a546fc3107517bc1d..c4406233d97d7c20a8242dc5cd36fc5f38f331cd 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 cced6b1eca2e80729dffdb9c98ddd6bf0a906d11..384100b0f79c4d33c05b84eae67b941646cef506 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 c7368c3c21601215f7f1dea02176b24ad25ba267..1627b277c81139c5ab5962115f5e97b79bb778f4 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 c42a9bf18d516d093c74cd5aad80cf57008729ea..6a3461a478a2aba403fb77b5e4e6ec51adb2738b 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 dce5f225931024aaf4e23c9da10b8be26b6053a2..ddbfa73da1249995f818d5af3223b23e08d2718e 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 780e75cec9f160585727b0d790f65cec3018d06d..2b2d72784bebd1fe4e9af3b9a8f1eb7fde5318a8 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 a5e71ddf3fccb900d3c7258a546fc3107517bc1d..c4406233d97d7c20a8242dc5cd36fc5f38f331cd 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 dc436e181beb50f1d701fd5a287bb3ced255d6cd..c5096ea53b9ac42607668af94aa0f024c2c8d430 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 3f90cd577ef5d4f088396dc1a61dbfa544f239b9..858fdc0476eec563285e74dadf91f49e15e190af 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 83e3322991623c1269709e57d4c27904cc4d08ef..09661d6ef45bbee5f27a11b31b012767c875c5bb 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 de526942f96314d91eea7dcfb11edecdf46ade3a..313853d399a370e2b1474d4575ea0369a1b82bc6 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 c055a7113997371f42e2f9c5240e41a41879d41e..0c94d38ef850945f9acb562d660c1235ae17c249 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 919508f0fe901e3ee9c263ffde94c2ef790f077c..3dc437caa816200a1ddcef4d0831c9f4a55a0f39 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 bfa5a7ec38b3be64a2369f9e5259031f1de7dd53..2cdad601a9b65a4001f80c25ef370652a9784f4f 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 bfca95072f71d2f340dd48f5ae120dc53432cdf0..6eb5217a937ac00bf2e1de29897fbab8e6ef0475 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 143126e2d4960a53f76917760c5254c950bf7aa7..8d7abc053bc90279cfb05ef130b11b80a83ad3a2 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 410646e1a4a41cfccb2c61fda86b06c4684e4d5a..43df4932993c0c7a4dbd0a70faa464c28b49c99a 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 6fab3fcf9ce2d5eb198124b45246f7a87b7eeac7..36a8545e95c778e86e24f359c977646350fdc598 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 94f1c442b68a4bcb7d6e24d527ef0016694c8f2a..0000000000000000000000000000000000000000
--- 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 94f1c442b68a4bcb7d6e24d527ef0016694c8f2a..0000000000000000000000000000000000000000
--- 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 94f1c442b68a4bcb7d6e24d527ef0016694c8f2a..0000000000000000000000000000000000000000
--- 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 f499da9b1ffed0e7c4fdac5607a67740ecd8b6b5..85a6c545ac519650c836765f21b8046775b5c11f 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 be398e08e55fd618f2c9018af8ebc0fad4f3787c..e27c02b19ffa76836938137f0eb62929e602e618 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 99238f25928dd458c3ccc82f58171f4e698de90a..e9f3f9e6da9ebbff58065917d10d459bbdf66408 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 8730b601d930dc12d9f4043e4d6492b56c303128..2b1a24e804f2b17c8a785423845ddd78c066fd1f 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 845b091ef383577a98bff40f0b16f194a82daa70..8c4bff8bc417ddd92e903c8a455d90cde6c9f153 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 c6a298ae711184a86904cec4d033099097f00487..ab40040911194b51c5cc62e82b38d94f11f5a3b6 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 5e71812a031a67ae4a9e3919c21db4aad2d45fa4..90ae1beba8094c5300e58a0e85712186b94ba773 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 072d6f42b88272e13d02fb7f68a26a850f4e6bcf..7b2dcea652fb101c072efc8ca1d259ac26cbf512 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 2610f7937c072dd3f3c3078eac6b3b05a96de68b..2e26e229acc62c2d9af28b08dcea6f26b4c858af 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 5e9b037dc0ebdde84a483daa6c4b3565dec95d46..65f16c9566f9d3d5f2bd9cd2ccb82832ebf59903 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 9ab751004260e0527c155a9f69819f04eb7cdc38..e376d22538ef70f6e42a64df99a3e070a38d5ba7 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 5d2a72ca2861de5058d8aabfe3b3f1b0a1f5c684..c32e7427a4c043bfbcc2dc08f2f5d0851414bb84 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 790b32c236c5fd8b544c97857b410bac9fd3b847..8647948aad0185f05162d3468a5f62f4b022e48d 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 26ced7e73dd994d6d4eb9f0f139a5c19405f9e89..882467bfcc7ff3143f0eedc84e9157272f30ddac 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 ebcdbb3a35247645d2aff264fcf1c1ca86bdc699..38bf1473a4491389741c5f191db80a0668d4601e 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 2ba90874d5740af9b3c8b84f7f271164a9ddaaf8..af390cf9c250aee6326b8eb3be94760a3c2232e3 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 ceb8a692600e12589f6e403da58db12fa2109cfa..1327bca0414577992d5181ff2e608fa296bc0bd4 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 b9b578ce2b80001b7f19f912c6b338a9b31cbcac..1d4fbf744753daf253f0eff783b8fad2897b3506 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 c514fdaa000485b9d9248a730d6a088c90bbf6ab..d2e211f11edafd142f602258aa79a9248fdb48de 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 fe858d11cfa9d077631c1cf6e88e4496a28cc1d5..b8e715a220a5df5a61cebdc70d55d2d13925127d 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 7d500c368942c828f67612b0730082b47cc8937b..73e0ff7e08159ebbf168cfaa0b550e9dd2235aac 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 5cbed6a6cd6c18d7a291ed4b1397270a29d48f18..f50ef17027c7f70a993cc2b99d42365906339821 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 192e3adfbad9237d52d819078481c98096751ac1..d2a860efb5c1e05cb4888876da73449f51719ffd 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 c7fe9e9d8e31d4c5023bfa486098e1afbc5dc2b3..5e4ed91a3c1a1a73aa62afb33c36b0e6da5a6bdc 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 a5604de6e1565903952a9f72c765b93015622e88..9788c49c7d92ab9b544ee40dad5b28518b7a9698 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 831f33a988fbbb3af45d03d17640ea61c56e5996..b31f82c8122067a1ecdef54dd8d6e3128505a732 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 4c8bc30b83d5ab3141b684573246f063c2e37899..9dda6755fb7abee44ac096b87edecbea1ea97a40 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 993d7a3dea9c8f33c38b49eb1137bf42faf7c0b7..5fc405bf62793a1683766682a264bad75430257a 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 d05f9907a1295e6e69f69adf7bbe554e3f6c45f8..ead6e25610d0b9b0c5c5a1cbc0b63d0c4d454225 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 a9b6ee1479392a71dc01cbe72080da63dc5b2ad4..4a5a13b8618ea9082884067f63bd03f2aa85b888 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 99acd5d542355539fc4c8e802f3acb0e6f895965..0000000000000000000000000000000000000000
--- 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 13bc9e709bf1b2e6db658b603aa1777d0681efdf..6dd5c03e619664119d8f62e4199623a43a314615 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 01562b24b7c26b604b9633f9fc9c8b86a24f7bc0..bac38de9b794b5438326a01005bcdc45e600a351 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 b5ccbb1e99fc9c41617b4057a586a8dc7f57a2cb..03c44b5411bb23b875ac6059e60bdc8d6f1905d2 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 ecead404966ad2c1722f1fe1bb65bae2ce41cd06..3334200dd64c63dfe951c22018c6dc0c5b4d699e 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 3e10575eaea58264e3e09f2d191400a98534d0af..0000000000000000000000000000000000000000
--- 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 5783d6a262582f3e262d657a81596793b6ce1f48..1056d931f8a6430f4f2f46c9c2f7a29fb4542d3a 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 0c7a14a442959e17edd89276935a12307f8ec01b..5a47341ac40f043cb0f4b7879b052c43d30e5c44 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 23efb37126880fb0481a774828ab0b2606144934..ee779eec91b907cbf464c9676296a85cde141469 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 43e4f5e9e048f7f1827b172e0c6a881f6a5438dd..9b0fb383a5818ce535a608c10feae017cf20bfcf 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 0becd19f8e8545b37a8ab1d43ef3561588d7b34c..d16db7de6150c4a0656fb74c2fc653df907a81d5 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 d08bcff98677a29ebba1ae61bc8aa193fde887bf..d284b3e7e413c2e4a7f5d3b9a3592bf88e81cdc2 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 f64fe29b6d1fb0b0b36fa1a9cae3d4240a04c014..d284b3e7e413c2e4a7f5d3b9a3592bf88e81cdc2 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 14bebc13e6ba7830b06a5f46aef785b2450d88de..0489e87203899436e94a5e8b5cacd3427b530819 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 9248acb117b9f80b0e021262cb790d5d642cd647..621ba60a4868373059d4f3adb80cd72032e21e9b 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 479a23572054f0da98fcfcebad4c61ecd25728a0..1b96a8adc6f02ee566d44aef94627f70887d15d2 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 fbc85d12a32f45231e66f9e2239aa39255cb97cb..0000000000000000000000000000000000000000
--- 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 1d64c37b2082ec5b1fdfeab3f0db094d76a093bd..0000000000000000000000000000000000000000
--- 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 241edba8ad0a2a2b9850919d747e7d056d494a29..38bacfd1276eeca61a8506df7a807e7e9e0c8b1f 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 2e18e5a6d07d355a6d2f1f7db53b52881529b984..b8f6df588f8d8cd19ae1cc7c19b79965f5b77815 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 dc7913937245130b89b0120669916012ee23d573..ed139033d696db772a297b49e3042d5172099805 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 a2b90f1e217af7316291f129f271ad41e3d8e3e5..b0060c90801097423a17dd8dff0adb203a191243 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 07c617c3d20b2265077154daf44f1f4dd984d244..35f4dbf43b89a3439256afdf8175d5725dca027f 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 c496458482caf18994daffc9e81af9db62310087..3f639b8ff8dc7c15f085a1c0586a927d4f3612cf 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 8ec6391b9a4cbe75e8087af0c87be6a4a53ce820..0000000000000000000000000000000000000000
--- 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 0d9838bf263f5b2f23f430d175077ea5de1ddd33..70f9e1adf69ef3e78a9a659bf5abfa8defce2bd3 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 4ec3af6560f7adb1ed73b88b47754283f5d5ce6a..512529d9e9c1a879173526cbe916b401e9ca3a38 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 375bc5193d9d1a29ad8bcf8e0836a7a7b12d0004..73cdc7d5efd93cdc3f939105e8b2ce0b1f9a1804 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 4e204514924fe2ee475550bf69e976aa7ca73382..e9b40c893df5a34285d688d7aa61d5f453a5b27c 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 4789e96cdb5e2aee9904a955cbd47b28d14c02a7..372cca686188e8a1037625c4e332214d1fd31d03 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
similarity index 58%
rename from gcc/libgcc1-test.c
rename to gcc/testsuite/gcc.dg/complete-port.c
index 67c7639deeac60a5b90f5b693abf5d9d9e3cd1d8..c8ebcc10e42b11ec0dea1caeb0b13895401bf274 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 e777ea9a37b62af83d3f01ad3f33a9243b6b6b22..2c1fe71a8e53e440bbd0bfc5b387134584bc75e0 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