From patchwork Mon Aug 15 17:10:47 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rainer Orth X-Patchwork-Id: 110079 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) by ozlabs.org (Postfix) with SMTP id B167FB6F69 for ; Tue, 16 Aug 2011 03:12:18 +1000 (EST) Received: (qmail 16809 invoked by alias); 15 Aug 2011 17:12:15 -0000 Received: (qmail 16769 invoked by uid 22791); 15 Aug 2011 17:12:06 -0000 X-SWARE-Spam-Status: No, hits=2.0 required=5.0 tests=AWL, BAYES_00, KAM_STOCKTIP, RP_MATCHES_RCVD, SARE_BAYES_5x8, SARE_BAYES_6x6, TW_CL, TW_DF, TW_DP, TW_DQ, TW_EG, TW_FP, TW_GD, TW_HK, TW_IV, TW_JL, TW_LN, TW_LQ, TW_LZ, TW_QD, TW_QR, TW_QS, TW_SM, TW_TD, TW_TQ, TW_UC, TW_VH, TW_VS, TW_VT, TW_VX, TW_XD, TW_XS, T_TVD_MIME_NO_HEADERS X-Spam-Check-By: sourceware.org Received: from snape.CeBiTec.Uni-Bielefeld.DE (HELO smtp-relay.CeBiTec.Uni-Bielefeld.DE) (129.70.160.84) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 15 Aug 2011 17:11:41 +0000 Received: from localhost (localhost.CeBiTec.Uni-Bielefeld.DE [127.0.0.1]) by smtp-relay.CeBiTec.Uni-Bielefeld.DE (Postfix) with ESMTP id 9B878A9D; Mon, 15 Aug 2011 19:11:39 +0200 (CEST) Received: from smtp-relay.CeBiTec.Uni-Bielefeld.DE ([127.0.0.1]) by localhost (malfoy.CeBiTec.Uni-Bielefeld.DE [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 1OCfdkEMP2uZ; Mon, 15 Aug 2011 19:10:49 +0200 (CEST) Received: from manam.CeBiTec.Uni-Bielefeld.DE (manam.CeBiTec.Uni-Bielefeld.DE [129.70.161.120]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp-relay.CeBiTec.Uni-Bielefeld.DE (Postfix) with ESMTPS id EB73BA96; Mon, 15 Aug 2011 19:10:48 +0200 (CEST) Received: (from ro@localhost) by manam.CeBiTec.Uni-Bielefeld.DE (8.14.5+Sun/8.14.5/Submit) id p7FHAmvu009010; Mon, 15 Aug 2011 19:10:48 +0200 (MEST) From: Rainer Orth To: gcc-patches@gcc.gnu.org Cc: Paolo Bonzini , Eric Botcazou Subject: CFT: [build] Move libgcc1 to toplevel libgcc Date: Mon, 15 Aug 2011 19:10:47 +0200 Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.3 (usg-unix-v) MIME-Version: 1.0 X-IsSubscribed: yes Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org This patch, on top of the crtstuff one, moves LIB1ASMFUNCS and LIB1ASMSRC. LIBGCC1, CROSS_LIBGCC1, and LIBGCC1_TEST are all unused and are removed. There's not much to call out here: * As in the last patch, I've consistently used .S for assembler sources. * Unless there's something special, the files are called $cpu_type/lib1funcs.S, doing away with the previous variation. One could even handle this in libgcc/configure.ac if desired, doing away with most uses of LIB1ASMSRC. * I've noticed a single unused file: config/sparc/lb1spl.S. Tested as described in the patch submission. Rainer 2011-07-20 Rainer Orth gcc: * Makefile.in (LIB1ASMSRC): Don't export. (libgcc.mvars): Don't emit LIB1ASMFUNCS, LIB1ASMSRC. * config/arm/arm.c: Update lib1funcs.asm filename. * config/arm/linux-eabi.h: Likewise. * config/arm/bpabi-v6m.S, config/arm/bpabi.S, config/arm/ieee754-df.S, config/arm/ieee754-sf.S: Move to ../libgcc/config/arm. * config/arm/lib1funcs.asm: Move to ../libgcc/config/arm/lib1funcs.S. * config/arm/t-arm (LIB1ASMSRC, LIB1ASMFUNCS): Remove. * config/arm/t-arm-elf (LIB1ASMFUNCS): Remove. * config/arm/t-bpabi: Likewise. * config/arm/t-linux (LIB1ASMSRC, LIB1ASMFUNCS): Remove. * config/arm/t-linux-eabi (LIB1ASMFUNCS): Remove. * config/arm/t-strongarm-elf: Likewise. * config/arm/t-symbian: Likewise. * config/arm/t-vxworks: Likewise. * config/arm/t-wince-pe: Likewise. * config/avr/libgcc.S: Move to ../libgcc/config/avr. * config/avr/t-avr (LIB1ASMSRC, LIB1ASMFUNCS): Remove. * config/bfin/lib1funcs.asm: Move to ../libgcc/config/bfin/lib1funcs.S. * config/bfin/t-bfin: Remove. * config/bfin/t-bfin-elf (LIB1ASMSRC, LIB1ASMFUNCS): Remove. * config/bfin/t-bfin-linux: Likewise. * config/bfin/t-bfin-uclinux: Likewise. * config/c6x/lib1funcs.asm: Move to ../libgcc/config/c6x/lib1funcs.S. * config/c6x/t-c6x-elf (LIB1ASMSRC, LIB1ASMFUNCS): Remove. * config/fr30/lib1funcs.asm: Move to ../libgcc/config/fr30/lib1funcs.S. * config/fr30/t-fr30 (LIB1ASMSRC, LIB1ASMFUNCS): Remove. * config/frv/lib1funcs.asm: Move to ../libgcc/config/frv/lib1funcs.S. * config/frv/t-frv (CROSS_LIBGCC1, LIB1ASMSRC, LIB1ASMFUNCS): Remove. * config/h8300/fixunssfsi.c: Update lib1funcs.asm filename. * config/h8300/lib1funcs.asm: Move to ../libgcc/config/h8300/lib1funcs.S. * config/h8300/t-h8300 (LIB1ASMSRC, LIB1ASMFUNCS): Remove. * config/i386/cygwin.asm: Move to ../libgcc/config/i386/cygwin.S. * config/i386/t-cygming (LIB1ASMSRC, LIB1ASMFUNCS): Remove. * config/i386/t-interix: Likewise. * config/ia64/lib1funcs.asm: Move to ../libgcc/config/ia64/lib1funcs.S. * config/ia64/t-hpux (LIB1ASMFUNCS, LIBGCC1_TEST): Remove. * config/ia64/t-ia64 (LIB1ASMSRC, LIB1ASMFUNCS): Remove. * config/iq2000/t-iq2000 (LIBGCC1, CROSS_LIBGCC1): Remove. * config/m32c/m32c.c: Update m32c-lib1.S filename. * config/m32c/m32c-lib1.S: Move to ../libgcc/config/m32c/lib1funcs.S. * config/m32c/t-m32c (LIB1ASMSRC, LIB1ASMFUNCS): Remove. * config/m32r/t-linux (CROSS_LIBGCC1, LIBGCC1, LIBGCC1_TEST): Remove. * config/m68k/lb1sf68.asm: Move to ../libgcc/config/m68k/lb1sf68.S. * config/m68k/t-floatlib (LIB1ASMSRC, LIB1ASMFUNCS): New file. * config/mcore/lib1.asm: Move to ../libgcc/config/mcore/lib1funcs.S. * config/mcore/t-mcore (LIB1ASMSRC, LIB1ASMFUNCS): Remove. * config/mep/mep-lib1.asm: Move to ../libgcc/config/mep/lib1funcs.S. * config/mep/t-mep (LIB1ASMSRC, LIB1ASMFUNCS): Remove. * config/mips/mips16.S: Move to ../libgcc/config/mips. * config/mips/t-libgcc-mips16: Remove. * config/mips/t-sr71k (LIBGCC1, CROSS_LIBGCC1): Remove. * config/pa/milli64.S: Move to ../libgcc/config/pa. * config/pa/t-linux (LIB1ASMFUNCS, LIB1ASMSRC): Remove. * config/pa/t-linux64: Likewise. * config/picochip/libgccExtras/fake_libgcc.asm: Move to ../libgcc/config/picochip/lib1funcs.S. * config/picochip/t-picochip (LIB1ASMFUNCS, LIB1ASMSRC): Remove. * config/sh/lib1funcs.asm: Move to ../libgcc/config/sh/lib1funcs.S. * config/sh/lib1funcs.h: Move to ../libgcc/config/sh. * config/sh/sh.h: Update lib1funcs.asm filename. * config/sh/t-linux (LIB1ASMFUNCS_CACHE): Remove. * config/sh/t-netbsd: Likewise. * config/sh/t-sh (LIB1ASMSRC, LIB1ASMFUNCS, LIB1ASMFUNCS_CACHE): Remove. * config/sh/t-sh64 (LIB1ASMFUNCS): Remove. * config/sparc/lb1spc.asm: Move to ../libgcc/config/sparc/lb1spc.S. * config/sparc/lb1spl.asm: Move to ../libgcc/config/sparc/lb1spl.S. * config/sparc/t-elf (LIB1ASMSRC, LIB1ASMFUNCS): Remove. * config/sparc/t-leon: Likewise. * config/spu/t-spu-elf (LIBGCC1, CROSS_LIBGCC1): Remove. * config/v850/lib1funcs.asm: Move to ../libgcc/config/v850/lib1funcs.S. * config/v850/t-v850 (LIB1ASMSRC, LIB1ASMFUNCS): Remove * config/vax/lib1funcs.asm: Move to ../libgcc/config/vax/lib1funcs.S. * config/vax/t-linux: Remove. * config/xtensa/ieee754-df.S, config/xtensa/ieee754-sf.S: Move to ../libgcc/config/xtensa. * config/xtensa/lib1funcs.asm: Move to ../libgcc/config/xtensa/lib1funcs.S. * config/xtensa/t-xtensa (LIB1ASMSRC, LIB1ASMFUNCS): Remove. * config.gcc (bfin*-rtems*): Remove bfin/t-bfin from tmake_file. (bfin*-*): Likewise. (mips64*-*-linux*, mipsisa64*-*-linux*): Remove mips/t-libgcc-mips16 from tmake_file. (mips*-*-linux*): Likewise. (mips*-sde-elf*): Likewise. (mipsisa32-*-elf*, mipsisa32el-*-elf*, mipsisa32r2-*-elf*) (mipsisa32r2el-*-elf*, mipsisa64-*-elf*, mipsisa64el-*-elf*) (mipsisa64r2-*-elf*, mipsisa64r2el-*-elf*): Likewise. (mipsisa64sb1-*-elf*, mipsisa64sb1el-*-elf*): Likewise. (mips-*-elf*, mipsel-*-elf*): Likewise. (mips64-*-elf*, mips64el-*-elf*): Likewise. (mips64orion-*-elf*, mips64orionel-*-elf*): Likewise. (mips*-*-rtems*): Likewise. (mipstx39-*-elf*, mipstx39el-*-elf*): Likewise. (vax-*-linux*): Remove vax/t-linux from tmake_file. libgcc: * Makefile.in ($(lib1asmfuncs-o), $(lib1asmfuncs-s-o)): Use $(srcdir) to refer to $(LIB1ASMSRC). Use $<. * config/arm/bpabi-v6m.S, config/arm/bpabi.S, config/arm/ieee754-df.S, config/arm/ieee754-sf.S, config/arm/lib1funcs.S: New files. * config/arm/libunwind.S [!__symbian__]: Use lib1funcs.S. * config/arm/t-arm: New file. * config/arm/t-bpabi (LIB1ASMFUNCS): Set. * config/arm/t-elf, config/arm/t-linux, config/arm/t-linux-eabi, config/arm/t-strongarm-elf: New files. * config/arm/t-symbian (LIB1ASMFUNCS): Set. * config/arm/t-vxworks, config/arm/t-wince-pe: New files. * config/avr/lib1funcs.S: New file. * config/avr/t-avr (LIB1ASMSRC, LIB1ASMFUNCS): Set. * config/bfin/lib1funcs.S, config/bfin/t-bfin: New files. * config/c6x/lib1funcs.S: New file. * config/c6x/t-elf (LIB1ASMSRC, LIB1ASMFUNCS): Set. * config/fr30/lib1funcs.S, config/fr30/t-fr30: New files. * config/frv/lib1funcs.S: New file. * config/frv/t-frv (LIB1ASMSRC, LIB1ASMFUNCS): Set. * config/h8300/lib1funcs.S, config/h8300/t-h8300: New files. * config/i386/cygwin.S, config/i386/t-chkstk: New files. * config/ia64/__divxf3.asm: Rename to ... * config/ia64/__divxf3.S: ... this. Adapt lib1funcs.asm filename. * config/ia64/_fixtfdi.asm: Rename to ... * config/ia64/_fixtfdi.S: ... this. Adapt lib1funcs.asm filename. * config/ia64/_fixunstfdi.asm: Rename to ... * config/ia64/_fixunstfdi.S: ... this. Adapt lib1funcs.asm filename. * config/ia64/_floatditf.asm: Rename to ... * config/ia64/_floatditf.S: ... this. Adapt lib1funcs.asm filename. * config/ia64/lib1funcs.S: New file. * config/ia64/t-hpux (LIB1ASMFUNCS): Set. * config/ia64/t-ia64 (LIB1ASMSRC, LIB1ASMFUNCS): Set. * config/ia64/t-softfp-compat (libgcc1-tf-compats): Adapt suffix. * config/m32c/lib1funcs.S, config/m32c/t-m32c: New files. * config/m68k/lb1sf68.S, config/m68k/t-floatlib: New files. * config/mcore/lib1funcs.S, config/mcore/t-mcore: New files. * config/mep/lib1funcs.S: New file. * config/mep/t-mep (LIB1ASMSRC, LIB1ASMFUNCS): Set. * config/mips/mips16.S: New file. * config/mips/t-mips16 (LIB1ASMSRC, LIB1ASMFUNCS): Set. * config/pa/milli64.S: New file. * config/pa/t-linux, config/pa/t-linux64: New files. * config/picochip/lib1funcs.S: New file. * config/picochip/t-picochip (LIB1ASMSRC, LIB1ASMFUNCS): Set. * config/sh/lib1funcs.S, config/sh/lib1funcs.h: New files. * config/sh/t-linux (LIB1ASMFUNCS_CACHE): Set. * config/sh/t-netbsd: New file. * config/sh/t-sh (LIB1ASMSRC, LIB1ASMFUNCS, LIB1ASMFUNCS_CACHE): Set. Use $(srcdir) to refer to lib1funcs.S, adapt filename. * config/sh/t-sh64: New file. * config/sparc/lb1spc.S, config/sparc/lb1spl.S: New files. * config/sparc/t-softmul (LIB1ASMSRC): Adapt sparc/lb1spc.asm filename. * config/v850/lib1funcs.S, config/v850/t-v850: New files. * config/vax/lib1funcs.S, config/vax/t-linux: New files. * config/xtensa/ieee754-df.S, config/xtensa/ieee754-sf.S, config/xtensa/lib1funcs.S: New files. * config/xtensa/t-xtensa (LIB1ASMSRC, LIB1ASMFUNCS): Set. * config.host (arm-wrs-vxworks): Add arm/t-arm, arm/t-vxworks to tmake_file. (arm*-*-freebsd*): Add arm/t-arm, arm/t-strongarm-elf to tmake_file. (arm*-*-netbsdelf*): Add arm/t-arm to tmake_file. (arm*-*-linux*): Likewise. Add arm/t-elf, arm/t-bpabi, arm/t-linux-eabi to tmake_file for arm*-*-linux-*eabi, add arm/t-linux otherwise. (arm*-*-uclinux*): Add arm/t-arm, arm/t-elf to tmake_file. (arm*-*-ecos-elf): Likewise. (arm*-*-eabi*, arm*-*-symbianelf*): Likewise. (arm*-*-rtems*): Likewise. (arm*-*-elf): Likewise. (arm*-wince-pe*): Add arm/t-arm, arm/t-wince-pe to tmake_file. (avr-*-rtems*): Add to tmake_file, add avr/t-avr. (bfin*-elf*): Add bfin/t-bfin to tmake_file. (bfin*-uclinux*): Likewise. (bfin*-linux-uclibc*): Likewise. (bfin*-rtems*): Likewise. (bfin*-*): Likewise. (fido-*-elf): Merge into m68k-*-elf*. (fr30-*-elf)): Add fr30/t-fr30 to tmake_file. (frv-*-*linux*): Add frv/t-frv to tmake_file. (h8300-*-rtems*): Add h8300/t-h8300 to tmake_file. (h8300-*-elf*): Likewise. (hppa*64*-*-linux*): Add pa/t-linux, pa/t-linux64 to tmake_file. (hppa*-*-linux*): Add pa/t-linux to tmake_file. (i[34567]86-*-cygwin*): Add i386/t-chkstk to tmake_file. (i[34567]86-*-mingw*): Likewise. (x86_64-*-mingw*): Likewise. (i[34567]86-*-interix3*): Likewise. (ia64*-*-hpux*): Add ia64/t-ia64, ia64/t-hpux to tmake_file. (ia64-hp-*vms*): Add ia64/t-ia64 to tmake_file. (m68k-*-elf*): Also handle fido-*-elf. Add m68k/t-floatlib to tmake_file. (m68k-*-uclinux*): Add m68k/t-floatlib to tmake_file. (m68k-*-linux*): Likewise. (m68k-*-rtems*): Likewise. (mcore-*-elf): Add mcore/t-mcore to tmake_file. (sh-*-elf*, sh[12346l]*-*-elf*): Add sh/t-sh64 to tmake_file for sh64*-*-*. (sh-*-linux*, sh[2346lbe]*-*-linux*): Add sh/t-sh to tmake_file. Add sh/t-sh64 to tmake_file for sh64*-*-linux*. (sh-*-netbsdelf*, shl*-*-netbsdelf*, sh5-*-netbsd*) (sh5l*-*-netbsd*, sh64-*-netbsd*, sh64l*-*-netbsd*): Add sh/t-sh, sh/t-netbsd to tmake_file. Add sh/t-sh64 to tmake_file for sh5*-*-netbsd*, sh64*-netbsd*. (sh-*-rtems*): Add sh/t-sh to tmake_file. (sh-wrs-vxworks): Likewise. (sparc-*-linux*): Add sparc/t-softmul to tmake_file except for *-leon[3-9]*. (v850*-*-*): Add v850/t-v850 to tmake_file. (vax-*-linux*): Add vax/t-linux to tmake_file. (m32c-*-elf*, m32c-*-rtems*): Add m32c/t-m32c to tmake_file. # HG changeset patch # Parent 9aff5e0f7be5f73132546375b8ee813b02ff75cb Move libgcc1 to toplevel libgcc diff --git a/gcc/Makefile.in b/gcc/Makefile.in --- a/gcc/Makefile.in +++ b/gcc/Makefile.in @@ -1106,7 +1106,6 @@ export DESTDIR export GCC_FOR_TARGET export INCLUDES export INSTALL_DATA -export LIB1ASMSRC export LIBGCC2_CFLAGS export LIPO_FOR_TARGET export MACHMODE_H @@ -1870,8 +1869,6 @@ libgcc-support: libgcc.mvars stmp-int-hd libgcc.mvars: config.status Makefile $(LIB2ADD) $(LIB2ADD_ST) specs \ xgcc$(exeext) : > tmp-libgcc.mvars - echo LIB1ASMFUNCS = '$(LIB1ASMFUNCS)' >> tmp-libgcc.mvars - echo LIB1ASMSRC = '$(LIB1ASMSRC)' >> tmp-libgcc.mvars echo LIB2FUNCS_ST = '$(LIB2FUNCS_ST)' >> tmp-libgcc.mvars echo LIB2FUNCS_EXCLUDE = '$(LIB2FUNCS_EXCLUDE)' >> tmp-libgcc.mvars echo LIB2ADD = '$(call srcdirify,$(LIB2ADD))' >> tmp-libgcc.mvars diff --git a/gcc/config.gcc b/gcc/config.gcc --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -936,11 +936,10 @@ bfin*-linux-uclibc*) ;; bfin*-rtems*) tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h bfin/rtems.h rtems.h newlib-stdint.h" - tmake_file="bfin/t-bfin t-rtems bfin/t-rtems" + tmake_file="t-rtems bfin/t-rtems" ;; bfin*-*) tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h" - tmake_file=bfin/t-bfin use_collect2=no use_gcc_stdint=wrap ;; @@ -1725,7 +1724,7 @@ mips*-*-netbsd*) # NetBSD/mips, either ;; mips64*-*-linux* | mipsisa64*-*-linux*) tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} mips/gnu-user.h mips/gnu-user64.h mips/linux64.h" - tmake_file="${tmake_file} mips/t-linux64 mips/t-libgcc-mips16" + tmake_file="${tmake_file} mips/t-linux64" tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_N32" case ${target} in mips64el-st-linux-gnu) @@ -1746,7 +1745,6 @@ mips64*-*-linux* | mipsisa64*-*-linux*) ;; mips*-*-linux*) # Linux MIPS, either endian. tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} mips/gnu-user.h mips/linux.h" - tmake_file="${tmake_file} mips/t-libgcc-mips16" if test x$enable_targets = xall; then tm_file="${tm_file} mips/gnu-user64.h mips/linux64.h" tmake_file="${tmake_file} mips/t-linux64" @@ -1774,7 +1772,7 @@ mips*-*-openbsd*) ;; mips*-sde-elf*) tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/sde.h" - tmake_file="mips/t-sde mips/t-libgcc-mips16" + tmake_file="mips/t-sde" extra_options="${extra_options} mips/sde.opt" case "${with_newlib}" in yes) @@ -1811,7 +1809,7 @@ mipsisa32r2-*-elf* | mipsisa32r2el-*-elf mipsisa64-*-elf* | mipsisa64el-*-elf* | \ mipsisa64r2-*-elf* | mipsisa64r2el-*-elf*) tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h" - tmake_file="mips/t-isa3264 mips/t-libgcc-mips16" + tmake_file="mips/t-isa3264" case ${target} in mipsisa32r2*) tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33" @@ -1848,17 +1846,17 @@ mipsisa64sr71k-*-elf*) ;; mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*) tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h" - tmake_file="mips/t-elf mips/t-libgcc-mips16 mips/t-sb1" + tmake_file="mips/t-elf mips/t-sb1" target_cpu_default="MASK_64BIT|MASK_FLOAT64" tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sb1\\\" MIPS_ABI_DEFAULT=ABI_O64" ;; mips-*-elf* | mipsel-*-elf*) tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h" - tmake_file="mips/t-elf mips/t-libgcc-mips16" + tmake_file="mips/t-elf" ;; mips64-*-elf* | mips64el-*-elf*) tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h" - tmake_file="mips/t-elf mips/t-libgcc-mips16" + tmake_file="mips/t-elf" target_cpu_default="MASK_64BIT|MASK_FLOAT64" tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64" ;; @@ -1869,13 +1867,13 @@ mips64vr-*-elf* | mips64vrel-*-elf*) ;; mips64orion-*-elf* | mips64orionel-*-elf*) tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elforion.h mips/elf.h" - tmake_file="mips/t-elf mips/t-libgcc-mips16" + tmake_file="mips/t-elf" target_cpu_default="MASK_64BIT|MASK_FLOAT64" tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64" ;; mips*-*-rtems*) tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/rtems.h rtems.h" - tmake_file="mips/t-elf mips/t-libgcc-mips16 t-rtems mips/t-rtems" + tmake_file="mips/t-elf t-rtems mips/t-rtems" ;; mips-wrs-vxworks) tm_file="elfos.h ${tm_file} mips/elf.h vx-common.h vxworks.h mips/vxworks.h" @@ -1883,7 +1881,7 @@ mips-wrs-vxworks) ;; mipstx39-*-elf* | mipstx39el-*-elf*) tm_file="elfos.h newlib-stdint.h ${tm_file} mips/r3900.h mips/elf.h" - tmake_file="mips/t-r3900 mips/t-libgcc-mips16" + tmake_file="mips/t-r3900" ;; mmix-knuth-mmixware) tm_file="${tm_file} newlib-stdint.h" @@ -2489,7 +2487,6 @@ v850*-*-*) vax-*-linux*) tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h vax/elf.h vax/linux.h" extra_options="${extra_options} vax/elf.opt" - tmake_file="${tmake_file} vax/t-linux" ;; vax-*-netbsdelf*) tm_file="${tm_file} elfos.h netbsd.h netbsd-elf.h vax/elf.h vax/netbsd-elf.h" diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -22847,7 +22847,7 @@ arm_small_register_classes_for_mode_p (e /* Implement TARGET_SHIFT_TRUNCATION_MASK. SImode shifts use normal ARM insns and therefore guarantee that the shift count is modulo 256. - DImode shifts (those implemented by lib1funcs.asm or by optabs.c) + DImode shifts (those implemented by lib1funcs.S or by optabs.c) guarantee no particular behavior for out-of-range counts. */ static unsigned HOST_WIDE_INT diff --git a/gcc/config/arm/linux-eabi.h b/gcc/config/arm/linux-eabi.h --- a/gcc/config/arm/linux-eabi.h +++ b/gcc/config/arm/linux-eabi.h @@ -97,7 +97,7 @@ #undef LIBGCC_SPEC /* Clear the instruction cache from `beg' to `end'. This is - implemented in lib1funcs.asm, so ensure an error if this definition + implemented in lib1funcs.S, so ensure an error if this definition is used. */ #undef CLEAR_INSN_CACHE #define CLEAR_INSN_CACHE(BEG, END) not_used diff --git a/gcc/config/arm/t-arm b/gcc/config/arm/t-arm --- a/gcc/config/arm/t-arm +++ b/gcc/config/arm/t-arm @@ -40,9 +40,6 @@ MD_INCLUDES= $(srcdir)/config/arm/arm-t $(srcdir)/config/arm/thumb2.md \ $(srcdir)/config/arm/arm-fixed.md -LIB1ASMSRC = arm/lib1funcs.asm -LIB1ASMFUNCS = _thumb1_case_sqi _thumb1_case_uqi _thumb1_case_shi \ - _thumb1_case_uhi _thumb1_case_si s-config s-conditions s-flags s-codes s-constants s-emit s-recog s-preds \ s-opinit s-extract s-peep s-attr s-attrtab s-output: $(MD_INCLUDES) diff --git a/gcc/config/arm/t-arm-elf b/gcc/config/arm/t-arm-elf --- a/gcc/config/arm/t-arm-elf +++ b/gcc/config/arm/t-arm-elf @@ -17,20 +17,6 @@ # along with GCC; see the file COPYING3. If not see # . -# For most CPUs we have an assembly soft-float implementations. -# However this is not true for ARMv6M. Here we want to use the soft-fp C -# implementation. The soft-fp code is only build for ARMv6M. This pulls -# in the asm implementation for other CPUs. -LIB1ASMFUNCS += _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_tls _bb_init_func \ - _call_via_rX _interwork_call_via_rX \ - _lshrdi3 _ashrdi3 _ashldi3 \ - _arm_negdf2 _arm_addsubdf3 _arm_muldivdf3 _arm_cmpdf2 _arm_unorddf2 \ - _arm_fixdfsi _arm_fixunsdfsi \ - _arm_truncdfsf2 _arm_negsf2 _arm_addsubsf3 _arm_muldivsf3 \ - _arm_cmpsf2 _arm_unordsf2 _arm_fixsfsi _arm_fixunssfsi \ - _arm_floatdidf _arm_floatdisf _arm_floatundidf _arm_floatundisf \ - _clzsi2 _clzdi2 - MULTILIB_OPTIONS = marm/mthumb MULTILIB_DIRNAMES = arm thumb MULTILIB_EXCEPTIONS = diff --git a/gcc/config/arm/t-bpabi b/gcc/config/arm/t-bpabi --- a/gcc/config/arm/t-bpabi +++ b/gcc/config/arm/t-bpabi @@ -16,9 +16,6 @@ # along with GCC; see the file COPYING3. If not see # . -# Add the bpabi.S functions. -LIB1ASMFUNCS += _aeabi_lcmp _aeabi_ulcmp _aeabi_ldivmod _aeabi_uldivmod - # Add the BPABI C functions. LIB2FUNCS_EXTRA = $(srcdir)/config/arm/bpabi.c \ $(srcdir)/config/arm/unaligned-funcs.c diff --git a/gcc/config/arm/t-linux b/gcc/config/arm/t-linux --- a/gcc/config/arm/t-linux +++ b/gcc/config/arm/t-linux @@ -21,10 +21,6 @@ # difference. TARGET_LIBGCC2_CFLAGS = -fomit-frame-pointer -fPIC -LIB1ASMSRC = arm/lib1funcs.asm -LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx _clzsi2 _clzdi2 \ - _arm_addsubdf3 _arm_addsubsf3 - # MULTILIB_OPTIONS = mfloat-abi=hard/mfloat-abi=soft # MULTILIB_DIRNAMES = hard-float soft-float diff --git a/gcc/config/arm/t-linux-eabi b/gcc/config/arm/t-linux-eabi --- a/gcc/config/arm/t-linux-eabi +++ b/gcc/config/arm/t-linux-eabi @@ -28,7 +28,4 @@ MULTILIB_DIRNAMES = #MULTILIB_DIRNAMES += fa606te fa626te fmp626 fa726te #MULTILIB_EXCEPTIONS += *mthumb/*mcpu=fa606te *mthumb/*mcpu=fa626te *mthumb/*mcpu=fmp626 *mthumb/*mcpu=fa726te* -# Use a version of div0 which raises SIGFPE, and a special __clear_cache. -LIB1ASMFUNCS := $(filter-out _dvmd_tls,$(LIB1ASMFUNCS)) _dvmd_lnx _clear_cache - LIB2FUNCS_STATIC_EXTRA += $(srcdir)/config/arm/linux-atomic.c diff --git a/gcc/config/arm/t-strongarm-elf b/gcc/config/arm/t-strongarm-elf --- a/gcc/config/arm/t-strongarm-elf +++ b/gcc/config/arm/t-strongarm-elf @@ -17,8 +17,6 @@ # along with GCC; see the file COPYING3. If not see # . -LIB1ASMFUNCS += _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_tls _bb_init_func _clzsi2 _clzdi2 - MULTILIB_OPTIONS = mlittle-endian/mbig-endian mfloat-abi=hard/mfloat-abi=soft MULTILIB_DIRNAMES = le be fpu soft MULTILIB_EXCEPTIONS = diff --git a/gcc/config/arm/t-symbian b/gcc/config/arm/t-symbian --- a/gcc/config/arm/t-symbian +++ b/gcc/config/arm/t-symbian @@ -16,20 +16,6 @@ # along with GCC; see the file COPYING3. If not see # . -LIB1ASMFUNCS += _bb_init_func _call_via_rX _interwork_call_via_rX _clzsi2 _clzdi2 - -# These functions have __aeabi equivalents and will never be called by GCC. -# By putting them in LIB1ASMFUNCS, we avoid the standard libgcc2.c code being -# used -- and we make sure that definitions are not available in lib1funcs.asm, -# either, so they end up undefined. -LIB1ASMFUNCS += \ - _ashldi3 _ashrdi3 _divdi3 _floatdidf _udivmoddi4 _umoddi3 \ - _udivdi3 _lshrdi3 _moddi3 _muldi3 _negdi2 _cmpdi2 \ - _fixdfdi _fixsfdi _fixunsdfdi _fixunssfdi _floatdisf \ - _negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi _fixunsdfsi \ - _truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 \ - _fixsfsi _fixunssfsi - # Include half-float helpers. LIB2FUNCS_STATIC_EXTRA = $(srcdir)/config/arm/fp16.c diff --git a/gcc/config/arm/t-vxworks b/gcc/config/arm/t-vxworks --- a/gcc/config/arm/t-vxworks +++ b/gcc/config/arm/t-vxworks @@ -16,8 +16,6 @@ # along with GCC; see the file COPYING3. If not see # . -LIB1ASMFUNCS += _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_tls _bb_init_func _call_via_rX _interwork_call_via_rX _clzsi2 _clzdi2 - MULTILIB_OPTIONS = \ mrtp fPIC \ t4/t4be/t4t/t4tbe/t5/t5be/t5t/t5tbe/tstrongarm/txscale/txscalebe diff --git a/gcc/config/arm/t-wince-pe b/gcc/config/arm/t-wince-pe --- a/gcc/config/arm/t-wince-pe +++ b/gcc/config/arm/t-wince-pe @@ -17,8 +17,6 @@ # along with GCC; see the file COPYING3. If not see # . -LIB1ASMFUNCS += _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_tls _call_via_rX _interwork_call_via_rX _clzsi2 _clzdi2 - pe.o: $(srcdir)/config/arm/pe.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \ $(RTL_H) output.h flags.h $(TREE_H) expr.h $(TM_P_H) $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ diff --git a/gcc/config/avr/t-avr b/gcc/config/avr/t-avr --- a/gcc/config/avr/t-avr +++ b/gcc/config/avr/t-avr @@ -35,54 +35,6 @@ avr-c.o: $(srcdir)/config/avr/avr-c.c \ $(SHELL) $(srcdir)/config/avr/genopt.sh $(srcdir)/config/avr > \ $(srcdir)/config/avr/avr-tables.opt -LIB1ASMSRC = avr/libgcc.S -LIB1ASMFUNCS = \ - _mulqi3 \ - _mulhi3 \ - _mulhisi3 \ - _umulhisi3 \ - _usmulhisi3 \ - _muluhisi3 \ - _mulshisi3 \ - _mulsi3 \ - _udivmodqi4 \ - _divmodqi4 \ - _udivmodhi4 \ - _divmodhi4 \ - _udivmodsi4 \ - _divmodsi4 \ - _prologue \ - _epilogue \ - _exit \ - _cleanup \ - _tablejump \ - _tablejump_elpm \ - _copy_data \ - _clear_bss \ - _ctors \ - _dtors \ - _ffssi2 \ - _ffshi2 \ - _loop_ffsqi2 \ - _ctzsi2 \ - _ctzhi2 \ - _clzdi2 \ - _clzsi2 \ - _clzhi2 \ - _paritydi2 \ - _paritysi2 \ - _parityhi2 \ - _popcounthi2 \ - _popcountsi2 \ - _popcountdi2 \ - _popcountqi2 \ - _bswapsi2 \ - _bswapdi2 \ - _ashldi3 \ - _ashrdi3 \ - _lshrdi3 \ - _fmul _fmuls _fmulsu - LIB2FUNCS_EXCLUDE = \ _clz diff --git a/gcc/config/bfin/t-bfin b/gcc/config/bfin/t-bfin deleted file mode 100644 --- a/gcc/config/bfin/t-bfin +++ /dev/null @@ -1,23 +0,0 @@ -# Copyright (C) 2005, 2007, 2011 Free Software Foundation, Inc. -# -# This file is part of GCC. -# -# GCC 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 3, or (at your option) -# any later version. -# -# GCC 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 GCC; see the file COPYING3. If not see -# . - -## Target part of the Makefile - -LIB1ASMSRC = bfin/lib1funcs.asm -LIB1ASMFUNCS = _divsi3 _udivsi3 _umodsi3 _modsi3 _muldi3 _umulsi3_highpart -LIB1ASMFUNCS += _smulsi3_highpart diff --git a/gcc/config/bfin/t-bfin-elf b/gcc/config/bfin/t-bfin-elf --- a/gcc/config/bfin/t-bfin-elf +++ b/gcc/config/bfin/t-bfin-elf @@ -18,10 +18,6 @@ ## Target part of the Makefile -LIB1ASMSRC = bfin/lib1funcs.asm -LIB1ASMFUNCS = _divsi3 _udivsi3 _umodsi3 _modsi3 _muldi3 _umulsi3_highpart -LIB1ASMFUNCS += _smulsi3_highpart - TARGET_LIBGCC2_CFLAGS = -fpic MULTILIB_OPTIONS=mcpu=bf532-none diff --git a/gcc/config/bfin/t-bfin-linux b/gcc/config/bfin/t-bfin-linux --- a/gcc/config/bfin/t-bfin-linux +++ b/gcc/config/bfin/t-bfin-linux @@ -18,10 +18,6 @@ ## Target part of the Makefile -LIB1ASMSRC = bfin/lib1funcs.asm -LIB1ASMFUNCS = _divsi3 _udivsi3 _umodsi3 _modsi3 _muldi3 _umulsi3_highpart -LIB1ASMFUNCS += _smulsi3_highpart - TARGET_LIBGCC2_CFLAGS = -fpic MULTILIB_OPTIONS=mcpu=bf532-none diff --git a/gcc/config/bfin/t-bfin-uclinux b/gcc/config/bfin/t-bfin-uclinux --- a/gcc/config/bfin/t-bfin-uclinux +++ b/gcc/config/bfin/t-bfin-uclinux @@ -18,10 +18,6 @@ ## Target part of the Makefile -LIB1ASMSRC = bfin/lib1funcs.asm -LIB1ASMFUNCS = _divsi3 _udivsi3 _umodsi3 _modsi3 _muldi3 _umulsi3_highpart -LIB1ASMFUNCS += _smulsi3_highpart - TARGET_LIBGCC2_CFLAGS = -fpic MULTILIB_OPTIONS=mcpu=bf532-none diff --git a/gcc/config/c6x/t-c6x-elf b/gcc/config/c6x/t-c6x-elf --- a/gcc/config/c6x/t-c6x-elf +++ b/gcc/config/c6x/t-c6x-elf @@ -18,11 +18,6 @@ # along with GCC; see the file COPYING3. If not see # . -LIB1ASMSRC = c6x/lib1funcs.asm -LIB1ASMFUNCS = _divsi3 _udivsi3 _umodsi3 _modsi3 _udivmodsi4 _divmodsi4 -LIB1ASMFUNCS += _strasgi _strasgi_64plus _clzsi2 _clzdi2 _clz -LIB1ASMFUNCS += _push_rts _pop_rts _call_stub - LIB2FUNCS_EXCLUDE = _cmpdi2 _ucmpdi2 _gcc_bcmp _eprintf _clzsi _clzdi LIB2FUNCS_EXTRA = $(srcdir)/config/c6x/gef.c \ diff --git a/gcc/config/fr30/t-fr30 b/gcc/config/fr30/t-fr30 --- a/gcc/config/fr30/t-fr30 +++ b/gcc/config/fr30/t-fr30 @@ -16,9 +16,6 @@ # along with GCC; see the file COPYING3. If not see # . -LIB1ASMSRC = fr30/lib1funcs.asm -LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 - # If any special flags are necessary when building libgcc2 put them here. # # TARGET_LIBGCC2_CFLAGS diff --git a/gcc/config/frv/t-frv b/gcc/config/frv/t-frv --- a/gcc/config/frv/t-frv +++ b/gcc/config/frv/t-frv @@ -16,15 +16,6 @@ # along with GCC; see the file COPYING3. If not see # . -# 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. -# -# Alternatively if assembler functions *are* needed then define the -# entries below: -CROSS_LIBGCC1 = libgcc1-asm.a -LIB1ASMSRC = frv/lib1funcs.asm -LIB1ASMFUNCS = _cmpll _cmpf _cmpd _addll _subll _andll _orll _xorll _notll _cmov LIB2FUNCS_EXTRA = cmovh.c cmovw.c cmovd.c modi.c umodi.c uitof.c uitod.c ulltof.c ulltod.c # If any special flags are necessary when building libgcc2 put them here. diff --git a/gcc/config/h8300/fixunssfsi.c b/gcc/config/h8300/fixunssfsi.c --- a/gcc/config/h8300/fixunssfsi.c +++ b/gcc/config/h8300/fixunssfsi.c @@ -1,6 +1,6 @@ /* More subroutines needed by GCC output code on some machines. */ /* Compile this one with gcc. */ -/* Copyright (C) 1989, 1992, 2001, 2002, 2003, 2004, 2009 +/* Copyright (C) 1989, 1992, 2001, 2002, 2003, 2004, 2009, 2011 Free Software Foundation, Inc. This file is part of GCC. @@ -26,7 +26,7 @@ see the files COPYING3 and COPYING.RUNTI /* The libgcc2.c implementation gets confused by our type setup and creates a directly recursive call, so we do our own implementation. For - the H8/300, that's in lib1funcs.asm, for H8/300H and H8S, it's here. */ + the H8/300, that's in lib1funcs.S, for H8/300H and H8S, it's here. */ #ifndef __H8300__ long __fixunssfsi (float a); diff --git a/gcc/config/h8300/t-h8300 b/gcc/config/h8300/t-h8300 --- a/gcc/config/h8300/t-h8300 +++ b/gcc/config/h8300/t-h8300 @@ -17,10 +17,6 @@ # along with GCC; see the file COPYING3. If not see # . -LIB1ASMSRC = h8300/lib1funcs.asm -LIB1ASMFUNCS = _cmpsi2 _ucmpsi2 _divhi3 _divsi3 _mulhi3 _mulsi3 \ - _fixunssfsi_asm - LIB2FUNCS_EXTRA = \ $(srcdir)/config/h8300/clzhi2.c \ $(srcdir)/config/h8300/ctzhi2.c \ diff --git a/gcc/config/i386/t-cygming b/gcc/config/i386/t-cygming --- a/gcc/config/i386/t-cygming +++ b/gcc/config/i386/t-cygming @@ -17,9 +17,6 @@ # along with GCC; see the file COPYING3. If not see # . -LIB1ASMSRC = i386/cygwin.asm -LIB1ASMFUNCS = _chkstk _chkstk_ms - # cygwin and mingw always have a limits.h, but, depending upon how we are # doing the build, it may not be installed yet. LIMITS_H_TEST = true diff --git a/gcc/config/i386/t-interix b/gcc/config/i386/t-interix --- a/gcc/config/i386/t-interix +++ b/gcc/config/i386/t-interix @@ -1,6 +1,3 @@ -LIB1ASMSRC = i386/cygwin.asm -LIB1ASMFUNCS = _chkstk _chkstk_ms - winnt.o: $(srcdir)/config/i386/winnt.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \ $(TM_H) $(RTL_H) $(REGS_H) hard-reg-set.h output.h $(TREE_H) flags.h \ $(TM_P_H) $(HASHTAB_H) $(GGC_H) diff --git a/gcc/config/ia64/t-hpux b/gcc/config/ia64/t-hpux --- a/gcc/config/ia64/t-hpux +++ b/gcc/config/ia64/t-hpux @@ -26,12 +26,6 @@ MULTILIB_OPTIONS = milp32/mlp64 MULTILIB_DIRNAMES = hpux32 hpux64 MULTILIB_MATCHES = -# On HP-UX we do not want _fixtfdi, _fixunstfdi, or _floatditf from -# LIB1ASMSRC. These functions map the 128 bit conversion function names -# to 80 bit conversions and were done for Linux backwards compatibility. - -LIB1ASMFUNCS := $(filter-out _fixtfdi _fixunstfdi _floatditf,$(LIB1ASMFUNCS)) - # Support routines for HP-UX 128 bit floats. LIB2FUNCS_EXTRA=quadlib.c $(srcdir)/config/floatunsitf.c @@ -39,12 +33,6 @@ LIB2FUNCS_EXTRA=quadlib.c $(srcdir)/conf quadlib.c: $(srcdir)/config/ia64/quadlib.c cat $(srcdir)/config/ia64/quadlib.c > quadlib.c -# We get an undefined main when building a cross compiler because our -# linkspec has "-u main" and we want that for linking but it makes -# LIBGCC1_TEST fail because it uses -nostdlib -nostartup. - -LIBGCC1_TEST = - # We do not want to include the EH stuff that linux uses, we want to use # the HP-UX libunwind library. diff --git a/gcc/config/ia64/t-ia64 b/gcc/config/ia64/t-ia64 --- a/gcc/config/ia64/t-ia64 +++ b/gcc/config/ia64/t-ia64 @@ -18,19 +18,6 @@ # along with GCC; see the file COPYING3. If not see # . -LIB1ASMSRC = ia64/lib1funcs.asm - -# We use different names for the DImode div/mod files so that they won't -# conflict with libgcc2.c files. We used to use __ia64 as a prefix, now -# we use __ as the prefix. Note that L_divdi3 in libgcc2.c actually defines -# a TImode divide function, so there is no actual overlap here between -# libgcc2.c and lib1funcs.asm. -LIB1ASMFUNCS = __divxf3 __divdf3 __divsf3 \ - __divdi3 __moddi3 __udivdi3 __umoddi3 \ - __divsi3 __modsi3 __udivsi3 __umodsi3 __save_stack_nonlocal \ - __nonlocal_goto __restore_stack_nonlocal __trampoline \ - _fixtfdi _fixunstfdi _floatditf - # ??? Hack to get -P option used when compiling lib1funcs.asm, because Intel # assembler does not accept # line number as a comment. # ??? This breaks C++ pragma interface/implementation, which is used in the diff --git a/gcc/config/iq2000/t-iq2000 b/gcc/config/iq2000/t-iq2000 --- a/gcc/config/iq2000/t-iq2000 +++ b/gcc/config/iq2000/t-iq2000 @@ -16,11 +16,6 @@ # along with GCC; see the file COPYING3. If not see # . -# Suppress building libgcc1.a, since the MIPS compiler port is complete -# and does not need anything from libgcc1.a. -LIBGCC1 = -CROSS_LIBGCC1 = - LIB2FUNCS_EXTRA = $(srcdir)/config/udivmod.c $(srcdir)/config/divmod.c $(srcdir)/config/udivmodsi4.c $(srcdir)/config/iq2000/lib2extra-funcs.c # Enable the following if multilibs are needed. diff --git a/gcc/config/m32c/m32c.c b/gcc/config/m32c/m32c.c --- a/gcc/config/m32c/m32c.c +++ b/gcc/config/m32c/m32c.c @@ -391,7 +391,7 @@ class_can_hold_mode (reg_class_t rclass, we allow the user to limit the number of memregs available, in order to try to persuade gcc to try harder to use real registers. - Memregs are provided by m32c-lib1.S. + Memregs are provided by lib1funcs.S. */ int ok_to_change_target_memregs = TRUE; diff --git a/gcc/config/m32c/t-m32c b/gcc/config/m32c/t-m32c --- a/gcc/config/m32c/t-m32c +++ b/gcc/config/m32c/t-m32c @@ -19,16 +19,6 @@ # along with GCC; see the file COPYING3. If not see # . -LIB1ASMSRC = m32c/m32c-lib1.S - -LIB1ASMFUNCS = \ - __m32c_memregs \ - __m32c_eh_return \ - __m32c_mulsi3 \ - __m32c_cmpsi2 \ - __m32c_ucmpsi2 \ - __m32c_jsri16 - LIB2FUNCS_EXTRA = $(srcdir)/config/m32c/m32c-lib2.c $(srcdir)/config/m32c/m32c-lib2-trapv.c # target-specific files diff --git a/gcc/config/m32r/t-linux b/gcc/config/m32r/t-linux --- a/gcc/config/m32r/t-linux +++ b/gcc/config/m32r/t-linux @@ -16,9 +16,6 @@ # along with GCC; see the file COPYING3. If not see # . -# lib1funcs.asm is currently empty. -CROSS_LIBGCC1 = - # Turn off the SDA while compiling libgcc2. There are no headers for it # and we want maximal upward compatibility here. @@ -26,9 +23,3 @@ TARGET_LIBGCC2_CFLAGS = -G 0 -fPIC # Don't install "assert.h" in gcc. We use the one in glibc. INSTALL_ASSERT_H = - -# 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/m68k/t-floatlib b/gcc/config/m68k/t-floatlib --- a/gcc/config/m68k/t-floatlib +++ b/gcc/config/m68k/t-floatlib @@ -1,4 +1,4 @@ -# Copyright (C) 2007 Free Software Foundation, Inc. +# Copyright (C) 2007, 2011 Free Software Foundation, Inc. # # This file is part of GCC. # @@ -16,12 +16,6 @@ # along with GCC; see the file COPYING3. If not see # . -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 - LIB2FUNCS_EXTRA = fpgnulib.c xfgnulib.c fpgnulib.c: $(srcdir)/config/m68k/fpgnulib.c diff --git a/gcc/config/mcore/t-mcore b/gcc/config/mcore/t-mcore --- a/gcc/config/mcore/t-mcore +++ b/gcc/config/mcore/t-mcore @@ -16,9 +16,6 @@ # along with GCC; see the file COPYING3. If not see # . -LIB1ASMSRC = mcore/lib1.asm -LIB1ASMFUNCS = _divsi3 _udivsi3 _modsi3 _umodsi3 - # could use -msifilter to be safe from interrupt/jmp interactions and others. TARGET_LIBGCC2_CFLAGS=-O3 -DNO_FLOATLIB_FIXUNSDFSI #-msifilter diff --git a/gcc/config/mep/t-mep b/gcc/config/mep/t-mep --- a/gcc/config/mep/t-mep +++ b/gcc/config/mep/t-mep @@ -32,16 +32,6 @@ mep-pragma.o: $(srcdir)/config/mep/mep-p function.h insn-config.h reload.h $(TARGET_H) $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $< -# profiling support - -LIB1ASMSRC = mep/mep-lib1.asm - -LIB1ASMFUNCS = _mep_profile \ - _mep_bb_init_trace \ - _mep_bb_init \ - _mep_bb_trace \ - _mep_bb_increment - # multiply and divide routines LIB2FUNCS_EXTRA = \ diff --git a/gcc/config/mips/t-libgcc-mips16 b/gcc/config/mips/t-libgcc-mips16 deleted file mode 100644 --- a/gcc/config/mips/t-libgcc-mips16 +++ /dev/null @@ -1,39 +0,0 @@ -# Copyright (C) 2007, 2008, 2011 Free Software Foundation, Inc. -# -# This file is part of GCC. -# -# GCC 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 3, or (at your option) -# any later version. -# -# GCC 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 GCC; see the file COPYING3. If not see -# . - -LIB1ASMSRC = mips/mips16.S -LIB1ASMFUNCS = _m16addsf3 _m16subsf3 _m16mulsf3 _m16divsf3 \ - _m16eqsf2 _m16nesf2 _m16gtsf2 _m16gesf2 _m16lesf2 _m16ltsf2 \ - _m16unordsf2 \ - _m16fltsisf _m16fix_truncsfsi _m16fltunsisf \ - _m16adddf3 _m16subdf3 _m16muldf3 _m16divdf3 \ - _m16extsfdf2 _m16trdfsf2 \ - _m16eqdf2 _m16nedf2 _m16gtdf2 _m16gedf2 _m16ledf2 _m16ltdf2 \ - _m16unorddf2 \ - _m16fltsidf _m16fix_truncdfsi _m16fltunsidf \ - _m16retsf _m16retdf \ - _m16retsc _m16retdc \ - _m16stub1 _m16stub2 _m16stub5 _m16stub6 _m16stub9 _m16stub10 \ - _m16stubsf0 _m16stubsf1 _m16stubsf2 _m16stubsf5 _m16stubsf6 \ - _m16stubsf9 _m16stubsf10 \ - _m16stubdf0 _m16stubdf1 _m16stubdf2 _m16stubdf5 _m16stubdf6 \ - _m16stubdf9 _m16stubdf10 \ - _m16stubsc0 _m16stubsc1 _m16stubsc2 _m16stubsc5 _m16stubsc6 \ - _m16stubsc9 _m16stubsc10 \ - _m16stubdc0 _m16stubdc1 _m16stubdc2 _m16stubdc5 _m16stubdc6 \ - _m16stubdc9 _m16stubdc10 diff --git a/gcc/config/mips/t-sr71k b/gcc/config/mips/t-sr71k --- a/gcc/config/mips/t-sr71k +++ b/gcc/config/mips/t-sr71k @@ -16,11 +16,6 @@ # along with GCC; see the file COPYING3. If not see # . -# Suppress building libgcc1.a, since the MIPS compiler port is complete -# and does not need anything from libgcc1.a. -LIBGCC1 = -CROSS_LIBGCC1 = - # We must build libgcc2.a with -G 0, in case the user wants to link # without the $gp register. TARGET_LIBGCC2_CFLAGS = -G 0 diff --git a/gcc/config/pa/t-linux b/gcc/config/pa/t-linux --- a/gcc/config/pa/t-linux +++ b/gcc/config/pa/t-linux @@ -16,13 +16,6 @@ # along with GCC; see the file COPYING3. If not see # . -#Plug millicode routines into libgcc.a We want these on both native and -#cross compiles. We use the "64-bit" routines because the "32-bit" code -#is broken for certain corner cases. - -LIB1ASMFUNCS = _divI _divU _remI _remU _div_const _mulI _dyncall -LIB1ASMSRC = pa/milli64.S - # Compile libgcc2.a as PIC. TARGET_LIBGCC2_CFLAGS = -fPIC -DELF=1 -DLINUX=1 diff --git a/gcc/config/pa/t-linux64 b/gcc/config/pa/t-linux64 --- a/gcc/config/pa/t-linux64 +++ b/gcc/config/pa/t-linux64 @@ -16,12 +16,6 @@ # along with GCC; see the file COPYING3. If not see # . -#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 - LIB2FUNCS_STATIC_EXTRA = $(srcdir)/config/pa/linux-atomic.c # Compile libgcc2.a as PIC. diff --git a/gcc/config/picochip/t-picochip b/gcc/config/picochip/t-picochip --- a/gcc/config/picochip/t-picochip +++ b/gcc/config/picochip/t-picochip @@ -35,14 +35,6 @@ LIB2FUNCS_EXTRA = \ $(srcdir)/config/picochip/libgccExtras/parityhi2.asm \ $(srcdir)/config/picochip/libgccExtras/popcounthi2.asm -# Prevent some of the more complicated libgcc functions from being -# compiled. This is because they are generally too big to fit into an -# AE anyway, so there is no point in having them. Also, some don't -# compile properly so we'll ignore them for the moment. - -LIB1ASMFUNCS = _mulsc3 _divsc3 -LIB1ASMSRC = picochip/libgccExtras/fake_libgcc.asm - # Turn off ranlib on target libraries. RANLIB_FOR_TARGET = cat diff --git a/gcc/config/sh/sh.h b/gcc/config/sh/sh.h --- a/gcc/config/sh/sh.h +++ b/gcc/config/sh/sh.h @@ -1980,7 +1980,7 @@ struct sh_args { that the native compiler puts too large (> 32) immediate shift counts into a register and shifts by the register, letting the SH decide what to do instead of doing that itself. */ -/* ??? The library routines in lib1funcs.asm truncate the shift count. +/* ??? The library routines in lib1funcs.S truncate the shift count. However, the SH3 has hardware shifts that do not truncate exactly as gcc expects - the sign bit is significant - so it appears that we need to leave this zero for correct SH3 code. */ diff --git a/gcc/config/sh/t-linux b/gcc/config/sh/t-linux --- a/gcc/config/sh/t-linux +++ b/gcc/config/sh/t-linux @@ -1,5 +1,3 @@ -LIB1ASMFUNCS_CACHE = _ic_invalidate _ic_invalidate_array - LIB2FUNCS_EXTRA= $(srcdir)/config/sh/linux-atomic.asm MULTILIB_DIRNAMES= diff --git a/gcc/config/sh/t-netbsd b/gcc/config/sh/t-netbsd --- a/gcc/config/sh/t-netbsd +++ b/gcc/config/sh/t-netbsd @@ -17,6 +17,5 @@ # . TARGET_LIBGCC2_CFLAGS = -fpic -mieee -LIB1ASMFUNCS_CACHE = _ic_invalidate LIB2FUNCS_EXTRA= diff --git a/gcc/config/sh/t-sh b/gcc/config/sh/t-sh --- a/gcc/config/sh/t-sh +++ b/gcc/config/sh/t-sh @@ -22,13 +22,6 @@ sh-c.o: $(srcdir)/config/sh/sh-c.c \ $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ $(srcdir)/config/sh/sh-c.c -LIB1ASMSRC = sh/lib1funcs.asm -LIB1ASMFUNCS = _ashiftrt _ashiftrt_n _ashiftlt _lshiftrt _movmem \ - _movmem_i4 _mulsi3 _sdivsi3 _sdivsi3_i4 _udivsi3 _udivsi3_i4 _set_fpscr \ - _div_table _udiv_qrnnd_16 \ - $(LIB1ASMFUNCS_CACHE) -LIB1ASMFUNCS_CACHE = _ic_invalidate _ic_invalidate_array - TARGET_LIBGCC2_CFLAGS = -mieee DEFAULT_ENDIAN = $(word 1,$(TM_ENDIAN_CONFIG)) diff --git a/gcc/config/sh/t-sh64 b/gcc/config/sh/t-sh64 --- a/gcc/config/sh/t-sh64 +++ b/gcc/config/sh/t-sh64 @@ -1,4 +1,4 @@ -# Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc. +# Copyright (C) 2002, 2004, 2005, 2011 Free Software Foundation, Inc. # # This file is part of GCC. # @@ -16,13 +16,6 @@ # along with GCC; see the file COPYING3. If not see # . -LIB1ASMFUNCS = \ - _sdivsi3 _sdivsi3_i4 _udivsi3 _udivsi3_i4 _set_fpscr \ - _shcompact_call_trampoline _shcompact_return_trampoline \ - _shcompact_incoming_args _ic_invalidate _nested_trampoline \ - _push_pop_shmedia_regs \ - _udivdi3 _divdi3 _umoddi3 _moddi3 _div_table - MULTILIB_CPU_DIRS= $(ML_sh1) $(ML_sh2e) $(ML_sh2) $(ML_sh3e) $(ML_sh3) $(ML_sh4_nofpu) $(ML_sh4_single_only) $(ML_sh4_single) $(ML_sh4) $(ML_sh5_32media:m5-32media/=media32) $(ML_sh5_32media_nofpu:m5-32media-nofpu/=nofpu/media32) $(ML_sh5_compact:m5-compact/=compact) $(ML_sh5_compact_nofpu:m5-compact-nofpu/=nofpu/compact) $(ML_sh5_64media:m5-64media/=media64) $(ML_sh5_64media_nofpu:m5-64media-nofpu/=nofpu/media64) MULTILIB_RAW_DIRNAMES= $(MULTILIB_ENDIAN:/mb= mb) $(MULTILIB_CPU_DIRS:/=) diff --git a/gcc/config/sparc/t-elf b/gcc/config/sparc/t-elf --- a/gcc/config/sparc/t-elf +++ b/gcc/config/sparc/t-elf @@ -17,9 +17,6 @@ # along with GCC; see the file COPYING3. If not see # . -LIB1ASMSRC = sparc/lb1spc.asm -LIB1ASMFUNCS = _mulsi3 _divsi3 _modsi3 - MULTILIB_OPTIONS = msoft-float mcpu=v8 mflat MULTILIB_DIRNAMES = soft v8 flat MULTILIB_MATCHES = msoft-float=mno-fpu diff --git a/gcc/config/sparc/t-leon b/gcc/config/sparc/t-leon --- a/gcc/config/sparc/t-leon +++ b/gcc/config/sparc/t-leon @@ -16,9 +16,6 @@ # along with GCC; see the file COPYING3. If not see # . -LIB1ASMSRC = sparc/lb1spc.asm -LIB1ASMFUNCS = _mulsi3 _divsi3 _modsi3 - # Multilibs for LEON # LEON is a SPARC-V8, but the AT697 implementation has a bug in the # V8-specific instructions. diff --git a/gcc/config/spu/t-spu-elf b/gcc/config/spu/t-spu-elf --- a/gcc/config/spu/t-spu-elf +++ b/gcc/config/spu/t-spu-elf @@ -19,10 +19,6 @@ # allowing combined SPU/PPU sysroot builds. NATIVE_SYSTEM_HEADER_DIR = /include -# Suppress building libgcc1.a -LIBGCC1 = -CROSS_LIBGCC1 = - TARGET_LIBGCC2_CFLAGS = -fPIC -mwarn-reloc -D__IN_LIBGCC2 # We exclude those because the libgcc2.c default versions do not support diff --git a/gcc/config/v850/t-v850 b/gcc/config/v850/t-v850 --- a/gcc/config/v850/t-v850 +++ b/gcc/config/v850/t-v850 @@ -17,67 +17,6 @@ # along with GCC; see the file COPYING3. If not see # . -LIB1ASMSRC = v850/lib1funcs.asm -LIB1ASMFUNCS = _mulsi3 \ - _divsi3 \ - _udivsi3 \ - _modsi3 \ - _umodsi3 \ - _save_2 \ - _save_20 \ - _save_21 \ - _save_22 \ - _save_23 \ - _save_24 \ - _save_25 \ - _save_26 \ - _save_27 \ - _save_28 \ - _save_29 \ - _save_2c \ - _save_20c \ - _save_21c \ - _save_22c \ - _save_23c \ - _save_24c \ - _save_25c \ - _save_26c \ - _save_27c \ - _save_28c \ - _save_29c \ - _save_31c \ - _save_interrupt \ - _save_all_interrupt \ - _callt_save_20 \ - _callt_save_21 \ - _callt_save_22 \ - _callt_save_23 \ - _callt_save_24 \ - _callt_save_25 \ - _callt_save_26 \ - _callt_save_27 \ - _callt_save_28 \ - _callt_save_29 \ - _callt_save_20c \ - _callt_save_21c \ - _callt_save_22c \ - _callt_save_23c \ - _callt_save_24c \ - _callt_save_25c \ - _callt_save_26c \ - _callt_save_27c \ - _callt_save_28c \ - _callt_save_29c \ - _callt_save_31c \ - _callt_save_interrupt \ - _callt_save_all_interrupt \ - _callt_save_r2_r29 \ - _callt_save_r2_r31 \ - _negdi2 \ - _cmpdi2 \ - _ucmpdi2 \ - _muldi3 - # Create target-specific versions of the libraries MULTILIB_OPTIONS = mv850/mv850e/mv850e2/mv850e2v3 MULTILIB_DIRNAMES = v850 v850e v850e2 v850e2v3 diff --git a/gcc/config/vax/t-linux b/gcc/config/vax/t-linux deleted file mode 100644 --- a/gcc/config/vax/t-linux +++ /dev/null @@ -1,2 +0,0 @@ -LIB1ASMSRC = vax/lib1funcs.asm -LIB1ASMFUNCS = _udivsi3 _umodsi3 diff --git a/gcc/config/xtensa/t-xtensa b/gcc/config/xtensa/t-xtensa --- a/gcc/config/xtensa/t-xtensa +++ b/gcc/config/xtensa/t-xtensa @@ -17,18 +17,6 @@ # along with GCC; see the file COPYING3. If not see # . -LIB1ASMSRC = xtensa/lib1funcs.asm -LIB1ASMFUNCS = _mulsi3 _divsi3 _modsi3 _udivsi3 _umodsi3 \ - _umulsidi3 _clz _clzsi2 _ctzsi2 _ffssi2 \ - _ashldi3 _ashrdi3 _lshrdi3 \ - _negsf2 _addsubsf3 _mulsf3 _divsf3 _cmpsf2 _fixsfsi _fixsfdi \ - _fixunssfsi _fixunssfdi _floatsisf _floatunsisf \ - _floatdisf _floatundisf \ - _negdf2 _addsubdf3 _muldf3 _divdf3 _cmpdf2 _fixdfsi _fixdfdi \ - _fixunsdfsi _fixunsdfdi _floatsidf _floatunsidf \ - _floatdidf _floatundidf \ - _truncdfsf2 _extendsfdf2 - LIB2FUNCS_EXTRA = $(srcdir)/config/xtensa/lib2funcs.S $(out_object_file): gt-xtensa.h diff --git a/libgcc/Makefile.in b/libgcc/Makefile.in --- a/libgcc/Makefile.in +++ b/libgcc/Makefile.in @@ -394,25 +394,22 @@ LIB2_DIVMOD_FUNCS := $(filter-out $(LIB2 ifeq ($(enable_shared),yes) lib1asmfuncs-o = $(patsubst %,%$(objext),$(LIB1ASMFUNCS)) -$(lib1asmfuncs-o): %$(objext): $(gcc_srcdir)/config/$(LIB1ASMSRC) %.vis - $(gcc_compile) -DL$* -xassembler-with-cpp \ - -c $(gcc_srcdir)/config/$(LIB1ASMSRC) -include $*.vis +$(lib1asmfuncs-o): %$(objext): $(srcdir)/config/$(LIB1ASMSRC) %.vis + $(gcc_compile) -DL$* -xassembler-with-cpp -c $< -include $*.vis $(patsubst %,%.vis,$(LIB1ASMFUNCS)): %.vis: %_s$(objext) $(gen-hide-list) libgcc-objects += $(lib1asmfuncs-o) lib1asmfuncs-s-o = $(patsubst %,%_s$(objext),$(LIB1ASMFUNCS)) -$(lib1asmfuncs-s-o): %_s$(objext): $(gcc_srcdir)/config/$(LIB1ASMSRC) - $(gcc_s_compile) -DL$* -xassembler-with-cpp \ - -c $(gcc_srcdir)/config/$(LIB1ASMSRC) +$(lib1asmfuncs-s-o): %_s$(objext): $(srcdir)/config/$(LIB1ASMSRC) + $(gcc_s_compile) -DL$* -xassembler-with-cpp -c $< libgcc-s-objects += $(lib1asmfuncs-s-o) else lib1asmfuncs-o = $(patsubst %,%$(objext),$(LIB1ASMFUNCS)) -$(lib1asmfuncs-o): %$(objext): $(gcc_srcdir)/config/$(LIB1ASMSRC) - $(gcc_compile) -DL$* -xassembler-with-cpp \ - -c $(gcc_srcdir)/config/$(LIB1ASMSRC) +$(lib1asmfuncs-o): %$(objext): $(srcdir)/config/$(LIB1ASMSRC) + $(gcc_compile) -DL$* -xassembler-with-cpp -c $< libgcc-objects += $(lib1asmfuncs-o) endif diff --git a/libgcc/config.host b/libgcc/config.host --- a/libgcc/config.host +++ b/libgcc/config.host @@ -306,22 +306,25 @@ alpha*-dec-*vms*) md_unwind_header=alpha/vms-unwind.h ;; arm-wrs-vxworks) - tmake_file="$tmake_file t-fdpbit" + tmake_file="$tmake_file arm/t-arm arm/t-vxworks t-fdpbit" extra_parts="$extra_parts crti.o crtn.o" ;; arm*-*-freebsd*) - tmake_file="$tmake_file t-fdpbit" + tmake_file="$tmake_file arm/t-arm arm/t-strongarm-elf t-fdpbit" ;; arm*-*-netbsdelf*) - tmake_file="$tmake_file t-slibgcc-gld-nover" + tmake_file="$tmake_file arm/t-arm t-slibgcc-gld-nover" ;; arm*-*-linux*) # ARM GNU/Linux with ELF - tmake_file="${tmake_file} t-fixedpoint-gnu-prefix" + tmake_file="${tmake_file} arm/t-arm t-fixedpoint-gnu-prefix" case ${host} in arm*-*-linux-*eabi) - tmake_file="${tmake_file} arm/t-bpabi t-slibgcc-libgcc" + tmake_file="${tmake_file} arm/t-elf arm/t-bpabi arm/t-linux-eabi t-slibgcc-libgcc" unwind_header=config/arm/unwind-arm.h ;; + *) + tmake_file="$tmake_file arm/t-linux" + ;; esac tmake_file="$tmake_file t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp" ;; @@ -333,15 +336,15 @@ arm*-*-uclinux*) # ARM ucLinux unwind_header=config/arm/unwind-arm.h ;; esac - tmake_file="$tmake_file t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp" + tmake_file="$tmake_file arm/t-arm arm/t-elf t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp" extra_parts="$extra_parts crti.o crtn.o" ;; arm*-*-ecos-elf) - tmake_file="$tmake_file t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp" + tmake_file="$tmake_file arm/t-arm arm/t-elf t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp" extra_parts="$extra_parts crti.o crtn.o" ;; arm*-*-eabi* | arm*-*-symbianelf* ) - tmake_file="${tmake_file} t-fixedpoint-gnu-prefix" + tmake_file="${tmake_file} arm/t-arm arm/t-elf t-fixedpoint-gnu-prefix" case ${host} in arm*-*-eabi*) tmake_file="${tmake_file} arm/t-bpabi" @@ -356,17 +359,18 @@ arm*-*-eabi* | arm*-*-symbianelf* ) unwind_header=config/arm/unwind-arm.h ;; arm*-*-rtems*) - tmake_file="$tmake_file t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp" + tmake_file="$tmake_file arm/t-arm arm/t-elf t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp" extra_parts="$extra_parts crti.o crtn.o" ;; arm*-*-elf) - tmake_file="$tmake_file t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp" + tmake_file="$tmake_file arm/t-arm arm/t-elf t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp" extra_parts="$extra_parts crti.o crtn.o" ;; arm*-wince-pe*) + tmake_file="$tmake_file arm/t-arm arm/t-wince-pe" ;; avr-*-rtems*) - tmake_file=t-fpbit + tmake_file="$tmake_file avr/t-avr t-fpbit" # Don't use default. extra_parts= ;; @@ -375,27 +379,27 @@ avr-*-*) tmake_file="${cpu_type}/t-avr t-fpbit" ;; bfin*-elf*) - tmake_file="bfin/t-crtlibid bfin/t-crtstuff t-fdpbit" + tmake_file="bfin/t-bfin bfin/t-crtlibid bfin/t-crtstuff t-fdpbit" extra_parts="$extra_parts crtbeginS.o crtendS.o crti.o crtn.o crtlibid.o" ;; bfin*-uclinux*) - tmake_file="bfin/t-crtlibid bfin/t-crtstuff t-fdpbit" + tmake_file="bfin/t-bfin bfin/t-crtlibid bfin/t-crtstuff t-fdpbit" extra_parts="$extra_parts crtbeginS.o crtendS.o crtlibid.o" md_unwind_header=bfin/linux-unwind.h ;; bfin*-linux-uclibc*) - tmake_file="$tmake_file bfin/t-crtstuff t-fdpbit bfin/t-linux" + tmake_file="$tmake_file bfin/t-bfin bfin/t-crtstuff t-fdpbit bfin/t-linux" # No need to build crtbeginT.o on uClibc systems. Should probably # be moved to the OS specific section above. extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" md_unwind_header=bfin/linux-unwind.h ;; bfin*-rtems*) - tmake_file="$tmake_file t-fdpbit" + tmake_file="$tmake_file bfin/t-bfin t-fdpbit" extra_parts="$extra_parts crti.o crtn.o" ;; bfin*-*) - tmake_file="$tmake_file t-fdpbit" + tmake_file="$tmake_file bfin/t-bfin t-fdpbit" extra_parts="crtbegin.o crtend.o crti.o crtn.o" ;; crisv32-*-elf) @@ -415,10 +419,8 @@ cris-*-none) cris-*-linux* | crisv32-*-linux*) tmake_file="$tmake_file t-fdpbit cris/t-linux" ;; -fido-*-elf) - ;; fr30-*-elf) - tmake_file="$tmake_file t-fdpbit" + tmake_file="$tmake_file fr30/t-fr30 t-fdpbit" extra_parts="$extra_parts crti.o crtn.o" ;; frv-*-elf) @@ -427,20 +429,21 @@ frv-*-elf) extra_parts="frvbegin.o frvend.o" ;; frv-*-*linux*) - tmake_file="$tmake_file t-fdpbit frv/t-linux" + tmake_file="$tmake_file frv/t-frv frv/t-linux t-fdpbit" ;; h8300-*-rtems*) - tmake_file="$tmake_file t-fpbit" + tmake_file="$tmake_file h8300/t-h8300 t-fpbit" extra_parts="$extra_parts crti.o crtn.o" ;; h8300-*-elf*) - tmake_file="$tmake_file t-fpbit" + tmake_file="$tmake_file h8300/t-h8300 t-fpbit" extra_parts="$extra_parts crti.o crtn.o" ;; hppa*64*-*-linux*) + tmake_file="$tmake_file pa/t-linux pa/t-linux64" ;; hppa*-*-linux*) - tmake_file="$tmake_file t-slibgcc-libgcc" + tmake_file="$tmake_file pa/t-linux t-slibgcc-libgcc" # Set the libgcc version number if test x$enable_sjlj_exceptions = xyes; then tmake_file="$tmake_file pa/t-slibgcc-sjlj-ver" @@ -565,7 +568,7 @@ i[34567]86-*-cygwin*) else tmake_dlldir_file="i386/t-dlldir-x" fi - tmake_file="${tmake_file} ${tmake_eh_file} ${tmake_dlldir_file} i386/t-slibgcc-cygming i386/t-cygming i386/t-cygwin i386/t-crtfm t-dfprules" + tmake_file="${tmake_file} ${tmake_eh_file} ${tmake_dlldir_file} i386/t-slibgcc-cygming i386/t-cygming i386/t-cygwin i386/t-crtfm i386/t-chkstk t-dfprules" case ${target_thread_file} in posix) tmake_file="i386/t-mingw-pthread $tmake_file" @@ -586,7 +589,7 @@ i[34567]86-*-mingw*) else tmake_dlldir_file="i386/t-dlldir-x" fi - tmake_file="${tmake_file} ${tmake_eh_file} ${tmake_dlldir_file} i386/t-slibgcc-cygming i386/t-cygming i386/t-mingw32 i386/t-crtfm t-dfprules" + tmake_file="${tmake_file} ${tmake_eh_file} ${tmake_dlldir_file} i386/t-slibgcc-cygming i386/t-cygming i386/t-mingw32 i386/t-crtfm i386/t-chkstk t-dfprules" md_unwind_header=i386/w32-unwind.h ;; x86_64-*-mingw*) @@ -602,10 +605,11 @@ x86_64-*-mingw*) else tmake_dlldir_file="i386/t-dlldir-x" fi - tmake_file="${tmake_file} ${tmake_eh_file} ${tmake_dlldir_file} i386/t-slibgcc-cygming i386/t-mingw32 t-dfprules i386/t-crtfm" + tmake_file="${tmake_file} ${tmake_eh_file} ${tmake_dlldir_file} i386/t-slibgcc-cygming i386/t-mingw32 t-dfprules i386/t-crtfm i386/t-chkstk" extra_parts="$extra_parts crtfastmath.o" ;; i[34567]86-*-interix3*) + tmake_file="$tmake_file i386/t-chkstk" ;; ia64*-*-elf*) extra_parts="$extra_parts crtbeginS.o crtendS.o crtfastmath.o" @@ -625,10 +629,10 @@ ia64*-*-linux*) md_unwind_header=ia64/linux-unwind.h ;; ia64*-*-hpux*) - tmake_file="ia64/t-hpux t-slibgcc ia64/t-slibgcc-hpux t-slibgcc-hpux" + tmake_file="ia64/t-ia64 ia64/t-hpux t-slibgcc ia64/t-slibgcc-hpux t-slibgcc-hpux" ;; ia64-hp-*vms*) - tmake_file="$tmake_file ia64/t-eh-ia64 ia64/t-vms t-slibgcc-vms" + tmake_file="$tmake_file ia64/t-ia64 ia64/t-eh-ia64 ia64/t-vms t-slibgcc-vms" extra_parts="$extra_parts crtinitS.o" md_unwind_header=ia64/vms-unwind.h ;; @@ -660,18 +664,21 @@ m32r-*-linux*) m32rle-*-linux*) tmake_file="$tmake_file m32r/t-linux t-fdpbit" ;; -m68k-*-elf*) +m68k-*-elf* | fido-*-elf) + tmake_file="$tmake_file m68k/t-floatlib" ;; m68k*-*-netbsdelf*) ;; m68k*-*-openbsd*) ;; m68k-*-uclinux*) # Motorola m68k/ColdFire running uClinux with uClibc + tmake_file="$tmake_file m68k/t-floatlib" md_unwind_header=m68k/linux-unwind.h ;; m68k-*-linux*) # Motorola m68k's running GNU/Linux # with ELF format using glibc 2 # aka the GNU/Linux C library 6. + tmake_file="$tmake_file m68k/t-floatlib" # If not configured with --enable-sjlj-exceptions, bump the # libgcc version number. if test x$enable_sjlj_exceptions != xyes; then @@ -680,10 +687,11 @@ m68k-*-linux*) # Motorola m68k's runni md_unwind_header=m68k/linux-unwind.h ;; m68k-*-rtems*) + tmake_file="$tmake_file m68k/t-floatlib" extra_parts="$extra_parts crti.o crtn.o" ;; mcore-*-elf) - tmake_file=t-fdpbit + tmake_file="mcore/t-mcore t-fdpbit" extra_parts="$extra_parts crti.o crtn.o" ;; microblaze*-linux*) @@ -905,6 +913,10 @@ sh-*-elf* | sh[12346l]*-*-elf*) libic_invalidate_array_4-200.a \ libic_invalidate_array_4a.a \ libgcc-Os-4-200.a libgcc-4-300.a" + case ${host} in sh64*-*-*) + tmake_file="$tmake_file sh/t-sh64" + ;; + esac case ${host} in sh*-superh-elf) tmake_file="$tmake_file sh/t-superh" @@ -913,23 +925,33 @@ sh-*-elf* | sh[12346l]*-*-elf*) esac ;; sh-*-linux* | sh[2346lbe]*-*-linux*) - tmake_file="${tmake_file} t-slibgcc-libgcc sh/t-linux t-fdpbit" + tmake_file="${tmake_file} sh/t-sh t-slibgcc-libgcc sh/t-linux t-fdpbit" + case ${host} in sh64*-*-linux*) + tmake_file="$tmake_file sh/t-sh64" + ;; + esac md_unwind_header=sh/linux-unwind.h ;; sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* | sh5l*-*-netbsd* | \ sh64-*-netbsd* | sh64l*-*-netbsd*) + tmake_file="$tmake_file sh/t-sh sh/t-netbsd" + case ${host} in + sh5*-*-netbsd* | sh64*-netbsd*) + tmake_file="$tmake_file sh/t-sh64" + ;; + esac # NetBSD's C library includes a fast software FP library that # has support for setting/setting the rounding mode, exception # mask, etc. Therefore, we don't want to include software FP # in libgcc. ;; sh-*-rtems*) - tmake_file="$tmake_file t-crtstuff-pic t-fdpbit" + tmake_file="$tmake_file sh/t-sh t-crtstuff-pic t-fdpbit" extra_parts="$extra_parts crt1.o crti.o crtn.o crtbeginS.o crtendS.o \ $sh_ic_extra_parts $sh_opt_extra_parts" ;; sh-wrs-vxworks) - tmake_file="$tmake_file t-crtstuff-pic t-fdpbit" + tmake_file="$tmake_file sh/t-sh t-crtstuff-pic t-fdpbit" ;; sparc-*-netbsdelf*) ;; @@ -956,6 +978,13 @@ sparc-*-linux*) # SPARC's running GNU/L tmake_file="${tmake_file} sparc/t-linux" ;; esac + case ${host} in + *-leon[3-9]*) + ;; + *) + tmake_file="$tmake_file sparc/t-softmul" + ;; + esac extra_parts="$extra_parts crtfastmath.o" md_unwind_header=sparc/linux-unwind.h ;; @@ -1005,9 +1034,10 @@ tic6x-*-elf) extra_parts="$extra_parts crtbeginS.o crtendS.o crti.o crtn.o" ;; v850*-*-*) - tmake_file=t-fdpbit + tmake_file="v850/t-v850 t-fdpbit" ;; vax-*-linux*) + tmake_file="$tmake_file vax/t-linux" ;; vax-*-netbsdelf*) ;; @@ -1030,6 +1060,7 @@ am33_2.0-*-linux*) tmake_file="$tmake_file t-fdpbit" ;; m32c-*-elf*|m32c-*-rtems*) + tmake_file="$tmake_file m32c/t-m32c" ;; mep*-*-*) tmake_file="mep/t-mep t-fdpbit" diff --git a/gcc/config/arm/bpabi-v6m.S b/libgcc/config/arm/bpabi-v6m.S rename from gcc/config/arm/bpabi-v6m.S rename to libgcc/config/arm/bpabi-v6m.S diff --git a/gcc/config/arm/bpabi.S b/libgcc/config/arm/bpabi.S rename from gcc/config/arm/bpabi.S rename to libgcc/config/arm/bpabi.S diff --git a/gcc/config/arm/ieee754-df.S b/libgcc/config/arm/ieee754-df.S rename from gcc/config/arm/ieee754-df.S rename to libgcc/config/arm/ieee754-df.S diff --git a/gcc/config/arm/ieee754-sf.S b/libgcc/config/arm/ieee754-sf.S rename from gcc/config/arm/ieee754-sf.S rename to libgcc/config/arm/ieee754-sf.S diff --git a/gcc/config/arm/lib1funcs.asm b/libgcc/config/arm/lib1funcs.S rename from gcc/config/arm/lib1funcs.asm rename to libgcc/config/arm/lib1funcs.S diff --git a/libgcc/config/arm/libunwind.S b/libgcc/config/arm/libunwind.S --- a/libgcc/config/arm/libunwind.S +++ b/libgcc/config/arm/libunwind.S @@ -40,7 +40,7 @@ #ifndef __symbian__ -#include "config/arm/lib1funcs.asm" +#include "lib1funcs.S" .macro UNPREFIX name .global SYM (\name) diff --git a/libgcc/config/arm/t-arm b/libgcc/config/arm/t-arm new file mode 100644 --- /dev/null +++ b/libgcc/config/arm/t-arm @@ -0,0 +1,3 @@ +LIB1ASMSRC = arm/lib1funcs.S +LIB1ASMFUNCS = _thumb1_case_sqi _thumb1_case_uqi _thumb1_case_shi \ + _thumb1_case_uhi _thumb1_case_si diff --git a/libgcc/config/arm/t-bpabi b/libgcc/config/arm/t-bpabi --- a/libgcc/config/arm/t-bpabi +++ b/libgcc/config/arm/t-bpabi @@ -1,3 +1,6 @@ +# Add the bpabi.S functions. +LIB1ASMFUNCS += _aeabi_lcmp _aeabi_ulcmp _aeabi_ldivmod _aeabi_uldivmod + LIB2ADDEH = $(srcdir)/config/arm/unwind-arm.c \ $(srcdir)/config/arm/libunwind.S \ $(srcdir)/config/arm/pr-support.c $(srcdir)/unwind-c.c diff --git a/libgcc/config/arm/t-elf b/libgcc/config/arm/t-elf new file mode 100644 --- /dev/null +++ b/libgcc/config/arm/t-elf @@ -0,0 +1,13 @@ +# For most CPUs we have an assembly soft-float implementations. +# However this is not true for ARMv6M. Here we want to use the soft-fp C +# implementation. The soft-fp code is only build for ARMv6M. This pulls +# in the asm implementation for other CPUs. +LIB1ASMFUNCS += _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_tls _bb_init_func \ + _call_via_rX _interwork_call_via_rX \ + _lshrdi3 _ashrdi3 _ashldi3 \ + _arm_negdf2 _arm_addsubdf3 _arm_muldivdf3 _arm_cmpdf2 _arm_unorddf2 \ + _arm_fixdfsi _arm_fixunsdfsi \ + _arm_truncdfsf2 _arm_negsf2 _arm_addsubsf3 _arm_muldivsf3 \ + _arm_cmpsf2 _arm_unordsf2 _arm_fixsfsi _arm_fixunssfsi \ + _arm_floatdidf _arm_floatdisf _arm_floatundidf _arm_floatundisf \ + _clzsi2 _clzdi2 diff --git a/libgcc/config/arm/t-linux b/libgcc/config/arm/t-linux new file mode 100644 --- /dev/null +++ b/libgcc/config/arm/t-linux @@ -0,0 +1,3 @@ +LIB1ASMSRC = arm/lib1funcs.S +LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx _clzsi2 _clzdi2 \ + _arm_addsubdf3 _arm_addsubsf3 diff --git a/libgcc/config/arm/t-linux-eabi b/libgcc/config/arm/t-linux-eabi new file mode 100644 --- /dev/null +++ b/libgcc/config/arm/t-linux-eabi @@ -0,0 +1,2 @@ +# Use a version of div0 which raises SIGFPE, and a special __clear_cache. +LIB1ASMFUNCS := $(filter-out _dvmd_tls,$(LIB1ASMFUNCS)) _dvmd_lnx _clear_cache diff --git a/libgcc/config/arm/t-strongarm-elf b/libgcc/config/arm/t-strongarm-elf new file mode 100644 --- /dev/null +++ b/libgcc/config/arm/t-strongarm-elf @@ -0,0 +1,1 @@ +LIB1ASMFUNCS += _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_tls _bb_init_func _clzsi2 _clzdi2 diff --git a/libgcc/config/arm/t-symbian b/libgcc/config/arm/t-symbian --- a/libgcc/config/arm/t-symbian +++ b/libgcc/config/arm/t-symbian @@ -1,2 +1,16 @@ +LIB1ASMFUNCS += _bb_init_func _call_via_rX _interwork_call_via_rX _clzsi2 _clzdi2 + +# These functions have __aeabi equivalents and will never be called by GCC. +# By putting them in LIB1ASMFUNCS, we avoid the standard libgcc2.c code being +# used -- and we make sure that definitions are not available in lib1funcs.S, +# either, so they end up undefined. +LIB1ASMFUNCS += \ + _ashldi3 _ashrdi3 _divdi3 _floatdidf _udivmoddi4 _umoddi3 \ + _udivdi3 _lshrdi3 _moddi3 _muldi3 _negdi2 _cmpdi2 \ + _fixdfdi _fixsfdi _fixunsdfdi _fixunssfdi _floatdisf \ + _negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi _fixunsdfsi \ + _truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 \ + _fixsfsi _fixunssfsi + # Include the gcc personality routine LIB2ADDEH = $(srcdir)/unwind-c.c $(srcdir)/config/arm/pr-support.c diff --git a/libgcc/config/arm/t-vxworks b/libgcc/config/arm/t-vxworks new file mode 100644 --- /dev/null +++ b/libgcc/config/arm/t-vxworks @@ -0,0 +1,1 @@ +LIB1ASMFUNCS += _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_tls _bb_init_func _call_via_rX _interwork_call_via_rX _clzsi2 _clzdi2 diff --git a/libgcc/config/arm/t-wince-pe b/libgcc/config/arm/t-wince-pe new file mode 100644 --- /dev/null +++ b/libgcc/config/arm/t-wince-pe @@ -0,0 +1,1 @@ +LIB1ASMFUNCS += _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_tls _call_via_rX _interwork_call_via_rX _clzsi2 _clzdi2 diff --git a/gcc/config/avr/libgcc.S b/libgcc/config/avr/lib1funcs.S rename from gcc/config/avr/libgcc.S rename to libgcc/config/avr/lib1funcs.S diff --git a/libgcc/config/avr/t-avr b/libgcc/config/avr/t-avr --- a/libgcc/config/avr/t-avr +++ b/libgcc/config/avr/t-avr @@ -1,3 +1,51 @@ +LIB1ASMSRC = avr/lib1funcs.S +LIB1ASMFUNCS = \ + _mulqi3 \ + _mulhi3 \ + _mulhisi3 \ + _umulhisi3 \ + _usmulhisi3 \ + _muluhisi3 \ + _mulshisi3 \ + _mulsi3 \ + _udivmodqi4 \ + _divmodqi4 \ + _udivmodhi4 \ + _divmodhi4 \ + _udivmodsi4 \ + _divmodsi4 \ + _prologue \ + _epilogue \ + _exit \ + _cleanup \ + _tablejump \ + _tablejump_elpm \ + _copy_data \ + _clear_bss \ + _ctors \ + _dtors \ + _ffssi2 \ + _ffshi2 \ + _loop_ffsqi2 \ + _ctzsi2 \ + _ctzhi2 \ + _clzdi2 \ + _clzsi2 \ + _clzhi2 \ + _paritydi2 \ + _paritysi2 \ + _parityhi2 \ + _popcounthi2 \ + _popcountsi2 \ + _popcountdi2 \ + _popcountqi2 \ + _bswapsi2 \ + _bswapdi2 \ + _ashldi3 \ + _ashrdi3 \ + _lshrdi3 \ + _fmul _fmuls _fmulsu + # Extra 16-bit integer functions. intfuncs16 = _absvXX2 _addvXX3 _subvXX3 _mulvXX3 _negvXX2 _clrsbXX2 diff --git a/gcc/config/bfin/lib1funcs.asm b/libgcc/config/bfin/lib1funcs.S rename from gcc/config/bfin/lib1funcs.asm rename to libgcc/config/bfin/lib1funcs.S diff --git a/libgcc/config/bfin/t-bfin b/libgcc/config/bfin/t-bfin new file mode 100644 --- /dev/null +++ b/libgcc/config/bfin/t-bfin @@ -0,0 +1,3 @@ +LIB1ASMSRC = bfin/lib1funcs.S +LIB1ASMFUNCS = _divsi3 _udivsi3 _umodsi3 _modsi3 _muldi3 _umulsi3_highpart +LIB1ASMFUNCS += _smulsi3_highpart diff --git a/gcc/config/c6x/lib1funcs.asm b/libgcc/config/c6x/lib1funcs.S rename from gcc/config/c6x/lib1funcs.asm rename to libgcc/config/c6x/lib1funcs.S diff --git a/libgcc/config/c6x/t-elf b/libgcc/config/c6x/t-elf --- a/libgcc/config/c6x/t-elf +++ b/libgcc/config/c6x/t-elf @@ -1,6 +1,11 @@ # Cannot use default rules due to $(CRTSTUFF_T_CFLAGS). CUSTOM_CRTIN = yes +LIB1ASMSRC = c6x/lib1funcs.S +LIB1ASMFUNCS = _divsi3 _udivsi3 _umodsi3 _modsi3 _udivmodsi4 _divmodsi4 +LIB1ASMFUNCS += _strasgi _strasgi_64plus _clzsi2 _clzdi2 _clz +LIB1ASMFUNCS += _push_rts _pop_rts _call_stub + # Assemble startup files. crti.o: $(srcdir)/config/c6x/crti.S $(crt_compile) -c $(CRTSTUFF_T_CFLAGS) $< diff --git a/gcc/config/fr30/lib1funcs.asm b/libgcc/config/fr30/lib1funcs.S rename from gcc/config/fr30/lib1funcs.asm rename to libgcc/config/fr30/lib1funcs.S diff --git a/libgcc/config/fr30/t-fr30 b/libgcc/config/fr30/t-fr30 new file mode 100644 --- /dev/null +++ b/libgcc/config/fr30/t-fr30 @@ -0,0 +1,2 @@ +LIB1ASMSRC = fr30/lib1funcs.S +LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 diff --git a/gcc/config/frv/lib1funcs.asm b/libgcc/config/frv/lib1funcs.S rename from gcc/config/frv/lib1funcs.asm rename to libgcc/config/frv/lib1funcs.S diff --git a/libgcc/config/frv/t-frv b/libgcc/config/frv/t-frv --- a/libgcc/config/frv/t-frv +++ b/libgcc/config/frv/t-frv @@ -1,3 +1,6 @@ +LIB1ASMSRC = frv/lib1funcs.S +LIB1ASMFUNCS = _cmpll _cmpf _cmpd _addll _subll _andll _orll _xorll _notll _cmov + # Compile two additional files that are linked with every program # linked using GCC on systems using COFF or ELF, for the sake of C++ # constructors. diff --git a/gcc/config/h8300/lib1funcs.asm b/libgcc/config/h8300/lib1funcs.S rename from gcc/config/h8300/lib1funcs.asm rename to libgcc/config/h8300/lib1funcs.S diff --git a/libgcc/config/h8300/t-h8300 b/libgcc/config/h8300/t-h8300 new file mode 100644 --- /dev/null +++ b/libgcc/config/h8300/t-h8300 @@ -0,0 +1,3 @@ +LIB1ASMSRC = h8300/lib1funcs.S +LIB1ASMFUNCS = _cmpsi2 _ucmpsi2 _divhi3 _divsi3 _mulhi3 _mulsi3 \ + _fixunssfsi_asm diff --git a/gcc/config/i386/cygwin.asm b/libgcc/config/i386/cygwin.S rename from gcc/config/i386/cygwin.asm rename to libgcc/config/i386/cygwin.S diff --git a/libgcc/config/i386/t-chkstk b/libgcc/config/i386/t-chkstk new file mode 100644 --- /dev/null +++ b/libgcc/config/i386/t-chkstk @@ -0,0 +1,2 @@ +LIB1ASMSRC = i386/cygwin.S +LIB1ASMFUNCS = _chkstk _chkstk_ms diff --git a/libgcc/config/ia64/__divxf3.asm b/libgcc/config/ia64/__divxf3.S rename from libgcc/config/ia64/__divxf3.asm rename to libgcc/config/ia64/__divxf3.S --- a/libgcc/config/ia64/__divxf3.asm +++ b/libgcc/config/ia64/__divxf3.S @@ -3,7 +3,7 @@ #endif #define L__divxf3 -#include "config/ia64/lib1funcs.asm" +#include "config/ia64/lib1funcs.S" #ifdef SHARED #undef __divtf3 diff --git a/libgcc/config/ia64/_fixtfdi.asm b/libgcc/config/ia64/_fixtfdi.S rename from libgcc/config/ia64/_fixtfdi.asm rename to libgcc/config/ia64/_fixtfdi.S --- a/libgcc/config/ia64/_fixtfdi.asm +++ b/libgcc/config/ia64/_fixtfdi.S @@ -3,7 +3,7 @@ #endif #define L_fixtfdi -#include "config/ia64/lib1funcs.asm" +#include "config/ia64/lib1funcs.S" #ifdef SHARED #undef __fixtfti diff --git a/libgcc/config/ia64/_fixunstfdi.asm b/libgcc/config/ia64/_fixunstfdi.S rename from libgcc/config/ia64/_fixunstfdi.asm rename to libgcc/config/ia64/_fixunstfdi.S --- a/libgcc/config/ia64/_fixunstfdi.asm +++ b/libgcc/config/ia64/_fixunstfdi.S @@ -3,7 +3,7 @@ #endif #define L_fixunstfdi -#include "config/ia64/lib1funcs.asm" +#include "config/ia64/lib1funcs.S" #ifdef SHARED #undef __fixunstfti diff --git a/libgcc/config/ia64/_floatditf.asm b/libgcc/config/ia64/_floatditf.S rename from libgcc/config/ia64/_floatditf.asm rename to libgcc/config/ia64/_floatditf.S --- a/libgcc/config/ia64/_floatditf.asm +++ b/libgcc/config/ia64/_floatditf.S @@ -3,7 +3,7 @@ #endif #define L_floatditf -#include "config/ia64/lib1funcs.asm" +#include "config/ia64/lib1funcs.S" #ifdef SHARED #undef __floattitf diff --git a/gcc/config/ia64/lib1funcs.asm b/libgcc/config/ia64/lib1funcs.S rename from gcc/config/ia64/lib1funcs.asm rename to libgcc/config/ia64/lib1funcs.S diff --git a/libgcc/config/ia64/t-hpux b/libgcc/config/ia64/t-hpux --- a/libgcc/config/ia64/t-hpux +++ b/libgcc/config/ia64/t-hpux @@ -1,1 +1,6 @@ +# On HP-UX we do not want _fixtfdi, _fixunstfdi, or _floatditf from +# LIB1ASMSRC. These functions map the 128 bit conversion function names +# to 80 bit conversions and were done for Linux backwards compatibility. +LIB1ASMFUNCS := $(filter-out _fixtfdi _fixunstfdi _floatditf,$(LIB1ASMFUNCS)) + LIB2ADDEH = $(srcdir)/unwind-c.c diff --git a/libgcc/config/ia64/t-ia64 b/libgcc/config/ia64/t-ia64 --- a/libgcc/config/ia64/t-ia64 +++ b/libgcc/config/ia64/t-ia64 @@ -1,3 +1,16 @@ +LIB1ASMSRC = ia64/lib1funcs.S + +# We use different names for the DImode div/mod files so that they won't +# conflict with libgcc2.c files. We used to use __ia64 as a prefix, now +# we use __ as the prefix. Note that L_divdi3 in libgcc2.c actually defines +# a TImode divide function, so there is no actual overlap here between +# libgcc2.c and lib1funcs.S. +LIB1ASMFUNCS = __divxf3 __divdf3 __divsf3 \ + __divdi3 __moddi3 __udivdi3 __umoddi3 \ + __divsi3 __modsi3 __udivsi3 __umodsi3 __save_stack_nonlocal \ + __nonlocal_goto __restore_stack_nonlocal __trampoline \ + _fixtfdi _fixunstfdi _floatditf + CUSTOM_CRTSTUFF = yes # Assemble startup files. diff --git a/libgcc/config/ia64/t-softfp-compat b/libgcc/config/ia64/t-softfp-compat --- a/libgcc/config/ia64/t-softfp-compat +++ b/libgcc/config/ia64/t-softfp-compat @@ -3,5 +3,5 @@ # Replace __dvxf3 _fixtfdi _fixunstfdi _floatditf libgcc1-tf-functions = __divxf3 _fixtfdi _fixunstfdi _floatditf LIB1ASMFUNCS := $(filter-out $(libgcc1-tf-functions), $(LIB1ASMFUNCS)) -libgcc1-tf-compats = $(addsuffix .asm, $(libgcc1-tf-functions)) +libgcc1-tf-compats = $(addsuffix .S, $(libgcc1-tf-functions)) LIB2ADD += $(addprefix $(srcdir)/config/ia64/, $(libgcc1-tf-compats)) diff --git a/gcc/config/m32c/m32c-lib1.S b/libgcc/config/m32c/lib1funcs.S rename from gcc/config/m32c/m32c-lib1.S rename to libgcc/config/m32c/lib1funcs.S diff --git a/libgcc/config/m32c/t-m32c b/libgcc/config/m32c/t-m32c new file mode 100644 --- /dev/null +++ b/libgcc/config/m32c/t-m32c @@ -0,0 +1,9 @@ +LIB1ASMSRC = m32c/lib1funcs.S + +LIB1ASMFUNCS = \ + __m32c_memregs \ + __m32c_eh_return \ + __m32c_mulsi3 \ + __m32c_cmpsi2 \ + __m32c_ucmpsi2 \ + __m32c_jsri16 diff --git a/libgcc/config/m32r/initfini.c b/libgcc/config/m32r/initfini.c --- a/libgcc/config/m32r/initfini.c +++ b/libgcc/config/m32r/initfini.c @@ -1,5 +1,5 @@ /* .init/.fini section handling + C++ global constructor/destructor handling. - This file is based on crtstuff.c, sol2-crti.asm, sol2-crtn.asm. + This file is based on crtstuff.c, sol2-crti.S, sol2-crtn.S. Copyright (C) 1996, 1997, 1998, 2006, 2009 Free Software Foundation, Inc. diff --git a/gcc/config/m68k/lb1sf68.asm b/libgcc/config/m68k/lb1sf68.S rename from gcc/config/m68k/lb1sf68.asm rename to libgcc/config/m68k/lb1sf68.S diff --git a/libgcc/config/m68k/t-floatlib b/libgcc/config/m68k/t-floatlib new file mode 100644 --- /dev/null +++ b/libgcc/config/m68k/t-floatlib @@ -0,0 +1,5 @@ +LIB1ASMSRC = m68k/lb1sf68.S +LIB1ASMFUNCS = _mulsi3 _udivsi3 _divsi3 _umodsi3 _modsi3 \ + _double _float _floatex \ + _eqdf2 _nedf2 _gtdf2 _gedf2 _ltdf2 _ledf2 \ + _eqsf2 _nesf2 _gtsf2 _gesf2 _ltsf2 _lesf2 diff --git a/gcc/config/mcore/lib1.asm b/libgcc/config/mcore/lib1funcs.S rename from gcc/config/mcore/lib1.asm rename to libgcc/config/mcore/lib1funcs.S diff --git a/libgcc/config/mcore/t-mcore b/libgcc/config/mcore/t-mcore new file mode 100644 --- /dev/null +++ b/libgcc/config/mcore/t-mcore @@ -0,0 +1,2 @@ +LIB1ASMSRC = mcore/lib1funcs.S +LIB1ASMFUNCS = _divsi3 _udivsi3 _modsi3 _umodsi3 diff --git a/gcc/config/mep/mep-lib1.asm b/libgcc/config/mep/lib1funcs.S rename from gcc/config/mep/mep-lib1.asm rename to libgcc/config/mep/lib1funcs.S diff --git a/libgcc/config/mep/t-mep b/libgcc/config/mep/t-mep --- a/libgcc/config/mep/t-mep +++ b/libgcc/config/mep/t-mep @@ -1,2 +1,11 @@ +# profiling support +LIB1ASMSRC = mep/lib1funcs.S + +LIB1ASMFUNCS = _mep_profile \ + _mep_bb_init_trace \ + _mep_bb_init \ + _mep_bb_trace \ + _mep_bb_increment + # Use -O0 instead of -O2 so we don't get complex relocations CRTSTUFF_CFLAGS += -O0 diff --git a/gcc/config/mips/mips16.S b/libgcc/config/mips/mips16.S rename from gcc/config/mips/mips16.S rename to libgcc/config/mips/mips16.S diff --git a/libgcc/config/mips/t-mips16 b/libgcc/config/mips/t-mips16 --- a/libgcc/config/mips/t-mips16 +++ b/libgcc/config/mips/t-mips16 @@ -1,3 +1,43 @@ +# Copyright (C) 2007, 2008, 2011 Free Software Foundation, Inc. +# +# This file is part of GCC. +# +# GCC 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 3, or (at your option) +# any later version. +# +# GCC 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 GCC; see the file COPYING3. If not see +# . + +LIB1ASMSRC = mips/mips16.S +LIB1ASMFUNCS = _m16addsf3 _m16subsf3 _m16mulsf3 _m16divsf3 \ + _m16eqsf2 _m16nesf2 _m16gtsf2 _m16gesf2 _m16lesf2 _m16ltsf2 \ + _m16unordsf2 \ + _m16fltsisf _m16fix_truncsfsi _m16fltunsisf \ + _m16adddf3 _m16subdf3 _m16muldf3 _m16divdf3 \ + _m16extsfdf2 _m16trdfsf2 \ + _m16eqdf2 _m16nedf2 _m16gtdf2 _m16gedf2 _m16ledf2 _m16ltdf2 \ + _m16unorddf2 \ + _m16fltsidf _m16fix_truncdfsi _m16fltunsidf \ + _m16retsf _m16retdf \ + _m16retsc _m16retdc \ + _m16stub1 _m16stub2 _m16stub5 _m16stub6 _m16stub9 _m16stub10 \ + _m16stubsf0 _m16stubsf1 _m16stubsf2 _m16stubsf5 _m16stubsf6 \ + _m16stubsf9 _m16stubsf10 \ + _m16stubdf0 _m16stubdf1 _m16stubdf2 _m16stubdf5 _m16stubdf6 \ + _m16stubdf9 _m16stubdf10 \ + _m16stubsc0 _m16stubsc1 _m16stubsc2 _m16stubsc5 _m16stubsc6 \ + _m16stubsc9 _m16stubsc10 \ + _m16stubdc0 _m16stubdc1 _m16stubdc2 _m16stubdc5 _m16stubdc6 \ + _m16stubdc9 _m16stubdc10 + SYNC = yes SYNC_CFLAGS = -mno-mips16 diff --git a/gcc/config/pa/milli64.S b/libgcc/config/pa/milli64.S rename from gcc/config/pa/milli64.S rename to libgcc/config/pa/milli64.S diff --git a/libgcc/config/pa/t-linux b/libgcc/config/pa/t-linux new file mode 100644 --- /dev/null +++ b/libgcc/config/pa/t-linux @@ -0,0 +1,6 @@ +#Plug millicode routines into libgcc.a We want these on both native and +#cross compiles. We use the "64-bit" routines because the "32-bit" code +#is broken for certain corner cases. + +LIB1ASMSRC = pa/milli64.S +LIB1ASMFUNCS = _divI _divU _remI _remU _div_const _mulI _dyncall diff --git a/libgcc/config/pa/t-linux64 b/libgcc/config/pa/t-linux64 new file mode 100644 --- /dev/null +++ b/libgcc/config/pa/t-linux64 @@ -0,0 +1,4 @@ +# Plug millicode routines into libgcc.a We want these on both native and +# cross compiles. +# FIXME: Explain. +LIB1ASMFUNCS := $(filter-out _dyncall, $(LIB1ASMFUNCS)) diff --git a/gcc/config/picochip/libgccExtras/fake_libgcc.asm b/libgcc/config/picochip/lib1funcs.S rename from gcc/config/picochip/libgccExtras/fake_libgcc.asm rename to libgcc/config/picochip/lib1funcs.S --- a/gcc/config/picochip/libgccExtras/fake_libgcc.asm +++ b/libgcc/config/picochip/lib1funcs.S @@ -1,6 +1,4 @@ // picoChip ASM file // Fake libgcc asm file. This contains nothing, but is used to prevent gcc -// getting upset about the lack of a libgcc.S file when LIB1ASMFUNCS is defined -// to switch off the compilation of parts of libgcc. - - +// getting upset about the lack of a lib1funcs.S file when LIB1ASMFUNCS is +// defined to switch off the compilation of parts of libgcc. diff --git a/libgcc/config/picochip/t-picochip b/libgcc/config/picochip/t-picochip --- a/libgcc/config/picochip/t-picochip +++ b/libgcc/config/picochip/t-picochip @@ -1,2 +1,9 @@ +# Prevent some of the more complicated libgcc functions from being +# compiled. This is because they are generally too big to fit into an +# AE anyway, so there is no point in having them. Also, some don't +# compile properly so we'll ignore them for the moment. +LIB1ASMSRC = picochip/lib1funcs.S +LIB1ASMFUNCS = _mulsc3 _divsc3 + # Turn off the building of exception handling libraries. LIB2ADDEH = diff --git a/gcc/config/sh/lib1funcs.asm b/libgcc/config/sh/lib1funcs.S rename from gcc/config/sh/lib1funcs.asm rename to libgcc/config/sh/lib1funcs.S diff --git a/gcc/config/sh/lib1funcs.h b/libgcc/config/sh/lib1funcs.h rename from gcc/config/sh/lib1funcs.h rename to libgcc/config/sh/lib1funcs.h diff --git a/libgcc/config/sh/t-linux b/libgcc/config/sh/t-linux --- a/libgcc/config/sh/t-linux +++ b/libgcc/config/sh/t-linux @@ -1,3 +1,5 @@ +LIB1ASMFUNCS_CACHE = _ic_invalidate _ic_invalidate_array + HOST_LIBGCC2_CFLAGS = -fpic -mieee -DNO_FPSCR_VALUES # Override t-slibgcc-elf-ver to export some libgcc symbols with diff --git a/libgcc/config/sh/t-netbsd b/libgcc/config/sh/t-netbsd new file mode 100644 --- /dev/null +++ b/libgcc/config/sh/t-netbsd @@ -0,0 +1,1 @@ +LIB1ASMFUNCS_CACHE = _ic_invalidate diff --git a/libgcc/config/sh/t-sh b/libgcc/config/sh/t-sh --- a/libgcc/config/sh/t-sh +++ b/libgcc/config/sh/t-sh @@ -17,26 +17,33 @@ # along with GCC; see the file COPYING3. If not see # . +LIB1ASMSRC = sh/lib1funcs.S +LIB1ASMFUNCS = _ashiftrt _ashiftrt_n _ashiftlt _lshiftrt _movmem \ + _movmem_i4 _mulsi3 _sdivsi3 _sdivsi3_i4 _udivsi3 _udivsi3_i4 _set_fpscr \ + _div_table _udiv_qrnnd_16 \ + $(LIB1ASMFUNCS_CACHE) +LIB1ASMFUNCS_CACHE = _ic_invalidate _ic_invalidate_array + crt1.o: $(srcdir)/config/sh/crt1.S $(gcc_compile) -c $< -ic_invalidate_array_4-100.o: $(gcc_srcdir)/config/sh/lib1funcs.asm +ic_invalidate_array_4-100.o: $(srcdir)/config/sh/lib1funcs.S $(gcc_compile) -c -DL_ic_invalidate_array -DWAYS=1 -DWAY_SIZE=0x2000 $< libic_invalidate_array_4-100.a: ic_invalidate_array_4-100.o $(AR_CREATE_FOR_TARGET) $@ $< -ic_invalidate_array_4-200.o: $(gcc_srcdir)/config/sh/lib1funcs.asm +ic_invalidate_array_4-200.o: $(srcdir)/config/sh/lib1funcs.S $(gcc_compile) -c -DL_ic_invalidate_array -DWAYS=2 -DWAY_SIZE=0x2000 $< libic_invalidate_array_4-200.a: ic_invalidate_array_4-200.o $(AR_CREATE_FOR_TARGET) $@ $< -ic_invalidate_array_4a.o: $(gcc_srcdir)/config/sh/lib1funcs.asm +ic_invalidate_array_4a.o: $(srcdir)/config/sh/lib1funcs.S $(gcc_compile) -c -DL_ic_invalidate_array -D__FORCE_SH4A__ $< libic_invalidate_array_4a.a: ic_invalidate_array_4a.o $(AR_CREATE_FOR_TARGET) $@ $< sdivsi3_i4i-Os-4-200.o: $(srcdir)/config/sh/lib1funcs-Os-4-200.S - $(gcc_compile) -c -DL_sdivsi3_i4i $< + $(compile) -c -DL_sdivsi3_i4i $< udivsi3_i4i-Os-4-200.o: $(srcdir)/config/sh/lib1funcs-Os-4-200.S $(gcc_compile) -c -DL_udivsi3_i4i $< unwind-dw2-Os-4-200.o: $(gcc_srcdir)/unwind-dw2.c diff --git a/libgcc/config/sh/t-sh64 b/libgcc/config/sh/t-sh64 new file mode 100644 --- /dev/null +++ b/libgcc/config/sh/t-sh64 @@ -0,0 +1,6 @@ +LIB1ASMFUNCS = \ + _sdivsi3 _sdivsi3_i4 _udivsi3 _udivsi3_i4 _set_fpscr \ + _shcompact_call_trampoline _shcompact_return_trampoline \ + _shcompact_incoming_args _ic_invalidate _nested_trampoline \ + _push_pop_shmedia_regs \ + _udivdi3 _divdi3 _umoddi3 _moddi3 _div_table diff --git a/gcc/config/sparc/lb1spc.asm b/libgcc/config/sparc/lb1spc.S rename from gcc/config/sparc/lb1spc.asm rename to libgcc/config/sparc/lb1spc.S diff --git a/gcc/config/sparc/lb1spl.asm b/libgcc/config/sparc/lb1spl.S rename from gcc/config/sparc/lb1spl.asm rename to libgcc/config/sparc/lb1spl.S diff --git a/libgcc/config/sparc/t-softmul b/libgcc/config/sparc/t-softmul --- a/libgcc/config/sparc/t-softmul +++ b/libgcc/config/sparc/t-softmul @@ -1,2 +1,2 @@ -LIB1ASMSRC = sparc/lb1spc.asm +LIB1ASMSRC = sparc/lb1spc.S LIB1ASMFUNCS = _mulsi3 _divsi3 _modsi3 diff --git a/gcc/config/v850/lib1funcs.asm b/libgcc/config/v850/lib1funcs.S rename from gcc/config/v850/lib1funcs.asm rename to libgcc/config/v850/lib1funcs.S diff --git a/libgcc/config/v850/t-v850 b/libgcc/config/v850/t-v850 new file mode 100644 --- /dev/null +++ b/libgcc/config/v850/t-v850 @@ -0,0 +1,60 @@ +LIB1ASMSRC = v850/lib1funcs.S +LIB1ASMFUNCS = _mulsi3 \ + _divsi3 \ + _udivsi3 \ + _modsi3 \ + _umodsi3 \ + _save_2 \ + _save_20 \ + _save_21 \ + _save_22 \ + _save_23 \ + _save_24 \ + _save_25 \ + _save_26 \ + _save_27 \ + _save_28 \ + _save_29 \ + _save_2c \ + _save_20c \ + _save_21c \ + _save_22c \ + _save_23c \ + _save_24c \ + _save_25c \ + _save_26c \ + _save_27c \ + _save_28c \ + _save_29c \ + _save_31c \ + _save_interrupt \ + _save_all_interrupt \ + _callt_save_20 \ + _callt_save_21 \ + _callt_save_22 \ + _callt_save_23 \ + _callt_save_24 \ + _callt_save_25 \ + _callt_save_26 \ + _callt_save_27 \ + _callt_save_28 \ + _callt_save_29 \ + _callt_save_20c \ + _callt_save_21c \ + _callt_save_22c \ + _callt_save_23c \ + _callt_save_24c \ + _callt_save_25c \ + _callt_save_26c \ + _callt_save_27c \ + _callt_save_28c \ + _callt_save_29c \ + _callt_save_31c \ + _callt_save_interrupt \ + _callt_save_all_interrupt \ + _callt_save_r2_r29 \ + _callt_save_r2_r31 \ + _negdi2 \ + _cmpdi2 \ + _ucmpdi2 \ + _muldi3 diff --git a/gcc/config/vax/lib1funcs.asm b/libgcc/config/vax/lib1funcs.S rename from gcc/config/vax/lib1funcs.asm rename to libgcc/config/vax/lib1funcs.S diff --git a/libgcc/config/vax/t-linux b/libgcc/config/vax/t-linux new file mode 100644 --- /dev/null +++ b/libgcc/config/vax/t-linux @@ -0,0 +1,2 @@ +LIB1ASMSRC = vax/lib1funcs.S +LIB1ASMFUNCS = _udivsi3 _umodsi3 diff --git a/gcc/config/xtensa/ieee754-df.S b/libgcc/config/xtensa/ieee754-df.S rename from gcc/config/xtensa/ieee754-df.S rename to libgcc/config/xtensa/ieee754-df.S diff --git a/gcc/config/xtensa/ieee754-sf.S b/libgcc/config/xtensa/ieee754-sf.S rename from gcc/config/xtensa/ieee754-sf.S rename to libgcc/config/xtensa/ieee754-sf.S diff --git a/gcc/config/xtensa/lib1funcs.asm b/libgcc/config/xtensa/lib1funcs.S rename from gcc/config/xtensa/lib1funcs.asm rename to libgcc/config/xtensa/lib1funcs.S diff --git a/libgcc/config/xtensa/t-xtensa b/libgcc/config/xtensa/t-xtensa --- a/libgcc/config/xtensa/t-xtensa +++ b/libgcc/config/xtensa/t-xtensa @@ -1,2 +1,14 @@ +LIB1ASMSRC = xtensa/lib1funcs.S +LIB1ASMFUNCS = _mulsi3 _divsi3 _modsi3 _udivsi3 _umodsi3 \ + _umulsidi3 _clz _clzsi2 _ctzsi2 _ffssi2 \ + _ashldi3 _ashrdi3 _lshrdi3 \ + _negsf2 _addsubsf3 _mulsf3 _divsf3 _cmpsf2 _fixsfsi _fixsfdi \ + _fixunssfsi _fixunssfdi _floatsisf _floatunsisf \ + _floatdisf _floatundisf \ + _negdf2 _addsubdf3 _muldf3 _divdf3 _cmpdf2 _fixdfsi _fixdfdi \ + _fixunsdfsi _fixunsdfdi _floatsidf _floatunsidf \ + _floatdidf _floatundidf \ + _truncdfsf2 _extendsfdf2 + LIB2ADDEH = $(srcdir)/config/xtensa/unwind-dw2-xtensa.c \ $(srcdir)/unwind-dw2-fde.c $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c