Hello uclibc-ng/buildroot developers,
compiling buildroot with thumb-instructions and gcc-8.1 results in an error due to the swp{,b} assembler instruction. Searching within buildroot, this thumb_swp* function is never used anywhere (but this is a very limited search). The add commit message for this refers to other libraries using this function, but no real specific data. Maybe this can be removed altogether?
best regards,
Florian La Roche
Geschäftsführung: Susanne Kunschert, Thomas Pilz Pilz GmbH & Co. KG, Sitz: Ostfildern, HRA 210 893, Amtsgericht Stuttgart Kompl. Ges. Peter Pilz GmbH, Sitz: Ostfildern, HRB 210 612, Amtsgericht Stuttgart Umsatzsteuer: ID-Nr. DE 145 355 773, WEEE-Reg.-Nr. DE 71636849 This email is intended solely for the use of the named address(es). Any unauthorised disclosure, copying or distribution of these confidential information contained therein, or the taking of any action based on it, is prohibited. The sender disclaims any liability for the integrity of this email. Legally binding declarations must be in written form. Umweltschutz liegt uns am Herzen! - Bitte denken Sie an unsere Umwelt, bevor Sie diese E-Mail drucken. We do care about the environment! - Please consider the environment before printing this e-mail.
Hi Florian, Florian La Roche wrote,
Hello uclibc-ng/buildroot developers,
compiling buildroot with thumb-instructions and gcc-8.1 results in an error due to the swp{,b} assembler instruction. Searching within buildroot, this thumb_swp* function is never used anywhere (but this is a very limited search). The add commit message for this refers to other libraries using this function, but no real specific data. Maybe this can be removed altogether?
Can you share a br defconfig to reproduce the issue? Which br version?
I couldn't reproduce it with OpenADK targeting Qemu Vexpress Cortex-A9, soft-float and thumb mode by default: ./toolchain_qemu-arm-vexpress-a9_uclibc-ng_cortex_a9_soft_eabi/usr/bin/arm-openadk-linux-uclibceabi-gcc -v Using built-in specs. COLLECT_GCC=./toolchain_qemu-arm-vexpress-a9_uclibc-ng_cortex_a9_soft_eabi/usr/bin/arm-openadk-linux-uclibceabi-gcc COLLECT_LTO_WRAPPER=/home/wbx/arm/toolchain_qemu-arm-vexpress-a9_uclibc-ng_cortex_a9_soft_eabi/usr/libexec/gcc/arm-openadk-linux-uclibceabi/8.1.0/lto-wrapper Target: arm-openadk-linux-uclibceabi Configured with: /home/wbx/arm/toolchain_build_qemu-arm-vexpress-a9_uclibc-ng_cortex_a9_soft_eabi/w-gcc-8.1.0-1/gcc-8.1.0/configure --prefix=/home/wbx/arm/toolchain_qemu-arm-vexpress-a9_uclibc-ng_cortex_a9_soft_eabi/usr --with-bugurl=https://openadk.org --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=arm-openadk-linux-uclibceabi --with-gmp=/home/wbx/arm/host_x86_64-linux-gnu/usr --with-mpfr=/home/wbx/arm/host_x86_64-linux-gnu/usr --disable-__cxa_atexit --with-system-zlib --with-gnu-ld --with-gnu-as --disable-libsanitizer --disable-install-libiberty --disable-libitm --disable-libmudflap --disable-libgomp --disable-libcc1 --disable-libmpx --disable-libcilkrts --disable-libquadmath --disable-libquadmath-support --disable-decimal-float --disable-libstdcxx-pch --disable-ppl-version-check --disable-cloog-version-check --without-ppl --without-cloog --without-isl --disable-werror --disable-nls --disable-lto --with-cpu=cortex-a9 --with-float=soft --with-fpu=vfpv3-fp16 --with-mode=thumb --enable-tls --enable-threads --enable-libatomic --enable-shared --enable-cxx-flags=-fPIC --disable-libssp --disable-biarch --disable-multilib --enable-languages=c --with-build-sysroot='/../../target_qemu-arm-vexpress-a9_uclibc-ng_cortex_a9_soft_eabi' --with-sysroot='/../../target_qemu-arm-vexpress-a9_uclibc-ng_cortex_a9_soft_eabi' Thread model: posix gcc version 8.1.0 (GCC)
./toolchain_qemu-arm-vexpress-a9_uclibc-ng_cortex_a9_soft_eabi/usr/bin/arm-openadk-linux-uclibceabi-readelf -a root_qemu-arm-vexpress-a9_uclibc-ng_cortex_a9_soft_eabi/bin/busybox |grep -i thumb Tag_THUMB_ISA_use: Thumb-2
What is the exact error output?
It might be triggered by code I have not activated in my default uClibc-ng configuration.
best regards Waldemar
Hello Waldemar Brodkorb,
seems this is triggered if gcc (also with older versions) compiles for coretex-a53 if thumb-mode is enabled. (So this would trigger if e.g. raspberrypi3_defconfig gets thumb mode enabled or if you change vexpress_defconfig to compile for a53.)
The error output from gcc is: AS ldso/ldso/arm/thumb_atomics.oS ldso/ldso/arm/thumb_atomics.S: Assembler messages: ldso/ldso/arm/thumb_atomics.S:49: Error: swp{b} use is obsoleted for ARMv8 and later ldso/ldso/arm/thumb_atomics.S:55: Error: swp{b} use is obsoleted for ARMv8 and later Makerules:373: recipe for target 'ldso/ldso/arm/thumb_atomics.oS' failed
How to reproduce this: git clone https://github.com/buildroot/buildroot.git pushd buildroot patch -s -p1 < ../buildroot.patch make qemu_arm_vexpress_defconfig make popd
with buildroot.patch: diff --git a/configs/qemu_arm_vexpress_defconfig b/configs/qemu_arm_vexpress_defconfig index 34a50aa8d5..2f3e8a7c54 100644 --- a/configs/qemu_arm_vexpress_defconfig +++ b/configs/qemu_arm_vexpress_defconfig @@ -1,9 +1,11 @@ # Architecture BR2_arm=y -BR2_cortex_a9=y +BR2_cortex_a53=y BR2_ARM_ENABLE_NEON=y BR2_ARM_ENABLE_VFP=y -BR2_ARM_FPU_VFPV3D16=y +BR2_ARM_FPU_VFPV4=y + +BR2_ARM_INSTRUCTIONS_THUMB2=y
# System BR2_SYSTEM_DHCP="eth0"
Do you know which software depends on this spcial function to exist in uclibc-ng?
best regards,
Florian La Roche
Geschäftsführung: Susanne Kunschert, Thomas Pilz Pilz GmbH & Co. KG, Sitz: Ostfildern, HRA 210 893, Amtsgericht Stuttgart Kompl. Ges. Peter Pilz GmbH, Sitz: Ostfildern, HRB 210 612, Amtsgericht Stuttgart Umsatzsteuer: ID-Nr. DE 145 355 773, WEEE-Reg.-Nr. DE 71636849 This email is intended solely for the use of the named address(es). Any unauthorised disclosure, copying or distribution of these confidential information contained therein, or the taking of any action based on it, is prohibited. The sender disclaims any liability for the integrity of this email. Legally binding declarations must be in written form. Umweltschutz liegt uns am Herzen! - Bitte denken Sie an unsere Umwelt, bevor Sie diese E-Mail drucken. We do care about the environment! - Please consider the environment before printing this e-mail.