[llvm-dev] llvm-toolchain-3.8 on lower arm targets

Emilio Pozuelo Monfort via llvm-dev llvm-dev at lists.llvm.org
Tue Oct 4 11:14:17 PDT 2016


Hi,

peter green wrote:
> On 18/05/16 04:50, Tim Northover wrote:
> If you don't need/want the various Sanitizer runtimes (e.g. you don't
> support sanitizers or already have versions provided with GCC) then
> it's as easy as not downloading compiler-rt or removing it from the
> projects/ directory before running CMake. The build should carry on
> quite happily without it.
> 
> If you do need the sanitizers from compiler-rt, you can disable the
> bits that are causing problems right now with "cmake
> -DCOMPILER_RT_BUILD_BUILTINS=OFF<other options>". Of course, the
> sanitizers themselves may suffer from similar issues -- you just won't
> know until you get there.
> Thanks, -DCOMPILER_RT_BUILD_BUILTINS=OFF did the trick and I got a
> successful build for raspbian that passed my armv7 contamination
> checker script (which is not 100% foolproof but it's the best we have)
> and uploaded it to raspbian stretch.

-DCOMPILER_RT_BUILD_BUILTINS=OFF didn't work on Debian:

https://buildd.debian.org/status/fetch.php?pkg=llvm-toolchain-3.8&arch=armel&ver=1%3A3.8.1-12&stamp=1473396917

The build fails with:

cd /«PKGBUILDDIR»/build-llvm/lib/Support && /usr/bin/g++-6   -D_GNU_SOURCE
-D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS
-I/«PKGBUILDDIR»/build-llvm/lib/Support -I/«PKGBUILDDIR»/lib/Support
-I/«PKGBUILDDIR»/build-llvm/include -I/«PKGBUILDDIR»/include  -std=c++0x
-gsplit-dwarf -fPIC -fvisibility-inlines-hidden -Wall -W -Wno-unused-parameter
-Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic
-Wno-long-long -Wno-maybe-uninitialized -Wdelete-non-virtual-dtor -Wno-comment
-std=c++11 -ffunction-sections -fdata-sections -O2 -g -DNDEBUG
-fno-exceptions -o CMakeFiles/LLVMSupport.dir/ThreadPool.cpp.o -c
/«PKGBUILDDIR»/lib/Support/ThreadPool.cpp
In file included from /«PKGBUILDDIR»/lib/Support/ThreadPool.cpp:14:0:
/«PKGBUILDDIR»/include/llvm/Support/ThreadPool.h: In member function
'std::shared_future<void> llvm::ThreadPool::async(Function&&, Args&& ...)':
/«PKGBUILDDIR»/include/llvm/Support/ThreadPool.h:78:77: error: return type
'class std::shared_future<void>' is incomplete
   inline std::shared_future<VoidTy> async(Function &&F, Args &&... ArgList) {
                                                                             ^

Any idea about this failure?

For the Debian armel porters, we're switching to LLVM 3.8, so this failure
(which happens on 3.8, 3.9 and llvm-toolchain-snapshot) is likely going to cause
some package removals on armel as we try to get rid of older LLVM versions.
Helping fixing this issue would be appreciated to prevent that.

Thanks,
Emilio


More information about the llvm-dev mailing list