Build failure while experimenting with LTO

Davide Italiano dccitaliano at gmail.com
Mon Jun 27 01:48:32 UTC 2016


Hi,
I'm experimenting a bit with LTO using clang and lld (the new LLVM linker).
I'm able to build a decent fraction of libreoffice if I invoke
autogen.sh like this:

./autogen.sh CC=~/work/llvm/build-release/bin/clang
CXX=~/work/llvm/build-release/bin/clang++
AR=~/work/llvm/build-release/bin/llvm-ar RANLIB=/usr/bin/true
LDFLAGS="-fuse-ld=lld" CFLAGS="-flto" CXXFLAGS="-flto" --without-java
--without-help --without-myspell-dicts --disable-liblangtag
--with-system-curl --with-system-lcms2

(please note that as long as I'm using the LLVM tools I don't need
plugin(s) as binutils does).

I set up my PATH so that ld symlinks to lld.

$ ld --version
LLD 3.9 (https://llvm.org/svn/llvm-project/lld/trunk 273771)

After some librabries/executables are built/linked successfully I hit
the following:

[build DEP] LNK:Library/libbiblo.so
[build LNK] Library/libbiblo.so
/home/davide/lto_experiments/libreoffice/external/coinmp/ExternalPackage_coinmp.mk:31:
*** file /home/davide/lto_experiments/libreoffice/workdir/UnpackedTarball/coinmp/Cbc/src/.libs/libCbc.so.3.8.8
does not exist in the tarball.  Stop.
make[1]: *** Waiting for unfinished jobs....
Makefile:254: recipe for target 'build' failed
make: *** [build] Error 2
```

$ find . -name "libCbc.so*"
$

So I decided to build libCbc by myself going in the correct directory
and invoking make:

$ cd ./workdir/UnpackedTarball/coinmp/Cbc/ && ./configure && make
[...]

but still the build fails with the same error.
Any ideas why the library is not built? Is this a bug in LLVM or in
the build system?

As a side note, I'm able to finish successfully a non-LTO build with clang+lld.

Thanks!

--
Davide


More information about the LibreOffice mailing list