summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Pruitt <eric.pruitt@gmail.com>2019-05-29 09:28:07 -0700
committerJohn MacFarlane <jgm@berkeley.edu>2019-05-29 12:28:07 -0400
commitf4895a6c6275c807415c3105db6cba325d579b83 (patch)
treedee4bb4b6250115a3dff540650b62661fae92c98
parenta61c4902f07789d40a717daef710da29e7899485 (diff)
Remove "-rdynamic" flag for static builds (#300)
cmake adds `-rdynamic` on linux, even for static builds. This commit removes it for linux builds by resetting `CMAKE_SHARED_LIBRARY_LINK_C_FLAGS`.
-rwxr-xr-xCMakeLists.txt7
1 files changed, 7 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1107fb3..d9488dd 100755
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -12,6 +12,13 @@ option(CMARK_STATIC "Build static libcmark library" ON)
option(CMARK_SHARED "Build shared libcmark library" ON)
option(CMARK_LIB_FUZZER "Build libFuzzer fuzzing harness" OFF)
+# The Linux modules distributed with CMake add "-rdynamic" to the build flags
+# which is incompatible with static linking under certain configurations.
+# Unsetting CMAKE_SHARED_LIBRARY_LINK_C_FLAGS ensures this does not happen.
+if(CMARK_STATIC AND "${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
+ SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS)
+endif()
+
add_subdirectory(src)
if(CMARK_TESTS AND (CMARK_SHARED OR CMARK_STATIC))
add_subdirectory(api_test)