mirror of
https://github.com/json-c/json-c.git
synced 2026-03-23 15:09:07 +08:00
CMake: Check whether BSYMBOLIC is supported by the linker.
Linking with '-Bsymbolic-functions' is supported for ELF-binaries, only.
This commit is contained in:
@@ -128,11 +128,7 @@ before_script:
|
||||
- set +e
|
||||
- mkdir -p build || echo "Failed to mkdir build"
|
||||
- cd build || echo "Failed to cd build"
|
||||
- if [ "$TRAVIS_OS_NAME" = "osx" ]; then
|
||||
cmake -DDISABLE_BSYMBOLIC=ON .. ;
|
||||
else
|
||||
cmake .. ;
|
||||
fi || echo "Failed to run cmake"
|
||||
- cmake .. || echo "Failed to run cmake"
|
||||
|
||||
script:
|
||||
- make
|
||||
|
||||
@@ -270,7 +270,20 @@ if (NOT ("${CMAKE_C_COMPILER_ID}" STREQUAL "MSVC"))
|
||||
add_compile_options("-D_REENTRANT")
|
||||
endif()
|
||||
|
||||
if (DISABLE_BSYMBOLIC STREQUAL "OFF")
|
||||
# OSX Mach-O doesn't support linking with '-Bsymbolic-functions'.
|
||||
# Others may not support it, too.
|
||||
list(APPEND CMAKE_REQUIRED_LIBRARIES "-Wl,-Bsymbolic-functions")
|
||||
check_c_source_compiles(
|
||||
[=[
|
||||
int main ()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
]=]
|
||||
BSYMBOLIC_WORKS
|
||||
)
|
||||
list(REMOVE_ITEM CMAKE_REQUIRED_LIBRARIES "-Wl,-Bsymbolic-functions")
|
||||
if (DISABLE_BSYMBOLIC STREQUAL "OFF" AND BSYMBOLIC_WORKS)
|
||||
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-Bsymbolic-functions")
|
||||
# XXX need cmake>=3.13 for this:
|
||||
#add_link_options("-Wl,-Bsymbolic-functions")
|
||||
|
||||
Reference in New Issue
Block a user