All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mark Hatle <mark.hatle@windriver.com>
To: Kang Kai <Kai.Kang@windriver.com>,
	<openembedded-core@lists.openembedded.org>
Subject: Re: [PATCH 3/9] gcc-4.9: redefine dynamic linker for aarch64
Date: Sat, 20 Sep 2014 00:06:33 -0500	[thread overview]
Message-ID: <541D0B59.2020502@windriver.com> (raw)
In-Reply-To: <541BCA94.7010605@windriver.com>

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 <kai.kang@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@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@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-----
>>>>
>>>
>>
>
>



  reply	other threads:[~2014-09-20  5:06 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-16 15:06 [PATCH 0/9] V2: Add machine qemuaarch64 Kai Kang
2014-09-16 15:06 ` [PATCH 1/9] linux-yocto: depend on libgcc for aarch64 Kai Kang
2014-09-18  6:56   ` Khem Raj
2014-09-18  9:27     ` Kang Kai
2014-09-16 15:06 ` [PATCH 2/9] Add machine qemuarm64 Kai Kang
2014-09-16 15:06 ` [PATCH 3/9] gcc-4.9: redefine dynamic linker for aarch64 Kai Kang
2014-09-18  7:19   ` Khem Raj
2014-09-18  9:37     ` Kang Kai
2014-09-18 13:58     ` Mark Hatle
2014-09-18 14:13       ` Mark Hatle
2014-09-19  6:17         ` Kang Kai
2014-09-20  5:06           ` Mark Hatle [this message]
2014-09-16 15:06 ` [PATCH 4/9] libatomics-ops: add aarch64 target iniitial support Kai Kang
2014-09-16 15:06 ` [PATCH 5/9] qt4-native: add aarch64 support Kai Kang
2014-09-16 15:06 ` [PATCH 6/9] qt4: " Kai Kang
2014-09-16 15:06 ` [PATCH 7/9] qt4-embedded: disable webkit Kai Kang
2014-09-16 15:06 ` [PATCH 8/9] libpng: add neon option for aarch64 Kai Kang
2014-09-16 15:06 ` [PATCH 9/9] perf: disable libunwind support " Kai Kang
2014-09-18  7:07   ` Khem Raj
2014-09-18  9:38     ` Kang Kai
2014-09-17  9:13 ` [PATCH 0/9] V2: Add machine qemuaarch64 Kang Kai
2014-09-17 15:11 ` Burton, Ross
2014-09-18  9:40   ` Kang Kai

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=541D0B59.2020502@windriver.com \
    --to=mark.hatle@windriver.com \
    --cc=Kai.Kang@windriver.com \
    --cc=openembedded-core@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.