Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH] package/python-sdbus: fix linking on aarch64
@ 2024-09-16 13:30 Marcus Hoffmann via buildroot
  2024-10-26 20:02 ` Thomas Petazzoni via buildroot
  2026-02-02 12:20 ` Marcus Hoffmann via buildroot
  0 siblings, 2 replies; 3+ messages in thread
From: Marcus Hoffmann via buildroot @ 2024-09-16 13:30 UTC (permalink / raw)
  To: buildroot; +Cc: James Hilliard, Raphaël Mélotte, Asaf Kahlon

The following config snippet fails to build on arm-aarch64. Adding -fPIC
to LDFLAGS fixes this. This has also been discussed upstream [1]
in the past without determining an exact reason/cause.

Error repropduction:

$ cat python-sdbus.config
BR2_INIT_SYSTEMD=y
BR2_PACKAGE_SYSTEMD=y
BR2_PACKAGE_PYTHON3=y
BR2_PACKAGE_PYTHON_SDBUS=y

$ ./utils/test-pkg -p python-sdbus -c python-sdbus.config
                    bootlin-armv5-uclibc [1/6]: SKIPPED
                     bootlin-armv7-glibc [2/6]: OK
                   bootlin-armv7m-uclibc [3/6]: SKIPPED
                     bootlin-x86-64-musl [4/6]: SKIPPED
                      br-arm-full-static [5/6]: SKIPPED
                             arm-aarch64 [6/6]: FAILED

$ tail -20  ~/br-test-pkg/arm-aarch64/logfile
/home/marcus/br-test-pkg/arm-aarch64/host/bin/aarch64-none-linux-gnu-gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -fPIC -I/home/marcus/br-test-pkg/arm-aarch64/build/python3-3.12.5/Include -I/home/marcus/br-test-pkg/arm-aarch64/build/python3-3.12.5 -c src/sdbus/sd_bus_internals_interface.c -o build/temp.linux-aarch64-cpython-312/src/sdbus/sd_bus_internals_interface.o -flto
/home/marcus/br-test-pkg/arm-aarch64/host/bin/aarch64-none-linux-gnu-gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -fPIC -I/home/marcus/br-test-pkg/arm-aarch64/build/python3-3.12.5/Include -I/home/marcus/br-test-pkg/arm-aarch64/build/python3-3.12.5 -c src/sdbus/sd_bus_internals_message.c -o build/temp.linux-aarch64-cpython-312/src/sdbus/sd_bus_internals_message.o -flto
/home/marcus/br-test-pkg/arm-aarch64/host/bin/aarch64-none-linux-gnu-gcc -shared -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 build/temp.linux-aarch64-cpython-312/src/sdbus/sd_bus_internals.o build/temp.linux-aarch64-cpython-312/src/sdbus/sd_bus_internals_bus.o build/temp.linux-aarch64-cpython-312/src/sdbus/sd_bus_internals_funcs.o build/temp.linux-aarch64-cpython-312/src/sdbus/sd_bus_internals_interface.o build/temp.linux-aarch64-cpython-312/src/sdbus/sd_bus_internals_message.o -L. -o build/lib.linux-aarch64-cpython-312/sdbus/sd_bus_internals.cpython-312-aarch64-linux-gnu.so -lsystemd -flto
/home/marcus/br-test-pkg/arm-aarch64/host/opt/ext-toolchain/bin/../lib/gcc/aarch64-none-linux-gnu/13.3.1/../../../../aarch64-none-linux-gnu/bin/ld: /tmp/ccMnk9xf.ltrans0.ltrans.o: relocation R_AARCH64_ADR_PREL_PG_HI21 against symbol `SdBus_async_callback' which may bind externally can not be used when making a shared object; recompile with -fPIC
/tmp/ccMnk9xf.ltrans0.ltrans.o: in function `SdBus_call_async':
<artificial>:(.text+0x1d50): dangerous relocation: unsupported relocation
/home/marcus/br-test-pkg/arm-aarch64/host/opt/ext-toolchain/bin/../lib/gcc/aarch64-none-linux-gnu/13.3.1/../../../../aarch64-none-linux-gnu/bin/ld: /tmp/ccMnk9xf.ltrans0.ltrans.o: relocation R_AARCH64_ADR_PREL_PG_HI21 against symbol `_SdBus_match_signal_instant_callback' which may bind externally can not be used when making a shared object; recompile with -fPIC
/tmp/ccMnk9xf.ltrans0.ltrans.o: in function `SdBus_match_signal_async':
<artificial>:(.text+0x203c): dangerous relocation: unsupported relocation
/home/marcus/br-test-pkg/arm-aarch64/host/opt/ext-toolchain/bin/../lib/gcc/aarch64-none-linux-gnu/13.3.1/../../../../aarch64-none-linux-gnu/bin/ld: /tmp/ccMnk9xf.ltrans0.ltrans.o: relocation R_AARCH64_ADR_PREL_PG_HI21 against symbol `_SdBus_signal_callback' which may bind externally can not be used when making a shared object; recompile with -fPIC
<artificial>:(.text+0x2040): dangerous relocation: unsupported relocation
/home/marcus/br-test-pkg/arm-aarch64/host/opt/ext-toolchain/bin/../lib/gcc/aarch64-none-linux-gnu/13.3.1/../../../../aarch64-none-linux-gnu/bin/ld: /tmp/ccMnk9xf.ltrans0.ltrans.o: relocation R_AARCH64_ADR_PREL_PG_HI21 against symbol `SdBus_request_name_callback' which may bind externally can not be used when making a shared object; recompile with -fPIC
/tmp/ccMnk9xf.ltrans0.ltrans.o: in function `SdBus_request_name_async':
<artificial>:(.text+0x2310): dangerous relocation: unsupported relocation
collect2: error: ld returned 1 exit status
error: command '/home/marcus/br-test-pkg/arm-aarch64/host/bin/aarch64-none-linux-gnu-gcc' failed with exit code 1

ERROR Backend subprocess exited when trying to invoke build_wheel
make[1]: *** [package/pkg-generic.mk:289: /home/marcus/br-test-pkg/arm-aarch64/build/python-sdbus-0.12.0/.stamp_built] Error 1
make: *** [Makefile:83: _all] Error 2

[1] https://github.com/python-sdbus/python-sdbus/issues/50

Signed-off-by: Marcus Hoffmann <buildroot@bubu1.eu>
---
 package/python-sdbus/python-sdbus.mk | 1 +
 1 file changed, 1 insertion(+)

diff --git a/package/python-sdbus/python-sdbus.mk b/package/python-sdbus/python-sdbus.mk
index 0b3ea37b30..5ed798fbe0 100644
--- a/package/python-sdbus/python-sdbus.mk
+++ b/package/python-sdbus/python-sdbus.mk
@@ -12,6 +12,7 @@ PYTHON_SDBUS_LICENSE = LGPL-2.1+
 PYTHON_SDBUS_LICENSE_FILES = COPYING
 PYTHON_SDBUS_DEPENDENCIES = systemd
 
+PYTHON_SDBUS_ENV += LDFLAGS=-fPIC
 ifeq ($(BR2_STATIC_LIBS),y)
 PYTHON_SDBUS_ENV += PYTHON_SDBUS_USE_STATIC_LINK=1
 endif
-- 
2.34.1

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2026-02-02 12:20 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-09-16 13:30 [Buildroot] [PATCH] package/python-sdbus: fix linking on aarch64 Marcus Hoffmann via buildroot
2024-10-26 20:02 ` Thomas Petazzoni via buildroot
2026-02-02 12:20 ` Marcus Hoffmann via buildroot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox