clangglibcclang++ninjagn

how to configure GN (Google's generate-ninja)/Ninja to use different clang toolchain


I'm using GN and Ninja to build a Chromium project but encountered the following error:

$  ninja -C out/Release/

...
...

../../third_party/llvm-build/Release+Asserts/bin/clang++: /lib64/libc.so.6: version `GLIBC_2.18' not found (required by ~/client/third_party/llvm-build/Release+Asserts/bin/../lib/libstdc++.so.6)

The reason being it uses the prebuilt clang tooling that comes with the project, however I'm on CentOS 7 and the pinned version of glibc is GLIBC_2.17, and I do have a separate clang tooling which doesn't require GLIBC_2.18, the question is how do I configure GN or ninja to not use the prebuilt clang that comes with the project?


Solution

  • Check out this page, after gn gen command, one can override the llvm toolchain location by editing the clang_base_path parameter in the args.gn file.