mirror of
https://github.com/json-c/json-c.git
synced 2026-04-12 00:39:06 +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
|
- set +e
|
||||||
- mkdir -p build || echo "Failed to mkdir build"
|
- mkdir -p build || echo "Failed to mkdir build"
|
||||||
- cd build || echo "Failed to cd build"
|
- cd build || echo "Failed to cd build"
|
||||||
- if [ "$TRAVIS_OS_NAME" = "osx" ]; then
|
- cmake .. || echo "Failed to run cmake"
|
||||||
cmake -DDISABLE_BSYMBOLIC=ON .. ;
|
|
||||||
else
|
|
||||||
cmake .. ;
|
|
||||||
fi || echo "Failed to run cmake"
|
|
||||||
|
|
||||||
script:
|
script:
|
||||||
- make
|
- make
|
||||||
|
|||||||
@@ -270,7 +270,20 @@ if (NOT ("${CMAKE_C_COMPILER_ID}" STREQUAL "MSVC"))
|
|||||||
add_compile_options("-D_REENTRANT")
|
add_compile_options("-D_REENTRANT")
|
||||||
endif()
|
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")
|
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-Bsymbolic-functions")
|
||||||
# XXX need cmake>=3.13 for this:
|
# XXX need cmake>=3.13 for this:
|
||||||
#add_link_options("-Wl,-Bsymbolic-functions")
|
#add_link_options("-Wl,-Bsymbolic-functions")
|
||||||
|
|||||||
Reference in New Issue
Block a user