cmake: Correctly set _GNU_SOURCE
authorAndreas Schneider <asn@samba.org>
Tue, 7 May 2019 10:57:32 +0000 (12:57 +0200)
committerAndreas Schneider <asn@cryptomilk.org>
Mon, 3 Jun 2019 10:54:22 +0000 (12:54 +0200)
Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Gary Lockyer <gary@samba.org>
ConfigureChecks.cmake
src/CMakeLists.txt
tests/CMakeLists.txt

index 444de9b81125450eab784a03efbd859930dfc678..affe7c6cf11dcf1366d25de9dbf9fd865f0af8d0 100644 (file)
@@ -82,13 +82,14 @@ endif (HAVE_SETGROUPS)
 check_function_exists(syscall HAVE_SYSCALL)
 
 if (HAVE_SYSCALL)
-    add_definitions(-D_GNU_SOURCE)
+    set(CMAKE_REQUIRED_DEFINITIONS -D_GNU_SOURCE)
 
     check_prototype_definition(syscall
         "int syscall(int sysno, ...)"
         "-1"
         "unistd.h;sys/syscall.h"
         HAVE_SYSCALL_INT)
+    set(CMAKE_REQUIRED_DEFINITIONS)
 endif (HAVE_SYSCALL)
 
 # OPTIONS
index 5f63602f1a40a67be629be8e0a442096eea5f047..ba07726f9182343c9322ff3b42de5543eddd24ab 100644 (file)
@@ -4,7 +4,8 @@ add_library(uid_wrapper SHARED uid_wrapper.c)
 
 target_compile_options(uid_wrapper
                        PRIVATE
-                           ${DEFAULT_C_COMPILE_FLAGS})
+                           ${DEFAULT_C_COMPILE_FLAGS}
+                           -D_GNU_SOURCE)
 
 target_include_directories(uid_wrapper
                            PRIVATE ${CMAKE_BINARY_DIR})
index ad566747cd55f1e7e7c7a677dc1e6240236638e0..a10055d17d760653d63f36d9a990453448ebe539 100644 (file)
@@ -49,6 +49,10 @@ if (BSD)
 endif (BSD)
 
 add_executable(mock_exec_uid mock_exec_uid.c)
+target_compile_options(mock_exec_uid
+                       PRIVATE
+                           ${DEFAULT_C_COMPILE_FLAGS}
+                           -D_GNU_SOURCE)
 target_include_directories(mock_exec_uid
                            PRIVATE ${CMAKE_BINARY_DIR} ${CMOCKA_INCLUDE_DIR})
 
@@ -111,7 +115,7 @@ endif (HAVE_LINUX_32BIT_SYSCALLS)
 foreach(_UWRAP_TEST ${UWRAP_TESTS})
     add_cmocka_test(${_UWRAP_TEST}
                     SOURCES ${_UWRAP_TEST}.c
-                    COMPILE_OPTIONS ${DEFAULT_C_COMPILE_FLAGS}
+                    COMPILE_OPTIONS ${DEFAULT_C_COMPILE_FLAGS} -D_GNU_SOURCE
                     LINK_LIBRARIES ${TESTSUITE_LIBRARIES}
                     LINK_OPTIONS ${DEFAULT_LINK_FLAGS})
 
@@ -128,7 +132,7 @@ target_compile_options(uwrap_enabled
 
 add_cmocka_test(test_uwrap_enabled
                 SOURCES test_uwrap_enabled.c
-                COMPILE_OPTIONS ${DEFAULT_C_COMPILE_FLAGS}
+                COMPILE_OPTIONS ${DEFAULT_C_COMPILE_FLAGS} -D_GNU_SOURCE
                 LINK_LIBRARIES ${TESTSUITE_LIBRARIES} uwrap_enabled
                 LINK_OPTIONS ${DEFAULT_LINK_FLAGS})
 target_include_directories(test_uwrap_enabled
@@ -137,7 +141,7 @@ add_cmocka_test_environment(test_uwrap_enabled)
 
 add_cmocka_test(test_uwrap_disabled
                 SOURCES test_uwrap_disabled.c
-                COMPILE_OPTIONS ${DEFAULT_C_COMPILE_FLAGS}
+                COMPILE_OPTIONS ${DEFAULT_C_COMPILE_FLAGS} -D_GNU_SOURCE
                 LINK_LIBRARIES ${TESTSUITE_LIBRARIES}
                 LINK_OPTIONS ${DEFAULT_LINK_FLAGS})
 target_include_directories(test_uwrap_disabled
@@ -150,7 +154,7 @@ set_property(
 
 add_cmocka_test(test_thread_setuid
                 SOURCES test_thread_setuid.c
-                COMPILE_OPTIONS ${DEFAULT_C_COMPILE_FLAGS}
+                COMPILE_OPTIONS ${DEFAULT_C_COMPILE_FLAGS} -D_GNU_SOURCE
                 LINK_LIBRARIES ${TESTSUITE_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT}
                 LINK_OPTIONS ${DEFAULT_LINK_FLAGS})
 target_include_directories(test_thread_setuid
@@ -159,7 +163,7 @@ add_cmocka_test_environment(test_thread_setuid UID_WRAPPER_ROOT=1 CMOCKA_TEST_AB
 
 add_cmocka_test(test_thread_setreuid
                 SOURCES test_thread_setreuid.c
-                COMPILE_OPTIONS ${DEFAULT_C_COMPILE_FLAGS}
+                COMPILE_OPTIONS ${DEFAULT_C_COMPILE_FLAGS} -D_GNU_SOURCE
                 LINK_LIBRARIES ${TESTSUITE_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT}
                 LINK_OPTIONS ${DEFAULT_LINK_FLAGS})
 target_include_directories(test_thread_setreuid
@@ -168,7 +172,7 @@ add_cmocka_test_environment(test_thread_setreuid UID_WRAPPER_ROOT=1 CMOCKA_TEST_
 
 add_cmocka_test(test_thread_sync_setreuid
                 SOURCES test_thread_sync_setreuid.c
-                COMPILE_OPTIONS ${DEFAULT_C_COMPILE_FLAGS}
+                COMPILE_OPTIONS ${DEFAULT_C_COMPILE_FLAGS} -D_GNU_SOURCE
                 LINK_LIBRARIES ${TESTSUITE_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT}
                 LINK_OPTIONS ${DEFAULT_LINK_FLAGS})
 target_include_directories(test_thread_sync_setreuid
@@ -177,7 +181,7 @@ add_cmocka_test_environment(test_thread_sync_setreuid UID_WRAPPER_ROOT=1 CMOCKA_
 
 add_cmocka_test(test_glibc_thread_support
                 SOURCES test_glibc_thread_support.c
-                COMPILE_OPTIONS ${DEFAULT_C_COMPILE_FLAGS}
+                COMPILE_OPTIONS ${DEFAULT_C_COMPILE_FLAGS} -D_GNU_SOURCE
                 LINK_LIBRARIES ${TESTSUITE_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT}
                 LINK_OPTIONS ${DEFAULT_LINK_FLAGS})
 target_include_directories(test_glibc_thread_support
@@ -186,4 +190,8 @@ add_cmocka_test_environment(test_glibc_thread_support UID_WRAPPER_ROOT=1 CMOCKA_
 
 if (LINUX)
     add_executable(getuids getuids.c)
+    target_compile_options(getuids
+                           PRIVATE
+                               ${DEFAULT_C_COMPILE_FLAGS}
+                               -D_GNU_SOURCE)
 endif (LINUX)