[vlc-commits] tools: Patch libtool to pass-through sanitizer flags

Marvin Scholz git at videolan.org
Tue Oct 17 19:03:19 CEST 2017


vlc | branch: master | Marvin Scholz <epirat07 at gmail.com> | Mon Oct 16 10:19:46 2017 +0200| [705bbb20a6f461530a603fe428fa30165e1b6594] | committer: Marvin Scholz

tools: Patch libtool to pass-through sanitizer flags

This is a backport of
http://git.savannah.gnu.org/cgit/libtool.git/commit/?id=a5c6466
as libtool has no release that includes this commit, yet.

It fixes using sanitizers on macOS, as without this patch, the
relevant flag is not passed to the compiler when linking, causing
undefined symbol errors.

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=705bbb20a6f461530a603fe428fa30165e1b6594
---

 extras/tools/libtool-2.4.2-san.patch | 44 ++++++++++++++++++++++++++++++++++++
 extras/tools/tools.mak               |  1 +
 2 files changed, 45 insertions(+)

diff --git a/extras/tools/libtool-2.4.2-san.patch b/extras/tools/libtool-2.4.2-san.patch
new file mode 100644
index 0000000000..4f833aac60
--- /dev/null
+++ b/extras/tools/libtool-2.4.2-san.patch
@@ -0,0 +1,44 @@
+From a5c6466528c060cc4660ad0319c00740db0e42ba Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia <jeremyhu at macports.org>
+Date: Sun, 18 Oct 2015 21:55:39 -0700
+Subject: libtool: fix GCC/clang linking with -fsanitize=*
+
+References:
+https://lists.gnu.org/archive/html/libtool/2014-04/msg00026.html
+
+* build-aux/ltmain.in (func_mode_link): Pass -fsanitize=* to the
+linker to allow trivial use of the clang address sanitizer.
+
+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu at macports.org>
+Copyright-paperwork-exempt: Yes
+---
+diff -ru libtool/libltdl/config/ltmain.m4sh libtool-fixed/libltdl/config/ltmain.m4sh
+--- libtool/libltdl/config/ltmain.m4sh	2017-10-16 08:20:47.000000000 +0200
++++ libtool-fixed/libltdl/config/ltmain.m4sh	2017-10-16 08:22:23.000000000 +0200
+@@ -5064,9 +5064,10 @@
+       # -tp=*                Portland pgcc target processor selection
+       # --sysroot=*          for sysroot support
+       # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
++      # -fsanitize=*         Clang/GCC memory and address sanitizer
+       -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
+       -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
+-      -O*|-flto*|-fwhopr*|-fuse-linker-plugin)
++      -O*|-flto*|-fwhopr*|-fuse-linker-plugin|-fsanitize=*)
+         func_quote_for_eval "$arg"
+ 	arg="$func_quote_for_eval_result"
+         func_append compile_command " $arg"
+diff -ru libtool/libltdl/config/ltmain.sh libtool-fixed/libltdl/config/ltmain.sh
+--- libtool/libltdl/config/ltmain.sh	2017-10-16 08:20:47.000000000 +0200
++++ libtool-fixed/libltdl/config/ltmain.sh	2017-10-16 08:22:58.000000000 +0200
+@@ -5851,9 +5851,10 @@
+       # -tp=*                Portland pgcc target processor selection
+       # --sysroot=*          for sysroot support
+       # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
++      # -fsanitize=*         Clang/GCC memory and address sanitizer
+       -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
+       -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
+-      -O*|-flto*|-fwhopr*|-fuse-linker-plugin)
++      -O*|-flto*|-fwhopr*|-fuse-linker-plugin|-fsanitize=*)
+         func_quote_for_eval "$arg"
+ 	arg="$func_quote_for_eval_result"
+         func_append compile_command " $arg"
diff --git a/extras/tools/tools.mak b/extras/tools/tools.mak
index c52e6ec8eb..d96cc837e8 100644
--- a/extras/tools/tools.mak
+++ b/extras/tools/tools.mak
@@ -86,6 +86,7 @@ libtool-$(LIBTOOL_VERSION).tar.gz:
 libtool: libtool-$(LIBTOOL_VERSION).tar.gz
 	$(UNPACK)
 	$(APPLY) libtool-2.4.2-bitcode.patch
+	$(APPLY) libtool-2.4.2-san.patch
 	$(MOVE)
 
 .libtool: libtool .automake



More information about the vlc-commits mailing list