[llvm-dev] (Thin)LTO llvm build

Mehdi Amini via llvm-dev llvm-dev at lists.llvm.org
Tue Sep 20 10:20:12 PDT 2016


The configuration we’re mentioning is a 2-stage bootstrap: You need first to build without LTO your own clang, and then use it for the LTO build.

— 
Mehid



> On Sep 20, 2016, at 10:17 AM, Michael Kruse <llvmdev at meinersbur.de> wrote:
> 
> I am the author of Polly's/ISL's platform tests and could reproduce
> the problem on my system with this error message:
> 
> /usr/bin/ld: /usr/lib/llvm-3.8/bin/../lib/LLVMgold.so: error loading
> plugin: /usr/lib/llvm-3.8/bin/../lib/LLVMgold.so: cannot open shared
> object file: No such file or directory
> 
> Sure, that file doesn't exist. I'd expect Ubuntu 16.04 to have
> installed it for the installed version of clang, but `apt-file seach
> LLVMgold` returns:
> 
> llvm-3.5-dev: /usr/lib/llvm-3.5/lib/LLVMgold.so
> llvm-3.6-dev: /usr/lib/llvm-3.6/lib/LLVMgold.so
> llvm-3.7-dev: /usr/lib/llvm-3.7/lib/LLVMgold.so
> llvm-dev: /usr/lib/LLVMgold.so
> 
> /usr/lib/LLVMgold.so is a symlink to llvm-3.8/lib/LLVMgold.so, which
> doesn't exist. This looks like a mistake in the llvm-3.8-dev package.
> This bug might be related:
> 
> https://bugs.launchpad.net/ubuntu/+source/llvm-toolchain-snapshot/+bug/1254970
> 
> The tests use CMake's standard mechanism check_c{xx}_source_compiles()
> to check whether a source file compiles and links. I assume it is just
> the first project in the configure chain to make use of it.
> 
> Michael
> 
> 
> 2016-09-16 23:18 GMT+02:00 Carsten Mattner via llvm-dev
> <llvm-dev at lists.llvm.org>:
>> On Fri, Sep 16, 2016 at 10:54 PM, Mehdi Amini <mehdi.amini at apple.com> wrote:
>> 
>>> Can you look for the specific errors in the CMake log and error files?
>>> 
>>> CMake is very good at not presenting the real issue…
>>> Here it is trying to build very simple programs to check features
>>> availability. Like:
>>> 
>>>   #include <strings.h>
>>>   int main() { ffs(0); return 0; }
>> 
>> In CMakeError.log there are errors like:
>> 
>> CheckIncludeFile.c:1:10: fatal error: 'malloc/malloc.h' file not found
>> #include <malloc/malloc.h>
>> 
>> ...
>> 
>> CheckIncludeFile.c:1:10: fatal error: 'ndir.h' file not found
>> #include <ndir.h>
>> 
>> ...
>> 
>> CheckIncludeFile.c:1:10: fatal error: 'sys/ndir.h' file not found
>> #include <sys/ndir.h>
>> 
>> ...
>> 
>> fatal error: 'intrin.h' file not found
>> 
>> These seem like tests that are expected to fail.
>> 
>> ...
>> 
>> The interesting test
>> 
>>  int main() { __builtin_ffs(0); return 0; }
>> 
>> fails like this:
>> 
>> /usr/bin/ld[...]llvm/bin/../lib/LLVMgold.so:
>> cannot open shared object file: No such file[...]
>> 
>> I have two questions here:
>> 
>> Is there anything I might have missed when configuring the gcc-built
>> llvm install for it to be incomplete in the linker department? I mean,
>> the system linker is used (not lld) and that via CC=clang is looking
>> for the gold linker plugin, which seems to be missing. Probably
>> something got lost in my transition from autoconf to cmake?
>> 
>> Anything else to pass to cmake so that it, in addition to llvm-ar and
>> llvm-ranlib, also used lld? Or isn't that a requirement for building
>> with ThinLTO?
>> _______________________________________________
>> LLVM Developers mailing list
>> llvm-dev at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev



More information about the llvm-dev mailing list