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

Reid Kleckner rnk at google.com
Fri Jan 31 09:15:38 PST 2014


I wonder if it'd useful for Clang to be able to process multiple sysroots,
to handle this kind of situation where some stuff (libc++, llvm, maybe
more) are installed to /some/prefix/, but the user still wants to search
/usr/ for headers and libs.  Today I believe we just require the user to
pass lots of -isystem and -L args.

That sounds a lot like Apple's framework concept.


On Fri, Jan 31, 2014 at 7:08 AM, Frank Rehwinkel
<frankrehwinkel at gmail.com>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
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20140131/7bb9711a/attachment.html>


More information about the cfe-dev mailing list