From patchwork Mon Apr 30 06:00:04 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: Openembedded and ld-linux-armhf.so.3 Date: Mon, 30 Apr 2012 06:00:04 -0000 From: Martin Ertsaas X-Patchwork-Id: 26585 Message-Id: <4F9E2A64.6040302@gmail.com> To: openembedded-devel@lists.openembedded.org On 04/29/12 04:40, Khem Raj wrote: > On Fri, Apr 27, 2012 at 5:38 AM, Martin Ertsås 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 # 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. */