[OE-core] [PATCH] python3: fix build for powerpc-linux.musl and powerpc64-linux-musl

Serhey Popovych serhe.popovych at gmail.com
Thu Dec 13 17:07:25 UTC 2018


Andrea Adami wrote:
> On Thu, Dec 13, 2018 at 5:26 PM Richard Purdie
> <richard.purdie at linuxfoundation.org> wrote:
>>
>> On Thu, 2018-12-13 at 15:13 +0100, Andrea Adami wrote:
>>> Add the missing triplets (not considering uclibc) for do_configure.
>>>
>>> Signed-off-by: Andrea Adami <andrea.adami at gmail.com>
>>> ---
>>>  .../python3/powerpc-musl-triplets.patch       | 43
>>> +++++++++++++++++++
>>>  meta/recipes-devtools/python/python3_3.5.6.bb |  1 +
>>>  2 files changed, 44 insertions(+)
>>>  create mode 100644 meta/recipes-devtools/python/python3/powerpc-
>>> musl-triplets.patch
>>>
>>> diff --git a/meta/recipes-devtools/python/python3/powerpc-musl-
>>> triplets.patch b/meta/recipes-devtools/python/python3/powerpc-musl-
>>> triplets.patch
>>> new file mode 100644
>>> index 0000000000..477d049858
>>> --- /dev/null
>>> +++ b/meta/recipes-devtools/python/python3/powerpc-musl-
>>> triplets.patch
>>> @@ -0,0 +1,43 @@
>>> +Using musl libc the task do_configure fails on powerpc*.
>>> +
>>> +  checking build system type... x86_64-pc-linux-gnu
>>> +  checking host system type... powerpc-oe-linux-musl
>>> +  checking for python3.5... python3.5
>>> + ...
>>> +  checking for the platform triplet based on compiler
>>> characteristics...
>>> +  powerpc-linux-gnu
>>> +  configure: error: internal configure error for the platform
>>> triplet
>>> +
>>> +Fix this by adding the musl triplets.
>>> +Note: uclibc is purposedly not considered (unsupported in oe-core).
>>> +
>>> +Upstream-Status: Pending
>>> +Signed-off-by: Andrea Adami <andrea.adami at gmail.com>
>>> +
>>> +--- a/configure.ac   2018-12-13 14:44:55.414309610 +0100
>>> ++++ b/configure.ac   2018-12-13 13:22:37.546497547 +0100
>>> +@@ -831,14 +831,22 @@
>>> +         or1k-linux-gnu
>>> + # elif defined(__powerpc__) && defined(__SPE__)
>>> +         powerpc-linux-gnuspe
>>> ++# elif defined(__powerpc__) && !defined(__GLIBC__)
>>> ++        powerpc-linux-musl
>>> ++# elif defined(__powerpc__)
>>> ++        powerpc-linux-gnu
>>> ++# elif defined(__powerpc64__) && !defined(__GLIBC__)
>>> ++#  if defined(__LITTLE_ENDIAN__)
>>> ++        powerpc64le-linux-musl
>>> ++#  else
>>> ++        powerpc64-linux-musl
>>> ++#  endif
>>> + # elif defined(__powerpc64__)
>>> + #  if defined(__LITTLE_ENDIAN__)
>>> +         powerpc64le-linux-gnu
>>> + #  else
>>> +         powerpc64-linux-gnu
>>> + #  endif
>>> +-# elif defined(__powerpc__)
>>> +-        powerpc-linux-gnu
>>> + # elif defined(__s390x__)
>>> +         s390x-linux-gnu
>>> + # elif defined(__s390__)
>>> diff --git a/meta/recipes-devtools/python/python3_3.5.6.bb
>>> b/meta/recipes-devtools/python/python3_3.5.6.bb
>>> index cd7991e7f8..2e8ae711d5 100644
>>> --- a/meta/recipes-devtools/python/python3_3.5.6.bb
>>> +++ b/meta/recipes-devtools/python/python3_3.5.6.bb
>>> @@ -44,6 +44,7 @@ SRC_URI += "\
>>>              file://0005-bpo-30714-ALPN-changes-for-OpenSSL-1.1.0f-
>>> 2305.patch \
>>>              file://run-ptest \
>>>             "
>>> +SRC_URI_append_libc-musl = " file://powerpc-musl-triplets.patch"
>>>
>>>  inherit multilib_header python3native update-alternatives qemu ptest
>>
>> Do we need to make the patch application musl only? This tends to make
>> it more painful for recipe upgrading and we should only do that if the
>> patch would have an adverse affect on non-musl. Would also be good to
>> get tweaks like this submitted upstream...
>>
>> Cheers,
>>
>> Richard
>>
> 
> If you prefert I add it unconditionally.
> This error with musl is not seen for other archs, I could not test the
> ppc64 but imagined it would suffer as well.

I have tested on ppc64 fix based on commit cda0ef61d373
("python3: fix do_configure check platform triplet error") and it
works.

BTW on ppc64 we have much more problems with musl. Starting from ELFv2
ABI only support in musl and ending with broken LDSO pathes in final image.

> 
> Does your autobuilder succeed?
> 
> Cheers
> Andrea
> 


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 490 bytes
Desc: OpenPGP digital signature
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20181213/43c0c1cc/attachment.sig>


More information about the Openembedded-core mailing list