Bug#996947: llvm-toolchain-12: FTBFS on armel since 1:12.0.1-11: error: instruction requires: data-barriers
Simon McVittie
smcv at debian.org
Thu Oct 21 10:16:01 BST 2021
Source: llvm-toolchain-12
Version: 1:12.0.1-11
Severity: serious
Tags: ftbfs
Justification: fails to build from source (but built successfully in the past)
https://buildd.debian.org/status/fetch.php?pkg=llvm-toolchain-12&arch=armel&ver=1%3A12.0.1-11&stamp=1634667108&raw=0
https://buildd.debian.org/status/fetch.php?pkg=llvm-toolchain-12&arch=armel&ver=1%3A12.0.1-12&stamp=1634719287&raw=0
>[9/167] /<<PKGBUILDDIR>>/build-llvm/./bin/clang -target arm-linux-gnueabi -DVISIBILITY_HIDDEN -O3 -DNDEBUG -DCOMPILER_RT_HAS_FLOAT16 -std=c11 -fPIC -fno-builtin -fvisibility=hidden -fomit-frame-pointer -MD -MT CMakeFiles/clang_rt.builtins-arm.dir/arm/sync_fetch_and_add_4.S.o -MF CMakeFiles/clang_rt.builtins-arm.dir/arm/sync_fetch_and_add_4.S.o.d -o CMakeFiles/clang_rt.builtins-arm.dir/arm/sync_fetch_and_add_4.S.o -c /<<PKGBUILDDIR>>/compiler-rt/lib/builtins/arm/sync_fetch_and_add_4.S
>FAILED: CMakeFiles/clang_rt.builtins-arm.dir/arm/sync_fetch_and_add_4.S.o
>/<<PKGBUILDDIR>>/build-llvm/./bin/clang -target arm-linux-gnueabi -DVISIBILITY_HIDDEN -O3 -DNDEBUG -DCOMPILER_RT_HAS_FLOAT16 -std=c11 -fPIC -fno-builtin -fvisibility=hidden -fomit-frame-pointer -MD -MT CMakeFiles/clang_rt.builtins-arm.dir/arm/sync_fetch_and_add_4.S.o -MF CMakeFiles/clang_rt.builtins-arm.dir/arm/sync_fetch_and_add_4.S.o.d -o CMakeFiles/clang_rt.builtins-arm.dir/arm/sync_fetch_and_add_4.S.o -c /<<PKGBUILDDIR>>/compiler-rt/lib/builtins/arm/sync_fetch_and_add_4.S
>/<<PKGBUILDDIR>>/compiler-rt/lib/builtins/arm/sync_fetch_and_add_4.S:19:193: error: instruction requires: data-barriers
>.p2align 2; .thumb; .syntax unified; .arm ; ; .globl __sync_fetch_and_add_4 ; .type __sync_fetch_and_add_4,%function ; .hidden __sync_fetch_and_add_4 ; ; .thumb_func ; __sync_fetch_and_add_4: dmb; mov r12, r0; .L_tryatomic_add_4 : ldrex r0, [r12]; add r2, r0, r1; strex r3, r2, [r12]; cmp r3, #0; bne .L_tryatomic_add_4; dmb; bx lr
I believe this might be because LLVM is compiling compiler-rt, which is
its equivalent of libgcc/libatomic in gcc; but armel is one of the few
Debian ports that does not have atomic instructions available in its
baseline (ARMv5t), so atomic operations have to be emulated using mutexes?
(This has been an issue for e.g. GLib and libdbus in the past.)
smcv
More information about the Pkg-llvm-team
mailing list