From 8ac7fdcb39522d47fc35f8efc3e2f77f45878571 Mon Sep 17 00:00:00 2001 From: Nathan Froyd Date: Thu, 14 Oct 2010 12:35:43 +0000 Subject: [PATCH] config.gcc (arm*-*-linux-*eabi): Add bpabi.h from libgcc. gcc/ * config.gcc (arm*-*-linux-*eabi) : Add bpabi.h from libgcc. (arm*-*-uclinux*eabi) : Likewise. (arm*-*-eabi*) : Likewise. (frv-*-elf) : Add frv-abi.h from libgcc. (frv-*-*linux*) : 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 --- gcc/ChangeLog | 12 +++++ gcc/config.gcc | 9 +++- gcc/config/arm/bpabi.h | 61 +-------------------- libgcc/ChangeLog | 5 ++ libgcc/config/arm/bpabi.h | 80 ++++++++++++++++++++++++++++ {gcc => libgcc}/config/frv/frv-abi.h | 28 +++++----- 6 files changed, 120 insertions(+), 75 deletions(-) create mode 100644 libgcc/config/arm/bpabi.h rename {gcc => libgcc}/config/frv/frv-abi.h (82%) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 640d05eccae..97f9a0d5fbe 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,15 @@ +2010-10-14 Nathan Froyd + + * config.gcc (arm*-*-linux-*eabi) : Add bpabi.h from + libgcc. + (arm*-*-uclinux*eabi) : Likewise. + (arm*-*-eabi*) : Likewise. + (frv-*-elf) : Add frv-abi.h from libgcc. + (frv-*-*linux*) : 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 PR lto/44561 diff --git a/gcc/config.gcc b/gcc/config.gcc index 240bd42483a..b353fa00c20 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -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) diff --git a/gcc/config/arm/bpabi.h b/gcc/config/arm/bpabi.h index 9a59b47de07..d4b65deeed2 100644 --- a/gcc/config/arm/bpabi.h +++ b/gcc/config/arm/bpabi.h @@ -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 diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog index 4a4003797a2..1564feb2cd1 100644 --- a/libgcc/ChangeLog +++ b/libgcc/ChangeLog @@ -1,3 +1,8 @@ +2010-10-14 Nathan Froyd + + * config/arm/bpabi.h: New file. + * config/frv/frv-abi.h: New file. + 2010-10-01 Ian Lance Taylor * config/t-stack(LIB2ADD_ST): Set instead of LIB2ADD. diff --git a/libgcc/config/arm/bpabi.h b/libgcc/config/arm/bpabi.h new file mode 100644 index 00000000000..49a28c3c202 --- /dev/null +++ b/libgcc/config/arm/bpabi.h @@ -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 + . */ + +#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 diff --git a/gcc/config/frv/frv-abi.h b/libgcc/config/frv/frv-abi.h similarity index 82% rename from gcc/config/frv/frv-abi.h rename to libgcc/config/frv/frv-abi.h index ae8488713c7..99a0cd87855 100644 --- a/gcc/config/frv/frv-abi.h +++ b/libgcc/config/frv/frv-abi.h @@ -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 -. */ + 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 + . */ /* 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