[cfe-users] C/C++ system include dirs when cross-compiling
Patrick Boettcher via cfe-users
cfe-users at lists.llvm.org
Thu Mar 31 09:34:56 PDT 2016
On Thu, 31 Mar 2016 12:18:41 -0400
Jeffrey Walton <noloader at gmail.com> wrote:
> > TARGET=aarch64-elf \
> > GCC_ROOT=~/Downloads/gcc-linaro-5.3-2016.02-x86_64_aarch64-elf \
> > ~/devel/upstream/build/bin/clang++ \
> > -v \
> > --target=$TARGET \
> > --gcc-toolchain=$GCC_ROOT/$TARGET \
> > --sysroot=$GCC_ROOT/$TARGET/sysroot \
> > -nostdlib \
> > -o testCCompiler.cpp.obj -c \
> > -std=c++11 \
> > test.cpp
> >
> > test.cpp is empty except #include <cstdint> which it doesn't find.
> >
> > Linaro's gcc has all include paths in its search list.
> >
> > Thanks in advance for any help,
>
> We found Ubuntu (perhaps Debian) broke the cross-compile using
> --sysroot some time ago. Also see "g++-arm-linux-gnueabi cannot
> compile a C++ program with --sysroot",
> https://bugs.launchpad.net/ubuntu/+source/gcc-defaults-armel-cross/+bug/1375071.
I forgot to mention that I'm using llvm/clang 3.8 which I built myself.
> We were working around the broken C++ header includes by specifically
> calling them out with -I. See the comment "Fix C++ header paths for
> Ubuntu" at
> https://github.com/weidai11/cryptopp/blob/master/setenv-embedded.sh#L96.
That's what I did as well to work around.
> ARM's "GCC ARM Embedded Tools" works as expected. Its maintained by
> ARM employees. Also see the PPA at
> https://launchpad.net/gcc-arm-embedded.
Yeah, but is the problem clang not looking into the right paths or
gcc-toolchains having changed their layouts. Comparing older
gcc-toolchains I had in my attic it seems that clang is not looking hard
enough.
--
Patrick.
More information about the cfe-users
mailing list