This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc 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] |
On Fri, Jul 27, 2012 at 05:09:53PM +0100, Steve McIntyre wrote: >Hi, > >I'm back to working on some of the HF ABI issues that have been raised >in the past [1]; sorry for the long delay. As a first part, here's a >trivial patch to add a flag value for HF ABI libraries in ldconfig and >the cache: > >diff --git a/sysdeps/generic/ldconfig.h b/sysdeps/generic/ldconfig.h >index ef3f4b9..1cffdc6 100644 >--- a/sysdeps/generic/ldconfig.h >+++ b/sysdeps/generic/ldconfig.h >@@ -34,6 +34,7 @@ > #define FLAG_MIPS64_LIBN32 0x0600 > #define FLAG_MIPS64_LIBN64 0x0700 > #define FLAG_X8664_LIBX32 0x0800 >+#define FLAG_ARM_HFABI 0x0900 > > /* Name of auxiliary cache. */ > #define _PATH_LDCONFIG_AUX_CACHE "/var/cache/ldconfig/aux-cache" > > >I'm discussing a possible use/implementation of the PT_ARM_ARCHEXT >segment with folks inside ARM at the moment, as a replacement for >checking the ARM-specific build attributes that people didn't like >back then. In advance of that, I'd like to stake a claim for a flag >value. I'm guessing that the new ARM AArch64 architecture will need >one too, but I'll leave that for the team to ask about separately when >they're ready. > >[1] http://www.eglibc.org/archives/patches/msg01017.html Hi folks, I've not seen any comments on this at all. I'm hoping it's not *that* scary...!? I've also been discussing with the ARM ABI folks about how to identify whether a binary is hard-float or soft-float. The PT_ARM_ARCHEXT approach might work, but it's felt to be more complicated than necessary. Our favoured approach is to add two new possible values for the OSABI field. I just wish that people had thought about this *way* back when we first started the hard-float ABI work, as it would have been much easier to work on and standardise this back then. Modulo availability of time machines, there's not much we can do on that front today... What I'm proposing is to use two new values in the OSABI field in the ELF header: #define ELFOSABI_LINUX_ARM_AEABI_SF 65 #define ELFOSABI_LINUX_ARM_AEABI_HF 66 and use these values in the future for soft- and hard-float binaries so that can unambiguously identify them. There's already precedent for binaries using different values in this field, with support in glibc for parsing and understanding them. I have a plan of attack for how to make a staged switch over, deliberately to minimise any potential compatibility problems. See the attached doc for that. It's deliberately not very specific in terms of timeline, as that's something I'm hoping to get feedback about. Comments very welcome; please point out if you think there are problems with this approach, or if there are any more implementations of toolchain / linker that will need to be addressed. Cheers, -- Steve McIntyre steve.mcintyre@linaro.org <http://www.linaro.org/> Linaro.org | Open source software for ARM SoCs
Attachment:
elf_plan.txt
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |