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

Kang Kai Kai.Kang at windriver.com
Fri Sep 19 06:17:56 UTC 2014


On 2014年09月18日 22:13, Mark Hatle wrote:
> 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.)

OK. Keep dynamic linker in /lib and change libraries directory from 
/lib64 to /lib.

--Kai

>
> --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-----
>>>
>>
>


-- 
Regards,
Neil | Kai Kang




More information about the Openembedded-core mailing list