[Rpm-maint] Multiple ABI architectures (parallel installation, detection, handling)

Panu Matilainen pmatilai at laiskiainen.org
Fri Nov 4 08:58:49 UTC 2011

On 11/03/2011 09:34 PM, Jon Masters wrote:
> Panu Matilainen<pmatilai at laiskiainen.org>  wrote:
>> On 10/21/2011 10:20 PM, Dennis Gilmore wrote:
>>> long term maybe we can do something better. right now im looking for
>> a
>>> way to enable yum to detect the arches correctly without it resorting
>>> to things like running readelf to determine the abi of the running
>>> system.  since its noarch we cant just patch things in conditionally.
>> BTW I was under the impression the ABI information for hard vs softfp
>> simply DOES NOT EXIST in the ELF headers (or anywhere else for that
>> matter). If
>> http://wiki.debian.org/ArmHardFloatPort/VfpComparison#ld.so_hwcaps is
>> wrong (or I'm misreading it) and you know of a way to detect it
>> afterall, do let me know.
>> 	- Panu -
>> _______________________________________________
>> Rpm-maint mailing list
>> Rpm-maint at lists.rpm.org
>> http://lists.rpm.org/mailman/listinfo/rpm-maint
> It is in an optional section we do carry - see readelf -A. At an ARM conference so will discuss with Steve McIntyre of ARM (who is driving this ABI on their end).

Okay, in that case there's hope. Looking at what I hope to be a suitable 
sample specimen:

Attribute Section: aeabi
File Attributes
   Tag_CPU_name: "7-A"
   Tag_CPU_arch: v7
   Tag_CPU_arch_profile: Application
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-2
   Tag_FP_arch: VFPv3-D16
   Tag_ABI_PCS_wchar_t: 4
   Tag_ABI_FP_denormal: Needed
   Tag_ABI_FP_exceptions: Needed
   Tag_ABI_FP_number_model: IEEE 754
   Tag_ABI_align_needed: 8-byte
   Tag_ABI_align_preserved: 8-byte, except leaf SP
   Tag_ABI_enum_size: int
   Tag_ABI_HardFP_use: SP and DP
   Tag_ABI_VFP_args: VFP registers
   Tag_DIV_use: Not allowed

...the interesting part would be Tag_ABI_VFP_args, or...?

Would that happen to be available at runtime through the auxiliary 
vector (hwcap or wherever)?

At buildtime, one (easy, since this IS recorded in the ELF headers) 
possibility is making elfdeps generate different looking dependencies 
when the VFP flag is present, eg something like "libfoo.1.so" vs 
"libfoo.1.so()(vfp)", so packages for the other ABI wont satisfy 
dependencies of the other one, despite both being technically compatible 
architecture-wise (on a system capable of using VFP ABI)

	- Panu -

More information about the Rpm-maint mailing list