From aeefdf7dc0f5c5ba27ac1d34cde6f4f04241ea44 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Sat, 22 Feb 2025 15:14:01 +0000 Subject: [PATCH] configure: Add option to enable the address sanitizer Signed-off-by: Michael Tremer --- Makefile.am | 16 ++++++++++++++++ configure.ac | 16 ++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/Makefile.am b/Makefile.am index 177676da..2de4c1bd 100644 --- a/Makefile.am +++ b/Makefile.am @@ -134,6 +134,7 @@ pakfire_la_CPPFLAGS = \ pakfire_la_CFLAGS = \ $(AM_CFLAGS) \ + $(ASAN_CFLAGS) \ $(COVERAGE_CFLAGS) \ $(PYTHON_DEVEL_CFLAGS) \ -Wno-cast-function-type \ @@ -142,6 +143,7 @@ pakfire_la_CFLAGS = \ pakfire_la_LDFLAGS = \ $(AM_LDFLAGS) \ + $(ASAN_LDFLAGS) \ $(COVERAGE_LDFLAGS) \ -shared \ -module \ @@ -308,6 +310,7 @@ libpakfire_la_SOURCES = \ libpakfire_la_CFLAGS = \ $(AM_CFLAGS) \ + $(ASAN_CFLAGS) \ $(COVERAGE_CFLAGS) \ $(BPF_CFLAGS) \ $(CAP_CFLAGS) \ @@ -336,6 +339,7 @@ libpakfire_la_CPPFLAGS = \ libpakfire_la_LDFLAGS = \ $(AM_LDFLAGS) \ + $(ASAN_LDFLAGS) \ $(COVERAGE_LDFLAGS) libpakfire_la_LIBADD = \ @@ -380,10 +384,12 @@ pakfire_CPPFLAGS = \ pakfire_CFLAGS = \ $(AM_CFLAGS) \ + $(ASAN_CFLAGS) \ $(COVERAGE_CFLAGS) pakfire_LDFLAGS = \ $(AM_LDFLAGS) \ + $(ASAN_LDFLAGS) \ $(COVERAGE_LDFLAGS) pakfire_LDADD = \ @@ -404,10 +410,12 @@ pakfire_builder_CPPFLAGS = \ pakfire_builder_CFLAGS = \ $(AM_CFLAGS) \ + $(ASAN_CFLAGS) \ $(COVERAGE_CFLAGS) pakfire_builder_LDFLAGS = \ $(AM_LDFLAGS) \ + $(ASAN_LDFLAGS) \ $(COVERAGE_LDFLAGS) pakfire_builder_LDADD = \ @@ -428,10 +436,12 @@ pakfire_client_CPPFLAGS = \ pakfire_client_CFLAGS = \ $(AM_CFLAGS) \ + $(ASAN_CFLAGS) \ $(COVERAGE_CFLAGS) pakfire_client_LDFLAGS = \ $(AM_LDFLAGS) \ + $(ASAN_LDFLAGS) \ $(COVERAGE_LDFLAGS) pakfire_client_LDADD = \ @@ -452,10 +462,12 @@ pakfire_daemon_CPPFLAGS = \ pakfire_daemon_CFLAGS = \ $(AM_CFLAGS) \ + $(ASAN_CFLAGS) \ $(COVERAGE_CFLAGS) pakfire_daemon_LDFLAGS = \ $(AM_LDFLAGS) \ + $(ASAN_LDFLAGS) \ $(COVERAGE_LDFLAGS) pakfire_daemon_LDADD = \ @@ -557,10 +569,12 @@ libcli_la_CPPFLAGS = \ libcli_la_CFLAGS = \ $(AM_CFLAGS) \ + $(ASAN_CFLAGS) \ $(COVERAGE_CFLAGS) libcli_la_LDFLAGS = \ $(AM_LDFLAGS) \ + $(ASAN_LDFLAGS) \ $(COVERAGE_LDFLAGS) \ $(JSON_C_LIBS) @@ -1216,11 +1230,13 @@ TESTSUITE_CPPFLAGS = \ TESTSUITE_CFLAGS = \ $(AM_CFLAGS) \ + $(ASAN_CFLAGS) \ $(COVERAGE_CFLAGS) \ -Wno-address TESTSUITE_LDFLAGS = \ $(AM_LDFLAGS) \ + $(ASAN_LDFLAGS) \ $(COVERAGE_LDFLAGS) TESTSUITE_LDADD = \ diff --git a/configure.ac b/configure.ac index 25d99629..92bd8992 100644 --- a/configure.ac +++ b/configure.ac @@ -58,6 +58,13 @@ AC_PROG_LN_S AC_PROG_MKDIR_P AC_PROG_SED +dnl Switch to enable build with address sanitization +AC_ARG_ENABLE([asan], + AS_HELP_STRING([--enable-asan], [build with -fsanitize=address @<:@default=disabled@:>@]), + [], + [enable_asan=no] +) + dnl Switch to enable build with --coverage AC_ARG_ENABLE([coverage], AS_HELP_STRING([--enable-coverage], [build with --coverage @<:@default=disabled@:>@]), @@ -168,6 +175,15 @@ AC_SUBST([OUR_CPPFLAGS], $with_cppflags) AC_SUBST([OUR_CFLAGS], $with_cflags) AC_SUBST([OUR_LDFLAGS], $with_ldflags) +dnl Check for support for -fsanitize=address +if test "x${enable_asan}" = "xyes"; then + CC_CHECK_FLAGS_APPEND([asan_cflags], [CFLAGS], [-fsanitize=address]) + CC_CHECK_FLAGS_APPEND([asan_ldflags], [LDFLAGS], [-lasan]) +fi + +AC_SUBST([ASAN_CFLAGS], ${asan_cflags}) +AC_SUBST([ASAN_LDFLAGS], ${asan_ldflags}) + dnl Check for support for --coverage if test "x${enable_coverage}" = "xyes"; then CC_CHECK_FLAGS_APPEND([coverage_cflags], [CFLAGS], [--coverage]) -- 2.39.5