config.gcc (arm*-*-linux-*eabi): Add bpabi.h from libgcc.

gcc/
	* config.gcc (arm*-*-linux-*eabi) <tm_file>: Add bpabi.h from
	libgcc.
	(arm*-*-uclinux*eabi) <tm_file>: Likewise.
	(arm*-*-eabi*) <tm_file>: Likewise.
	(frv-*-elf) <tm_file>: Add frv-abi.h from libgcc.
	(frv-*-*linux*) <tm_file>: Likewise.
	* config/arm/bpabi.h: Delete DECLARE_LIBRARY_RENAMES stanzas
	and associated helper macros.
	* config/frv/frv-abi.h: Delete.

libgcc/
	* config/arm/bpabi.h: New file.
	* config/frv/frv-abi.h: New file.

From-SVN: r165463
This commit is contained in:
Nathan Froyd 2010-10-14 12:35:43 +00:00 committed by Nathan Froyd
parent 1e85e7204d
commit 8ac7fdcb39
6 changed files with 120 additions and 75 deletions

View File

@ -1,3 +1,15 @@
2010-10-14 Nathan Froyd <froydnj@codesourcery.com>
* config.gcc (arm*-*-linux-*eabi) <tm_file>: Add bpabi.h from
libgcc.
(arm*-*-uclinux*eabi) <tm_file>: Likewise.
(arm*-*-eabi*) <tm_file>: Likewise.
(frv-*-elf) <tm_file>: Add frv-abi.h from libgcc.
(frv-*-*linux*) <tm_file>: Likewise.
* config/arm/bpabi.h: Delete DECLARE_LIBRARY_RENAMES stanzas
and associated helper macros.
* config/frv/frv-abi.h: Delete.
2010-10-14 Richard Guenther <rguenther@suse.de>
PR lto/44561

View File

@ -787,6 +787,7 @@ arm*-*-linux*) # ARM GNU/Linux with ELF
case ${target} in
arm*-*-linux-*eabi)
tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h"
tm_file="$tm_file ../../libgcc/config/arm/bpabi.h"
tmake_file="$tmake_file arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi t-slibgcc-libgcc"
# Define multilib configuration for arm-linux-androideabi.
case ${target} in
@ -814,6 +815,7 @@ arm*-*-uclinux*) # ARM ucLinux
case ${target} in
arm*-*-uclinux*eabi)
tm_file="$tm_file arm/bpabi.h arm/uclinux-eabi.h"
tm_file="$tm_file ../../libgcc/config/arm/bpabi.h"
tmake_file="$tmake_file arm/t-bpabi"
# The BPABI long long divmod functions return a 128-bit value in
# registers r0-r3. Correctly modeling that requires the use of
@ -837,6 +839,7 @@ arm*-*-eabi* | arm*-*-symbianelf* )
need_64bit_hwint=yes
default_use_cxa_atexit=yes
tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
tm_file="$tm_file ../../libgcc/config/arm/bpabi.h"
tmake_file="arm/t-arm arm/t-arm-elf"
case ${target} in
arm*-*-eabi*)
@ -957,12 +960,14 @@ fr30-*-elf)
extra_parts="crti.o crtn.o crtbegin.o crtend.o"
;;
frv-*-elf)
tm_file="dbxelf.h elfos.h svr4.h newlib-stdint.h ${tm_file} frv/frv-abi.h"
tm_file="dbxelf.h elfos.h svr4.h newlib-stdint.h ${tm_file}"
tm_file="${tm_file} ../../libgcc/config/frv/frv-abi.h"
tmake_file=frv/t-frv
;;
frv-*-*linux*)
tm_file="dbxelf.h elfos.h svr4.h ${tm_file} \
linux.h glibc-stdint.h frv/linux.h frv/frv-abi.h"
linux.h glibc-stdint.h frv/linux.h"
tm_file="${tm_file} ../../libgcc/config/frv/frv-abi.h"
tmake_file="${tmake_file} frv/t-frv frv/t-linux"
;;
moxie-*-elf)

View File

