3

I'm building clang from source, but using a gcc 7.2 build that doesn't live in the normal spot. I want the resulting clang++ binary to use this toolchain by default. I tried to do:

$ export GCC_PREFIX=/path/to/gcc/7.2
$ mkdir -p build
$ cd build
$ cmake -G Ninja -DCMAKE_C_COMPILER=${GCC_PREFIX}/bin/gcc \
     -DCMAKE_CXX_COMPILER=${GCC_PREFIX}/bin/g++ \
     -DCMAKE_BUILD_TYPE=RelWithDebInfo -DLLVM_TARGETS_TO_BUILD=X86 ..

But the resulting build just looks in /usr/include/c++/4.8.5 for standard library includes instead of /path/to/gcc/7.2/include like I wanted it to (and, as the path suggests, 4.8.5 is a bit old). Is there a way to build clang such that the resulting binary will search the path I want for its include directory?

Note, I know I run the produced binary with --gcc-toolchain=${GCC_PREFIX}. That works. What I want to do is build that into the binary so I don't have to type it every time.

1 Answer 1

5

Just found this. The correct way to do this is to provide GCC_INSTALL_PREFIX:

$ cmake -G Ninja -DCMAKE_C_COMPILER=${GCC_PREFIX}/bin/gcc \
     -DCMAKE_CXX_COMPILER=${GCC_PREFIX}/bin/g++ \

     -DGCC_INSTALL_PREFIX=${GCC_PREFIX} \

     -DCMAKE_BUILD_TYPE=RelWithDebInfo -DLLVM_TARGETS_TO_BUILD=X86 ..

That does the right thing. The resulting clang binary behaves as if you provided --gcc-toolchain=${GCC_PREFIX}, as desired.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.