Openembedded Devel Discussions
 help / color / mirror / Atom feed
From: "Martin Ertsås" <martiert@gmail.com>
To: openembedded-devel@lists.openembedded.org
Subject: Re: Openembedded and ld-linux-armhf.so.3
Date: Mon, 30 Apr 2012 08:00:04 +0200	[thread overview]
Message-ID: <4F9E2A64.6040302@gmail.com> (raw)
In-Reply-To: <CAMKF1spP9gnvy7JWQhLxA7VcfhUzWS4Ra1pH3XGA8eEguTporA@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 1798 bytes --]

On 04/29/12 04:40, Khem Raj wrote:
> On Fri, Apr 27, 2012 at 5:38 AM, Martin Ertsås <martiert@gmail.com> wrote:
>> Hi.
>>
>> I'm working on a pandaboard with OMAP4460. Were trying to use the newest
>> PVR drivers, which conforms to the result that arose from
>> https://wiki.linaro.org/OfficeofCTO/HardFloat/LinkerPathCallApr2012
>>
>> We have applied the patch at the bottom of that page gcc, and also a
>> patch for making eglibc make ld-linux-armhf, and load ld-linux-armhf
>> instead of ld-linux. Problem is, this gives us a kernel panic when it
>> tries to run init. Linking ld-linux.so.3 to ld-linux-armhf.so.3 does not
>> work, and we're kind of in the dark as to what is missing.
>>
>> We tried fixing this by renaming the toolchain to be
>> arm-none-linux-gnueabihf instead of arm-none-linux-gnueabi, as we heard
>> this might be a problem with hardfloats, but this needed a lot of extra
>> patches, and some patchwork on other packages like openssl and shadow.
>>
>> My question is, are there any ongoing plans to fix this, and make sure
>> that if we have set hard float we make ld-linux-armhf in openembedded?
>>
>> For the record we are using eglibc2.15 and gcc4.6 from openembedded-core.
> would you show the patches so I can take a look what you did and whats going on
Sure, the patches are attached.
>> Best regards
>> Martin Ertsaas
>>
>> _______________________________________________
>> Openembedded-devel mailing list
>> Openembedded-devel@lists.openembedded.org
>> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel


[-- Attachment #2: add-armhf-so.patch --]
[-- Type: text/x-patch, Size: 350 bytes --]

--- a/ports/sysdeps/arm/shlib-versions  2011-05-10 09:49:03.000000000 -0600
+++ b/ports/sysdeps/arm/shlib-versions  2012-04-13 22:52:46.790815748 -0600
@@ -1,4 +1,4 @@
 arm.*-.*-linux-gnueabi.*	DEFAULT			GLIBC_2.4

-arm.*-.*-linux-gnueabi.*	ld=ld-linux.so.3
+arm.*-.*-linux-gnueabi.*	ld=ld-linux-armhf.so.3
 arm.*-.*-linux.*	ld=ld-linux.so.2

[-- Attachment #3: handle-ld-linux-armhf-name.patch --]
[-- Type: text/x-patch, Size: 570 bytes --]

--- a/elf/dl-load.c      2012-04-14 12:11:37.000000000 +0000
+++ b/elf/dl-load.c   2012-04-15 00:39:36.558765502 +0000
@@ -2086,10 +2086,13 @@
	  soname = ((const char *) D_PTR (l, l_info[DT_STRTAB])
		    + l->l_info[DT_SONAME]->d_un.d_val);
	  if (strcmp (name, soname) != 0)
+#ifdef __arm__
+	    if (strcmp(name, "ld-linux.so.3") || strcmp(soname, "ld-linux-armhf.so.3"))
+#endif
	    continue;

	  /* We have a match on a new name -- cache it.  */
-	  add_name_to_object (l, soname);
+	  add_name_to_object (l, name);
	  l->l_soname_added = 1;
	}


[-- Attachment #4: arm-dynamic-linker.patch --]
[-- Type: text/x-patch, Size: 922 bytes --]

# DP: For ARM hard float, set the dynamic linker to
# DP: /lib/ld-linux-armhf.so.3.

diff --git a/gcc/config/arm/linux-eabi.h b/gcc/config/arm/linux-eabi.h
index 80bd825..8c9d2e7 100644
--- a/gcc/config/arm/linux-eabi.h
+++ b/gcc/config/arm/linux-eabi.h
@@ -62,7 +62,11 @@
 /* Use ld-linux.so.3 so that it will be possible to run "classic"
    GNU/Linux binaries on an EABI system.  */
 #undef  GLIBC_DYNAMIC_LINKER
-#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.3"
+#define GLIBC_DYNAMIC_LINKER_SOFT_FLOAT "/lib/ld-linux.so.3"
+#define GLIBC_DYNAMIC_LINKER_HARD_FLOAT "/lib/ld-linux-armhf.so.3"
+#define GLIBC_DYNAMIC_LINKER \
+   "%{mfloat-abi=hard:" GLIBC_DYNAMIC_LINKER_HARD_FLOAT "} \
+    %{!mfloat-abi=hard:" GLIBC_DYNAMIC_LINKER_SOFT_FLOAT "}"

 /* At this point, bpabi.h will have clobbered LINK_SPEC.  We want to
    use the GNU/Linux version, not the generic BPABI version.  */


  reply	other threads:[~2012-04-30  6:11 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-04-27 12:38 Openembedded and ld-linux-armhf.so.3 Martin Ertsås
2012-04-27 15:04 ` Mark Hatle
2012-04-27 15:08   ` Martin Ertsås
2012-04-29  2:40 ` Khem Raj
2012-04-30  6:00   ` Martin Ertsås [this message]
2012-04-30 23:00     ` Khem Raj
2012-04-30 22:05 ` Khem Raj
2012-05-01  6:44   ` Martin Ertsås
2012-05-01 12:32     ` Khem Raj
2012-05-01 12:43       ` Martin Ertsås
2012-05-02  9:35       ` Martin Ertsås
2012-05-02 21:06         ` Khem Raj
2012-05-03  6:48           ` Martin Ertsås
2012-05-03  7:48             ` Koen Kooi
2012-05-03  7:51               ` Martin Ertsås
2012-05-03 13:52                 ` Khem Raj
2012-05-01  5:06 ` Khem Raj

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=4F9E2A64.6040302@gmail.com \
    --to=martiert@gmail.com \
    --cc=openembedded-devel@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox