From 507c787b444632568a915a3e06878be5e798c270 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 4 Nov 2021 15:18:00 +0100 Subject: [PATCH] Don't build dlopen when building for Windows Windows doesn't have dlopen, not even Linux emulation environments such as MinGW. Signed-off-by: Gilles Peskine --- programs/Makefile | 16 ++++++++++++++-- programs/test/CMakeLists.txt | 3 ++- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/programs/Makefile b/programs/Makefile index 7b9c5dd0a..2d0f70582 100644 --- a/programs/Makefile +++ b/programs/Makefile @@ -61,6 +61,18 @@ ifdef ZLIB LOCAL_LDFLAGS += -lz endif +# Only build the dlopen test in shared library builds, and not when building +# for Windows. +ifdef BUILD_DLOPEN +# Don't override the value +else ifdef WINDOWS_BUILD +BUILD_DLOPEN = +else ifdef SHARED +BUILD_DLOPEN = y +else +BUILD_DLOPEN = +endif + APPS = \ aes/crypt_and_hash$(EXEXT) \ hash/generic_sum$(EXEXT) \ @@ -120,7 +132,7 @@ ifdef PTHREAD APPS += ssl/ssl_pthread_server$(EXEXT) endif -ifdef SHARED +ifdef BUILD_DLOPEN APPS += test/dlopen endif @@ -328,7 +340,7 @@ test/cpp_dummy_build$(EXEXT): test/cpp_dummy_build.cpp $(DEP) echo " CXX test/cpp_dummy_build.cpp" $(CXX) $(LOCAL_CXXFLAGS) $(CXXFLAGS) test/cpp_dummy_build.cpp $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ -ifdef SHARED +ifdef BUILD_DLOPEN test/dlopen$(EXEXT): test/dlopen.c $(DEP) echo " CC test/dlopen.c" # Do not link any test objects (that would bring in a static dependency on diff --git a/programs/test/CMakeLists.txt b/programs/test/CMakeLists.txt index a30c89c58..8ecab4bf0 100644 --- a/programs/test/CMakeLists.txt +++ b/programs/test/CMakeLists.txt @@ -35,7 +35,8 @@ if(TEST_CPP) target_link_libraries(cpp_dummy_build ${mbedcrypto_target}) endif() -if(USE_SHARED_MBEDTLS_LIBRARY) +if(USE_SHARED_MBEDTLS_LIBRARY AND + NOT ${CMAKE_SYSTEM_NAME} MATCHES "[Ww][Ii][Nn]") add_executable(dlopen "dlopen.c") target_include_directories(dlopen PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../include) if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")