[llvm-dev] (Thin)LTO llvm build

Michael Kruse via llvm-dev llvm-dev at lists.llvm.org
Tue Sep 20 10:17:48 PDT 2016

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:


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.


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