This is an archive of the discontinued LLVM Phabricator instance.

Fix arm build failure with libgcc
ClosedPublic

Authored by zatrazz on Sep 18 2019, 1:35 PM.

Details

Summary

Both arm32 armv7/armv8 bots are failing to build due to a linking
issue:

[100%] Built target cxxabi_static
CMakeFiles/cxxabi_shared.dir/cxa_demangle.cpp.o: In function `(anonymous namespace)::itanium_demangle::OutputStream::writeUnsigned(unsigned long long, bool)':
/home/buildslave/buildslave/libcxx-libcxxabi-libunwind-armv7-linux-noexceptions/llvm/projects/libcxxabi/src/demangle/Utility.h:55: undefined reference to `aeabi_uldivmod'
/home/buildslave/buildslave/libcxx-libcxxabi-libunwind-armv7-linux-noexceptions/llvm/projects/libcxxabi/src/demangle/Utility.h:56: undefined reference to `
aeabi_uldivmod'
clang-6.0: error: linker command failed with exit code 1 (use -v to see invocation)

It seems after r371273 OutputStream is used more extensively and
is pulling OutputStream::writeUnsigned (which thus requires unsigned
integer module).

The straightfoward fix is to explicit link against libgcc if
compiler-rt is not used.

Event Timeline

zatrazz created this revision.Sep 18 2019, 1:35 PM
rovka accepted this revision.Sep 25 2019, 1:24 AM
rovka added a subscriber: rovka.

I'm not very familiar with this area, but it seems like a sensible fix.

This revision is now accepted and ready to land.Sep 25 2019, 1:24 AM
zatrazz closed this revision.Sep 25 2019, 2:44 PM