[PATCH] D11464: CMake: Add -fno-rtti to llvm-config --cxx-flags when RTTI is disabled

Justin Bogner mail at justinbogner.com
Thu Jul 23 13:22:45 PDT 2015


Tom Stellard <thomas.stellard at amd.com> writes:
> tstellarAMD created this revision.
> tstellarAMD added reviewers: chandlerc, bogner.
> tstellarAMD added a subscriber: llvm-commits.
>
> This is a fix for PR14200.
>
> http://reviews.llvm.org/D11464
>
> Files:
>   tools/llvm-config/CMakeLists.txt
>
> Index: tools/llvm-config/CMakeLists.txt
> ===================================================================
> --- tools/llvm-config/CMakeLists.txt
> +++ tools/llvm-config/CMakeLists.txt
> @@ -16,6 +16,11 @@
>  set(LLVM_CPPFLAGS "${CMAKE_CPP_FLAGS} ${CMAKE_CPP_FLAGS_${uppercase_CMAKE_BUILD_TYPE}} ${LLVM_DEFINITIONS}")
>  set(LLVM_CFLAGS "${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS_${uppercase_CMAKE_BUILD_TYPE}} ${LLVM_DEFINITIONS}")
>  set(LLVM_CXXFLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${uppercase_CMAKE_BUILD_TYPE}} ${LLVM_DEFINITIONS}")
> +
> +if (NOT LLVM_ENABLE_RTTI)
> +  set(LLVM_CXXFLAGS "${LLVM_CXXFLAGS} -fno-rtti")
> +endif()

This isn't quite right, since the checks in AddLLVM.cmake also check
LLVM_REQUIRES_RTTI. The check for LLVM_COMPILER_IS_GCC_COMPATIBLE may
also be important - I'm not sure how llvm-config's supposed to work when
we build with MSVC. We should probably handle -fno-exceptions at the
same time, as well.

I'm not sure I'm happy with how much this needs to duplicate the logic
for this - can we wrap the checks up in a cmake function, or something
like that?

> +
>  # Use the C++ link flags, since they should be a superset of C link flags.
>  set(LLVM_LDFLAGS "${CMAKE_CXX_LINK_FLAGS}")
>  set(LLVM_BUILDMODE ${CMAKE_BUILD_TYPE})



More information about the llvm-commits mailing list