llvm/cmake/modules/HandleLLVMStdlib.cmake specifies “-stdlib=libc++” for CMAKE_CXX_FLAGS when LLVM_ENABLE_LIBCXX and CXX_SUPPORTS_STDLIB. From what I can see this is a flag intended for the linker and not the compiler.
I’d like to submit a change to delete CMAKE_CXX_FLAGS from this append() but I wanted to check in with the list to see if that makes sense or if there are other contexts for which “stdlib=libc++” might be used.
If I specify “-nostdinc++”, “-stdlib=libc++” doesn’t get consumed and clang emits a warning.
$ clang++ -nostdinc++ -stdlib=libc++ -o main.o -c main.cpp
clang-4.0: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
Jordan,
Waaay back in 2014 you added “append_if(CXX_SUPPORTS_STDLIB "-stdlib=libc++" CMAKE_CXX_FLAGS)” to HandleLLVMStdlib.cmake and I’m asking if it might’ve been in error. I’ll submit a review to delete the CMAKE_CXX_FLAGS unless you think it still makes sense.
-Brian
Hmm, so it does: HSOpts.UseLibcxx. My mistake.
-Brian