elseif(WITH_SANITIZER STREQUAL "Undefined")
add_undefined_sanitizer()
endif()
+
+#
+# Check whether compiler supports -fno-semantic-interposition parameter
+#
+set(CMAKE_REQUIRED_FLAGS "-fno-semantic-interposition")
+check_c_source_compiles(
+ "int main() { return 0; }"
+ HAVE_NO_INTERPOSITION
+)
+set(CMAKE_REQUIRED_FLAGS)
+
#
# Check if we can hide zlib internal symbols that are linked between separate source files using hidden
#
endif()
if(UNIX)
+ if(HAVE_NO_INTERPOSITION)
+ set_target_properties(zlib PROPERTIES COMPILE_FLAGS "-fno-semantic-interposition")
+ endif()
if(NOT APPLE)
set_target_properties(zlib PROPERTIES LINK_FLAGS
"-Wl,--version-script,\"${CMAKE_CURRENT_SOURCE_DIR}/zlib${SUFFIX}.map\"")
leave 1
fi
+# Check for -fno-semantic-interposition compiler support
+echo "" > test.c
+ cat > $test.c <<EOF
+int main() { return 0; }
+EOF
+if test "$gcc" -eq 1 && ($cc $CFLAGS -fno-semantic-interposition -c $test.c) >> configure.log 2>&1; then
+ echo "Checking for -no-semantic-interposition... Yes." | tee -a configure.log
+ SFLAGS="$SFLAGS -fno-semantic-interposition"
+else
+ echo "Checking for -no-semantic-interposition... No." | tee -a configure.log
+fi
+
# see if we can hide zlib internal symbols that are linked between separate source files using hidden
if test "$gcc" -eq 1; then
echo >> configure.log