cmake: Check for getrandom system call
authorFlorian Fainelli <f.fainelli@gmail.com>
Sun, 5 Feb 2017 02:41:34 +0000 (18:41 -0800)
committerJohn Crispin <john@phrozen.org>
Thu, 9 Feb 2017 08:21:02 +0000 (09:21 +0100)
In case we are building against a kernel that is too old and does not
support SYS_getrandom, error out with a message indicating so.

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
CMakeLists.txt

index 6cf0c934aac6b8edc3ca90ad4c5bac7a5374d831..9033493c7a3bf7db4739b3f2dc56f1476f733285 100644 (file)
@@ -16,10 +16,17 @@ IF(DEBUG)
   ADD_DEFINITIONS(-DDEBUG -g3)
 ENDIF()
 
-ADD_EXECUTABLE(getrandom getrandom.c)
-INSTALL(TARGETS getrandom
-       RUNTIME DESTINATION bin
-)
+INCLUDE (CheckSymbolExists)
+CHECK_SYMBOL_EXISTS(SYS_getrandom sycall.h getrandom)
+
+IF(getrandom)
+  ADD_EXECUTABLE(getrandom getrandom.c)
+  INSTALL(TARGETS getrandom
+          RUNTIME DESTINATION bin
+  )
+ELSE()
+  message( FATAL_ERROR "Kernel too old, missing SYS_getrandom system call")
+ENDIF()
 
 ADD_EXECUTABLE(kmodloader kmodloader.c)
 TARGET_LINK_LIBRARIES(kmodloader ubox)