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]

Re: Multiarch interpreter names for traditional architectures


On Fri, 9 Feb 2018, Maciej W. Rozycki wrote:

>  However microMIPS hardware may not support regular MIPS code execution 
> (and vice versa) and therefore I think it has to be treated as a different 
> ABI.  Placing microMIPS ld.so where regular MIPS ld.so is expected will 
> break if the installation is shared via NFS between pure regular MIPS and 
> pure microMIPS hardware.

But the execution of both might be supported on the same hardware.  We 
don't consider x86_64 with AVX512 enabled to be a separate ABI from plain 
x86_64 (and indeed some libmvec entry points may require instruction set 
features beyond the base ISA).

Effectively some things are the same ABI in that some hardware might run 
both and if it does, those things are compatible (no need for the dynamic 
linker to reject loading both together, no need for different dynamic 
linker paths since a binary might be built for the common subset).  While 
it would be reasonable for the dynamic linker also to be able to reject 
loading objects that require instruction set features not supported by the 
hardware (modulo being able to build for IFUNCs and other dynamic choice 
of function implementations and not mark the resulting objects as 
requiring those features), even when the ABI is the same.

There's a subjective element there in that it's possible e.g. to build a 
program making no use of floating-point that would thus work with both 
soft-float and hard-float libc, but we still consider those different ABIs 
if the choice affects the function-calling ABI, and for newer 
architectures such as RISC-V make sure to use different dynamic linker 
names for hard-float and soft-float ABIs.

-- 
Joseph S. Myers
joseph@codesourcery.com


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