re PR sanitizer/84250 (Symbol collision when using both Address and Undefined Behavior sanitizers (-fsanitize=address,undefined))
gcc/ 2018-07-04 Maxim Ostapenko <m.ostapenko@samsung.com> PR sanitizer/84250 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Pass -lstdc++ for static libasan. * gcc.c: Do not pass LIBUBSAN_SPEC if ASan is enabled with UBSan. libsanitizer/ 2018-07-04 Maxim Ostapenko <m.ostapenko@samsung.com> PR sanitizer/84250 * Makefile.am: Reorder libs. * Makefile.in: Regenerate. * asan/Makefile.am: Define DCAN_SANITIZE_UB=1, add dependancy from libsanitizer_ubsan.la. * asan/Makefile.in: Regenerate. * ubsan/Makefile.am: Define new libsanitizer_ubsan.la library. * ubsan/Makefile.in: Regenerate. From-SVN: r262421
This commit is contained in:
parent
a617812f14
commit
ca8dd9f274
@ -1,3 +1,10 @@
|
||||
2018-07-04 Maxim Ostapenko <m.ostapenko@samsung.com>
|
||||
|
||||
PR sanitizer/84250
|
||||
* config/gnu-user.h (LIBASAN_EARLY_SPEC): Pass -lstdc++ for static
|
||||
libasan.
|
||||
* gcc.c: Do not pass LIBUBSAN_SPEC if ASan is enabled with UBSan.
|
||||
|
||||
2018-07-04 Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
||||
PR middle-end/86380
|
||||
|
@ -161,7 +161,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
#define LIBASAN_EARLY_SPEC "%{!shared:libasan_preinit%O%s} " \
|
||||
"%{static-libasan:%{!shared:" \
|
||||
LD_STATIC_OPTION " --whole-archive -lasan --no-whole-archive " \
|
||||
LD_DYNAMIC_OPTION "}}%{!static-libasan:-lasan}"
|
||||
LD_DYNAMIC_OPTION " -lstdc++ }}%{!static-libasan:-lasan}"
|
||||
#undef LIBTSAN_EARLY_SPEC
|
||||
#define LIBTSAN_EARLY_SPEC "%{!shared:libtsan_preinit%O%s} " \
|
||||
"%{static-libtsan:%{!shared:" \
|
||||
|
@ -993,7 +993,7 @@ proper position among the other output files. */
|
||||
%{static:%ecannot specify -static with -fsanitize=address}}\
|
||||
%{%:sanitize(thread):" LIBTSAN_SPEC "\
|
||||
%{static:%ecannot specify -static with -fsanitize=thread}}\
|
||||
%{%:sanitize(undefined):" LIBUBSAN_SPEC "}\
|
||||
%{!%:sanitize(address):%{%:sanitize(undefined):" LIBUBSAN_SPEC "}}\
|
||||
%{%:sanitize(leak):" LIBLSAN_SPEC "}}}"
|
||||
#endif
|
||||
|
||||
|
@ -1,3 +1,14 @@
|
||||
2018-07-04 Maxim Ostapenko <m.ostapenko@samsung.com>
|
||||
|
||||
PR sanitizer/84250
|
||||
* Makefile.am: Reorder libs.
|
||||
* Makefile.in: Regenerate.
|
||||
* asan/Makefile.am: Define DCAN_SANITIZE_UB=1, add dependancy from
|
||||
libsanitizer_ubsan.la.
|
||||
* asan/Makefile.in: Regenerate.
|
||||
* ubsan/Makefile.am: Define new libsanitizer_ubsan.la library.
|
||||
* ubsan/Makefile.in: Regenerate.
|
||||
|
||||
2018-06-13 Denis Khalikov <d.khalikov@partner.samsung.com>
|
||||
|
||||
PR sanitizer/86090
|
||||
|
@ -14,7 +14,7 @@ endif
|
||||
if LIBBACKTRACE_SUPPORTED
|
||||
SUBDIRS += libbacktrace
|
||||
endif
|
||||
SUBDIRS += lsan asan ubsan
|
||||
SUBDIRS += lsan ubsan asan
|
||||
nodist_saninclude_HEADERS += \
|
||||
include/sanitizer/lsan_interface.h \
|
||||
include/sanitizer/asan_interface.h \
|
||||
|
@ -140,8 +140,8 @@ AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
|
||||
$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DIST_SUBDIRS = sanitizer_common interception libbacktrace lsan asan \
|
||||
ubsan tsan
|
||||
DIST_SUBDIRS = sanitizer_common interception libbacktrace lsan ubsan \
|
||||
asan tsan
|
||||
ACLOCAL = @ACLOCAL@
|
||||
ALLOC_FILE = @ALLOC_FILE@
|
||||
AMTAR = @AMTAR@
|
||||
@ -294,7 +294,7 @@ ACLOCAL_AMFLAGS = -I .. -I ../config
|
||||
sanincludedir = $(libdir)/gcc/$(target_alias)/$(gcc_version)/include/sanitizer
|
||||
nodist_saninclude_HEADERS = $(am__append_1)
|
||||
@SANITIZER_SUPPORTED_TRUE@SUBDIRS = sanitizer_common $(am__append_2) \
|
||||
@SANITIZER_SUPPORTED_TRUE@ $(am__append_3) lsan asan ubsan \
|
||||
@SANITIZER_SUPPORTED_TRUE@ $(am__append_3) lsan ubsan asan \
|
||||
@SANITIZER_SUPPORTED_TRUE@ $(am__append_4)
|
||||
gcc_version := $(shell @get_gcc_base_ver@ $(top_srcdir)/../gcc/BASE-VER)
|
||||
|
||||
|
@ -3,7 +3,7 @@ AM_CPPFLAGS = -I $(top_srcdir)/include -I $(top_srcdir)
|
||||
# May be used by toolexeclibdir.
|
||||
gcc_version := $(shell @get_gcc_base_ver@ $(top_srcdir)/../gcc/BASE-VER)
|
||||
|
||||
DEFS = -D_GNU_SOURCE -D_DEBUG -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -DASAN_HAS_EXCEPTIONS=1 -DASAN_NEEDS_SEGV=1 -DCAN_SANITIZE_UB=0
|
||||
DEFS = -D_GNU_SOURCE -D_DEBUG -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -DASAN_HAS_EXCEPTIONS=1 -DASAN_NEEDS_SEGV=1 -DCAN_SANITIZE_UB=1
|
||||
if USING_MAC_INTERPOSE
|
||||
DEFS += -DMAC_INTERPOSE_FUNCTIONS -DMISSING_BLOCKS_SUPPORT
|
||||
endif
|
||||
@ -48,7 +48,7 @@ asan_files = \
|
||||
asan_win_dynamic_runtime_thunk.cc
|
||||
|
||||
libasan_la_SOURCES = $(asan_files)
|
||||
libasan_la_LIBADD = $(top_builddir)/sanitizer_common/libsanitizer_common.la $(top_builddir)/lsan/libsanitizer_lsan.la
|
||||
libasan_la_LIBADD = $(top_builddir)/sanitizer_common/libsanitizer_common.la $(top_builddir)/lsan/libsanitizer_lsan.la $(top_builddir)/ubsan/libsanitizer_ubsan.la
|
||||
if !USING_MAC_INTERPOSE
|
||||
libasan_la_LIBADD += $(top_builddir)/interception/libinterception.la
|
||||
endif
|
||||
|
@ -110,7 +110,8 @@ LTLIBRARIES = $(toolexeclib_LTLIBRARIES)
|
||||
am__DEPENDENCIES_1 =
|
||||
libasan_la_DEPENDENCIES = \
|
||||
$(top_builddir)/sanitizer_common/libsanitizer_common.la \
|
||||
$(top_builddir)/lsan/libsanitizer_lsan.la $(am__append_2) \
|
||||
$(top_builddir)/lsan/libsanitizer_lsan.la \
|
||||
$(top_builddir)/ubsan/libsanitizer_ubsan.la $(am__append_2) \
|
||||
$(am__append_3) $(am__DEPENDENCIES_1)
|
||||
am__objects_1 = asan_activation.lo asan_allocator.lo asan_debugging.lo \
|
||||
asan_descriptions.lo asan_errors.lo asan_fake_stack.lo \
|
||||
@ -176,7 +177,7 @@ CYGPATH_W = @CYGPATH_W@
|
||||
DEFS = -D_GNU_SOURCE -D_DEBUG -D__STDC_CONSTANT_MACROS \
|
||||
-D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS \
|
||||
-DASAN_HAS_EXCEPTIONS=1 -DASAN_NEEDS_SEGV=1 \
|
||||
-DCAN_SANITIZE_UB=0 $(am__append_1)
|
||||
-DCAN_SANITIZE_UB=1 $(am__append_1)
|
||||
DEPDIR = @DEPDIR@
|
||||
DSYMUTIL = @DSYMUTIL@
|
||||
DUMPBIN = @DUMPBIN@
|
||||
@ -346,7 +347,8 @@ asan_files = \
|
||||
libasan_la_SOURCES = $(asan_files)
|
||||
libasan_la_LIBADD = \
|
||||
$(top_builddir)/sanitizer_common/libsanitizer_common.la \
|
||||
$(top_builddir)/lsan/libsanitizer_lsan.la $(am__append_2) \
|
||||
$(top_builddir)/lsan/libsanitizer_lsan.la \
|
||||
$(top_builddir)/ubsan/libsanitizer_ubsan.la $(am__append_2) \
|
||||
$(am__append_3) $(LIBSTDCXX_RAW_CXX_LDFLAGS)
|
||||
libasan_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(link_libasan)
|
||||
|
||||
|
@ -11,6 +11,7 @@ AM_CXXFLAGS += $(EXTRA_CXXFLAGS)
|
||||
ACLOCAL_AMFLAGS = -I m4
|
||||
|
||||
toolexeclib_LTLIBRARIES = libubsan.la
|
||||
noinst_LTLIBRARIES = libsanitizer_ubsan.la
|
||||
|
||||
ubsan_plugin_files = \
|
||||
ubsan_diag.cc \
|
||||
@ -25,7 +26,10 @@ ubsan_plugin_files = \
|
||||
|
||||
ubsan_files = $(ubsan_plugin_files)
|
||||
|
||||
libubsan_la_SOURCES = $(ubsan_files)
|
||||
libsanitizer_ubsan_la_SOURCES = $(ubsan_plugin_files)
|
||||
libsanitizer_ubsan_la_LIBADD = $(LIBSTDCXX_RAW_CXX_LDFLAGS)
|
||||
|
||||
libubsan_la_SOURCES = $(ubsan_files)
|
||||
libubsan_la_LIBADD = $(top_builddir)/sanitizer_common/libsanitizer_common.la
|
||||
if !USING_MAC_INTERPOSE
|
||||
libubsan_la_LIBADD += $(top_builddir)/interception/libinterception.la
|
||||
|
@ -103,15 +103,18 @@ am__uninstall_files_from_dir = { \
|
||||
$(am__cd) "$$dir" && rm -f $$files; }; \
|
||||
}
|
||||
am__installdirs = "$(DESTDIR)$(toolexeclibdir)"
|
||||
LTLIBRARIES = $(toolexeclib_LTLIBRARIES)
|
||||
LTLIBRARIES = $(noinst_LTLIBRARIES) $(toolexeclib_LTLIBRARIES)
|
||||
am__DEPENDENCIES_1 =
|
||||
libubsan_la_DEPENDENCIES = \
|
||||
$(top_builddir)/sanitizer_common/libsanitizer_common.la \
|
||||
$(am__append_1) $(am__append_2) $(am__DEPENDENCIES_1)
|
||||
libsanitizer_ubsan_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
|
||||
am__objects_1 = ubsan_diag.lo ubsan_flags.lo ubsan_handlers.lo \
|
||||
ubsan_handlers_cxx.lo ubsan_init.lo ubsan_type_hash.lo \
|
||||
ubsan_type_hash_itanium.lo ubsan_type_hash_win.lo \
|
||||
ubsan_value.lo
|
||||
am_libsanitizer_ubsan_la_OBJECTS = $(am__objects_1)
|
||||
libsanitizer_ubsan_la_OBJECTS = $(am_libsanitizer_ubsan_la_OBJECTS)
|
||||
libubsan_la_DEPENDENCIES = \
|
||||
$(top_builddir)/sanitizer_common/libsanitizer_common.la \
|
||||
$(am__append_1) $(am__append_2) $(am__DEPENDENCIES_1)
|
||||
am__objects_2 = $(am__objects_1)
|
||||
am_libubsan_la_OBJECTS = $(am__objects_2)
|
||||
libubsan_la_OBJECTS = $(am_libubsan_la_OBJECTS)
|
||||
@ -131,7 +134,7 @@ CXXLD = $(CXX)
|
||||
CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
|
||||
--mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
|
||||
$(LDFLAGS) -o $@
|
||||
SOURCES = $(libubsan_la_SOURCES)
|
||||
SOURCES = $(libsanitizer_ubsan_la_SOURCES) $(libubsan_la_SOURCES)
|
||||
am__can_run_installinfo = \
|
||||
case $$AM_UPDATE_INFO_DIR in \
|
||||
n|no|NO) false;; \
|
||||
@ -298,6 +301,7 @@ AM_CXXFLAGS = -Wall -W -Wno-unused-parameter -Wwrite-strings -pedantic \
|
||||
-std=gnu++11 $(EXTRA_CXXFLAGS)
|
||||
ACLOCAL_AMFLAGS = -I m4
|
||||
toolexeclib_LTLIBRARIES = libubsan.la
|
||||
noinst_LTLIBRARIES = libsanitizer_ubsan.la
|
||||
ubsan_plugin_files = \
|
||||
ubsan_diag.cc \
|
||||
ubsan_flags.cc \
|
||||
@ -310,7 +314,9 @@ ubsan_plugin_files = \
|
||||
ubsan_value.cc
|
||||
|
||||
ubsan_files = $(ubsan_plugin_files)
|
||||
libubsan_la_SOURCES = $(ubsan_files)
|
||||
libsanitizer_ubsan_la_SOURCES = $(ubsan_plugin_files)
|
||||
libsanitizer_ubsan_la_LIBADD = $(LIBSTDCXX_RAW_CXX_LDFLAGS)
|
||||
libubsan_la_SOURCES = $(ubsan_files)
|
||||
libubsan_la_LIBADD = \
|
||||
$(top_builddir)/sanitizer_common/libsanitizer_common.la \
|
||||
$(am__append_1) $(am__append_2) $(LIBSTDCXX_RAW_CXX_LDFLAGS)
|
||||
@ -389,6 +395,15 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
|
||||
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(am__aclocal_m4_deps):
|
||||
|
||||
clean-noinstLTLIBRARIES:
|
||||
-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
|
||||
@list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
|
||||
dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
|
||||
test "$$dir" != "$$p" || dir=.; \
|
||||
echo "rm -f \"$${dir}/so_locations\""; \
|
||||
rm -f "$${dir}/so_locations"; \
|
||||
done
|
||||
install-toolexeclibLTLIBRARIES: $(toolexeclib_LTLIBRARIES)
|
||||
@$(NORMAL_INSTALL)
|
||||
@list='$(toolexeclib_LTLIBRARIES)'; test -n "$(toolexeclibdir)" || list=; \
|
||||
@ -421,6 +436,8 @@ clean-toolexeclibLTLIBRARIES:
|
||||
echo "rm -f \"$${dir}/so_locations\""; \
|
||||
rm -f "$${dir}/so_locations"; \
|
||||
done
|
||||
libsanitizer_ubsan.la: $(libsanitizer_ubsan_la_OBJECTS) $(libsanitizer_ubsan_la_DEPENDENCIES) $(EXTRA_libsanitizer_ubsan_la_DEPENDENCIES)
|
||||
$(CXXLINK) $(libsanitizer_ubsan_la_OBJECTS) $(libsanitizer_ubsan_la_LIBADD) $(LIBS)
|
||||
libubsan.la: $(libubsan_la_OBJECTS) $(libubsan_la_DEPENDENCIES) $(EXTRA_libubsan_la_DEPENDENCIES)
|
||||
$(libubsan_la_LINK) -rpath $(toolexeclibdir) $(libubsan_la_OBJECTS) $(libubsan_la_LIBADD) $(LIBS)
|
||||
|
||||
@ -557,8 +574,8 @@ maintainer-clean-generic:
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
clean: clean-am
|
||||
|
||||
clean-am: clean-generic clean-libtool clean-toolexeclibLTLIBRARIES \
|
||||
mostlyclean-am
|
||||
clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
|
||||
clean-toolexeclibLTLIBRARIES mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -rf ./$(DEPDIR)
|
||||
@ -629,18 +646,19 @@ uninstall-am: uninstall-toolexeclibLTLIBRARIES
|
||||
.MAKE: install-am install-strip
|
||||
|
||||
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
|
||||
clean-libtool clean-toolexeclibLTLIBRARIES ctags distclean \
|
||||
distclean-compile distclean-generic distclean-libtool \
|
||||
distclean-tags dvi dvi-am html html-am info info-am install \
|
||||
install-am install-data install-data-am install-dvi \
|
||||
install-dvi-am install-exec install-exec-am install-html \
|
||||
install-html-am install-info install-info-am install-man \
|
||||
install-pdf install-pdf-am install-ps install-ps-am \
|
||||
install-strip install-toolexeclibLTLIBRARIES installcheck \
|
||||
installcheck-am installdirs maintainer-clean \
|
||||
maintainer-clean-generic mostlyclean mostlyclean-compile \
|
||||
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
|
||||
tags uninstall uninstall-am uninstall-toolexeclibLTLIBRARIES
|
||||
clean-libtool clean-noinstLTLIBRARIES \
|
||||
clean-toolexeclibLTLIBRARIES ctags distclean distclean-compile \
|
||||
distclean-generic distclean-libtool distclean-tags dvi dvi-am \
|
||||
html html-am info info-am install install-am install-data \
|
||||
install-data-am install-dvi install-dvi-am install-exec \
|
||||
install-exec-am install-html install-html-am install-info \
|
||||
install-info-am install-man install-pdf install-pdf-am \
|
||||
install-ps install-ps-am install-strip \
|
||||
install-toolexeclibLTLIBRARIES installcheck installcheck-am \
|
||||
installdirs maintainer-clean maintainer-clean-generic \
|
||||
mostlyclean mostlyclean-compile mostlyclean-generic \
|
||||
mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
|
||||
uninstall-am uninstall-toolexeclibLTLIBRARIES
|
||||
|
||||
|
||||
# Use special rules for files that require RTTI support.
|
||||
|
Loading…
Reference in New Issue
Block a user