[vlc-commits] configure: add a with-sanitizer switch
Shaleen Jain
git at videolan.org
Mon Aug 28 13:32:51 CEST 2017
vlc | branch: master | Shaleen Jain <shaleen.jain95 at gmail.com> | Thu Aug 24 18:21:12 2017 +0530| [2bc9957c615d9505f89d88511a0d6ef3889b392b] | committer: Thomas Guillem
configure: add a with-sanitizer switch
Add an option to compile with a set of the recommended flags for the various
santizers.
Multiple comma separated sanitizers can be specified.
This patch also disables no-undefined-symbols(-Wl,-z,defs) only when this
switch is used, to avoid link errors, mainly with asan.
Signed-off-by: Thomas Guillem <thomas at gllm.fr>
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=2bc9957c615d9505f89d88511a0d6ef3889b392b
---
configure.ac | 35 ++++++++++++++++++++++++++++++++++-
1 file changed, 34 insertions(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index 9214908171..3f7c2dec9c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1015,6 +1015,39 @@ AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "os2"], [
AS_IF([test "${ac_cv_c_visibility_hidden}" = "no"], [VLC_RESTORE_FLAGS])
])
+dnl
+dnl Sanitizer flags
+dnl
+AC_ARG_WITH([sanitizer],
+ [AS_HELP_STRING([--with-sanitizer=(address/memory/undefined/thread)],
+ [build with sanitizer flags (default disabled)])],
+ [],
+ [with_sanitizer=no])
+
+AS_VAR_IF(with_sanitizer, no, [], [
+ AX_CHECK_COMPILE_FLAG([-fsanitize=${with_sanitizer}], [
+ AX_APPEND_FLAG([-fsanitize=${with_sanitizer}])
+ AX_APPEND_FLAG([-fsanitize=${with_sanitizer}], [CXXFLAGS])
+ AX_APPEND_FLAG([-fsanitize=${with_sanitizer}], [LDFLAGS])
+ ], [
+ AC_MSG_ERROR(["-fsanitize=${with_sanitizer} not supported!"])
+ ])
+ AX_APPEND_FLAG([-g])
+ AX_APPEND_FLAG([-g], [CXXFLAGS])
+
+ AS_IF([test -z "${with_sanitizer##*address*}" ], [
+ AX_APPEND_COMPILE_FLAGS([-fsanitize-address-use-after-scope -fno-omit-frame-pointer])
+ AX_APPEND_COMPILE_FLAGS([-fsanitize-address-use-after-scope -fno-omit-frame-pointer], [CXXFLAGS])
+ ])
+ AS_IF([test -z "${with_sanitizer##*memory*}" ], [
+ AX_APPEND_COMPILE_FLAGS([-fPIE -pie])
+ AX_APPEND_COMPILE_FLAGS([-fPIE -pie], [CXXFLAGS])
+ ])
+ AS_IF([test -z "${with_sanitizer##*thread*}" ], [
+ AX_APPEND_COMPILE_FLAGS([-fPIE -pie])
+ AX_APPEND_COMPILE_FLAGS([-fPIE -pie], [CXXFLAGS])
+ ])
+])
dnl
dnl Enable/disable optimizations
@@ -1113,7 +1146,7 @@ AC_CACHE_CHECK([if linker supports -z,defs], [ac_cv_ld_z_defs], [
ac_cv_ld_z_defs="no"
])
])
-AS_IF([test "${ac_cv_ld_z_defs}" = "no"], [VLC_RESTORE_FLAGS])
+AS_IF([test "${ac_cv_ld_z_defs}" = "no" -o "x$with_sanitizer" != xno], [VLC_RESTORE_FLAGS])
dnl Check for __attribute__((packed))
AC_CACHE_CHECK([for __attribute__((packed))],
More information about the vlc-commits
mailing list