Hey all,
in preparation of working on clang, I want to compile and run the unit tests,
specifically those for the clang-c part.
I read http://clang.llvm.org/hacking.html and tried to run `make clang-test`
in my external build folder, but that fails at link time:
https://paste.kde.org/ptylyjsa7
This is using the latest versions of the release_37 branches in both, LLVM and
clang. Could someone tell me what's going wrong here?
Bye
How did you configure? I’m a bit surprised by bulid/clang path. It looks like you’re building Clang but not LLVM?
How did you configure? I'm a bit surprised by bulid/clang path. It looks
like you're building Clang but not LLVM?
Yes, I'm building Clang.
I have:
~/projects/src/llvm
~/projects/src/clang
~/projects/build/llvm
~/projects/build/clang
The former two are checkouts of the release_37 branches of the corresponding
git@github.com:llvm-mirror/*.git repositories. I configured them basically
with
build/llvm$ cmake ../../src/llvm -DCMAKE_BUILD_TYPE=RelWithDebInfo -
DCMAKE_INSTALL_TYPE=$HOME/projects/compiled/llvm
and then same for clang. Everything compiles and works just fine, except for
the unit tests. And those are only compiled for me when I run `make clang-
test` manually, i.e. they are not included in the "normal" make call - is this
intended?
Or does clang not support out of source builds?
- – Found LLVM_CONFIG as /home/milian/projects/compiled/other/bin/llvm-config
This makes me believe your clang build is not using the llvm you just built? Do you have installed version of LLVM on your distro?
I used to build Clang out of source on Windows and you had to provide path to LLVM but I can’t see that in CMake gui anymore (on Linux). The only thing I can suggest is to move clang inside llvm/tools and build in-tree. That will work 100%
Sorry Nikola,
the email I wrote was written by hand and used a made up prefix. In reality, I
install into the prefix you see there. Here are my CMakeCache.txt files:
llvm: https://paste.kde.org/ppcx7f0hf
clang: https://paste.kde.org/pvseix1ut
Sorry for the confusion, hope this is more explicit.
Bye
So I have no idea what the problem is. It might be using autotools, it might be the fact that you’re installing llvm. Here’s what I tried on my Ubuntu VM.
Source from branches/release_37
llvm in ~/llvm
clang in ~/clang
inside ~/build_llvm: cmake -g Ninja -DCMAKE_BUILD_TYPE=RelWithDebInfo …/llvm
inside ~/build_llvm: ninja
inside ~/build_clang: cmake -g Ninja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DLLVM_CONFIG=~/build_llvm/bin/llvm-config …/clang
inside ~/build_clang: ninja clang-test
This works for me. I strongly suggest passing the following flags to both cmake configure steps as it makes building much faster:
-DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_FLAGS=-fuse-ld=gold -DCMAKE_CXX_FLAGS=-fuse-ld=gold
Hope this helps.
If you checkout clang into llvm/tools/clang, configuring and building llvm will also do the same for clang.
You cna then test everything with make -check-all.