summaryrefslogtreecommitdiff
path: root/external
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2017-08-09 16:04:48 +0200
committerStephan Bergmann <sbergman@redhat.com>2017-08-09 16:15:19 +0200
commitfb899f976d2d8f15ca992ecb61511a2c83153c33 (patch)
tree2d405b292d64d69f239f8b23824e587ede47ecfc /external
parent6f58154e272c15f5a3cc1a8c326be451af245d54 (diff)
For Clang -fsanitize=vptr use -fvisibility-ms-compat in exernal/libepubgen too
...similarly to how it is used for other external libraries since f0aa1a78fb209310e8baef53c02f365fca518d11 "For Clang -fsanitize=vptr use -fvisibility-ms-compat, not -fvisibility=hidden". This caused CppunitTest_writerperfect_writer to fail now with -fsanitize=vptr after 7915f35d7fca5d0720d96954beaa97c00a2c3821 "EPUB export: implement doc/para open/close and text in doc handler", where additions to writerperfect/source/writer/EPUBExportFilter.cxx caused Library_wpftwriter to import more stuff from the libepubgen archive, which happend to make it pick up the (erroneously hidden) definition of _ZTIN10librevenge17RVNGTextInterfaceE from that archive, instead of from some other object/archive as happened before. Change-Id: I2b56df38d7225505ff993321598ddd51812d9de4
Diffstat (limited to 'external')
-rw-r--r--external/libepubgen/UnpackedTarball_libepubgen.mk8
-rw-r--r--external/libepubgen/ubsan-visibility.patch11
2 files changed, 19 insertions, 0 deletions
diff --git a/external/libepubgen/UnpackedTarball_libepubgen.mk b/external/libepubgen/UnpackedTarball_libepubgen.mk
index 5525ca3b2ce7..8d60eccc65fe 100644
--- a/external/libepubgen/UnpackedTarball_libepubgen.mk
+++ b/external/libepubgen/UnpackedTarball_libepubgen.mk
@@ -17,10 +17,18 @@ epubgen_patches += libepubgen-validation3.patch.1
# Backport of <https://sourceforge.net/p/libepubgen/code/ci/49f6461d4751d3b16e32ab8f9c93a3856b33be49/>.
epubgen_patches += libepubgen-vc.patch.1
+ifeq ($(COM_IS_CLANG),TRUE)
+ifneq ($(filter -fsanitize=%,$(CC)),)
+epubgen_patches += ubsan-visibility.patch
+endif
+endif
+
$(eval $(call gb_UnpackedTarball_UnpackedTarball,libepubgen))
$(eval $(call gb_UnpackedTarball_set_tarball,libepubgen,$(EPUBGEN_TARBALL)))
+$(eval $(call gb_UnpackedTarball_set_patchlevel,libepubgen,0))
+
$(eval $(call gb_UnpackedTarball_add_patches,libepubgen,\
$(foreach patch,$(epubgen_patches),external/libepubgen/$(patch)) \
))
diff --git a/external/libepubgen/ubsan-visibility.patch b/external/libepubgen/ubsan-visibility.patch
new file mode 100644
index 000000000000..10234b308ba5
--- /dev/null
+++ b/external/libepubgen/ubsan-visibility.patch
@@ -0,0 +1,11 @@
+--- configure
++++ configure
+@@ -18425,7 +18425,7 @@
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -fvisibility=hidden compiler flag" >&5
+ $as_echo_n "checking for -fvisibility=hidden compiler flag... " >&6; }
+ saved_CXXFLAGS="$CXXFLAGS"
+- CXXFLAGS="$CXXFLAGS -fvisibility=hidden"
++ CXXFLAGS="$CXXFLAGS -fvisibility-ms-compat"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+