Bug#996796: llvm-toolchain-12: FTBFS on i386 since 1:12.0.1-10: undefined reference to `__udivdi3'

Simon McVittie smcv at debian.org
Mon Oct 18 21:40:33 BST 2021


Source: llvm-toolchain-12
Version: 1:12.0.1-10
Severity: serious
Tags: ftbfs
Justification: fails to build from source (but built successfully in the past)

The restructuring in 1:12.0.1-10 seem to have triggered a FTBFS on i386,
which breaks multi-arch coinstallability with amd64:

> [1385/1405] : && /<<PKGBUILDDIR>>/build-llvm/./bin/clang++ --target=i686-pc-linux-gnu -fPIC -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wstring-conversion -fdiagnostics-color -ffunction-sections -fdata-sections  -O3 -DNDEBUG  -Wl,-z,relro -Wl,-z,defs -Wl,-z,nodelete  -nodefaultlibs -shared -Wl,-soname,libc++abi.so.1 -o /<<PKGBUILDDIR>>/build-llvm/lib/libc++abi.so.1.0 libcxxabi/src/CMakeFiles/cxxabi_shared.dir/cxa_aux_runtime.cpp.o libcxxabi/src/CMakeFiles/cxxabi_shared.dir/cxa_default_handlers.cpp.o libcxxabi/src/CMakeFiles/cxxabi_shared.dir/cxa_demangle.cpp.o libcxxabi/src/CMakeFiles/cxxabi_shared.dir/cxa_exception_storage.cpp.o libcxxabi/src/CMakeFiles/cxxabi_shared.dir/cxa_guard.cpp.o libcxxabi/src/CMakeFiles/cxxabi_shared.dir/cxa_handlers.cpp.o libcxxabi/src/CMakeFiles/cxxabi_shared.dir/cxa_vector.cpp.o libcxxabi/src/CMakeFiles/cxxabi_shared.dir/cxa_virtual.cpp.o libcxxabi/src/CMakeFiles/cxxabi_shared.dir/stdlib_exception.cpp.o libcxxabi/src/CMakeFiles/cxxabi_shared.dir/stdlib_stdexcept.cpp.o libcxxabi/src/CMakeFiles/cxxabi_shared.dir/stdlib_typeinfo.cpp.o libcxxabi/src/CMakeFiles/cxxabi_shared.dir/abort_message.cpp.o libcxxabi/src/CMakeFiles/cxxabi_shared.dir/fallback_malloc.cpp.o libcxxabi/src/CMakeFiles/cxxabi_shared.dir/private_typeinfo.cpp.o libcxxabi/src/CMakeFiles/cxxabi_shared.dir/stdlib_new_delete.cpp.o libcxxabi/src/CMakeFiles/cxxabi_shared.dir/cxa_exception.cpp.o libcxxabi/src/CMakeFiles/cxxabi_shared.dir/cxa_personality.cpp.o libcxxabi/src/CMakeFiles/cxxabi_shared.dir/cxa_thread_atexit.cpp.o  /<<PKGBUILDDIR>>/build-llvm/lib/libunwind.so.1.0  -lpthread  -lc && :
> FAILED: /<<PKGBUILDDIR>>/build-llvm/lib/libc++abi.so.1.0
> : && /<<PKGBUILDDIR>>/build-llvm/./bin/clang++ --target=i686-pc-linux-gnu -fPIC -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wstring-conversion -fdiagnostics-color -ffunction-sections -fdata-sections  -O3 -DNDEBUG  -Wl,-z,relro -Wl,-z,defs -Wl,-z,nodelete  -nodefaultlibs -shared -Wl,-soname,libc++abi.so.1 -o /<<PKGBUILDDIR>>/build-llvm/lib/libc++abi.so.1.0 libcxxabi/src/CMakeFiles/cxxabi_shared.dir/cxa_aux_runtime.cpp.o libcxxabi/src/CMakeFiles/cxxabi_shared.dir/cxa_default_handlers.cpp.o libcxxabi/src/CMakeFiles/cxxabi_shared.dir/cxa_demangle.cpp.o libcxxabi/src/CMakeFiles/cxxabi_shared.dir/cxa_exception_storage.cpp.o libcxxabi/src/CMakeFiles/cxxabi_shared.dir/cxa_guard.cpp.o libcxxabi/src/CMakeFiles/cxxabi_shared.dir/cxa_handlers.cpp.o libcxxabi/src/CMakeFiles/cxxabi_shared.dir/cxa_vector.cpp.o libcxxabi/src/CMakeFiles/cxxabi_shared.dir/cxa_virtual.cpp.o libcxxabi/src/CMakeFiles/cxxabi_shared.dir/stdlib_exception.cpp.o libcxxabi/src/CMakeFiles/cxxabi_shared.dir/stdlib_stdexcept.cpp.o libcxxabi/src/CMakeFiles/cxxabi_shared.dir/stdlib_typeinfo.cpp.o libcxxabi/src/CMakeFiles/cxxabi_shared.dir/abort_message.cpp.o libcxxabi/src/CMakeFiles/cxxabi_shared.dir/fallback_malloc.cpp.o libcxxabi/src/CMakeFiles/cxxabi_shared.dir/private_typeinfo.cpp.o libcxxabi/src/CMakeFiles/cxxabi_shared.dir/stdlib_new_delete.cpp.o libcxxabi/src/CMakeFiles/cxxabi_shared.dir/cxa_exception.cpp.o libcxxabi/src/CMakeFiles/cxxabi_shared.dir/cxa_personality.cpp.o libcxxabi/src/CMakeFiles/cxxabi_shared.dir/cxa_thread_atexit.cpp.o  /<<PKGBUILDDIR>>/build-llvm/lib/libunwind.so.1.0  -lpthread  -lc && :
> /usr/bin/ld: libcxxabi/src/CMakeFiles/cxxabi_shared.dir/cxa_demangle.cpp.o: in function `(anonymous namespace)::itanium_demangle::OutputStream::writeUnsigned(unsigned long long, bool)':
> ./build-llvm/runtimes/runtimes-bins/./libcxxabi/src/demangle/Utility.h:56: undefined reference to `__udivdi3'
> clang-12: error: linker command failed with exit code 1 (use -v to see invocation)

Utility.h:56 is dividing a uint64_t by 10. I would guess that the problem
is -nodefaultlibs suppressing linking with LLVM's equivalent of libgcc
(libclang_rt?) so there's no implementation of the out-of-line __udivdi3()
call.

    smcv



More information about the Pkg-llvm-team mailing list