Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/external/gpl3/gcc/dist/gcc/config/arm Add MULTILIB support a...



details:   https://anonhg.NetBSD.org/src/rev/ac12d2cf0de3
branches:  trunk
changeset: 786351:ac12d2cf0de3
user:      matt <matt%NetBSD.org@localhost>
date:      Sat Apr 27 08:03:02 2013 +0000

description:
Add MULTILIB support and fix specs for MKCOMPAT

diffstat:

 external/gpl3/gcc/dist/gcc/config/arm/netbsd-eabi.h |  25 +++++++++++++-------
 external/gpl3/gcc/dist/gcc/config/arm/t-netbsd-eabi |   4 +++
 2 files changed, 20 insertions(+), 9 deletions(-)

diffs (67 lines):

diff -r 3353dec8fd69 -r ac12d2cf0de3 external/gpl3/gcc/dist/gcc/config/arm/netbsd-eabi.h
--- a/external/gpl3/gcc/dist/gcc/config/arm/netbsd-eabi.h       Sat Apr 27 08:00:40 2013 +0000
+++ b/external/gpl3/gcc/dist/gcc/config/arm/netbsd-eabi.h       Sat Apr 27 08:03:02 2013 +0000
@@ -22,21 +22,23 @@
 #undef TARGET_VERSION
 #define TARGET_VERSION fputs (" (NetBSD/earm ELF)", stderr);
 
-/* This defaults us to little-endian.  */
-#ifndef TARGET_ENDIAN_DEFAULT
-#define TARGET_ENDIAN_DEFAULT 0
-#endif
+#undef MULTILIB_DEFAULTS
+#define MULTILIB_DEFAULTS { "mabi=aapcs-linux" }
 
 #undef MUST_USE_SJLJ_EXCEPTIONS
 #define MUST_USE_SJLJ_EXCEPTIONS (!TARGET_AAPCS_BASED)
 
+#define TARGET_LINKER_EABI_SUFFIX "%{!mabi=apcs-gnu:%{!mabi=atpcs:_nbsd_eabi}}"
+#define TARGET_LINKER_BIG_EMULATION "armelfb%(linker_eabi_suffix)"
+#define TARGET_LINKER_LITTLE_EMULATION "armelf%(linker_eabi_suffix)"
+
 /* TARGET_BIG_ENDIAN_DEFAULT is set in
    config.gcc for big endian configurations.  */
 #undef  TARGET_LINKER_EMULATION
-#if TARGET_ENDIAN_DEFAULT == MASK_BIG
-#define TARGET_LINKER_EMULATION "-m armelfb_nbsd_eabi"
+#if TARGET_BIG_ENDIAN_DEFAULT
+#define TARGET_LINKER_EMULATION TARGET_LINKER_BIG_EMULATION
 #else
-#define TARGET_LINKER_EMULATION "-m armelf_nbsd_eabi"
+#define TARGET_LINKER_EMULATION TARGET_LINKER_LITTLE_EMULATION
 #endif
 
 #undef MULTILIB_DEFAULTS
@@ -84,6 +86,10 @@
   { "subtarget_extra_asm_spec",        SUBTARGET_EXTRA_ASM_SPEC }, \
   { "subtarget_asm_float_spec", SUBTARGET_ASM_FLOAT_SPEC }, \
   { "netbsd_link_spec",                NETBSD_LINK_SPEC_ELF }, \
+  { "linker_eabi_suffix",      TARGET_LINKER_EABI_SUFFIX }, \
+  { "linker_emulation",                TARGET_LINKER_EMULATION }, \
+  { "linker_big_emulation",    TARGET_LINKER_BIG_EMULATION }, \
+  { "linker_little_emulation", TARGET_LINKER_LITTLE_EMULATION }, \
   { "be8_link_spec",           BE8_LINK_SPEC }, \
   { "target_fix_v4bx_spec",    TARGET_FIX_V4BX_SPEC }, \
   { "netbsd_entry_point",      NETBSD_ENTRY_POINT },
@@ -92,7 +98,8 @@
 
 #undef LINK_SPEC
 #define LINK_SPEC \
-  "-X %{mbig-endian:-EB -m armelfb_nbsd_eabi} \
-   %{mlittle-endian:-EL -m armelf_nbsd_eabi} \
+  "-X %{mbig-endian:-EB -m %(linker_big_emulation)} \
+   %{mlittle-endian:-EL -m %(linker_liitle_emulation)} \
+   %{!mbig-endian:%{!mlittle-endian:-m %(linker_emulation)}} \
    %(be8_link_spec) %(target_fix_v4bx_spec) \
    %(netbsd_link_spec)"
diff -r 3353dec8fd69 -r ac12d2cf0de3 external/gpl3/gcc/dist/gcc/config/arm/t-netbsd-eabi
--- a/external/gpl3/gcc/dist/gcc/config/arm/t-netbsd-eabi       Sat Apr 27 08:00:40 2013 +0000
+++ b/external/gpl3/gcc/dist/gcc/config/arm/t-netbsd-eabi       Sat Apr 27 08:03:02 2013 +0000
@@ -34,3 +34,7 @@
 LIB2ADDEHDEP = $(UNWIND_H) $(srcdir)/config/$(LIB1ASMSRC)
 
 SHLIB_MAPFILES += $(srcdir)/config/arm/libgcc-bpabi.ver
+
+MULTILIB_OPTIONS = mabi=aapcs-linux/mabi=aapcs/mabi=atpcs/mabi=apcs-gnu/mabi=iwmmxt
+MULTILIB_DIRNAMES = aapcs-linux aapcs atpcs oabi iwmmxt
+MULTILIB_OSDIRNAMES = . ../lib/aapcs ../lib/atpcs ../lib/oabi ../lib/iwmmxt



Home | Main Index | Thread Index | Old Index