This is the mail archive of the libc-ports@sources.redhat.com mailing list for the libc-ports project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH 0/2] Use /lib/ld-linux-armhf.so.3 as the dynamic linker for the 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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]