[vlc-commits] extras/tools: Patch libtool to find the compiler-rt that clang uses by default
Martin Storsjö
git at videolan.org
Fri Nov 23 16:10:56 CET 2018
vlc/vlc-3.0 | branch: master | Martin Storsjö <martin at martin.st> | Tue Feb 27 12:41:40 2018 +0200| [fff44f60c0912dc5c62812561d7e08d0e7d420c5] | committer: Hugo Beauzée-Luyssen
extras/tools: Patch libtool to find the compiler-rt that clang uses by default
When libtool links DLLs that include C++ code, it does so by
passing -nostdlib and manually adding the compiler built-in
default libraries. When linking, clang specifies the compiler-rt
library by passing the full path to the .a file, instead of using
-L + -l. libtool currently doesn't pick up such a full path to
a static library as a library it should include.
This patch is a custom libtool patch from chromium os [1],
upstreaming is in progress at [2].
[1] https://chromium.googlesource.com/chromiumos/overlays/portage-stable/+/88201a517e3a797e4197bacc4959785a934c08d6
[2] https://debbugs.gnu.org/cgi/bugreport.cgi?bug=27866
(cherry picked from commit 5c7092dfe6ee45f38c9ff7063678956ace155815)
Signed-off-by: Hugo Beauzée-Luyssen <hugo at beauzee.fr>
> http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=fff44f60c0912dc5c62812561d7e08d0e7d420c5
---
extras/tools/libtool-2.4.6-clang-libs.patch | 20 ++++++++++++++++++++
extras/tools/tools.mak | 1 +
2 files changed, 21 insertions(+)
diff --git a/extras/tools/libtool-2.4.6-clang-libs.patch b/extras/tools/libtool-2.4.6-clang-libs.patch
new file mode 100644
index 0000000000..93ec23bd1b
--- /dev/null
+++ b/extras/tools/libtool-2.4.6-clang-libs.patch
@@ -0,0 +1,20 @@
+Libtool checks only for libraries linked as -l* when trying to
+find internal compiler libraries. Clang, however uses the absolute
+path to link its internal libraries e.g. compiler_rt. This patch
+handles clang's statically linked libraries when finding internal
+compiler libraries.
+https://crbug.com/749263
+https://debbugs.gnu.org/cgi/bugreport.cgi?bug=27866
+
+--- a/libltdl/m4/libtool.m4
++++ b/libltdl/m4/libtool.m4
+@@ -7531,7 +7544,7 @@
+ for p in `eval "$output_verbose_link_cmd"`; do
+ case $prev$p in
+
+- -L* | -R* | -l*)
++ -L* | -R* | -l* | */libclang_rt.*.a)
+ # Some compilers place space between "-{L,R}" and the path.
+ # Remove the space.
+ if test x-L = "$p" ||
+
diff --git a/extras/tools/tools.mak b/extras/tools/tools.mak
index 9a5571663d..1496a84bcd 100644
--- a/extras/tools/tools.mak
+++ b/extras/tools/tools.mak
@@ -104,6 +104,7 @@ libtool: libtool-$(LIBTOOL_VERSION).tar.gz
$(UNPACK)
$(APPLY) libtool-2.4.2-bitcode.patch
$(APPLY) libtool-2.4.2-san.patch
+ $(APPLY) libtool-2.4.6-clang-libs.patch
$(MOVE)
.libtool: libtool .automake
More information about the vlc-commits
mailing list