Bug 13661

Summary: host-python2 build fails on aarch64
Product: buildroot Reporter: Christian Stewart <christian>
Component: OtherAssignee: unassigned
Status: RESOLVED FIXED    
Severity: major CC: buildroot, christian, torstenhahn, yann.morin.1998
Priority: P5    
Version: 2020.11.3   
Target Milestone: ---   
Hardware: All   
OS: Linux   
Host: jetson tx2 (arm64) Target: odroid c4 (arm64)
Build: ccf38c04f05819594b034b5def84e18e4699cffd
Attachments: 0001-python-use-system-libffi-for-host-python.patch

Description Christian Stewart 2021-03-23 11:17:58 UTC
I'm seeing the following build error on armv8 (aarch64):

/build/host-python-2.7.18/Modules/_ctypes/libffi/src/closures.c:472:7: warning: ignoring return value of 'ftruncate' declared with attribute 'warn_unused_result' [-Wunused-result]
2021-03-23T08:50:16.2844591Z   472 |       ftruncate (execfd, offset);
2021-03-23T08:50:16.2845961Z       |       ^~~~~~~~~~~~~~~~~~~~~~~~~~
2021-03-23T08:50:16.3656935Z /build/host-python-2.7.18/Modules/_ctypes/libffi/src/aarch64/sysv.S: Assembler messages:
2021-03-23T08:50:16.3669765Z /build/host-python-2.7.18/Modules/_ctypes/libffi/src/aarch64/sysv.S:145: Error: constant expression required at operand 2 -- `tbz x23,#AARCH64_FFI_WITH_V_BIT,1f'
2021-03-23T08:50:16.3679469Z /build/host-python-2.7.18/Modules/_ctypes/libffi/src/aarch64/sysv.S:174: Error: constant expression required at operand 2 -- `tbz x23,#AARCH64_FFI_WITH_V_BIT,1f'
2021-03-23T08:50:16.3688258Z /build/host-python-2.7.18/Modules/_ctypes/libffi/src/aarch64/sysv.S:282: Error: constant expression required at operand 2 -- `tbz x0,#AARCH64_FFI_WITH_V_BIT,1f'
2021-03-23T08:50:16.3692215Z building dbm using gdbm
2021-03-23T08:50:16.3693379Z 
2021-03-23T08:50:16.3695198Z Python build finished, but the necessary bits to build these modules were not found:
2021-03-23T08:50:16.3697325Z _tkinter           bsddb185           dl              
2021-03-23T08:50:16.3698676Z imageop            sunaudiodev                        
2021-03-23T08:50:16.3702910Z To find the necessary bits, look in setup.py in detect_modules() for the module's name.
2021-03-23T08:50:16.3704463Z 
2021-03-23T08:50:16.3705077Z 
2021-03-23T08:50:16.3706170Z Failed to build these modules:
2021-03-23T08:50:16.3707366Z _ctypes                    

This is building on Gentoo arm64 on a Jetson tx2:

gcc --version
gcc (Gentoo 10.2.0-r5 p6) 10.2.0

Is the compiler generating invalid asm? How to fix this, so that host-python works on arm64?

The full build output is here (& attached to bug):

https://github.com/skiffos/SkiffOS/runs/2172698881
Comment 1 Christian Stewart 2021-05-03 03:00:23 UTC
Not seeing this anymore, not sure why.
Comment 2 Christian Stewart 2021-06-17 02:32:20 UTC
https://github.com/skiffos/SkiffOS/issues/142

According to some users attempting to build with Arm64 machines using Ubuntu as the host (for Buildroot) against latest 2021.02.3,

This issue is still present - host-python fails to build.
Comment 3 Torsten Hahn 2021-06-18 07:54:02 UTC
I experiencing the same issue here:

Host System: docker container running at an Apple M1 machine, git checkout of recent stable buildroot

(created via docker buildx build --platform linux/arm64 -t br_db/arm64) running a recent ubuntu image as triggers the described error as soon as host-python2 is built.

Would be very nice to have a workaround / fix for this because we have several build machines with aarch64 architecture.
Comment 4 Erico Nunes 2021-06-18 18:29:14 UTC
Created attachment 9006 [details]
0001-python-use-system-libffi-for-host-python.patch

I remember seeing this a while back. I looked a bit into the problem back then and solved it with the attached patch.
I never went around to fully testing it and submitting it to the list.
If it solves the problem for you, feel free to take it and submit it to the list.
Comment 5 Christian Stewart 2021-06-21 05:50:27 UTC
Erico, thanks, your patch works great.

I will submit to the list.
Comment 6 Yann E. MORIN 2021-06-27 15:57:43 UTC
Christian, All,

Thanks for the report.

We believe this is now fixed with the patch you submitted, and which was just appiled as of commit b31f7bc958.

Thank you!

Regards,
Yann E. MORIN.