This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[PATCH 0/2] Use /lib/ld-linux-armhf.so.3 as the dynamic linker forthe ARM hard-float ABI.
- From: "Carlos O'Donell" <carlos at systemhalted dot org>
- To: GNU C Library <libc-alpha at sourceware dot org>, "Joseph S. Myers" <joseph at codesourcery dot com>
- Cc: libc-ports at sourceware dot org, Khem Raj <raj dot khem at gmail dot com>
- Date: Sun, 6 May 2012 22:21:50 -0400
- Subject: [PATCH 0/2] Use /lib/ld-linux-armhf.so.3 as the dynamic linker forthe ARM hard-float ABI.
It was agreed by the community that the dynamic linker name for the
ARM hard-float ABI would be changed to /lib/ld-linux-armhf.so.3.
The change in the dynamic linker name allows soft-float
(-mfloat-abi=soft and -mfloat-abi=softfp) and hard-float
(-mfloat-abi=hard) ABI binaries to coexist easily on one system.
The changes required for glibc are as follows:
* Detect that the compiler and the specified flags would cause the
build to use the hard-float ABI.
* If the hard-float ABI is detected use /lib/ld-linux-armhf.so.3 as
the dynamic loader.
It was decided not to support unpatched or old gcc versions that are
do not use the new hard-float dynamic linker. If you were to use such
a gcc with the latest trunk for glibc the testsuite would fail
completely (since the compiler selects one dynamic linker, and glibc
installs another).
Two patches follow:
1/2 - glibc-ports: Add logic to sysdeps/arm/configure.in to define
HAVE_ARM_PCS_VFP if the compiler is using the hard-float ABI e.g. if
__ARM_PCS_VFP is defined.
2/2 - glibc: Define HAVE_ARM_PCS_VFP in glibc's config.h.in, this will
be used by ARM's shlib-versions to select the appropriate dynamic
linker name.
This is sufficient to select the right dynamic linker name, and does
not require compiling a program as my previous WIP patch did.
Patch #1 uses the __ARM_PCS_VFP checking code written by Khem Raj in
his follow-on patch to my WIP patch.
All patches are against glibc trunk.
Cheers,
Carlos.