<div dir="ltr">
<p class="">Hi,</p><p class=""><br></p><p class="">I would like to compile and install llvm/clang/libcxx into a local directory on Linux (Gentoo). I haven't found the right combination of cmake -D flags to make the -stdlib=c++ option work.</p>
<p class="">The first part seems straightforward enough:</p><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><p class="">cmake -G Ninja \</p><p class=""> -DCMAKE_BUILD_TYPE=Release \</p><p class=""> -DCMAKE_INSTALL_PREFIX=/local/llvm/3.4/usr \</p>
<p class=""> -DFFI_INCLUDE_DIR=/usr/lib64/libffi-3.0.11/include \</p><p class=""> -DFFI_LIBRARY_DIR=/usr/lib64 \</p><p class=""> -DLLVM_BUILD_TESTS=ON \</p><p class=""> -DLLVM_ENABLE_FFI=ON \</p><p class="">
-DLLVM_EXTERNAL_MSBUILD_BUILD=OFF \</p><p class=""> -DLLVM_TARGETS_TO_BUILD=host \</p><p class=""> -DPYTHON_EXECUTABLE=/usr/bin/python2 \</p></blockquote>
<blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><p class=""> -DLIBCXX_CXX_ABI=libstdc++ \</p><p class=""> -DLIBCXX_LIBSUPCXX_INCLUDE_PATHS="/usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/include/g++-v4;/usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/include/g++-v4/x86_64-pc-linux-gnu" \</p>
<p class=""> -DLIBCXX_ENABLE_SHARED=YES \</p><p class=""> ${SRC}</p><p class=""><br></p></blockquote><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><p class="">But the system header search path used by clang++ when the libc++ stdlib is used then is completely wrong. Looking through the source code, I stumbled on the parameters DEFAULT_SYSROOT and gave that a try. </p>
</blockquote><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><p class="">-DDEFAULT_SYSROOT=/local/llvm/3.4</p></blockquote></blockquote><blockquote style="margin:0 0 0 40px;border:none;padding:0px">
and that made the system header search path look good as far as finding the libc++ headers, but now the plain old /usr/include directory is no longer in the search path so /usr/include/features.h is not found.<br><br>Is building clang and libcxx on Linux and installing to a local directory supported and if so, please, what did I overlook or not know?<br>
<br>(I built with gcc, version 4.7.3 as you may have surmised by the paths above.)<br><br>Thanks,<br>-Frank</blockquote>
<p class="">
</p></div>