[LLVMdev] compiler-rt CMake build ignores CMAKE_CXX_FLAGS (original) (raw)
Alexey Samsonov samsonov at google.com
Sun Mar 23 11:03:28 PDT 2014
- Previous message: [LLVMdev] compiler-rt CMake build ignores CMAKE_CXX_FLAGS
- Next message: [LLVMdev] compiler-rt CMake build ignores CMAKE_CXX_FLAGS
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Hi Dmitri,
On Sat, Mar 22, 2014 at 11:50 PM, Dmitri Gribenko <gribozavr at gmail.com>wrote:
Hello,
It looks like compiler-rt CMake scripts don't take CMAKECXXFLAGS into account. This is because clangcompile and clanglinkshared functions call the newly-built compiler directly, and they don't add those flags.
Indeed.
Using CMAKECXXFLAGS is necessary on systems where the C++11-enabled libstdc++ is installed not in the default location. For example, the CentOS buildbot uses: -DCMAKECXXFLAGS=--gcc-toolchain=/opt/centos/devtoolset-1.1/root/usr I tried adding ${CMAKECXXFLAGS} to the compiler invocation in clangcompile (with and without quotes), but in both cases the resulting command is not correct, all of CMAKECXXFLAGS is treated as a single option, for example:
Yes, recently I discovered the same problem and also though of adding CMAKE_CXX_FLAGS to manual clang invocations. I think it just needs to be done.
[6/67] Generating gtest-all.cc.x8664.o FAILED: cd /home/llvmbb/clang/build-cmake-r+a/projects/compiler-rt/lib/tsan/tests/unit && /home/llvmbb/clang/build-cmake-r+a/./bin/clang -fPIC -fno-builtin -fno-exceptions -fomit-frame-pointer -funwind-tables -fno-stack-protector -fvisibility=hidden -fno-function-sections -O3 -gline-tables-only -Wno-gnu -Wno-variadic-macros -Wno-c99-extensions -Wno-non-virtual-dtor -fPIE -fno-rtti -DGTESTNOLLVMRAWOSTREAM=1 -I/home/llvmbb/clang/llvm/utils/unittest/googletest/include -I/home/llvmbb/clang/llvm/utils/unittest/googletest -I/home/llvmbb/clang/llvm/projects/compiler-rt/lib -I/home/llvmbb/clang/llvm/projects/compiler-rt/lib/tsan/rtl -std=c++11 -DGTESTHASRTTI=0 _--gcc-toolchain=/opt/centos/devtoolset-1.1/root/usr\ -fPIC_ _-fvisibility-inlines-hidden\ -Wall\ -W\ -Wno-unused-parameter_ _-Wwrite-strings\ -Wmissing-field-initializers\ -pedantic_ _-Wno-long-long\ -Wcovered-switch-default\ -Wnon-virtual-dtor_ _-std=c++11\ -fcolor-diagnostics\ -ffunction-sections\ -fdata-sections_ -Wall\ -std=c++11 -m64 -c -o gtest-all.cc.x8664.o /home/llvmbb/clang/llvm/utils/unittest/googletest/src/gtest-all.cc Note the backslases in the command.
Yep, because CMAKE_CXX_FLAGS is a string, and its contents is automatically escaped when we use it in COMMAND in CMake rules. I guess we'll have to manually turn CMAKE_CXX_FLAGS into a CMake semicolon-separated list.
Could maintainers of the compiler-rt CMake scripts help me with this?
Thanks for the detailed description of your use case. I will try to address this problem tomorrow.
Dmitri -- main(i,j){for(i=2;;i++){for(j=2;j<i;j++){if(!(i%j)){j=0;break;}}if_ _(j){printf("%d\n",i);}}} /Dmitri Gribenko <gribozavr at gmail.com>/
-- Alexey Samsonov, MSK -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140323/c3bb2cec/attachment.html>
- Previous message: [LLVMdev] compiler-rt CMake build ignores CMAKE_CXX_FLAGS
- Next message: [LLVMdev] compiler-rt CMake build ignores CMAKE_CXX_FLAGS
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]