Khem Raj wrote:
> On Fri, Dec 14, 2018 at 9:56 AM Serhey Popovych
> <serhe.popov...@gmail.com> wrote:
>>
>> Historically first PowerPC ABI was big-endian only (elfv1 currently). It
>> is standard ABI for both 32-bit ppc and 64-bit ppc64 architectures.
>>
>> With PowerPC little-endian support new ABI was introduced (elfv2) and it
>> is used primarily with ppc64le target only. While it has support for
>> big-endian it is not commonly used and elfv1 still preferred.
>>
>> Musl does support only elfv2 ABI for both LE and BE and does not have
>> any plans to support elfv1.
>>
>> Since then to build for powerpc64 with musl new ABI should be used. As
>> expected it is not compatible with elfv1 but that isn't problem as long
>> as there is no binary distributed software or assembly code written for
>> elfv1 ABI.
>>
>> Signed-off-by: Serhey Popovych <serhe.popov...@gmail.com>
>> ---
>>  meta/conf/machine/include/powerpc/arch-powerpc64.inc | 3 +++
>>  1 file changed, 3 insertions(+)
>>
>> diff --git a/meta/conf/machine/include/powerpc/arch-powerpc64.inc 
>> b/meta/conf/machine/include/powerpc/arch-powerpc64.inc
>> index f751c6b..d9916d4 100644
>> --- a/meta/conf/machine/include/powerpc/arch-powerpc64.inc
>> +++ b/meta/conf/machine/include/powerpc/arch-powerpc64.inc
>> @@ -7,6 +7,9 @@ TUNECONFLICTS[m64] = "m32 nf"
>>  TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'm64', ' -m64', '', 
>> d)}"
>>  TUNE_ARCH .= "${@bb.utils.contains('TUNE_FEATURES', [ 'm64' ], 'powerpc64', 
>> '', d)}"
>>
>> +# musl only supports elfv2 ABI for ppc64
>> +TUNE_CCARGS .= "${@['', ' -mabi=elfv2']['libc-musl' in 
>> d.getVar('OVERRIDES').split(':')]}"
>> +
> 
> I wonder if we should change gcc to use this ABI by default when
> configured for ppc64/musl ?
> This would avoid us adding compiler options here, in bad cases it may
> be that other compilers
> call it out differently.

Good point. This should be easy to do with patch applied for libc-musl
override.

> 
>>  # user mode qemu doesn't support ppc64
>>  MACHINE_FEATURES_BACKFILL_CONSIDERED_append = " 
>> ${@bb.utils.contains('TUNE_FEATURES', 'm64', 'qemu-usermode', '', d)}"
>>
>> --
>> 2.7.4
>>
>> --
>> _______________________________________________
>> Openembedded-core mailing list
>> Openembedded-core@lists.openembedded.org
>> http://lists.openembedded.org/mailman/listinfo/openembedded-core


Attachment: signature.asc
Description: OpenPGP digital signature

-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to