Deactivate _FORTIFY_SOURCE in jitterentropy-base.c master
authorHauke Mehrtens <hauke@hauke-m.de>
Mon, 30 Oct 2023 20:39:26 +0000 (21:39 +0100)
committerHauke Mehrtens <hauke@hauke-m.de>
Tue, 31 Oct 2023 11:45:22 +0000 (12:45 +0100)
This fixes compilation with glibc.

_FORTIFY_SOURCE only works with compiler optimizations activated.
We have to deactivate it when we set -O0.

This fixes the following error message with glibc:
 error: #warning _FORTIFY_SOURCE requires compiling with optimization (-O) [-Werror=cpp]

musl libc does not show an error message in this case, but has the same
internal problems.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
CMakeLists.txt

index a1ee0c1e9cc3e5c20290984c893b4dbd5fda2fec..f415f8740bfaca022d282b187834e5d4247da4ff 100644 (file)
@@ -22,8 +22,11 @@ ADD_EXECUTABLE(urngd
 )
 TARGET_LINK_LIBRARIES(urngd ${ubox})
 
-# jitter RNG must not be compiled with optimizations
-SET_SOURCE_FILES_PROPERTIES(${JTEN_DIR}/jitterentropy-base.c PROPERTIES COMPILE_FLAGS -O0)
+# jitter RNG must not be compiled with optimizations, _FORTIFY_SOURCE needs optimizations
+SET_PROPERTY(
+  SOURCE ${JTEN_DIR}/jitterentropy-base.c
+  APPEND PROPERTY COMPILE_OPTIONS -U_FORTIFY_SOURCE -O0
+)
 
 INSTALL(TARGETS urngd RUNTIME DESTINATION ${CMAKE_INSTALL_SBINDIR})