Skip to content

Commit e514893

Browse files
committed
Refuse to dynamically link with own build
1 parent b60d9b5 commit e514893

File tree

1 file changed

+25
-17
lines changed

1 file changed

+25
-17
lines changed

external/libseccomp.cmake

Lines changed: 25 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -20,21 +20,30 @@ IF(NOT DEFINED LIBSECCOMP_BUILD_OWN OR LIBSECCOMP_BUILD_OWN STREQUAL "NO")
2020
NAMES seccomp.h
2121
PATHS "${LIBSECCOMP_PREFIX}" "${LIBSECCOMP_PREFIX}/usr/include"
2222
)
23-
EXECUTE_PROCESS(
24-
COMMAND
25-
bash -c "
26-
exe=`mktemp`
27-
echo -e '#include<stdio.h>\n#include<seccomp.h>\nint main(){printf(\"%d.%d\",SCMP_VER_MAJOR,SCMP_VER_MINOR);}' \
28-
| gcc -I ${libseccomp_INC_PATH} -xc /dev/stdin -o $exe >/dev/null 2>&1 && $exe
29-
rc=$?
30-
rm -f $exe
31-
exit $rc"
32-
OUTPUT_VARIABLE libseccomp_VERSION
33-
RESULT_VARIABLE libseccomp_VERSION_RC
34-
)
35-
IF(NOT libseccomp_VERSION_RC EQUAL 0 OR libseccomp_VERSION VERSION_LESS 2.3)
36-
SET(libseccomp_LIB_PATH "libseccomp_LIB_PATH-NOTFOUND")
37-
SET(libseccomp_INC_PATH "libseccomp_INC_PATH-NOTFOUND")
23+
IF(libseccomp_LIB_FILE_NAME MATCHES "NOTFOUND")
24+
MESSAGE("-- Libseccomp not found")
25+
ELSE()
26+
EXECUTE_PROCESS(
27+
COMMAND
28+
bash -c "
29+
exe=`mktemp`
30+
echo -e '#include<stdio.h>\n#include<seccomp.h>\nint main(){printf(\"%d.%d\",SCMP_VER_MAJOR,SCMP_VER_MINOR);}' \
31+
| gcc -I ${libseccomp_INC_PATH} -xc /dev/stdin -o $exe >/dev/null 2>&1 && $exe
32+
rc=$?
33+
rm -f $exe
34+
exit $rc"
35+
OUTPUT_VARIABLE libseccomp_VERSION
36+
RESULT_VARIABLE libseccomp_VERSION_RC
37+
)
38+
IF(NOT libseccomp_VERSION_RC EQUAL 0 OR libseccomp_VERSION VERSION_LESS 2.3)
39+
SET(libseccomp_LIB_PATH "libseccomp_LIB_PATH-NOTFOUND")
40+
SET(libseccomp_INC_PATH "libseccomp_INC_PATH-NOTFOUND")
41+
IF (NOT libseccomp_VERSION_RC EQUAL 0)
42+
MESSAGE("-- failed to compile Libseccomp test program")
43+
ELSE()
44+
MESSAGE("-- found Libseccomp in version ${libseccomp_VERSION}, but minimal required version is 2.3")
45+
ENDIF()
46+
ENDIF()
3847
ENDIF()
3948
ENDIF()
4049

@@ -48,7 +57,6 @@ IF((NOT DEFINED LIBSECCOMP_BUILD_OWN AND (NOT EXISTS "${libseccomp_LIB_PATH}" OR
4857
<SOURCE_DIR>/configure
4958
--prefix=<INSTALL_DIR>
5059
--enable-static
51-
--enable-shared
5260
BUILD_COMMAND
5361
make
5462
INSTALL_COMMAND
@@ -60,7 +68,7 @@ IF((NOT DEFINED LIBSECCOMP_BUILD_OWN AND (NOT EXISTS "${libseccomp_LIB_PATH}" OR
6068
IF(LINK STREQUAL "STATIC")
6169
SET(libseccomp_LIB_PATH "${INSTALL_DIR}/lib/libseccomp.a")
6270
ELSE()
63-
SET(libseccomp_LIB_PATH "${INSTALL_DIR}/lib/libseccomp.so")
71+
MESSAGE(FATAL_ERROR "-- Can't dynamically link to custom Libseccomp build")
6472
ENDIF()
6573
SET(libseccomp_INC_PATH "${INSTALL_DIR}/include")
6674

0 commit comments

Comments
 (0)