config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
authorPaul Brook <paul@codesourcery.com>
Thu, 20 Mar 2008 20:00:47 +0000 (20:00 +0000)
committerPaul Brook <pbrook@gcc.gnu.org>
Thu, 20 Mar 2008 20:00:47 +0000 (20:00 +0000)
2008-03-20  Paul Brook  <paul@codesourcery.com>

gcc/
* config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
* config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
linker flags.
* config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
definition.
(LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
* config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.

From-SVN: r133394

gcc/ChangeLog
gcc/config.gcc
gcc/config/arm/bpabi.h
gcc/config/arm/uclinux-eabi.h
gcc/config/arm/unwind-arm.h

index 800769650c0d2863355d20bb4fdcd3353a1ea0ce..bd4ada6c179040b62d5396b132662bf5694e9562 100644 (file)
@@ -1,3 +1,13 @@
+2008-03-20  Paul Brook  <paul@codesourcery.com>
+
+       * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
+       * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
+       linker flags.
+       * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
+       definition.
+       (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
+       * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
+
 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
 
        * common.opt (Wmudflap): New option.
index fbb54e2d5b39d858a8a652d8c461098fab90e601..8d0217e8f9235f6409818673a232babc662faae6 100644 (file)
@@ -753,7 +753,7 @@ arm*-*-linux*)                      # ARM GNU/Linux with ELF
        tmake_file="${tmake_file} arm/t-arm-softfp soft-fp/t-softfp"
        ;;
 arm*-*-uclinux*)               # ARM ucLinux
-       tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/linux-gas.h arm/uclinux-elf.h arm/uclinux-elf.h"
+       tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/linux-gas.h arm/uclinux-elf.h"
        tmake_file="arm/t-arm arm/t-arm-elf"
        case ${target} in
        arm*-*-uclinux-*eabi)
index 0f3b24faaf34d6e3d8505c10a58ed9794a4d26b8..876e23404abffc14f667a61ce0e81d1b18f0d738 100644 (file)
 #undef  SUBTARGET_EXTRA_ASM_SPEC
 #define SUBTARGET_EXTRA_ASM_SPEC "%{mabi=apcs-gnu|mabi=atpcs:-meabi=gnu;:-meabi=4}"
 
+#ifndef SUBTARGET_EXTRA_LINK_SPEC
+#define SUBTARGET_EXTRA_LINK_SPEC ""
+#endif
+
 /* The generic link spec in elf.h does not support shared libraries.  */
 #undef  LINK_SPEC
 #define LINK_SPEC "%{mbig-endian:-EB} %{mlittle-endian:-EL} "          \
   "%{static:-Bstatic} %{shared:-shared} %{symbolic:-Bsymbolic} "       \
-  "-X"
+  "-X" SUBTARGET_EXTRA_LINK_SPEC
 
 #if defined (__thumb__)
 #define RENAME_LIBRARY_SET ".thumb_set"
index aa6bc762a5bf1e24375d0778a4e48369427d8176..5ba97bf591b5fbae06e3bf38f80492c2dc56072f 100644 (file)
@@ -42,7 +42,8 @@
   while (false)
 
 #undef SUBTARGET_EXTRA_LINK_SPEC
-#define SUBTARGET_EXTRA_LINK_SPEC " -m armelf_linux_eabi"
+#define SUBTARGET_EXTRA_LINK_SPEC " -m armelf_linux_eabi -elf2flt" \
+  " --pic-veneer --target2=abs"
 
 /* We default to the "aapcs-linux" ABI so that enums are int-sized by
    default.  */
index 896e410c7378f2caef9574d80896b9c146b20f3d..f6d3dc15fdd1f3db9db08893de2fbd0fef8815eb 100644 (file)
@@ -232,11 +232,11 @@ extern "C" {
       if (!tmp)
        return 0;
 
-#if defined(linux) || defined(__NetBSD__)
+#if (defined(linux) && !defined(__uClinux__)) || defined(__NetBSD__)
       /* Pc-relative indirect.  */
       tmp += ptr;
       tmp = *(_Unwind_Word *) tmp;
-#elif defined(__symbian__)
+#elif defined(__symbian__) || defined(__uClinux__)
       /* Absolute pointer.  Nothing more to do.  */
 #else
       /* Pc-relative pointer.  */