From 1c311fd5f18b53eee3b511e6f8e725bdc1a9bd91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javier=20Jaramago=20Fern=C3=A1ndez?= Date: Fri, 27 Feb 2026 11:17:40 +0100 Subject: [PATCH 1/4] fix: coredumper build in newer CMake versions --- deps/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deps/Makefile b/deps/Makefile index c7a9783f3..2819d79e4 100644 --- a/deps/Makefile +++ b/deps/Makefile @@ -128,7 +128,7 @@ ev: libev/libev/.libs/libev.a coredumper/coredumper/src/libcoredumper.a: cd coredumper && rm -rf coredumper-*/ || true cd coredumper && tar -zxf coredumper-*.tar.gz - cd coredumper/coredumper && cmake . -DBUILD_TESTING=OFF -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Debug + cd coredumper/coredumper && cmake . -DBUILD_TESTING=OFF -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Debug -DCMAKE_POLICY_VERSION_MINIMUM=3.5 cd coredumper/coredumper && CC=${CC} CXX=${CXX} ${MAKE} coredumper: coredumper/coredumper/src/libcoredumper.a From f88dddaefb4e9067f5e1562e78e7e1ad1e6b7e00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javier=20Jaramago=20Fern=C3=A1ndez?= Date: Fri, 27 Feb 2026 11:50:30 +0100 Subject: [PATCH 2/4] fix: set maxdepth for OpenSSL libraries search Previously OpenSSL library search didn't specify the depth of the search. This results in long waits during building searching in unnecessary system directories. The previous is unnecessary. When pkg-config is requested with 'libdir', the expectation is that the directory in which the binaries are located is returned. Due to this, the search can be contained only in that target directory. --- common_mk/openssl_flags.mk | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/common_mk/openssl_flags.mk b/common_mk/openssl_flags.mk index 461728f3b..38f277992 100644 --- a/common_mk/openssl_flags.mk +++ b/common_mk/openssl_flags.mk @@ -22,28 +22,28 @@ ifeq ($(CUSTOM_OPENSSL_PATH),) ifeq ($(OPENSSL_PACKAGE),openssl3) SSL_IDIR := $(shell pkg-config --cflags $(OPENSSL_PACKAGE) | sed -E 's/-I/ /g' | awk '{for(i=1;i<=NF;i++) if($$i ~ /^\//) print $$i}' | head -n 1) SSL_LDIR := $(shell pkg-config --variable=libdir $(OPENSSL_PACKAGE)) - LIB_SSL_PATH := $(shell find $(SSL_LDIR) -name "libssl.so.3" 2>/dev/null | head -n 1) - LIB_CRYPTO_PATH := $(shell find $(SSL_LDIR) -name "libcrypto.so.3" 2>/dev/null | head -n 1) + LIB_SSL_PATH := $(shell find $(SSL_LDIR) -maxdepth 1 -name "libssl.so.3" 2>/dev/null | head -n 1) + LIB_CRYPTO_PATH := $(shell find $(SSL_LDIR) -maxdepth 1 -name "libcrypto.so.3" 2>/dev/null | head -n 1) else SSL_IDIR := $(shell export PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1; export PKG_CONFIG_ALLOW_SYSTEM_LIBS=1; pkg-config --cflags $(OPENSSL_PACKAGE) | sed -E 's/-I/ /g' | awk '{for(i=1;i<=NF;i++) if($$i ~ /^\//) print $$i}' | head -n 1) SSL_LDIR := $(shell pkg-config --variable=libdir $(OPENSSL_PACKAGE)) ifeq ($(UNAME_S),Darwin) - LIB_SSL_PATH := $(shell find $(SSL_LDIR) -name "libssl.dylib" 2>/dev/null | head -n 1) + LIB_SSL_PATH := $(shell find $(SSL_LDIR) -maxdepth 1 -name "libssl.dylib" 2>/dev/null | head -n 1) ifeq ($(LIB_SSL_PATH),) - LIB_SSL_PATH := $(shell find $(SSL_LDIR) -name "libssl.a" 2>/dev/null | head -n 1) + LIB_SSL_PATH := $(shell find $(SSL_LDIR) -maxdepth 1 -name "libssl.a" 2>/dev/null | head -n 1) endif - LIB_CRYPTO_PATH := $(shell find $(SSL_LDIR) -name "libcrypto.dylib" 2>/dev/null | head -n 1) + LIB_CRYPTO_PATH := $(shell find $(SSL_LDIR) -maxdepth 1 -name "libcrypto.dylib" 2>/dev/null | head -n 1) ifeq ($(LIB_CRYPTO_PATH),) - LIB_CRYPTO_PATH := $(shell find $(SSL_LDIR) -name "libcrypto.a" 2>/dev/null | head -n 1) + LIB_CRYPTO_PATH := $(shell find $(SSL_LDIR) -maxdepth 1 -name "libcrypto.a" 2>/dev/null | head -n 1) endif else - LIB_SSL_PATH := $(shell find $(SSL_LDIR) -name "libssl.so*" 2>/dev/null | head -n 1) + LIB_SSL_PATH := $(shell find $(SSL_LDIR) -maxdepth 1 -name "libssl.so*" 2>/dev/null | head -n 1) ifeq ($(LIB_SSL_PATH),) - LIB_SSL_PATH := $(shell find $(SSL_LDIR) -name "libssl.a" 2>/dev/null | head -n 1) + LIB_SSL_PATH := $(shell find $(SSL_LDIR) -maxdepth 1 -name "libssl.a" 2>/dev/null | head -n 1) endif - LIB_CRYPTO_PATH := $(shell find $(SSL_LDIR) -name "libcrypto.so*" 2>/dev/null | head -n 1) + LIB_CRYPTO_PATH := $(shell find $(SSL_LDIR) -maxdepth 1 -name "libcrypto.so*" 2>/dev/null | head -n 1) ifeq ($(LIB_CRYPTO_PATH),) - LIB_CRYPTO_PATH := $(shell find $(SSL_LDIR) -name "libcrypto.a" 2>/dev/null | head -n 1) + LIB_CRYPTO_PATH := $(shell find $(SSL_LDIR) -maxdepth 1 -name "libcrypto.a" 2>/dev/null | head -n 1) endif endif endif @@ -55,22 +55,22 @@ else SSL_LDIR := $(CUSTOM_OPENSSL_PATH)/lib64 endif ifeq ($(UNAME_S),Darwin) - LIB_SSL_PATH := $(shell find $(SSL_LDIR) -name "libssl.dylib" 2>/dev/null | head -n 1) + LIB_SSL_PATH := $(shell find $(SSL_LDIR) -maxdepth 1 -name "libssl.dylib" 2>/dev/null | head -n 1) ifeq ($(LIB_SSL_PATH),) - LIB_SSL_PATH := $(shell find $(SSL_LDIR) -name "libssl.a" 2>/dev/null | head -n 1) + LIB_SSL_PATH := $(shell find $(SSL_LDIR) -maxdepth 1 -name "libssl.a" 2>/dev/null | head -n 1) endif - LIB_CRYPTO_PATH := $(shell find $(SSL_LDIR) -name "libcrypto.dylib" 2>/dev/null | head -n 1) + LIB_CRYPTO_PATH := $(shell find $(SSL_LDIR) -maxdepth 1 -name "libcrypto.dylib" 2>/dev/null | head -n 1) ifeq ($(LIB_CRYPTO_PATH),) - LIB_CRYPTO_PATH := $(shell find $(SSL_LDIR) -name "libcrypto.a" 2>/dev/null | head -n 1) + LIB_CRYPTO_PATH := $(shell find $(SSL_LDIR) -maxdepth 1 -name "libcrypto.a" 2>/dev/null | head -n 1) endif else - LIB_SSL_PATH := $(shell find $(SSL_LDIR) -name "libssl.so" 2>/dev/null | head -n 1) + LIB_SSL_PATH := $(shell find $(SSL_LDIR) -maxdepth 1 -name "libssl.so" 2>/dev/null | head -n 1) ifeq ($(LIB_SSL_PATH),) - LIB_SSL_PATH := $(shell find $(SSL_LDIR) -name "libssl.a" 2>/dev/null | head -n 1) + LIB_SSL_PATH := $(shell find $(SSL_LDIR) -maxdepth 1 -name "libssl.a" 2>/dev/null | head -n 1) endif - LIB_CRYPTO_PATH := $(shell find $(SSL_LDIR) -name "libcrypto.so" 2>/dev/null | head -n 1) + LIB_CRYPTO_PATH := $(shell find $(SSL_LDIR) -maxdepth 1 -name "libcrypto.so" 2>/dev/null | head -n 1) ifeq ($(LIB_CRYPTO_PATH),) - LIB_CRYPTO_PATH := $(shell find $(SSL_LDIR) -name "libcrypto.a" 2>/dev/null | head -n 1) + LIB_CRYPTO_PATH := $(shell find $(SSL_LDIR) -maxdepth 1 -name "libcrypto.a" 2>/dev/null | head -n 1) endif endif $(info Using custom OpenSSL path: $(CUSTOM_OPENSSL_PATH)) @@ -88,4 +88,4 @@ else endif else $(error Warning: OpenSSL headers (SSL_IDIR) not found. Exiting. Please install OpenSSL version 3.) -endif \ No newline at end of file +endif From 2bfa23665bfbcd9d43ec0523b04231759b68626c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javier=20Jaramago=20Fern=C3=A1ndez?= Date: Fri, 27 Feb 2026 11:58:10 +0100 Subject: [PATCH 3/4] fix: compilation of test dep 'mysql-connector-c 5.7' in newer CMake (> 4) Compilation for 'mysql-connector-c' for 5.7 is broken in newer CMake versions. There is no simple around this, since CMake 4 introduces multiple breaking changes and 'CMAKE_POLICY_VERSION_MINIMUM' isn't sufficient to fix this issues. Due to this, the simplest fix is to install in the testing environment CMake3. This fixed version of CMake should be used specifically for building this dependency. Arch Linux has a package that could be used as reference https://aur.archlinux.org/packages/cmake3. --- test/deps/Makefile | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/test/deps/Makefile b/test/deps/Makefile index 4c00e2d6e..bb9983bea 100644 --- a/test/deps/Makefile +++ b/test/deps/Makefile @@ -53,7 +53,10 @@ ifeq ($(UNAME_S),Darwin) cd mysql-connector-c/mysql-connector-c && cmake . -DWITH_BOOST=./boost -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="-O0 -ggdb -DNDEBUG -fPIC" -DCMAKE_POLICY_VERSION_MINIMUM=3.5 -DWITH_SSL=$$(brew --prefix openssl@3) -DOPENSSL_ROOT_DIR=$$(brew --prefix openssl@3) else cd mysql-connector-c && ln -fsT $$(ls -1d mysql-5.7.*/) mysql-connector-c - cd mysql-connector-c/mysql-connector-c && cmake . -DWITH_BOOST=./boost -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="-O0 -ggdb -DNDEBUG -fPIC" -DCMAKE_POLICY_VERSION_MINIMUM=3.5 + cd mysql-connector-c/mysql-connector-c && cmake3 . -DWITH_BOOST=./boost \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_C_FLAGS="-Wno-incompatible-pointer-types" \ + -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="-O0 -ggdb -DNDEBUG -fPIC -Wno-incompatible-pointer-types" \ + -DCMAKE_POLICY_VERSION_MINIMUM=3.5 endif ifeq ($(UNAME_S),Darwin) cd mysql-connector-c/mysql-connector-c && CC=${CC} CXX=${CXX} ${MAKE} -j1 mysqlclient mysql From 131e69f94ac979ed39fcf26684524c39d3461a75 Mon Sep 17 00:00:00 2001 From: Rene Cannao Date: Fri, 6 Mar 2026 21:14:00 +0000 Subject: [PATCH 4/4] fix: portability and macOS compatibility for test dependencies - Use CMAKE3 variable for flexibility on Linux systems.\n- Add -Wno-incompatible-pointer-types for macOS to support modern Clang versions. --- test/deps/Makefile | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/test/deps/Makefile b/test/deps/Makefile index bb9983bea..5d39e09c3 100644 --- a/test/deps/Makefile +++ b/test/deps/Makefile @@ -6,6 +6,7 @@ DEPS_PATH := $(PROXYSQL_PATH)/deps include $(PROXYSQL_PATH)/include/makefiles_vars.mk include $(PROXYSQL_PATH)/include/makefiles_paths.mk +CMAKE3 ?= cmake3 .DEFAULT: default .PHONY: default @@ -50,10 +51,13 @@ ifeq ($(UNAME_S),Darwin) sed -i '' 's/CMAKE_POLICY(SET CMP0075 OLD)/CMAKE_POLICY(SET CMP0075 NEW)/' $${mysql_dir}CMakeLists.txt && \ sed -i '' 's/# ifndef fdopen/# if !defined(fdopen) \&\& !defined(__APPLE__)/' $${mysql_dir}extra/zlib/zlib-1.2.13/zutil.h cd mysql-connector-c && ln -fsh $$(ls -1d mysql-5.7.*/) mysql-connector-c - cd mysql-connector-c/mysql-connector-c && cmake . -DWITH_BOOST=./boost -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="-O0 -ggdb -DNDEBUG -fPIC" -DCMAKE_POLICY_VERSION_MINIMUM=3.5 -DWITH_SSL=$$(brew --prefix openssl@3) -DOPENSSL_ROOT_DIR=$$(brew --prefix openssl@3) + cd mysql-connector-c/mysql-connector-c && cmake . -DWITH_BOOST=./boost -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DCMAKE_C_FLAGS="-Wno-incompatible-pointer-types" \ + -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="-O0 -ggdb -DNDEBUG -fPIC -Wno-incompatible-pointer-types" \ + -DCMAKE_POLICY_VERSION_MINIMUM=3.5 -DWITH_SSL=$$(brew --prefix openssl@3) -DOPENSSL_ROOT_DIR=$$(brew --prefix openssl@3) else cd mysql-connector-c && ln -fsT $$(ls -1d mysql-5.7.*/) mysql-connector-c - cd mysql-connector-c/mysql-connector-c && cmake3 . -DWITH_BOOST=./boost \ + cd mysql-connector-c/mysql-connector-c && $(CMAKE3) . -DWITH_BOOST=./boost \ -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_C_FLAGS="-Wno-incompatible-pointer-types" \ -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="-O0 -ggdb -DNDEBUG -fPIC -Wno-incompatible-pointer-types" \ -DCMAKE_POLICY_VERSION_MINIMUM=3.5