Mercurial > hg > orthanc
changeset 4763:bbe70c24bc60 Orthanc-1.9.6
hotfix for LSB precompiled binaries of Orthanc 1.9.6: reintegration of changeset 4761
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Mon, 09 Aug 2021 08:49:42 +0200 |
parents | b1319a5304fb |
children | cc02a2aa8bab 2cac948b6169 |
files | OrthancServer/CMakeLists.txt OrthancServer/Resources/VersionScriptOrthanc.map |
diffstat | 2 files changed, 23 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/OrthancServer/CMakeLists.txt Wed Jul 21 10:26:20 2021 +0200 +++ b/OrthancServer/CMakeLists.txt Mon Aug 09 08:49:42 2021 +0200 @@ -397,6 +397,16 @@ target_link_libraries(Orthanc ServerLibrary CoreLibrary ${DCMTK_LIBRARIES}) +if ("${CMAKE_SYSTEM_VERSION}" STREQUAL "LinuxStandardBase") + # The link flag below hides all the global functions so that a Linux + # Standard Base (LSB) build of Orthanc can load plugins that are not + # built using LSB (new in Orthanc 1.9.7) + set_property( + TARGET Orthanc + PROPERTY LINK_FLAGS "-Wl,--version-script=${CMAKE_SOURCE_DIR}/Resources/VersionScriptOrthanc.map" + ) +endif() + install( TARGETS Orthanc RUNTIME DESTINATION sbin
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/OrthancServer/Resources/VersionScriptOrthanc.map Mon Aug 09 08:49:42 2021 +0200 @@ -0,0 +1,13 @@ +# This is a version-script for the main Orthanc binary, that hides all +# the global functions of the executable so that a Linux Standard Base +# (LSB) build of Orthanc can load plugins that are not built using +# LSB. Otherwise, the dynamic loader of the plugins will try to use +# the global functions published by the Orthanc server, which results +# in a segmentation fault if the data structures don't have the same +# memory layout (e.g. debug vs. release, or another version of some +# C/C++ library used both by Orthanc, typically jsoncpp). + +{ +local: + *; +};