From 15b666866f00a94ba9cbb019807b6bb068efa371 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Canna=C3=B2?= Date: Wed, 4 May 2022 17:20:53 +0000 Subject: [PATCH] USEVALGRIND=1 for compiling libmariadb_client with valgrind support running export USEVALGRIND=1 , libmariadb_client will be compiled wth valgrind support, so that valgrind is able to track switching stacks --- deps/Makefile | 10 ++++++++++ deps/mariadb-client-library/ma_context.h.patch | 9 +++++++++ 2 files changed, 19 insertions(+) create mode 100644 deps/mariadb-client-library/ma_context.h.patch diff --git a/deps/Makefile b/deps/Makefile index 91192c79f..3ca53b87e 100644 --- a/deps/Makefile +++ b/deps/Makefile @@ -11,6 +11,11 @@ endif IS_ARM = $(if $(findstring aarch64, $(arch)),true,false) IS_CENTOS = $(if $(findstring Unknown, $(CENTOSVER)),false,true) +# to compile libmariadb_client with support for valgrind enabled, run: +# export USEVALGRIND=1 +# +USEVALGRIND := $(shell echo $(USEVALGRIND)) + PROXYDEBUG := $(shell echo $(PROXYDEBUG)) ifeq ($(PROXYDEBUG),1) MYCFLAGS=-O0 @@ -173,6 +178,11 @@ mariadb-client-library/mariadb_client/libmariadb/libmariadbclient.a: libssl/open cd mariadb-client-library/mariadb_client && patch -p0 < ../ConnectorName.patch cd mariadb-client-library/mariadb_client && cmake . -DOPENSSL_ROOT_DIR=$(shell pwd)/libssl/openssl/ -DOPENSSL_LIBRARIES=$(shell pwd)/libssl/openssl/ . # cd mariadb-client-library/mariadb_client && cmake . -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl # this is needed on MacOSX +ifeq ($(PROXYDEBUG),1) + cd mariadb-client-library/mariadb_client && patch include/ma_context.h < ../ma_context.h.patch +else ifeq ($(USEVALGRIND),1) + cd mariadb-client-library/mariadb_client && patch include/ma_context.h < ../ma_context.h.patch +endif cd mariadb-client-library/mariadb_client && patch libmariadb/mariadb_stmt.c < ../mariadb_stmt.c.patch cd mariadb-client-library/mariadb_client && patch libmariadb/mariadb_lib.c < ../mariadb_lib.c.patch cd mariadb-client-library/mariadb_client && patch libmariadb/mariadb_lib.c < ../mariadb_lib.c.collation.patch # make sure this path is applied after mariadb_lib.c.patch diff --git a/deps/mariadb-client-library/ma_context.h.patch b/deps/mariadb-client-library/ma_context.h.patch new file mode 100644 index 000000000..2aae87324 --- /dev/null +++ b/deps/mariadb-client-library/ma_context.h.patch @@ -0,0 +1,9 @@ +@@ -25,6 +25,8 @@ + (This particular implementation uses Posix ucontext swapcontext().) + */ + ++#define HAVE_VALGRIND ++ + #ifdef _WIN32 + #define MY_CONTEXT_USE_WIN32_FIBERS 1 + #elif defined(__GNUC__) && __GNUC__ >= 3 && defined(__x86_64__) && !defined(__ILP32__)