summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2023-09-14 22:56:58 +0200
committerStephan Bergmann <sbergman@redhat.com>2023-09-15 07:58:37 +0200
commit233e0a009a6a22342a86a03eeb1349be2cd2d3eb (patch)
treed7a77170f20ef9eef3272dc7415cc77e745ee55d
parentd039fcd1cc6ce1f746b412f364790614bf972740 (diff)
A more principled suppression of -fsanitize=function in external C code
...after <https://github.com/llvm/llvm-project/commit/279a4d0d67c874e80c171666822f2fabdd6fa926> "-fsanitize=function: support C". This includes reverts of 16af9e81863a80116f808ee3cfa4a1bab7c67ac5 "update clang asan suppressions" and 151a43f3d00f6523079c53d6c2d064f80b9a55d6 ""update clang asan suppressions". Change-Id: I49740f5f3a784af1d62b830b47bfdfa27fe3e471 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156935 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
-rw-r--r--external/cairo/ExternalProject_cairo.mk1
-rw-r--r--external/cairo/ExternalProject_pixman.mk1
-rw-r--r--external/curl/ExternalProject_curl.mk1
-rw-r--r--external/fontconfig/ExternalProject_fontconfig.mk1
-rw-r--r--external/freetype/ExternalProject_freetype.mk1
-rw-r--r--external/liblangtag/ExternalProject_liblangtag.mk1
-rw-r--r--external/nss/ExternalProject_nss.mk2
-rw-r--r--external/openssl/ExternalProject_openssl.mk1
-rw-r--r--external/python3/ExternalProject_python3.mk1
-rw-r--r--external/redland/ExternalProject_raptor.mk1
-rw-r--r--external/redland/ExternalProject_rasqal.mk1
-rw-r--r--external/redland/ExternalProject_redland.mk1
-rw-r--r--external/xmlsec/ExternalProject_xmlsec.mk1
-rw-r--r--solenv/sanitizers/ubsan-suppressions13
14 files changed, 13 insertions, 14 deletions
diff --git a/external/cairo/ExternalProject_cairo.mk b/external/cairo/ExternalProject_cairo.mk
index b677098482ff..df6bd5a37b78 100644
--- a/external/cairo/ExternalProject_cairo.mk
+++ b/external/cairo/ExternalProject_cairo.mk
@@ -49,6 +49,7 @@ $(call gb_ExternalProject_get_state_target,cairo,build) :
$(if $(debug),STRIP=" ") \
$(if $(filter ANDROID iOS,$(OS)),CFLAGS="$(if $(debug),-g) $(ZLIB_CFLAGS) $(gb_VISIBILITY_FLAGS)") \
$(if $(filter EMSCRIPTEN,$(OS)),CFLAGS="-O3 -DCAIRO_NO_MUTEX $(ZLIB_CFLAGS) -Wno-enum-conversion $(gb_EMSCRIPTEN_CPPFLAGS)" ) \
+ $(if $(filter -fsanitize=undefined,$(CC)),CC='$(CC) -fno-sanitize=function') \
$(if $(filter-out EMSCRIPTEN ANDROID iOS,$(OS)), \
CFLAGS="$(CFLAGS) $(call gb_ExternalProject_get_build_flags,cairo) $(ZLIB_CFLAGS)" \
LDFLAGS="$(call gb_ExternalProject_get_link_flags,cairo)" \
diff --git a/external/cairo/ExternalProject_pixman.mk b/external/cairo/ExternalProject_pixman.mk
index 29902b4c1f5c..f95fcb626ccc 100644
--- a/external/cairo/ExternalProject_pixman.mk
+++ b/external/cairo/ExternalProject_pixman.mk
@@ -29,6 +29,7 @@ $(call gb_ExternalProject_get_state_target,pixman,build) :
$(gb_CONFIGURE_PLATFORMS) \
$(if $(CROSS_COMPILING),$(if $(filter INTEL ARM,$(CPUNAME)),ac_cv_c_bigendian=no)) \
$(if $(filter EMSCRIPTEN,$(OS)),CFLAGS="-O3 -pthread -msimd128") \
+ $(if $(filter -fsanitize=undefined,$(CC)),CC='$(CC) -fno-sanitize=function') \
&& $(MAKE) \
)
$(call gb_Trace_EndRange,pixman,EXTERNAL)
diff --git a/external/curl/ExternalProject_curl.mk b/external/curl/ExternalProject_curl.mk
index 087ea2c44b39..a4029c2fc4b2 100644
--- a/external/curl/ExternalProject_curl.mk
+++ b/external/curl/ExternalProject_curl.mk
@@ -76,6 +76,7 @@ $(call gb_ExternalProject_get_state_target,curl,build):
$(if $(filter MACOSX,$(OS)),--prefix=/@.__________________________________________________OOO) \
$(if $(filter MACOSX,$(OS)),CFLAGS='$(CFLAGS) \
-mmacosx-version-min=$(MACOSX_DEPLOYMENT_TARGET)') \
+ $(if $(filter -fsanitize=undefined,$(CC)),CC='$(CC) -fno-sanitize=function') \
CPPFLAGS='$(curl_CPPFLAGS)' \
CFLAGS="$(gb_CFLAGS) $(call gb_ExternalProject_get_build_flags,curl)" \
LDFLAGS='$(call gb_ExternalProject_get_link_flags,curl) $(curl_LDFLAGS)' \
diff --git a/external/fontconfig/ExternalProject_fontconfig.mk b/external/fontconfig/ExternalProject_fontconfig.mk
index efa812250db8..ee0301b251db 100644
--- a/external/fontconfig/ExternalProject_fontconfig.mk
+++ b/external/fontconfig/ExternalProject_fontconfig.mk
@@ -24,6 +24,7 @@ fontconfig_add_fonts=/usr/share/X11/fonts/Type1,/usr/share/X11/fonts/TTF,/usr/lo
$(call gb_ExternalProject_get_state_target,fontconfig,build) :
$(call gb_Trace_StartRange,fontconfig,EXTERNAL)
$(call gb_ExternalProject_run,build,\
+ $(if $(filter -fsanitize=undefined,$(CC)),CC='$(CC) -fno-sanitize=function') \
CFLAGS="$(CFLAGS) \
$(call gb_ExternalProject_get_build_flags,fontconfig) \
$(gb_VISIBILITY_FLAGS) \
diff --git a/external/freetype/ExternalProject_freetype.mk b/external/freetype/ExternalProject_freetype.mk
index e9720065490c..d3d65612200c 100644
--- a/external/freetype/ExternalProject_freetype.mk
+++ b/external/freetype/ExternalProject_freetype.mk
@@ -26,6 +26,7 @@ $(call gb_ExternalProject_get_state_target,freetype,build) :
--without-png \
--prefix=$(call gb_UnpackedTarball_get_dir,freetype/instdir) \
$(gb_CONFIGURE_PLATFORMS) \
+ $(if $(filter -fsanitize=undefined,$(CC)),CC='$(CC) -fno-sanitize=function') \
CFLAGS="$(CFLAGS) \
$(call gb_ExternalProject_get_build_flags,freetype) \
$(call gb_ExternalProject_get_link_flags,freetype) \
diff --git a/external/liblangtag/ExternalProject_liblangtag.mk b/external/liblangtag/ExternalProject_liblangtag.mk
index 9e2553860986..1ce4b6eb7367 100644
--- a/external/liblangtag/ExternalProject_liblangtag.mk
+++ b/external/liblangtag/ExternalProject_liblangtag.mk
@@ -29,6 +29,7 @@ $(call gb_ExternalProject_get_state_target,liblangtag,build):
--enable-shared --disable-static) \
$(if $(verbose),--disable-silent-rules,--enable-silent-rules) \
$(if $(filter TRUE,$(HAVE_GCC_BUILTIN_ATOMIC)),"lt_cv_has_atomic=yes","lt_cv_has_atomic=no") \
+ $(if $(filter -fsanitize=undefined,$(CC)),CC='$(CC) -fno-sanitize=function') \
CFLAGS='$(CFLAGS) -pthread \
$(call gb_ExternalProject_get_build_flags,liblangtag)' \
$(gb_CONFIGURE_PLATFORMS) \
diff --git a/external/nss/ExternalProject_nss.mk b/external/nss/ExternalProject_nss.mk
index 7f98c247e936..b603061ca9a0 100644
--- a/external/nss/ExternalProject_nss.mk
+++ b/external/nss/ExternalProject_nss.mk
@@ -74,7 +74,7 @@ $(call gb_ExternalProject_get_state_target,nss,build): \
RANLIB="$(RANLIB)" \
NMEDIT="$(NM)edit" \
COMMA=$(COMMA) \
- CC="$(CC)$(if $(filter iOS,$(OS)), -DNSS_STATIC_SOFTOKEN=1 -DNSS_STATIC_FREEBL=1 -DNSS_STATIC_PKCS11=1)$(if $(filter ANDROID,$(OS)), -D_PR_NO_LARGE_FILES=1 -DSQLITE_DISABLE_LFS=1)" CCC="$(CXX)" \
+ CC="$(CC) $(if $(filter -fsanitize=undefined,$(CC)),-fno-sanitize=function) $(if $(filter iOS,$(OS)), -DNSS_STATIC_SOFTOKEN=1 -DNSS_STATIC_FREEBL=1 -DNSS_STATIC_PKCS11=1)$(if $(filter ANDROID,$(OS)), -D_PR_NO_LARGE_FILES=1 -DSQLITE_DISABLE_LFS=1)" CCC="$(CXX)" \
$(if $(CROSS_COMPILING),NSINSTALL="$(if $(filter MACOSX,$(OS_FOR_BUILD)),xcrun python3,$(call gb_ExternalExecutable_get_command,python)) $(SRCDIR)/external/nss/nsinstall.py") \
$(if $(filter ANDROID,$(OS)),OS_TARGET=Android OS_TARGET_RELEASE=$(ANDROID_API_LEVEL) ARCHFLAG="" DEFAULT_COMPILER=clang ANDROID_NDK=$(ANDROID_NDK_DIR) ANDROID_TOOLCHAIN_VERSION=$(ANDROID_GCC_TOOLCHAIN_VERSION) ANDROID_PREFIX=$(HOST_PLATFORM) ANDROID_SYSROOT=$(ANDROID_NDK_DIR)/sysroot) \
NSS_DISABLE_GTESTS=1 \
diff --git a/external/openssl/ExternalProject_openssl.mk b/external/openssl/ExternalProject_openssl.mk
index e44ccf5f3436..d197721d024a 100644
--- a/external/openssl/ExternalProject_openssl.mk
+++ b/external/openssl/ExternalProject_openssl.mk
@@ -86,6 +86,7 @@ $(call gb_ExternalProject_get_state_target,openssl,build):
$(if $(filter MACOSX,$(OS)),--prefix=/@.__________________________________________________OOO) \
&& $(MAKE) build_libs \
CC="$(CC) -fPIC \
+ $(if $(filter -fsanitize=undefined,$(CC)),-fno-sanitize=function) \
$(if $(filter TRUE, $(ENABLE_DBGUTIL)), -DPURIFY,) \
$(if $(filter-out WNT MACOSX,$(OS)),-fvisibility=hidden)" \
&& ln -s . lib \
diff --git a/external/python3/ExternalProject_python3.mk b/external/python3/ExternalProject_python3.mk
index f1c5f6d9b4a5..76cfe6675586 100644
--- a/external/python3/ExternalProject_python3.mk
+++ b/external/python3/ExternalProject_python3.mk
@@ -106,6 +106,7 @@ $(call gb_ExternalProject_get_state_target,python3,build) :
PKG_CONFIG_LIBDIR="$(call gb_UnpackedTarball_get_dir,libffi)/$(HOST_PLATFORM)$${PKG_CONFIG_LIBDIR:+:$$PKG_CONFIG_LIBDIR}" \
) \
CC="$(strip $(CC) \
+ $(if $(filter -fsanitize=undefined,$(CC)),-fno-sanitize=function) \
$(if $(SYSTEM_EXPAT),,-I$(call gb_UnpackedTarball_get_dir,expat)/lib) \
$(if $(SYSBASE), -I$(SYSBASE)/usr/include) \
)" \
diff --git a/external/redland/ExternalProject_raptor.mk b/external/redland/ExternalProject_raptor.mk
index b3ae74c10b61..74759c65be31 100644
--- a/external/redland/ExternalProject_raptor.mk
+++ b/external/redland/ExternalProject_raptor.mk
@@ -19,6 +19,7 @@ $(call gb_ExternalProject_get_state_target,raptor,build):
$(call gb_Trace_StartRange,raptor,EXTERNAL)
$(call gb_ExternalProject_run,build,\
$(if $(filter iOS,$(OS)),LIBS="-liconv") \
+ $(if $(filter -fsanitize=undefined,$(CC)),CC='$(CC) -fno-sanitize=function') \
CFLAGS="$(CFLAGS) \
$(call gb_ExternalProject_get_build_flags,raptor) \
$(if $(filter TRUE,$(DISABLE_DYNLOADING)),-fvisibility=hidden) \
diff --git a/external/redland/ExternalProject_rasqal.mk b/external/redland/ExternalProject_rasqal.mk
index e7d1fdb1195d..de53b4e4f3d2 100644
--- a/external/redland/ExternalProject_rasqal.mk
+++ b/external/redland/ExternalProject_rasqal.mk
@@ -22,6 +22,7 @@ $(eval $(call gb_ExternalProject_register_targets,rasqal,\
$(call gb_ExternalProject_get_state_target,rasqal,build):
$(call gb_Trace_StartRange,rasqal,EXTERNAL)
$(call gb_ExternalProject_run,build,\
+ $(if $(filter -fsanitize=undefined,$(CC)),CC='$(CC) -fno-sanitize=function') \
CFLAGS="$(CFLAGS) $(if $(filter TRUE,$(DISABLE_DYNLOADING)),-fvisibility=hidden) $(call gb_ExternalProject_get_build_flags,rasqal) $(gb_EMSCRIPTEN_CPPFLAGS)" \
LDFLAGS=" \
$(if $(filter LINUX FREEBSD,$(OS)),-Wl$(COMMA)-z$(COMMA)origin -Wl$(COMMA)-rpath$(COMMA)\\"\$$\$$ORIGIN") \
diff --git a/external/redland/ExternalProject_redland.mk b/external/redland/ExternalProject_redland.mk
index d92c642b9cd1..0f7afa6d8182 100644
--- a/external/redland/ExternalProject_redland.mk
+++ b/external/redland/ExternalProject_redland.mk
@@ -23,6 +23,7 @@ $(eval $(call gb_ExternalProject_register_targets,redland,\
$(call gb_ExternalProject_get_state_target,redland,build):
$(call gb_Trace_StartRange,redland,EXTERNAL)
$(call gb_ExternalProject_run,build,\
+ $(if $(filter -fsanitize=undefined,$(CC)),CC='$(CC) -fno-sanitize=function') \
CFLAGS="$(CFLAGS) $(if $(filter TRUE,$(DISABLE_DYNLOADING)),-fvisibility=hidden) $(call gb_ExternalProject_get_build_flags,redland) $(gb_EMSCRIPTEN_CPPFLAGS)" \
LDFLAGS=" \
$(if $(filter LINUX FREEBSD,$(OS)),-Wl$(COMMA)-z$(COMMA)origin -Wl$(COMMA)-rpath$(COMMA)\\"\$$\$$ORIGIN") \
diff --git a/external/xmlsec/ExternalProject_xmlsec.mk b/external/xmlsec/ExternalProject_xmlsec.mk
index 9db86f9dae26..64b9a18626c6 100644
--- a/external/xmlsec/ExternalProject_xmlsec.mk
+++ b/external/xmlsec/ExternalProject_xmlsec.mk
@@ -50,6 +50,7 @@ $(call gb_ExternalProject_get_state_target,xmlsec,build) :
&& $(gb_RUN_CONFIGURE) ./configure \
--with-pic --disable-shared --disable-crypto-dl --without-libxslt --without-gnutls --without-gcrypt --disable-apps --disable-docs --disable-pedantic \
$(if $(verbose),--disable-silent-rules,--enable-silent-rules) \
+ $(if $(filter -fsanitize=undefined,$(CC)),CC='$(CC) -fno-sanitize=function') \
CFLAGS="$(CFLAGS) $(call gb_ExternalProject_get_build_flags,xmlsec) $(gb_VISIBILITY_FLAGS)" \
$(if $(filter MACOSX,$(OS)),--prefix=/@.__________________________________________________OOO) \
$(if $(ENABLE_NSS), \
diff --git a/solenv/sanitizers/ubsan-suppressions b/solenv/sanitizers/ubsan-suppressions
index 18b4bfce831f..7adaa1e92c00 100644
--- a/solenv/sanitizers/ubsan-suppressions
+++ b/solenv/sanitizers/ubsan-suppressions
@@ -19,16 +19,3 @@ float-divide-by-zero:/sc/source/core/tool/interpr3.cxx$
float-divide-by-zero:/sc/source/core/tool/interpr8.cxx$
float-divide-by-zero:/scaddins/source/analysis/analysis.cxx$
float-divide-by-zero:/scaddins/source/analysis/financial.cxx$
-
-#
-#SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior lt-mem.c:248:4 in
-#lt-mem.c:190:6: runtime error: call to function lt_string_unref through pointer to incorrect function type 'void (*)(void *)'
-#workdir/UnpackedTarball/liblangtag/liblangtag/lt-string.c:127: note: lt_string_unref defined here
-function:lt_mem_unref
-function:lt_mem_delete_ref
-function:raptor_avltree_delete_internal
-function:raptor_free_sequence
-function:raptor_avltree_sprout
-function:raptor_avltree_search_internal
-function:librdf_stream_free_stream_map
-function:xmlSecPtrListEmpty