diff options
author | Khem Raj <raj.khem@gmail.com> | 2009-10-10 00:22:59 -0700 |
---|---|---|
committer | Khem Raj <raj.khem@gmail.com> | 2009-10-10 00:59:31 -0700 |
commit | 7f5bcb88a3701b6464cbbd3bed8cc2dab084654f (patch) | |
tree | 417b88fcf0020ac95fafa71a2d03cc6922bf1e49 | |
parent | fa20bf824d2cdb62a38e4c8dd585888a78e62f81 (diff) |
gcc-4.4.1: Add TARGET_FIX_V4BX_SPEC to LINK_SPEC
* This fixes the issue where --fix-v4bx was not
passed to ld when invoked by gcc -march=armv4
Signed-off-by: Khem Raj <raj.khem@gmail.com>
-rw-r--r-- | recipes/gcc/gcc-4.4.1.inc | 3 | ||||
-rw-r--r-- | recipes/gcc/gcc-4.4.1/gcc-armv4-pass-fix-v4bx-to-ld.patch | 28 |
2 files changed, 30 insertions, 1 deletions
diff --git a/recipes/gcc/gcc-4.4.1.inc b/recipes/gcc/gcc-4.4.1.inc index 9b47127486..9daff95224 100644 --- a/recipes/gcc/gcc-4.4.1.inc +++ b/recipes/gcc/gcc-4.4.1.inc @@ -7,7 +7,7 @@ LICENSE = "GPLv3" DEPENDS = "mpfr gmp" -INC_PR = "r6" +INC_PR = "r7" FILESPATHPKG .= ":gcc-$PV" @@ -23,6 +23,7 @@ SRC_URI = "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.bz2 \ file://gcc-ppc_single_precision_regs.patch;patch=1 \ file://gcc-ppc_add_d_constraint.patch;patch=1 \ file://gcc-pr41175.patch;patch=1 \ + file://gcc-armv4-pass-fix-v4bx-to-ld.patch;patch=1 \ " # Language Overrides FORTRAN = "" diff --git a/recipes/gcc/gcc-4.4.1/gcc-armv4-pass-fix-v4bx-to-ld.patch b/recipes/gcc/gcc-4.4.1/gcc-armv4-pass-fix-v4bx-to-ld.patch new file mode 100644 index 0000000000..37670375e8 --- /dev/null +++ b/recipes/gcc/gcc-4.4.1/gcc-armv4-pass-fix-v4bx-to-ld.patch @@ -0,0 +1,28 @@ +The LINK_SPEC for linux gets overwritten by linux-eabi.h which +means the value of TARGET_FIX_V4BX_SPEC gets lost and as a result +the option is not passed to linker when chosing march=armv4 +This patch redefines this in linux-eabi.h and reinserts it +for eabi defaulting toolchains. + +We might want to send it upstream + +-Khem +Index: gcc-4.4.1/gcc/config/arm/linux-eabi.h +=================================================================== +--- gcc-4.4.1.orig/gcc/config/arm/linux-eabi.h 2009-10-09 12:25:06.142471730 -0700 ++++ gcc-4.4.1/gcc/config/arm/linux-eabi.h 2009-10-09 12:28:57.564946305 -0700 +@@ -63,10 +63,13 @@ + #undef GLIBC_DYNAMIC_LINKER + #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.3" + ++#undef TARGET_FIX_V4BX_SPEC ++#define TARGET_FIX_V4BX_SPEC " %{mcpu=arm8|mcpu=arm810|mcpu=strongarm*|march=armv4:--fix-v4bx}" ++ + /* At this point, bpabi.h will have clobbered LINK_SPEC. We want to + use the GNU/Linux version, not the generic BPABI version. */ + #undef LINK_SPEC +-#define LINK_SPEC LINUX_TARGET_LINK_SPEC ++#define LINK_SPEC LINUX_TARGET_LINK_SPEC TARGET_FIX_V4BX_SPEC + + /* Use the default LIBGCC_SPEC, not the version in linux-elf.h, as we + do not use -lfloat. */ |