From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail1.windriver.com (mail1.windriver.com [147.11.146.13]) by mail.openembedded.org (Postfix) with ESMTP id 0DDE7713C1 for ; Sat, 20 Sep 2014 05:06:38 +0000 (UTC) Received: from ALA-HCA.corp.ad.wrs.com (ala-hca.corp.ad.wrs.com [147.11.189.40]) by mail1.windriver.com (8.14.9/8.14.5) with ESMTP id s8K56YUm009821 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL) for ; Fri, 19 Sep 2014 22:06:37 -0700 (PDT) Received: from Marks-MacBook-Pro.local (172.25.36.226) by ALA-HCA.corp.ad.wrs.com (147.11.189.50) with Microsoft SMTP Server id 14.3.174.1; Fri, 19 Sep 2014 22:06:34 -0700 Message-ID: <541D0B59.2020502@windriver.com> Date: Sat, 20 Sep 2014 00:06:33 -0500 From: Mark Hatle Organization: Wind River Systems User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: Kang Kai , References: <541A8765.1060800@gmail.com> <541AE517.70204@windriver.com> <541AE897.4080305@windriver.com> <541BCA94.7010605@windriver.com> In-Reply-To: <541BCA94.7010605@windriver.com> Subject: Re: [PATCH 3/9] gcc-4.9: redefine dynamic linker for aarch64 X-BeenThere: openembedded-core@lists.openembedded.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: Patches and discussions about the oe-core layer List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 20 Sep 2014 05:06:43 -0000 Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 8bit On 9/19/14, 1:17 AM, Kang Kai wrote: > 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. The dynamic linker (ldso) goes into '/lib'. The library directory is /lib or /lib64. (/lib64 when multilib arm is enabled.) It's a bit odd, but it means that the link inside of gcc must be hard coded to the default /lib/... path. The shared libraries would be referenced in the same way they are in the other distributions where either lib, lib64 (or any alternative can be set in the OE code.) --Mark > --Kai > >> >> --Mark >> >>> --Mark >>> >>>>> >>>>> Signed-off-by: Kai Kang >>>>> --- >>>>> 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 >>>>> +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 >>>>> +--- >>>>> + 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----- >>>> >>> >> > >