aboutsummaryrefslogtreecommitdiff
path: root/libcxxabi
diff options
context:
space:
mode:
authorSaleem Abdulrasool <compnerd@compnerd.org>2017-06-11 23:59:24 +0000
committerSaleem Abdulrasool <compnerd@compnerd.org>2017-06-11 23:59:24 +0000
commite3568b4b3d922e623c61eacf5d6924be05b522e8 (patch)
tree64e210b26b6b8cbe661841960aa011bc52cb77bb /libcxxabi
parentd1c2302fc5814f3f6d6dff42e1ba7fbc200c2332 (diff)
downloadllvm-e3568b4b3d922e623c61eacf5d6924be05b522e8.zip
llvm-e3568b4b3d922e623c61eacf5d6924be05b522e8.tar.gz
llvm-e3568b4b3d922e623c61eacf5d6924be05b522e8.tar.bz2
build: use POSITION_INDEPENDENT_CODE CMake property
Use the POSITION_INDEPENDENT_CODE target property to indicate that we should be building with -fPIC or the equivalent flag based on the toolchain that we are using. This makes the check more portable and simplifies the flags management. Because we don't want this setting to propagate in the case of an in-tree build, set the property on the targets we construct explicitly rather than setting CMAKE_POSITION_INDEPENDENT_CODE to ON globally. llvm-svn: 305174
Diffstat (limited to 'libcxxabi')
-rw-r--r--libcxxabi/cmake/config-ix.cmake1
-rw-r--r--libcxxabi/src/CMakeLists.txt38
2 files changed, 23 insertions, 16 deletions
diff --git a/libcxxabi/cmake/config-ix.cmake b/libcxxabi/cmake/config-ix.cmake
index 6d1c870..319cdde 100644
--- a/libcxxabi/cmake/config-ix.cmake
+++ b/libcxxabi/cmake/config-ix.cmake
@@ -50,7 +50,6 @@ endif ()
# Check compiler flags
check_c_compiler_flag(-funwind-tables LIBCXXABI_HAS_FUNWIND_TABLES)
-check_cxx_compiler_flag(-fPIC LIBCXXABI_HAS_FPIC_FLAG)
check_cxx_compiler_flag(-fno-exceptions LIBCXXABI_HAS_NO_EXCEPTIONS_FLAG)
check_cxx_compiler_flag(-fno-rtti LIBCXXABI_HAS_NO_RTTI_FLAG)
check_cxx_compiler_flag(-fstrict-aliasing LIBCXXABI_HAS_FSTRICT_ALIASING_FLAG)
diff --git a/libcxxabi/src/CMakeLists.txt b/libcxxabi/src/CMakeLists.txt
index ac2c3a6..d4a68fc 100644
--- a/libcxxabi/src/CMakeLists.txt
+++ b/libcxxabi/src/CMakeLists.txt
@@ -77,7 +77,6 @@ if (MINGW)
endif()
# Setup flags.
-add_compile_flags_if_supported(-fPIC)
add_link_flags_if_supported(-nodefaultlibs)
set(LIBCXXABI_SHARED_LINK_FLAGS)
@@ -110,11 +109,12 @@ endif()
# Add a object library that contains the compiled source files.
add_library(cxxabi_objects OBJECT ${LIBCXXABI_SOURCES} ${LIBCXXABI_HEADERS})
-
set_target_properties(cxxabi_objects
- PROPERTIES
- COMPILE_FLAGS "${LIBCXXABI_COMPILE_FLAGS}"
- )
+ PROPERTIES
+ COMPILE_FLAGS
+ "${LIBCXXABI_COMPILE_FLAGS}"
+ POSITION_INDEPENDENT_CODE
+ ON)
set(LIBCXXABI_TARGETS)
@@ -123,12 +123,17 @@ if (LIBCXXABI_ENABLE_SHARED)
add_library(cxxabi_shared SHARED $<TARGET_OBJECTS:cxxabi_objects>)
target_link_libraries(cxxabi_shared ${LIBCXXABI_LIBRARIES})
set_target_properties(cxxabi_shared
- PROPERTIES
- LINK_FLAGS "${LIBCXXABI_LINK_FLAGS} ${LIBCXXABI_SHARED_LINK_FLAGS}"
- OUTPUT_NAME "c++abi"
- VERSION "1.0"
- SOVERSION "1"
- )
+ PROPERTIES
+ LINK_FLAGS
+ "${LIBCXXABI_LINK_FLAGS} ${LIBCXXABI_SHARED_LINK_FLAGS}"
+ OUTPUT_NAME
+ "c++abi"
+ POSITION_INDEPENDENT_CODE
+ ON
+ SOVERSION
+ "1"
+ VERSION
+ "1.0")
list(APPEND LIBCXXABI_TARGETS "cxxabi_shared")
endif()
@@ -137,10 +142,13 @@ if (LIBCXXABI_ENABLE_STATIC)
add_library(cxxabi_static STATIC $<TARGET_OBJECTS:cxxabi_objects>)
target_link_libraries(cxxabi_static ${LIBCXXABI_LIBRARIES})
set_target_properties(cxxabi_static
- PROPERTIES
- LINK_FLAGS "${LIBCXXABI_LINK_FLAGS}"
- OUTPUT_NAME "c++abi"
- )
+ PROPERTIES
+ LINK_FLAGS
+ "${LIBCXXABI_LINK_FLAGS}"
+ OUTPUT_NAME
+ "c++abi"
+ POSITION_INDEPENDENT_CODE
+ ON)
list(APPEND LIBCXXABI_TARGETS "cxxabi_static")
endif()