- User Since
- Jul 18 2016, 11:11 AM (148 w, 6 d)
Sat, May 25
Fri, May 24
@smeenai, who/how does this get submitted?
Update commit message and rebase on newer master
So this compiles and as such improves on what we currently have and as such I think it should be merged,
although there maybe other solutions. It still fails ninja stage2-check-all with the gtest problem which
@beanz is working on resolving.
Added libcxxabi and rebased
Thu, May 23
Are you still having that issue after rL361436? That should have resolved that problem. The issue isn't that gtest is missing from the bootstrap, but rather that it was missing from the dependencies for the runtime libraries.
Adding libcxxabi worked and ninja stage2-distribution succeeded but I then ran ninja check-all and from within stage2-bins/ but that failed:
[1072/1526] cd /home/wink/prgs/llvm/llvm-project/build-dist-use-lto-capable-linker-and-add-libcxxabi/tools/clang/stage2-bins/runtimes/runtimes-bins && /usr/bin/cmake --build /home/wink/prgs/llvm/llvm-project/build-dist-use-lto-capable-linker-and-add-libcxxabi/tools/clang/stage2-bins/runtimes/runtimes-bins/ --target check-runtimes --config RelWithDebInfo ninja: error: '/home/wink/prgs/llvm/llvm-project/build-dist-use-lto-capable-linker-and-add-libcxxabi/tools/clang/stage2-bins/lib/libgtest.a', needed by 'compiler-rt/lib/asan/tests/ASAN_INST_TEST_OBJECTS.gtest-all.cc.x86_64-calls.o', missing and no known rule to make it FAILED: runtimes/CMakeFiles/check-runtimes cd /home/wink/prgs/llvm/llvm-project/build-dist-use-lto-capable-linker-and-add-libcxxabi/tools/clang/stage2-bins/runtimes/runtimes-bins && /usr/bin/cmake --build /home/wink/prgs/llvm/llvm-project/build-dist-use-lto-capable-linker-and-add-libcxxabi/tools/clang/stage2-bins/runtimes/runtimes-bins/ --target check-runtimes --config RelWithDebInfo
Wed, May 22
Chris, I thought you had added libcxxabi in LLVM_ENABLE_RUNTIMES, but you hadn't so abandoning and trying again.
I actually really appreciate you trying this out and reporting back with such detailed feedback on your experience. Thank you for your patience, and I'm sorry if I'm being a bit of a pain.
Tue, May 21
This may not "correct" but I had to do these to get ninja stage2-distribution to complete on my computer.
Mon, May 20
Sun, May 19
What have I done wrong?
Sat, May 18
I'm trying to test the distribution commands from lines 65-67, I first do the cmake:
$ cd ~/prgs/llvm/llvm-project $ mkdir build $ cd build $ cmake -G Ninja -C ../clang/cmake/caches/DistributionExample.cmake ../llvm loading initial cache file ../clang/cmake/caches/DistributionExample.cmake -- The C compiler identification is GNU 8.3.0 -- The CXX compiler identification is GNU 8.3.0 -- The ASM compiler identification is GNU -- Found assembler: /usr/bin/cc ... -- Performing Test HAVE_STEADY_CLOCK -- Performing Test HAVE_STEADY_CLOCK -- success -- Configuring done -- Generating done -- Build files have been written to: /home/wink/prgs/llvm/llvm-project/build
Thu, May 16
OK, I'll do that tomorrow.
I disagree but I'm the neophyte :)
A few suggestions to consider, but this is GREAT, thanks!
Is there anything more I need to do to get this merged?
I believe this is ready for merging, is there something more I need to do?
Just to be clear, I have nothing to do with any distribution except as a user (Arch Linux) so please take
what I say and request with a huge grain of salt. As mentioned I have filed a bug
against the clang package in Arch Linux so hopefully we'll be able to get them going in the right direction.
Wed, May 15
Distributions only get libclang_shared if they run the install target which installs all of LLVM & Clang. The point of LLVM_DISTRIBUTION_COMPONENTS is to allow people constructing distributions to choose which pieces they want to install without introducing a whole lot of overhead in the build system. The old method of passing dozens of flags to enable and disable individual pieces of the build resulted in a combinatoric explosion in build settings which are confusing and ill understood. The new method is one setting that is much cleaner to use.
Anyone constructing a distribution should be specifying LLVM_DISTRIBUTION_COMPONENTS and running the install-distribution target.
IMHO "BUILD_CLANG_DYLIB" is needed. As you have it now libclang_shared.so is always builds on UNIX systems, which I believe means that all linux distros would have both increasing their sizes. I think the default should be "always" build libclang*.a as it is now, and optionally build libclang_shared.so using some flag.
Tue, May 14
Sorry, the two previous comments were meant for D61909 and I've moved them.
- Should we only build libclang_shared.so if LLVM_BUILD_LLVM_DYLIB is ON?
- Should we use link clang-9 to libclang_shared.so when LLVM_LINK_LLVM_DYLIB is ON?
- Or maybe we should define BUILD_CLANG_DYLIB and LINK_CLANG_DYLIB or ... ?
I did some quick testing.
You mention that you're using OBJECT libraries so objects aren't built mutliples times
and in my current tests the number of steps increased by only 3, it went from 4353 to 4356,
when using this patch, which is great!
Mon, May 13
@beanz I found what I think is the reason libclang_shared.so isn't being created.
Arch Linux is in an unsupported state, and your patch isn't the way forward.
Sun, May 12
Change default to be CLANG_ENABLE_STATIC_LIBRARIES=ON CLANG_ENABLE_SHARED_LIBRARIeS=OFF
Fri, May 10
Update as suggested by jyknight
Thu, May 9
Are there any other edits people would like?
I believe this is ready to merge.
Fri, May 3
Adding action "Accept Revision", I'm not sure this is the processes so correct me if this is inapprporpriate and let me know what I should do.
Supercedded by D61337
Thu, May 2
Wed, May 1
@eugenis, which of the following conditions have tests?
This configuration does not exist.
@eugenis, which of the following conditions have tests?
Tue, Apr 30
Changes suggested by Don Hinton
Mon, Apr 29
Apply changes from review comments
Update with additional information