Files
loongoffice/external/libmspub/ubsan-visibility.patch
Stephan Bergmann f0aa1a78fb For Clang -fsanitize=vptr use -fvisibility-ms-compat, not -fvisibility=hidden
As discussed in b4f6b26b5a1a78fecfa95ec2eb7ac8b80495d8aa "SAL_DLLPUBLIC_RTTI for
proper RTTI visibility for LLVM," RTTI-based -fsanitize= checks with Clang on
Linux need special precautions to make RTTI symbols visible across DSOs.  The
approach taken there, as well as in 598d8194b0ea1a64e0ebba28a86c128bafa57c7c
"Visible function type RTTI for Clang -fsanitize=function," was to add explicit
SAL_DLLPUBLIC_RTTI annontations to relevant type definitions.  However, for
-fsanitize=vptr that would have required many more of those, so it appears
easier to "misuse" -fsanitize-ms-compat in that case, which happens to give all
RTTI symbols default visibility (while otherwise still honoring our
SAL_DLLPUBLIC/PRIVATE annotations).

The SAL_DLLPUBLIC_RTTI annotations from 598d8194b0ea1a64e0ebba28a86c128bafa57c7c
"Visible function type RTTI for Clang -fsanitize=function" can likely be removed
again.

Change-Id: Ibeff7ab8c908111a7dc66ff0677204f112b24db8
2015-02-27 10:05:22 +01:00

12 lines
444 B
Diff

--- configure
+++ configure
@@ -17060,7 +17060,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. */