@ -1,5 +1,5 @@
/* Configuration file for ARM BPABI targets.
Copyright (C) 2004, 2005, 2007, 2008, 2009
Copyright (C) 2004, 2005, 2007, 2008, 2009, 2010
Free Software Foundation, Inc.
Contributed by CodeSourcery, LLC
@ -73,65 +73,6 @@
#undef LINK_SPEC
#define LINK_SPEC BPABI_LINK_SPEC
#if defined (__thumb__)
#define RENAME_LIBRARY_SET ".thumb_set"
#else
#define RENAME_LIBRARY_SET ".set"
#endif
/* Make __aeabi_AEABI_NAME an alias for __GCC_NAME. */
#define RENAME_LIBRARY(GCC_NAME, AEABI_NAME) \
__asm__ (".globl\t__aeabi_" #AEABI_NAME "\n" \
RENAME_LIBRARY_SET "\t__aeabi_" #AEABI_NAME \
", __" #GCC_NAME "\n");
/* Give some libgcc functions an additional __aeabi name. */
#ifdef L_muldi3
#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (muldi3, lmul)
#endif
#ifdef L_muldi3
#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (muldi3, lmul)
#endif
#ifdef L_fixdfdi
#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixdfdi, d2lz) \
extern DWtype __fixdfdi (DFtype) __attribute__((pcs("aapcs"))); \
extern UDWtype __fixunsdfdi (DFtype) __asm__("__aeabi_d2ulz") __attribute__((pcs("aapcs")));
#endif
#ifdef L_fixunsdfdi
#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixunsdfdi, d2ulz) \
extern UDWtype __fixunsdfdi (DFtype) __attribute__((pcs("aapcs")));
#endif
#ifdef L_fixsfdi
#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixsfdi, f2lz) \
extern DWtype __fixsfdi (SFtype) __attribute__((pcs("aapcs"))); \
extern UDWtype __fixunssfdi (SFtype) __asm__("__aeabi_f2ulz") __attribute__((pcs("aapcs")));
#endif
#ifdef L_fixunssfdi
#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixunssfdi, f2ulz) \
extern UDWtype __fixunssfdi (SFtype) __attribute__((pcs("aapcs")));
#endif
#ifdef L_floatdidf
#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (floatdidf, l2d)
#endif
#ifdef L_floatdisf
#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (floatdisf, l2f)
#endif
/* These renames are needed on ARMv6M. Other targets get them from
assembly routines. */
#ifdef L_fixunsdfsi
#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixunsdfsi, d2uiz)
#endif
#ifdef L_fixunssfsi
#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixunssfsi, f2uiz)
#endif
#ifdef L_floatundidf
#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (floatundidf, ul2d)
#endif
#ifdef L_floatundisf
#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (floatundisf, ul2f)
#endif
/* The BPABI requires that we always use an out-of-line implementation
of RTTI comparison, even if the target supports weak symbols,
because the same object file might be used on a target that does

View File

@ -1,3 +1,8 @@
2010-10-14 Nathan Froyd <froydnj@codesourcery.com>
* config/arm/bpabi.h: New file.
* config/frv/frv-abi.h: New file.
2010-10-01 Ian Lance Taylor <iant@google.com>
* config/t-stack(LIB2ADD_ST): Set instead of LIB2ADD.

80
libgcc/config/arm/bpabi.h Normal file
View File

@ -0,0 +1,80 @@
/* Configuration file for ARM BPABI targets, library renames.
Copyright (C) 2010
Free Software Foundation, Inc.
Contributed by CodeSourcery, LLC
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 and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
<http://www.gnu.org/licenses/>. */
#if defined (__thumb__)
#define RENAME_LIBRARY_SET ".thumb_set"
#else
#define RENAME_LIBRARY_SET ".set"
#endif
/* Make __aeabi_AEABI_NAME an alias for __GCC_NAME. */
#define RENAME_LIBRARY(GCC_NAME, AEABI_NAME) \
__asm__ (".globl\t__aeabi_" #AEABI_NAME "\n" \
RENAME_LIBRARY_SET "\t__aeabi_" #AEABI_NAME \
", __" #GCC_NAME "\n");
/* Give some libgcc functions an additional __aeabi name. */
#ifdef L_muldi3
#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (muldi3, lmul)
#endif
#ifdef L_muldi3
#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (muldi3, lmul)
#endif
#ifdef L_fixdfdi
#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixdfdi, d2lz) \
extern DWtype __fixdfdi (DFtype) __attribute__((pcs("aapcs"))); \
extern UDWtype __fixunsdfdi (DFtype) __asm__("__aeabi_d2ulz") __attribute__((pcs("aapcs")));
#endif
#ifdef L_fixunsdfdi
#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixunsdfdi, d2ulz) \
extern UDWtype __fixunsdfdi (DFtype) __attribute__((pcs("aapcs")));
#endif
#ifdef L_fixsfdi
#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixsfdi, f2lz) \
extern DWtype __fixsfdi (SFtype) __attribute__((pcs("aapcs"))); \
extern UDWtype __fixunssfdi (SFtype) __asm__("__aeabi_f2ulz") __attribute__((pcs("aapcs")));
#endif
#ifdef L_fixunssfdi
#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixunssfdi, f2ulz) \
extern UDWtype __fixunssfdi (SFtype) __attribute__((pcs("aapcs")));
#endif
#ifdef L_floatdidf
#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (floatdidf, l2d)
#endif
#ifdef L_floatdisf
#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (floatdisf, l2f)
#endif
/* These renames are needed on ARMv6M. Other targets get them from
assembly routines. */
#ifdef L_fixunsdfsi
#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixunsdfsi, d2uiz)
#endif
#ifdef L_fixunssfsi
#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixunssfsi, f2uiz)
#endif
#ifdef L_floatundidf
#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (floatundidf, ul2d)
#endif
#ifdef L_floatundisf
#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (floatundisf, ul2f)
#endif

View File

@ -1,22 +1,24 @@
/* Frv map GCC names to FR-V ABI.
Copyright (C) 2000, 2003, 2004, 2007 Free Software Foundation, Inc.
Copyright (C) 2000, 2003, 2004, 2007, 2010
Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of GCC.
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 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.
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
<http://www.gnu.org/licenses/>. */
You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
<http://www.gnu.org/licenses/>. */
/* For each of the functions in the library that has a corresponding name in
the ABI, add an equivalence between the GCC name and the ABI name. This is