diff options
author | Khem Raj <raj.khem@gmail.com> | 2012-04-30 15:55:34 -0700 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2012-05-24 08:51:35 +0100 |
commit | e108db7acc6382a51fa80f9346beacfa6e844b46 (patch) | |
tree | f2a0e1425283d7c54cbb4e8b75287e513ac19b3e /meta/recipes-devtools/gcc/gcc-4.7 | |
parent | 49694d650c61547d881a782af2a0f24dc39a042f (diff) | |
download | poky-e108db7acc6382a51fa80f9346beacfa6e844b46.tar.gz |
gcc-4.7: Add knowledge about arm hf dynamic loader
(From OE-Core rev: a0d9e602a778feab2201a0643fb7d555b71017b9)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-devtools/gcc/gcc-4.7')
-rw-r--r-- | meta/recipes-devtools/gcc/gcc-4.7/arm-hard-float-loader.patch | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/meta/recipes-devtools/gcc/gcc-4.7/arm-hard-float-loader.patch b/meta/recipes-devtools/gcc/gcc-4.7/arm-hard-float-loader.patch new file mode 100644 index 0000000000..dfa0d191f3 --- /dev/null +++ b/meta/recipes-devtools/gcc/gcc-4.7/arm-hard-float-loader.patch | |||
@@ -0,0 +1,48 @@ | |||
1 | This patch is still being discussed by probably is almost | ||
2 | final version. We add the OE notion of multilib on top | ||
3 | |||
4 | Upstream-Status: Backport [ adapted ] | ||
5 | |||
6 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
7 | |||
8 | Index: gcc-4_7-branch/gcc/config/arm/linux-eabi.h | ||
9 | =================================================================== | ||
10 | --- gcc-4_7-branch.orig/gcc/config/arm/linux-eabi.h 2012-04-30 15:28:31.891863845 -0700 | ||
11 | +++ gcc-4_7-branch/gcc/config/arm/linux-eabi.h 2012-04-30 15:37:11.531888994 -0700 | ||
12 | @@ -32,7 +32,8 @@ | ||
13 | while (false) | ||
14 | |||
15 | /* We default to a soft-float ABI so that binaries can run on all | ||
16 | - target hardware. */ | ||
17 | + target hardware. If you override this to use the hard-float ABI then | ||
18 | + change the setting of GLIBC_DYNAMIC_LINKER_DEFAULT as well. */ | ||
19 | #undef TARGET_DEFAULT_FLOAT_ABI | ||
20 | #define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_SOFT | ||
21 | |||
22 | @@ -59,10 +60,23 @@ | ||
23 | #undef SUBTARGET_EXTRA_LINK_SPEC | ||
24 | #define SUBTARGET_EXTRA_LINK_SPEC " -m " TARGET_LINKER_EMULATION | ||
25 | |||
26 | -/* Use ld-linux.so.3 so that it will be possible to run "classic" | ||
27 | - GNU/Linux binaries on an EABI system. */ | ||
28 | +/* GNU/Linux on ARM currently supports three dynamic linkers: | ||
29 | + - ld-linux.so.2 - for the legacy ABI | ||
30 | + - ld-linux.so.3 - for the EABI-derived soft-float ABI | ||
31 | + - ld-linux-armhf.so.3 - for the EABI-derived hard-float ABI. | ||
32 | + All the dynamic linkers live in /lib. | ||
33 | + We default to soft-float, but this can be overridden by changing both | ||
34 | + GLIBC_DYNAMIC_LINKER_DEFAULT and TARGET_DEFAULT_FLOAT_ABI. */ | ||
35 | + | ||
36 | #undef GLIBC_DYNAMIC_LINKER | ||
37 | -#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.3" | ||
38 | +#define GLIBC_DYNAMIC_LINKER_SOFT_FLOAT SYSTEMLIBS_DIR "ld-linux.so.3" | ||
39 | +#define GLIBC_DYNAMIC_LINKER_HARD_FLOAT SYSTEMLIBS_DIR "ld-linux-armhf.so.3" | ||
40 | +#define GLIBC_DYNAMIC_LINKER_DEFAULT GLIBC_DYNAMIC_LINKER_SOFT_FLOAT | ||
41 | + | ||
42 | + #define GLIBC_DYNAMIC_LINKER \ | ||
43 | + "%{mfloat-abi=hard:" GLIBC_DYNAMIC_LINKER_HARD_FLOAT "} \ | ||
44 | + %{mfloat-abi=soft*:" GLIBC_DYNAMIC_LINKER_SOFT_FLOAT "} \ | ||
45 | + %{!mfloat-abi=*:" GLIBC_DYNAMIC_LINKER_DEFAULT "}" | ||
46 | |||
47 | /* At this point, bpabi.h will have clobbered LINK_SPEC. We want to | ||
48 | use the GNU/Linux version, not the generic BPABI version. */ | ||