]> code.ossystems Code Review - openembedded-core.git/commitdiff
arch-powerpc64.inc: Use elfv2 ABI when building with musl
authorSerhey Popovych <serhe.popovych@gmail.com>
Fri, 14 Dec 2018 17:54:34 +0000 (19:54 +0200)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Sat, 15 Dec 2018 17:10:44 +0000 (17:10 +0000)
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.popovych@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/conf/machine/include/powerpc/arch-powerpc64.inc

index f751c6b76cee0636c8db4925b1bfaabb13fcd432..d9916d43da9273012717a2982292d194a7507ba3 100644 (file)
@@ -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(':')]}"
+
 # user mode qemu doesn't support ppc64
 MACHINE_FEATURES_BACKFILL_CONSIDERED_append = " ${@bb.utils.contains('TUNE_FEATURES', 'm64', 'qemu-usermode', '', d)}"