[SE] Stop using llvm-config --cxxflags

Summary:
Build configuration was adding $(llvm-config --cxxflags) to the
StreamExecutor CXXFLAGS, but this was causing "-O3" to be passed even
for debug builds, and was making debugging difficult.

The llvm-config call was originally introduced to handle the -fno-rtti
flag because an RTTI StreamExecutor could not link with a no-RTTI LLVM.
This patch converts to using LLVM_ENABLE_RTTI and only adding the
`-fno-rtti` flag if needed, not all the rest of the LLVM CXXFLAGS.

I have tested this with clang-4.0 and gcc-4.8 on Ubuntu. Some work will
probably have to be done to support MSVC.

Reviewers: jlebar

Subscribers: beanz, jprice, parallel_libs-commits, mgorny

Differential Revision: https://reviews.llvm.org/D24474

llvm-svn: 281347
This commit is contained in:
Jason Henline 2016-09-13 15:44:18 +00:00
parent 6339f1a028
commit 45b467523b
1 changed files with 4 additions and 11 deletions
parallel-libs/streamexecutor

View File

@ -26,17 +26,10 @@ if(STREAM_EXECUTOR_STANDALONE)
include_directories(${LLVM_INCLUDE_DIRS})
add_definitions(${LLVM_DEFINITIONS})
# Get the LLVM cxxflags by using llvm-config.
#
# This is necessary to get -fno-rtti if LLVM is compiled that way.
execute_process(
COMMAND
"${LLVM_BINARY_DIR}/bin/llvm-config"
--cxxflags
OUTPUT_VARIABLE
LLVM_CXXFLAGS
OUTPUT_STRIP_TRAILING_WHITESPACE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${LLVM_CXXFLAGS}")
# If LLVM does not have RTTI, don't use it here either.
if (NOT LLVM_ENABLE_RTTI)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti")
endif()
set(LLVM_CMAKE_PATH "${LLVM_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm")
list(APPEND CMAKE_MODULE_PATH "${LLVM_CMAKE_PATH}")