Greg Stark via llvm-dev
2015-Sep-09 17:55 UTC
[llvm-dev] Building LLVM and Clang using Clang?
Try as I might I can't seem to get LLVM to bulid using clang/clang++. No matter what I do it insists on using /usr/bin/cc and /usr/bin/c++ which are gcc. Am I missing something obvious? I vaguely remember some document describing a stage1 compiler built by your old toolchain and a stage2 compiler but I can't find the steps to do that any more. $ CC=/usr/local/bin/clang CXX=/usr/local/bin/clang++ cmake -DCMAKE_BUILD_TYPE=Release -Wno-dev ~/src/llvm -- Target triple: x86_64-unknown-linux-gnu -- Native target architecture is X86 -- Threads enabled. -- Doxygen disabled. -- Sphinx disabled. -- Go bindings disabled. -- Could NOT find OCaml (missing: OCAMLFIND OCAML_VERSION OCAML_STDLIB_PATH) -- Could NOT find OCaml (missing: OCAMLFIND OCAML_VERSION OCAML_STDLIB_PATH) -- OCaml bindings disabled. -- Building with -fPIC -- Constructing LLVMBuild project information -- Targeting AArch64 -- Targeting AMDGPU -- Targeting ARM -- Targeting BPF -- Targeting CppBackend -- Targeting Hexagon -- Targeting Mips -- Targeting MSP430 -- Targeting NVPTX -- Targeting PowerPC -- Targeting Sparc -- Targeting SystemZ -- Targeting X86 -- Targeting XCore -- Compiler-RT supported architectures: x86_64 -- Clang version: 3.8.0 -- Configuring done -- Generating done -- Build files have been written to: /home/stark/src/llvm-build $ make CC=/usr/local/bin/clang CXX=/usr/local/bin/clang++ [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/APFloat.cpp.o [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/APInt.cpp.o [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/APSInt.cpp.o [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ARMBuildAttrs.cpp.o [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ARMWinEH.cpp.o [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Allocator.cpp.o [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/BlockFrequency.cpp.o And while doing that I ran this and see it's running /usr/bin/c++: $ ps auxww | grep LLVMSupp stark 26435 0.1 0.0 10400 2744 pts/6 S+ 18:50 0:00 make -f lib/Support/CMakeFiles/LLVMSupport.dir/build.make lib/Support/CMakeFiles/LLVMSupport.dir/build stark 26463 0.0 0.0 4328 752 pts/6 S+ 18:50 0:00 /bin/sh -c cd /home/stark/src/llvm-build/lib/Support && /usr/bin/c++ -DGTEST_HAS_RTTI=0 -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -fPIC -fvisibility-inlines-hidden -Wall -W -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wno-maybe-uninitialized -Wnon-virtual-dtor -Wno-comment -std=c++11 -ffunction-sections -fdata-sections -O3 -DNDEBUG -fPIC -I/home/stark/src/llvm-build/lib/Support -I/home/stark/src/llvm/lib/Support -I/home/stark/src/llvm-build/include -I/home/stark/src/llvm/include -fno-exceptions -fno-rtti -o CMakeFiles/LLVMSupport.dir/ARMBuildAttrs.cpp.o -c /home/stark/src/llvm/lib/Support/ARMBuildAttrs.cpp stark 26464 0.0 0.0 11512 996 pts/6 S+ 18:50 0:00 /usr/bin/c++ -DGTEST_HAS_RTTI=0 -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -fPIC -fvisibility-inlines-hidden -Wall -W -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wno-maybe-uninitialized -Wnon-virtual-dtor -Wno-comment -std=c++11 -ffunction-sections -fdata-sections -O3 -DNDEBUG -fPIC -I/home/stark/src/llvm-build/lib/Support -I/home/stark/src/llvm/lib/Support -I/home/stark/src/llvm-build/include -I/home/stark/src/llvm/include -fno-exceptions -fno-rtti -o CMakeFiles/LLVMSupport.dir/ARMBuildAttrs.cpp.o -c /home/stark/src/llvm/lib/Support/ARMBuildAttrs.cpp stark 26465 0.0 1.2 88756 48740 pts/6 R+ 18:50 0:00 /usr/lib/gcc/x86_64-linux-gnu/5/cc1plus -quiet -I /home/stark/src/llvm-build/lib/Support -I /home/stark/src/llvm/lib/Support -I /home/stark/src/llvm-build/include -I /home/stark/src/llvm/include -imultiarch x86_64-linux-gnu -D_GNU_SOURCE -D GTEST_HAS_RTTI=0 -D _GNU_SOURCE -D __STDC_CONSTANT_MACROS -D __STDC_FORMAT_MACROS -D __STDC_LIMIT_MACROS -D NDEBUG /home/stark/src/llvm/lib/Support/ARMBuildAttrs.cpp -quiet -dumpbase ARMBuildAttrs.cpp -mtune=generic -march=x86-64 -auxbase-strip CMakeFiles/LLVMSupport.dir/ARMBuildAttrs.cpp.o -O3 -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -Wpedantic -Wno-long-long -Wno-maybe-uninitialized -Wnon-virtual-dtor -Wno-comment -std=c++11 -fvisibility-inlines-hidden -ffunction-sections -fdata-sections -fPIC -fno-exceptions -fno-rtti -o /tmp/ccTTfqUE.s stark 26467 0.0 0.0 14452 932 pts/3 S+ 18:50 0:00 grep LLVMSupp -- greg
Dan Liew via llvm-dev
2015-Sep-09 18:08 UTC
[llvm-dev] Building LLVM and Clang using Clang?
Hi Greg, On 9 September 2015 at 10:55, Greg Stark via llvm-dev <llvm-dev at lists.llvm.org> wrote:> Try as I might I can't seem to get LLVM to bulid using clang/clang++. > No matter what I do it insists on using /usr/bin/cc and /usr/bin/c++ > which are gcc. Am I missing something obvious? I vaguely remember some > document describing a stage1 compiler built by your old toolchain and > a stage2 compiler but I can't find the steps to do that any more. > > > $ CC=/usr/local/bin/clang CXX=/usr/local/bin/clang++ cmake > -DCMAKE_BUILD_TYPE=Release -Wno-dev ~/src/llvm > -- Target triple: x86_64-unknown-linux-gnuCMake will only detect the compiler once in a build directory. Based on the console output you show the tests checking the capabilities of the compiler and system headers **aren't being run** which means you must have run cmake in the build directory previously and now those results of testing the host compiler have been cached. The easiest thing to do is just delete your entire build directory and run CMake again. You could try deleting your CMake cache (CMakeCache.txt) and rerunning CMake but I'm not sure if that will work correctly. HTH, Dan.
don hinton via llvm-dev
2015-Sep-09 18:15 UTC
[llvm-dev] Building LLVM and Clang using Clang?
Here's part of a script I use. It uses a specific version of gcc, but if you follow the pattern, it should give you what you need... cd ${local_dir}/build cmake -DCMAKE_C_COMPILER=${CLANG_GCC}/bin/gcc \ -DCMAKE_CXX_COMPILER=${CLANG_GCC}/bin/g++ \ -DGCC_INSTALL_PREFIX=${CLANG_GCC} \ -DCMAKE_CXX_LINK_FLAGS="-L${CLANG_GCC}/lib64 -Wl,-rpath,${CLANG_GCC}/lib64" \ -DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} \ -DLLVM_ENABLE_ASSERTIONS=ON \ -DCMAKE_BUILD_TYPE="Release" \ -DLLVM_TARGETS_TO_BUILD="X86" \ ../llvm-${version}.src \ -GNinja || die "cmake failed" ${NINJA} -j16 -v || die "ninja failed" exit On Wed, Sep 9, 2015 at 1:55 PM, Greg Stark via llvm-dev < llvm-dev at lists.llvm.org> wrote:> Try as I might I can't seem to get LLVM to bulid using clang/clang++. > No matter what I do it insists on using /usr/bin/cc and /usr/bin/c++ > which are gcc. Am I missing something obvious? I vaguely remember some > document describing a stage1 compiler built by your old toolchain and > a stage2 compiler but I can't find the steps to do that any more. > > > $ CC=/usr/local/bin/clang CXX=/usr/local/bin/clang++ cmake > -DCMAKE_BUILD_TYPE=Release -Wno-dev ~/src/llvm > -- Target triple: x86_64-unknown-linux-gnu > -- Native target architecture is X86 > -- Threads enabled. > -- Doxygen disabled. > -- Sphinx disabled. > -- Go bindings disabled. > -- Could NOT find OCaml (missing: OCAMLFIND OCAML_VERSION > OCAML_STDLIB_PATH) > -- Could NOT find OCaml (missing: OCAMLFIND OCAML_VERSION > OCAML_STDLIB_PATH) > -- OCaml bindings disabled. > -- Building with -fPIC > -- Constructing LLVMBuild project information > -- Targeting AArch64 > -- Targeting AMDGPU > -- Targeting ARM > -- Targeting BPF > -- Targeting CppBackend > -- Targeting Hexagon > -- Targeting Mips > -- Targeting MSP430 > -- Targeting NVPTX > -- Targeting PowerPC > -- Targeting Sparc > -- Targeting SystemZ > -- Targeting X86 > -- Targeting XCore > -- Compiler-RT supported architectures: x86_64 > -- Clang version: 3.8.0 > -- Configuring done > -- Generating done > -- Build files have been written to: /home/stark/src/llvm-build > $ make CC=/usr/local/bin/clang CXX=/usr/local/bin/clang++ > [ 0%] Building CXX object > lib/Support/CMakeFiles/LLVMSupport.dir/APFloat.cpp.o > [ 0%] Building CXX object > lib/Support/CMakeFiles/LLVMSupport.dir/APInt.cpp.o > [ 0%] Building CXX object > lib/Support/CMakeFiles/LLVMSupport.dir/APSInt.cpp.o > [ 0%] Building CXX object > lib/Support/CMakeFiles/LLVMSupport.dir/ARMBuildAttrs.cpp.o > [ 0%] Building CXX object > lib/Support/CMakeFiles/LLVMSupport.dir/ARMWinEH.cpp.o > [ 0%] Building CXX object > lib/Support/CMakeFiles/LLVMSupport.dir/Allocator.cpp.o > [ 0%] Building CXX object > lib/Support/CMakeFiles/LLVMSupport.dir/BlockFrequency.cpp.o > > And while doing that I ran this and see it's running /usr/bin/c++: > > $ ps auxww | grep LLVMSupp > stark 26435 0.1 0.0 10400 2744 pts/6 S+ 18:50 0:00 make > -f lib/Support/CMakeFiles/LLVMSupport.dir/build.make > lib/Support/CMakeFiles/LLVMSupport.dir/build > stark 26463 0.0 0.0 4328 752 pts/6 S+ 18:50 0:00 > /bin/sh -c cd /home/stark/src/llvm-build/lib/Support && /usr/bin/c++ > -DGTEST_HAS_RTTI=0 -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS > -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -fPIC > -fvisibility-inlines-hidden -Wall -W -Wno-unused-parameter > -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic > -Wno-long-long -Wno-maybe-uninitialized -Wnon-virtual-dtor > -Wno-comment -std=c++11 -ffunction-sections -fdata-sections -O3 > -DNDEBUG -fPIC -I/home/stark/src/llvm-build/lib/Support > -I/home/stark/src/llvm/lib/Support > -I/home/stark/src/llvm-build/include -I/home/stark/src/llvm/include > -fno-exceptions -fno-rtti -o > CMakeFiles/LLVMSupport.dir/ARMBuildAttrs.cpp.o -c > /home/stark/src/llvm/lib/Support/ARMBuildAttrs.cpp > stark 26464 0.0 0.0 11512 996 pts/6 S+ 18:50 0:00 > /usr/bin/c++ -DGTEST_HAS_RTTI=0 -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS > -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -fPIC > -fvisibility-inlines-hidden -Wall -W -Wno-unused-parameter > -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic > -Wno-long-long -Wno-maybe-uninitialized -Wnon-virtual-dtor > -Wno-comment -std=c++11 -ffunction-sections -fdata-sections -O3 > -DNDEBUG -fPIC -I/home/stark/src/llvm-build/lib/Support > -I/home/stark/src/llvm/lib/Support > -I/home/stark/src/llvm-build/include -I/home/stark/src/llvm/include > -fno-exceptions -fno-rtti -o > CMakeFiles/LLVMSupport.dir/ARMBuildAttrs.cpp.o -c > /home/stark/src/llvm/lib/Support/ARMBuildAttrs.cpp > stark 26465 0.0 1.2 88756 48740 pts/6 R+ 18:50 0:00 > /usr/lib/gcc/x86_64-linux-gnu/5/cc1plus -quiet -I > /home/stark/src/llvm-build/lib/Support -I > /home/stark/src/llvm/lib/Support -I /home/stark/src/llvm-build/include > -I /home/stark/src/llvm/include -imultiarch x86_64-linux-gnu > -D_GNU_SOURCE -D GTEST_HAS_RTTI=0 -D _GNU_SOURCE -D > __STDC_CONSTANT_MACROS -D __STDC_FORMAT_MACROS -D __STDC_LIMIT_MACROS > -D NDEBUG /home/stark/src/llvm/lib/Support/ARMBuildAttrs.cpp -quiet > -dumpbase ARMBuildAttrs.cpp -mtune=generic -march=x86-64 > -auxbase-strip CMakeFiles/LLVMSupport.dir/ARMBuildAttrs.cpp.o -O3 > -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual > -Wno-missing-field-initializers -Wpedantic -Wno-long-long > -Wno-maybe-uninitialized -Wnon-virtual-dtor -Wno-comment -std=c++11 > -fvisibility-inlines-hidden -ffunction-sections -fdata-sections -fPIC > -fno-exceptions -fno-rtti -o /tmp/ccTTfqUE.s > stark 26467 0.0 0.0 14452 932 pts/3 S+ 18:50 0:00 grep > LLVMSupp > > > -- > greg > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150909/b91d0a5f/attachment.html>
Greg Stark via llvm-dev
2015-Sep-09 19:04 UTC
[llvm-dev] Building LLVM and Clang using Clang?
On Wed, Sep 9, 2015 at 7:08 PM, Dan Liew <dan at su-root.co.uk> wrote:> The easiest thing to do is just delete your entire build directory and > run CMake again. You could try deleting your CMake cache > (CMakeCache.txt) and rerunning CMake but I'm not sure if that will > work correctly.Thanks! Hopefully by sometime next week I'll get to use it :) -- greg
Matthias Braun via llvm-dev
2015-Sep-09 20:37 UTC
[llvm-dev] Building LLVM and Clang using Clang?
I think you can do -DCMAKE_C_COMPILER=... and -DCMAKE_CXX_COMPILER=... with cmake. I personally like using "ccmake" (comes with every cmake install) which gives you a GUI that lists all options available to a cmake build. - Matthias> On Sep 9, 2015, at 10:55 AM, Greg Stark via llvm-dev <llvm-dev at lists.llvm.org> wrote: > > Try as I might I can't seem to get LLVM to bulid using clang/clang++. > No matter what I do it insists on using /usr/bin/cc and /usr/bin/c++ > which are gcc. Am I missing something obvious? I vaguely remember some > document describing a stage1 compiler built by your old toolchain and > a stage2 compiler but I can't find the steps to do that any more. > > > $ CC=/usr/local/bin/clang CXX=/usr/local/bin/clang++ cmake > -DCMAKE_BUILD_TYPE=Release -Wno-dev ~/src/llvm > -- Target triple: x86_64-unknown-linux-gnu > -- Native target architecture is X86 > -- Threads enabled. > -- Doxygen disabled. > -- Sphinx disabled. > -- Go bindings disabled. > -- Could NOT find OCaml (missing: OCAMLFIND OCAML_VERSION OCAML_STDLIB_PATH) > -- Could NOT find OCaml (missing: OCAMLFIND OCAML_VERSION OCAML_STDLIB_PATH) > -- OCaml bindings disabled. > -- Building with -fPIC > -- Constructing LLVMBuild project information > -- Targeting AArch64 > -- Targeting AMDGPU > -- Targeting ARM > -- Targeting BPF > -- Targeting CppBackend > -- Targeting Hexagon > -- Targeting Mips > -- Targeting MSP430 > -- Targeting NVPTX > -- Targeting PowerPC > -- Targeting Sparc > -- Targeting SystemZ > -- Targeting X86 > -- Targeting XCore > -- Compiler-RT supported architectures: x86_64 > -- Clang version: 3.8.0 > -- Configuring done > -- Generating done > -- Build files have been written to: /home/stark/src/llvm-build > $ make CC=/usr/local/bin/clang CXX=/usr/local/bin/clang++ > [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/APFloat.cpp.o > [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/APInt.cpp.o > [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/APSInt.cpp.o > [ 0%] Building CXX object > lib/Support/CMakeFiles/LLVMSupport.dir/ARMBuildAttrs.cpp.o > [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ARMWinEH.cpp.o > [ 0%] Building CXX object > lib/Support/CMakeFiles/LLVMSupport.dir/Allocator.cpp.o > [ 0%] Building CXX object > lib/Support/CMakeFiles/LLVMSupport.dir/BlockFrequency.cpp.o > > And while doing that I ran this and see it's running /usr/bin/c++: > > $ ps auxww | grep LLVMSupp > stark 26435 0.1 0.0 10400 2744 pts/6 S+ 18:50 0:00 make > -f lib/Support/CMakeFiles/LLVMSupport.dir/build.make > lib/Support/CMakeFiles/LLVMSupport.dir/build > stark 26463 0.0 0.0 4328 752 pts/6 S+ 18:50 0:00 > /bin/sh -c cd /home/stark/src/llvm-build/lib/Support && /usr/bin/c++ > -DGTEST_HAS_RTTI=0 -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS > -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -fPIC > -fvisibility-inlines-hidden -Wall -W -Wno-unused-parameter > -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic > -Wno-long-long -Wno-maybe-uninitialized -Wnon-virtual-dtor > -Wno-comment -std=c++11 -ffunction-sections -fdata-sections -O3 > -DNDEBUG -fPIC -I/home/stark/src/llvm-build/lib/Support > -I/home/stark/src/llvm/lib/Support > -I/home/stark/src/llvm-build/include -I/home/stark/src/llvm/include > -fno-exceptions -fno-rtti -o > CMakeFiles/LLVMSupport.dir/ARMBuildAttrs.cpp.o -c > /home/stark/src/llvm/lib/Support/ARMBuildAttrs.cpp > stark 26464 0.0 0.0 11512 996 pts/6 S+ 18:50 0:00 > /usr/bin/c++ -DGTEST_HAS_RTTI=0 -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS > -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -fPIC > -fvisibility-inlines-hidden -Wall -W -Wno-unused-parameter > -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic > -Wno-long-long -Wno-maybe-uninitialized -Wnon-virtual-dtor > -Wno-comment -std=c++11 -ffunction-sections -fdata-sections -O3 > -DNDEBUG -fPIC -I/home/stark/src/llvm-build/lib/Support > -I/home/stark/src/llvm/lib/Support > -I/home/stark/src/llvm-build/include -I/home/stark/src/llvm/include > -fno-exceptions -fno-rtti -o > CMakeFiles/LLVMSupport.dir/ARMBuildAttrs.cpp.o -c > /home/stark/src/llvm/lib/Support/ARMBuildAttrs.cpp > stark 26465 0.0 1.2 88756 48740 pts/6 R+ 18:50 0:00 > /usr/lib/gcc/x86_64-linux-gnu/5/cc1plus -quiet -I > /home/stark/src/llvm-build/lib/Support -I > /home/stark/src/llvm/lib/Support -I /home/stark/src/llvm-build/include > -I /home/stark/src/llvm/include -imultiarch x86_64-linux-gnu > -D_GNU_SOURCE -D GTEST_HAS_RTTI=0 -D _GNU_SOURCE -D > __STDC_CONSTANT_MACROS -D __STDC_FORMAT_MACROS -D __STDC_LIMIT_MACROS > -D NDEBUG /home/stark/src/llvm/lib/Support/ARMBuildAttrs.cpp -quiet > -dumpbase ARMBuildAttrs.cpp -mtune=generic -march=x86-64 > -auxbase-strip CMakeFiles/LLVMSupport.dir/ARMBuildAttrs.cpp.o -O3 > -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual > -Wno-missing-field-initializers -Wpedantic -Wno-long-long > -Wno-maybe-uninitialized -Wnon-virtual-dtor -Wno-comment -std=c++11 > -fvisibility-inlines-hidden -ffunction-sections -fdata-sections -fPIC > -fno-exceptions -fno-rtti -o /tmp/ccTTfqUE.s > stark 26467 0.0 0.0 14452 932 pts/3 S+ 18:50 0:00 grep LLVMSupp > > > -- > greg > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
David Chisnall via llvm-dev
2015-Sep-10 09:22 UTC
[llvm-dev] Building LLVM and Clang using Clang?
On 9 Sep 2015, at 21:37, Matthias Braun via llvm-dev <llvm-dev at lists.llvm.org> wrote:> > I personally like using "ccmake" (comes with every cmake install)Unless you’re on Debian / Ubuntu, in which case it’s in a separate cmake-curses-gui package, presumably on the assumption that people who want to install cmake don’t actually want to use it… David