From: Arne Schwabe Date: Wed, 12 Jul 2023 09:55:29 +0000 (+0200) Subject: Check if the -wrap argument is actually supported by the platform's ld X-Git-Tag: v2.7_alpha1~427 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4ef76f0ee4e122dcd616e1b1e2d652562ab10756;p=thirdparty%2Fopenvpn.git Check if the -wrap argument is actually supported by the platform's ld This avoids build errors on macOS. Also the test_tls_crypt command works just fine on FreeBSD with its linkers, so do not make that test Linux only. Patch v2: allow running with old cmake version (cmake 3 on RHEL7 with EPEL is only 3.17) Patch v3: add OPTIONAL keyword to Incldue required by some cmake versions Change-Id: Id26676bdc576c7d3d6726afa43fe6c7a397c579b Signed-off-by: Arne Schwabe Acked-by: Frank Lichtenheld Message-Id: <20230712095529.570306-1-arne@rfc2549.org> URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg26850.html Signed-off-by: Gert Doering --- diff --git a/CMakeLists.txt b/CMakeLists.txt index 2d0cd5dd0..7dae6655d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,6 +16,7 @@ find_package(PkgConfig REQUIRED) include(CheckSymbolExists) include(CheckIncludeFiles) include(CheckCCompilerFlag) +include(CheckLinkerFlag OPTIONAL) include(CheckTypeSize) include(CheckStructHasMember) include(CTest) @@ -564,18 +565,24 @@ if (BUILD_TESTING) ) endif () - if (NOT MSVC) - # MSVC does not support --wrap + # MSVC and Apple's LLVM ld do not support --wrap + # This test requires cmake >= 3.18, so check if check_linker_flag is + # available + if (COMMAND check_linker_flag) + check_linker_flag(C -Wl,--wrap=parse_line LD_SUPPORTS_WRAP) + endif() + + if (${LD_SUPPORTS_WRAP}) list(APPEND unit_tests "test_argv" + "test_tls_crypt" ) endif () - # These tests work on only on Linux since they depend on special linker features + # These tests work on only on Linux since they depend on special Linux features if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux") list(APPEND unit_tests "test_networking" - "test_tls_crypt" ) endif ()