Issue #508: -fPIC to link libjson-c.a with libs
json-c has symbol collisions with other popular C JSON libraries. To prevent random crashes in downstream applications that may use a library which depends on json-c, the solution is to statically link libjson-c.a into those libraries. `-fPIC`/`-fPIE` is required when building a `.a` so it can be linked into a `.so`.
This commit is contained in:
@@ -110,6 +110,14 @@ if (MSVC)
|
||||
list(APPEND CMAKE_REQUIRED_FLAGS /wd4996)
|
||||
endif()
|
||||
|
||||
if (NOT DISABLE_STATIC_FPIC)
|
||||
# Use '-fPIC'/'-fPIE' option.
|
||||
# This will allow other libraries to statically link in libjson-c.a
|
||||
# which in turn prevents crashes in downstream apps that may use
|
||||
# a different JSON library with identical symbol names.
|
||||
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||
endif()
|
||||
|
||||
check_include_file("fcntl.h" HAVE_FCNTL_H)
|
||||
check_include_file("inttypes.h" HAVE_INTTYPES_H)
|
||||
check_include_file(stdarg.h HAVE_STDARG_H)
|
||||
|
||||
Reference in New Issue
Block a user