From fb899f976d2d8f15ca992ecb61511a2c83153c33 Mon Sep 17 00:00:00 2001 From: Stephan Bergmann Date: Wed, 9 Aug 2017 16:04:48 +0200 Subject: 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 --- external/libepubgen/UnpackedTarball_libepubgen.mk | 8 ++++++++ external/libepubgen/ubsan-visibility.patch | 11 +++++++++++ 2 files changed, 19 insertions(+) create mode 100644 external/libepubgen/ubsan-visibility.patch (limited to 'external/libepubgen') 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 . 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. */ + -- cgit