summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Olbrich <m.olbrich@pengutronix.de>2012-12-16 20:55:19 +0100
committerMichael Olbrich <m.olbrich@pengutronix.de>2012-12-16 20:55:27 +0100
commitc947cf9b89b9286891aa0b3233f89824d532a0d7 (patch)
treeda991a6a744a20503543bac223eaf273197e2d8e
parent84be5d9fe1d99c44300b4413a5ed9811c3d0d341 (diff)
downloadOSELAS.Toolchain-c947cf9b89b9286891aa0b3233f89824d532a0d7.tar.gz
gcc-4.7.2: add patch to fix specs for arm-1136jfs-linux-gnueabihf
Without this patch gcc reports /lib/ld-linux.so.3 as dynamic linker. Also add a series file for gcc-linaro-4.7-2012.11, as this patch is already there. Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
-rw-r--r--patches/gcc-4.7.2/0600-Backport-the-change-to-the-hard-float-loader-path.-C.patch74
-rw-r--r--patches/gcc-4.7.2/series4
l---------patches/gcc-linaro-4.7-2012.111
-rw-r--r--patches/gcc-linaro-4.7-2012.11/series18
4 files changed, 95 insertions, 2 deletions
diff --git a/patches/gcc-4.7.2/0600-Backport-the-change-to-the-hard-float-loader-path.-C.patch b/patches/gcc-4.7.2/0600-Backport-the-change-to-the-hard-float-loader-path.-C.patch
new file mode 100644
index 0000000..9557be4
--- /dev/null
+++ b/patches/gcc-4.7.2/0600-Backport-the-change-to-the-hard-float-loader-path.-C.patch
@@ -0,0 +1,74 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Sun, 16 Dec 2012 20:05:00 +0100
+Subject: [PATCH] Backport the change to the hard float loader path. Changes
+ to /lib/ld-linux-armhf.so.3
+
+Taken from linaro-gcc.
+
+2012-05-04 Michael Hope <michael.hope@linaro.org>
+
+ Backport from mainline r186859:
+
+ gcc/
+ 2012-04-26 Michael Hope <michael.hope@linaro.org>
+ Richard Earnshaw <rearnsha@arm.com>
+
+ * config/arm/linux-eabi.h (GLIBC_DYNAMIC_LINKER_SOFT_FLOAT): Define.
+ (GLIBC_DYNAMIC_LINKER_HARD_FLOAT): Define.
+ (GLIBC_DYNAMIC_LINKER_DEFAULT): Define.
+ (GLIBC_DYNAMIC_LINKER): Redefine to use the hard float path.
+
+ Backport from mainline r187012:
+
+ gcc/
+ 2012-05-01 Richard Earnshaw <rearnsha@arm.com>
+
+ * arm/linux-eabi.h (GLIBC_DYNAMIC_LINKER_DEFAULT): Avoid ifdef
+ comparing enumeration values. Update comments.
+
+Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+---
+ gcc/config/arm/linux-eabi.h | 22 ++++++++++++++++++----
+ 1 file changed, 18 insertions(+), 4 deletions(-)
+
+diff --git a/gcc/config/arm/linux-eabi.h b/gcc/config/arm/linux-eabi.h
+index 80bd825..46d3bc6 100644
+--- a/gcc/config/arm/linux-eabi.h
++++ b/gcc/config/arm/linux-eabi.h
+@@ -32,7 +32,8 @@
+ while (false)
+
+ /* We default to a soft-float ABI so that binaries can run on all
+- target hardware. */
++ target hardware. If you override this to use the hard-float ABI then
++ change the setting of GLIBC_DYNAMIC_LINKER_DEFAULT as well. */
+ #undef TARGET_DEFAULT_FLOAT_ABI
+ #define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_SOFT
+
+@@ -59,10 +60,23 @@
+ #undef SUBTARGET_EXTRA_LINK_SPEC
+ #define SUBTARGET_EXTRA_LINK_SPEC " -m " TARGET_LINKER_EMULATION
+
+-/* Use ld-linux.so.3 so that it will be possible to run "classic"
+- GNU/Linux binaries on an EABI system. */
++/* GNU/Linux on ARM currently supports three dynamic linkers:
++ - ld-linux.so.2 - for the legacy ABI
++ - ld-linux.so.3 - for the EABI-derived soft-float ABI
++ - ld-linux-armhf.so.3 - for the EABI-derived hard-float ABI.
++ All the dynamic linkers live in /lib.
++ We default to soft-float, but this can be overridden by changing both
++ GLIBC_DYNAMIC_LINKER_DEFAULT and TARGET_DEFAULT_FLOAT_ABI. */
++
+ #undef GLIBC_DYNAMIC_LINKER
+-#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.3"
++#define GLIBC_DYNAMIC_LINKER_SOFT_FLOAT "/lib/ld-linux.so.3"
++#define GLIBC_DYNAMIC_LINKER_HARD_FLOAT "/lib/ld-linux-armhf.so.3"
++#define GLIBC_DYNAMIC_LINKER_DEFAULT GLIBC_DYNAMIC_LINKER_SOFT_FLOAT
++
++#define GLIBC_DYNAMIC_LINKER \
++ "%{mfloat-abi=hard:" GLIBC_DYNAMIC_LINKER_HARD_FLOAT "} \
++ %{mfloat-abi=soft*:" GLIBC_DYNAMIC_LINKER_SOFT_FLOAT "} \
++ %{!mfloat-abi=*:" GLIBC_DYNAMIC_LINKER_DEFAULT "}"
+
+ /* At this point, bpabi.h will have clobbered LINK_SPEC. We want to
+ use the GNU/Linux version, not the generic BPABI version. */
diff --git a/patches/gcc-4.7.2/series b/patches/gcc-4.7.2/series
index b053a79..54b2312 100644
--- a/patches/gcc-4.7.2/series
+++ b/patches/gcc-4.7.2/series
@@ -16,4 +16,6 @@
0400-add-support-for-arm-linux-eabi-triplets-useful-for-a.patch
#tag:OpenEmbedded --start-number 500
0500-Fix-Argument-list-too-long-error.patch
-# d177996e61f35f8619c8fd1b51981c5c - git-ptx-patches magic
+#tag:Linaro --start-number 600
+0600-Backport-the-change-to-the-hard-float-loader-path.-C.patch
+# 4987a1a030fd14433ae05b3624255ffa - git-ptx-patches magic
diff --git a/patches/gcc-linaro-4.7-2012.11 b/patches/gcc-linaro-4.7-2012.11
deleted file mode 120000
index ae89525..0000000
--- a/patches/gcc-linaro-4.7-2012.11
+++ /dev/null
@@ -1 +0,0 @@
-gcc-4.7.2 \ No newline at end of file
diff --git a/patches/gcc-linaro-4.7-2012.11/series b/patches/gcc-linaro-4.7-2012.11/series
new file mode 100644
index 0000000..2324f2b
--- /dev/null
+++ b/patches/gcc-linaro-4.7-2012.11/series
@@ -0,0 +1,18 @@
+# generated by git-ptx-patches
+#tag:base
+#tag:OSELAS.toolchain --start-number 100
+../gcc-4.7.2/0100-no-host-includes.patch
+../gcc-4.7.2/0101-gcc-i386-use-pure64-CLFS-patch.patch
+../gcc-4.7.2/0102-libgcc-reorder-tmake_file-for-arm-uclinux.patch
+#tag:uclibc --start-number 200
+../gcc-4.7.2/0200-also-match-uclibc-when-checking-host-os.patch
+../gcc-4.7.2/0201-missing-execinfo.h.patch
+../gcc-4.7.2/0202-c99-snprintf.patch
+../gcc-4.7.2/0203-libmudflap-susv3-legacy.patch
+#tag:gentoo --start-number 300
+../gcc-4.7.2/0300-libiberty-pic.patch
+../gcc-4.7.2/0301-libstdc-pic.patch
+#tag:debian --start-number 400
+../gcc-4.7.2/0400-add-support-for-arm-linux-eabi-triplets-useful-for-a.patch
+#tag:OpenEmbedded --start-number 500
+../gcc-4.7.2/0500-Fix-Argument-list-too-long-error.patch