[cfe-dev] system search path for option -stdlib=libc++

Robin Sommer robin at icir.org
Fri Jan 31 10:27:47 PST 2014


In case it helps, I'm maintaining a helper script that builds/installs
a standalone llvm/clang/libc++ combo into a prefix of your choice.
--stdlib=libc++ will "just work" with that.

The script got updated to 3.4 recently:

    https://github.com/rsmmr/install-clang

The script patches the code a bit to get around search path problems,
though I'm actually not sure if all the patches are still needed. It
works on Linux and Darwin.

Robin

On Fri, Jan 31, 2014 at 10:08 -0500, Frank Rehwinkel wrote:

> Hi,
> 
> 
> 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.
> 
> The first part seems straightforward enough:
> 
> cmake -G Ninja \
> 
>     -DCMAKE_BUILD_TYPE=Release \
> 
>     -DCMAKE_INSTALL_PREFIX=/local/llvm/3.4/usr \
> 
>     -DFFI_INCLUDE_DIR=/usr/lib64/libffi-3.0.11/include \
> 
>     -DFFI_LIBRARY_DIR=/usr/lib64 \
> 
>     -DLLVM_BUILD_TESTS=ON \
> 
>     -DLLVM_ENABLE_FFI=ON    \
> 
>     -DLLVM_EXTERNAL_MSBUILD_BUILD=OFF   \
> 
>     -DLLVM_TARGETS_TO_BUILD=host    \
> 
>     -DPYTHON_EXECUTABLE=/usr/bin/python2    \
> 
>     -DLIBCXX_CXX_ABI=libstdc++ \
> 
> 
> -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"
> \
> 
>     -DLIBCXX_ENABLE_SHARED=YES \
> 
>     ${SRC}
> 
> 
> 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.
> 
> -DDEFAULT_SYSROOT=/local/llvm/3.4
> 
> 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.
> 
> 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?
> 
> (I built with gcc, version 4.7.3 as you may have surmised by the paths
> above.)
> 
> Thanks,
> -Frank

> _______________________________________________
> cfe-dev mailing list
> cfe-dev at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev




-- 
Robin Sommer * Phone +1 (510) 722-6541 *     robin at icir.org
ICSI/LBNL    * Fax   +1 (510) 666-2956 * www.icir.org/robin



More information about the cfe-dev mailing list