On Sat, Apr 14, 2018 at 10:50:11PM +0100, Ken Moffat wrote:
> On Sat, Apr 14, 2018 at 10:26:22PM +0200, Pierre Labastie wrote:
> > 
> > thread 'main' panicked at 'command did not execute successfully:
> > "/usr/bin/llvm-config" "--link-shared" "--libs" "--system-libs" "asmparser"
> > "bitreader" "bitwriter" "instrumentation" "interpreter" "ipo" "linker" "lto"
> > "mcjit" "x86"
[...]
> > 
> > The book uses the LLVM_BUILD_LLVM_DYLIB option.
> > 
> Indeed it does, but I see that I also use -DLLVM_LINK_LLVM_DYLIB=ON.
> I assume that might have been in the book at some time, but it's
> what I've been using without obvious problems.

> Sorry to offer that different suggestion after you have gone to bed.
> 
> I'll try a couple of manual DESTDIR llvm builds to confirm what gets
> installed, including clang and compiler-rt (does anybody know of
> anything that actually needs compiler-rt, I don't bother building it
> on all machines and so far nothing seems to need it ?).
> 
Now completed, the book's version DESTDIR'd to BUILDONLY, the one
with added -DLLVM_LINK_LLVM_DYLIB=ON to BUILDLINK.

ken@origin /scratch/ken $du -sh BUILD*
588M    BUILDLINK
1.2G    BUILDONLY

TRying to get only the important things into listings (size, name,
and symlink details) so that I can diff them:

ls -l BUILDONLY/usr/bin | awk '{ print $5 " " $9 " " $10 " " $11 }' >ONLYBIN

ditto for BUILDLINK to LINKBIN

similarly for /usr/lib to ONLYLIB and LINKLIB

for the binaries, a lot of differences, mostly in size.
Attached as bindiff

Comparing ldd output for the first file, bugpoint, the BUILDONLY
version (i.e. what is in the book) lacks

        libLLVM-6.0.so => /scratch/ken/BUILDLINK/usr/bin/../lib/libLLVM-6.0.so 
(0x00007f20c8697000)
        libffi.so.6 => /usr/lib/libffi.so.6 (0x00007f20c7586000)
        libxml2.so.2 => /usr/lib/libxml2.so.2 (0x00007f20c6987000)
        libicui18n.so.60 => /usr/lib/libicui18n.so.60 (0x00007f20c64d9000)
        libicuuc.so.60 => /usr/lib/libicuuc.so.60 (0x00007f20c611b000)
        libicudata.so.60 => /usr/lib/libicudata.so.60 (0x00007f20c4573000)
        liblzma.so.5 => /lib/liblzma.so.5 (0x00007f20c434d000)

Diffing the contents of /usr/lib (but not its subdirectories) only
shows differences in size for libclang.so.6.0 and libLTO.so.6.0.0

Comparing the ldd output for libclang.so.6.0 shows a similar
difference, i.e. it pulls in libLLVM, libffi, libxml2, libicu*,
liblzma.

Given that one of the old issues I found suggested that the problem
only happened with static libs, and that libffi is being pulled in
by libclang.so when built my way, I suspect this is the cause of
Bruce's failure as well as Pierre's.

So, I suggest rebuilding llvm with -DLLVM_LINK_LLVM_DYLIB=ON and
confirming that rustc will then build with the config.toml that is
in the book.

If that works, as well as changing llvm the rust build needs to
mention "clang from llvm-6.0 (built with
-DLLVM_LINK_LLVM_DYLIB=ON)".

NB I haven't built the docs or run the tests, so I don't have a view
on the space used by llvm built like this, except that it will be
smaller.  I blew away the initial source from building like the
book, but building my way the source is 1.7GB (1740 MB) and the
DESTDIR is 588 MB (2.3 GB).  Interestingly, for the book's build I'm
at 1740+1142 (2.8 GB).

ĸen
-- 
In my seventh decade astride this planet, and as my own cells degrade,
there are some things I cannot do now: skydiving, marathon running,
calculus. I couldn't do them in my 20s either, so no big loss.
            -- Derek Smalls, formerly of Spinal Tap
-- 
http://lists.linuxfromscratch.org/listinfo/blfs-dev
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page

Reply via email to