diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2017-08-09 16:04:48 +0200 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2017-08-09 16:15:19 +0200 |
commit | fb899f976d2d8f15ca992ecb61511a2c83153c33 (patch) | |
tree | 2d405b292d64d69f239f8b23824e587ede47ecfc /external/libepubgen | |
parent | 6f58154e272c15f5a3cc1a8c326be451af245d54 (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/libepubgen')
-rw-r--r-- | external/libepubgen/UnpackedTarball_libepubgen.mk | 8 | ||||
-rw-r--r-- | external/libepubgen/ubsan-visibility.patch | 11 |
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. */ + |