[OE-core] [PATCH 3/9] gcc-4.9: redefine dynamic linker for aarch64

Mark Hatle mark.hatle at windriver.com
Thu Sep 18 14:13:43 UTC 2014


On 9/18/14, 8:58 AM, Mark Hatle wrote:
> On 9/18/14, 2:19 AM, Khem Raj wrote:
>> -----BEGIN PGP SIGNED MESSAGE-----
>> Hash: SHA1
>>
>>
>>
>> On 9/16/14 8:06 AM, Kai Kang wrote:
>>> Redefine dynamic linker for aarch64 from /lib to /lib64.
>>>
>>> BASELIB of aarch64 has to be defined with 'lib64', then linker file
>>> ld-linux-aarch64.so.1 is installed into /lib64 rather than /lib. So
>>> update it here too.
>>
>> hmmm since the ldso name is different it can still live in /lib
>> and there will be ilp32 version ldso multilib as well later. can we keep
>> ldso in /lib ?
>
> I thought the upstream definition (managed by ARM Ltd, and Linaro) for the ld.so
> had changed a few months back so that /lib64 was the 'standard' location for the
> ldso.  Perhaps I'm mistaken?

I did some research and I'm confused.. aarch64 is screwed up by consensus 
apparently..

Dynamic libraries live in /lib64, and the dynamic linker in /lib.. Whee!

So ya, this patch isn't correct.. the dynamic linker needs to stay in /lib. 
(Nothing says you can't sym/hardlink to lib64.. but it has to refer to in in 
/lib for the ABI conformance.)

--Mark

> --Mark
>
>>>
>>> Signed-off-by: Kai Kang <kai.kang at windriver.com>
>>> ---
>>>    meta/recipes-devtools/gcc/gcc-4.9.inc              |  1 +
>>>    .../0056-redefine-dynamic-linker-for-aarch64.patch | 34 ++++++++++++++++++++++
>>>    2 files changed, 35 insertions(+)
>>>    create mode 100644 meta/recipes-devtools/gcc/gcc-4.9/0056-redefine-dynamic-linker-for-aarch64.patch
>>>
>>> diff --git a/meta/recipes-devtools/gcc/gcc-4.9.inc b/meta/recipes-devtools/gcc/gcc-4.9.inc
>>> index 25778bd..c434a45 100644
>>> --- a/meta/recipes-devtools/gcc/gcc-4.9.inc
>>> +++ b/meta/recipes-devtools/gcc/gcc-4.9.inc
>>> @@ -70,6 +70,7 @@ SRC_URI = "\
>>>        file://0053-gcc-fix-segfault-from-calling-free-on-non-malloc-d-a.patch \
>>>        file://0054-gcc-Makefile.in-fix-parallel-building-failure.patch \
>>>        file://0055-PR-rtl-optimization-61801.patch \
>>> +    file://0056-redefine-dynamic-linker-for-aarch64.patch \
>>>    "
>>>    SRC_URI[md5sum] = "fddf71348546af523353bd43d34919c1"
>>>    SRC_URI[sha256sum] = "d334781a124ada6f38e63b545e2a3b8c2183049515a1abab6d513f109f1d717e"
>>> diff --git a/meta/recipes-devtools/gcc/gcc-4.9/0056-redefine-dynamic-linker-for-aarch64.patch b/meta/recipes-devtools/gcc/gcc-4.9/0056-redefine-dynamic-linker-for-aarch64.patch
>>> new file mode 100644
>>> index 0000000..6933e2f
>>> --- /dev/null
>>> +++ b/meta/recipes-devtools/gcc/gcc-4.9/0056-redefine-dynamic-linker-for-aarch64.patch
>>> @@ -0,0 +1,34 @@
>>> +From 8fbb60d89e569b68b13e4fd419e20640eb49cabc Mon Sep 17 00:00:00 2001
>>> +From: Kai Kang <kai.kang at windriver.com>
>>> +Date: Tue, 16 Sep 2014 16:01:31 +0800
>>> +Subject: [PATCH] Redefine dynamic linker for aarch64
>>> +
>>> +Redefine dynamic linker for aarch64 from /lib to /lib64.
>>> +
>>> +BASELIB of aarch64 has to be defined with 'lib64', then linker file
>>> +ld-linux-aarch64.so.1 is installed into /lib64 rather than /lib. So
>>> +update it here too.
>>> +
>>> +Upstream-Status: Pending
>>> +
>>> +Signed-off-by: Kai Kang <kai.kang at windriver.com>
>>> +---
>>> + gcc/config/aarch64/aarch64-linux.h | 2 +-
>>> + 1 file changed, 1 insertion(+), 1 deletion(-)
>>> +
>>> +diff --git a/gcc/config/aarch64/aarch64-linux.h b/gcc/config/aarch64/aarch64-linux.h
>>> +index a8f0771..2a6f06d 100644
>>> +--- a/gcc/config/aarch64/aarch64-linux.h
>>> ++++ b/gcc/config/aarch64/aarch64-linux.h
>>> +@@ -21,7 +21,7 @@
>>> + #ifndef GCC_AARCH64_LINUX_H
>>> + #define GCC_AARCH64_LINUX_H
>>> +
>>> +-#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-aarch64%{mbig-endian:_be}.so.1"
>>> ++#define GLIBC_DYNAMIC_LINKER "/lib64/ld-linux-aarch64%{mbig-endian:_be}.so.1"
>>> +
>>> + #define CPP_SPEC "%{pthread:-D_REENTRANT}"
>>> +
>>> +--
>>> +1.9.1
>>> +
>>>
>>
>> - --
>> - -Khem
>> -----BEGIN PGP SIGNATURE-----
>> Version: GnuPG/MacGPG2 v2.0.22 (Darwin)
>> Comment: GPGTools - https://gpgtools.org
>>
>> iEYEARECAAYFAlQah2UACgkQuwUzVZGdMxT98wCghPbcAP/2xFgFn9Lv3Wisexa6
>> kHkAni6hykOqPq44VheOimbMbcimHaZD
>> =jpy6
>> -----END PGP SIGNATURE-----
>>
>




More information about the Openembedded-core mailing list