aboutsummaryrefslogtreecommitdiff
path: root/libsanitizer
AgeCommit message (Collapse)AuthorFilesLines
2017-10-20re PR sanitizer/82595 (bootstrap fails in libsanitizer on ↵Jakub Jelinek4-18/+61
powerpc64-unknown-linux-gnu) PR sanitizer/82595 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Add libtsan_preinit.o for -fsanitize=thread link of executables. (LIBLSAN_EARLY_SPEC): Add liblsan_preinit.o for -fsanitize=leak link of executables. * lsan/lsan.h (__lsan_init): Add SANITIZER_INTERFACE_ATTRIBUTE. * lsan/Makefile.am (nodist_toolexeclib_HEADERS): Add liblsan_preinit.o. (lsan_files): Remove lsan_preinit.cc. (liblsan_preinit.o): New rule. * lsan/Makefile.in: Regenerated. From-SVN: r253925
2017-10-19ubsan.c (ubsan_expand_null_ifn): Use _v1 suffixed type mismatch builtins...Jakub Jelinek261-5763/+14251
* ubsan.c (ubsan_expand_null_ifn): Use _v1 suffixed type mismatch builtins, store max (log2 (align), 0) into uchar field instead of align into uptr field. (ubsan_expand_objsize_ifn): Use _v1 suffixed type mismatch builtins, store uchar 0 field instead of uptr 0 field. (instrument_nonnull_return): Use _v1 suffixed nonnull return builtin, instead of passing one address of struct with 2 locations pass two addresses of structs with 1 location each. * sanitizer.def (BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH, BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT, BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN, BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_ABORT): Removed. (BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_V1, BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_V1_ABORT, BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_V1, BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_V1_ABORT): New builtins. * c-c++-common/ubsan/float-cast-overflow-1.c: Drop value keyword from expected output regexps. * c-c++-common/ubsan/float-cast-overflow-2.c: Likewise. * c-c++-common/ubsan/float-cast-overflow-3.c: Likewise. * c-c++-common/ubsan/float-cast-overflow-4.c: Likewise. * c-c++-common/ubsan/float-cast-overflow-5.c: Likewise. * c-c++-common/ubsan/float-cast-overflow-6.c: Likewise. * c-c++-common/ubsan/float-cast-overflow-8.c: Likewise. * c-c++-common/ubsan/float-cast-overflow-9.c: Likewise. * c-c++-common/ubsan/float-cast-overflow-10.c: Likewise. * g++.dg/ubsan/float-cast-overflow-bf.C: Likewise. * gcc.dg/ubsan/float-cast-overflow-bf.c: Likewise. * g++.dg/asan/default-options-1.C (__asan_default_options): Add used attribute. * g++.dg/asan/asan_test.C: Run with ASAN_OPTIONS=handle_segv=2 in the environment. * All source files: Merge from upstream 315899. * asan/Makefile.am (nodist_saninclude_HEADERS): Add include/sanitizer/tsan_interface.h. * asan/libtool-version: Bump the libasan SONAME. * lsan/Makefile.am (sanitizer_lsan_files): Add lsan_common_mac.cc. (lsan_files): Add lsan_linux.cc, lsan_mac.cc and lsan_malloc_mac.cc. * sanitizer_common/Makefile.am (sanitizer_common_files): Add sancov_flags.cc, sanitizer_allocator_checks.cc, sanitizer_coverage_libcdep_new.cc, sanitizer_errno.cc, sanitizer_file.cc, sanitizer_mac_libcdep.cc and sanitizer_stoptheworld_mac.cc. Remove sanitizer_coverage_libcdep.cc and sanitizer_coverage_mapping_libcdep.cc. * tsan/Makefile.am (tsan_files): Add tsan_external.cc. * ubsan/Makefile.am (DEFS): Add -DUBSAN_CAN_USE_CXXABI=1. (ubsan_files): Add ubsan_init_standalone.cc and ubsan_signals_standalone.cc. * ubsan/libtool-version: Bump the libubsan SONAME. * asan/Makefile.in: Regenerate. * lsan/Makefile.in: Regenerate. * sanitizer_common/Makefile.in: Regenerate. * tsan/Makefile.in: Regenerate. * ubsan/Makefile.in: Regenerate. From-SVN: r253887
2017-10-05Add sanitizer_linux_x86_64.lo if __x86_64__ is defined by $CCH.J. Lu2-0/+8
Since size of "void *" is 4 bytes for x32, check if __x86_64__ is defined by $CC, instead of if test x$ac_cv_sizeof_void_p = x8; then to decide wether sanitizer_linux_x86_64.lo should be used. PR sanitizer/82379 * configure.tgt (SANITIZER_COMMON_TARGET_DEPENDENT_OBJECTS): Set to sanitizer_linux_x86_64.lo if __x86_64__ is defined by $CC. From-SVN: r253441
2017-10-02backtrace-rename.h (backtrace_uncompress_zdebug): Define.Jakub Jelinek2-0/+6
* libbacktrace/backtrace-rename.h (backtrace_uncompress_zdebug): Define. From-SVN: r253351
2017-08-07* include/system/sys/ptrace.h: New file.Jakub Jelinek2-0/+11
From-SVN: r250910
2017-07-28re PR sanitizer/80998 (Implement -fsanitize=pointer-overflow)Jakub Jelinek4-0/+46
PR sanitizer/80998 * sanopt.c (pass_sanopt::execute): Handle IFN_UBSAN_PTR. * tree-ssa-alias.c (call_may_clobber_ref_p_1): Likewise. * flag-types.h (enum sanitize_code): Add SANITIZER_POINTER_OVERFLOW. Or it into SANITIZER_UNDEFINED. * ubsan.c: Include gimple-fold.h and varasm.h. (ubsan_expand_ptr_ifn): New function. (instrument_pointer_overflow): New function. (maybe_instrument_pointer_overflow): New function. (instrument_object_size): Formatting fix. (pass_ubsan::execute): Call instrument_pointer_overflow and maybe_instrument_pointer_overflow. * internal-fn.c (expand_UBSAN_PTR): New function. * ubsan.h (ubsan_expand_ptr_ifn): Declare. * sanitizer.def (__ubsan_handle_pointer_overflow, __ubsan_handle_pointer_overflow_abort): New builtins. * tree-ssa-tail-merge.c (merge_stmts_p): Handle IFN_UBSAN_PTR. * internal-fn.def (UBSAN_PTR): New internal function. * opts.c (sanitizer_opts): Add pointer-overflow. * lto-streamer-in.c (input_function): Handle IFN_UBSAN_PTR. * fold-const.c (build_range_check): Compute pointer range check in integral type if pointer arithmetics would be needed. Formatting fixes. gcc/testsuite/ * c-c++-common/ubsan/ptr-overflow-1.c: New test. * c-c++-common/ubsan/ptr-overflow-2.c: New test. libsanitizer/ * ubsan/ubsan_handlers.cc: Cherry-pick upstream r304461. * ubsan/ubsan_checks.inc: Likewise. * ubsan/ubsan_handlers.h: Likewise. From-SVN: r250656
2017-07-14re PR sanitizer/81066 (sanitizer_stoptheworld_linux_libcdep.cc:276:22: ↵Jakub Jelinek5-7/+12
error: aggregate ‘sigaltstack handler_stack’ has incomplete type and cannot be defined) PR sanitizer/81066 * sanitizer_common/sanitizer_linux.h: Cherry-pick upstream r307969. * sanitizer_common/sanitizer_linux.cc: Likewise. * sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc: Likewise. * tsan/tsan_platform_linux.cc: Likewise. From-SVN: r250200
2017-04-06Cherry-pick upstream r299036 from libsanitizer (PR sanitizer/80166).Martin Liska2-1/+8
2017-04-06 Martin Liska <mliska@suse.cz> PR sanitizer/80166 * sanitizer_common/sanitizer_common_interceptors.inc (INTERCEPTOR): Cherry-pick upstream r299036. 2017-04-06 Martin Liska <mliska@suse.cz> PR sanitizer/80166 * gcc.dg/asan/pr80166.c: New test. From-SVN: r246730
2017-03-22re PR sanitizer/78158 (Strange data race detection with thread sanitizer)Jakub Jelinek2-1/+23
PR sanitizer/78158 * tsan/tsan_interface_atomic.cc: Cherry-pick upstream r298378. From-SVN: r246402
2017-02-16re PR sanitizer/79562 (sanitizer breaks bootstrap of x86_64-*-freebsd)Andreas Tobler2-6/+7
2017-02-16 Andreas Tobler <andreast@gcc.gnu.org> PR sanitizer/79562 * sanitizer_common/sanitizer_platform_limits_posix.cc: Cherry-pick upstream r294806. From-SVN: r245520
2017-02-11re PR sanitizer/79341 (Many Asan tests fail on s390)Jakub Jelinek5-15/+68
PR sanitizer/79341 * configure.tgt (s390*-*-linux*): Don't disable libsanitizer on s390-linux 31-bit. * sanitizer_common/sanitizer_internal_defs.h: Cherry-pick upstream r294793. * sanitizer_common/sanitizer_common_interceptors.inc: Cherry-pick upstream r294790. * sanitizer_common/sanitizer_linux_s390.cc: Cherry-pick upstream r294799. From-SVN: r245350
2017-02-03re PR sanitizer/78663 (Hundreds of asan failures on x86_64-apple-darwin10 at ↵Maxim Ostapenko3-10/+28
r243019) PR sanitizer/78663 * sanitizer_common/sanitizer_mac.cc: Cherry-pick upstream r293992. * sanitizer_common/sanitizer_platform_interceptors.h: Likewise. From-SVN: r245149
2017-01-31s390.c (s390_asan_shadow_offset): New function.Jakub Jelinek2-0/+9
gcc/ * config/s390/s390.c (s390_asan_shadow_offset): New function. (TARGET_ASAN_SHADOW_OFFSET): Redefine. libsanitizer/ * configure.tgt: Enable asan and ubsan on 64-bit s390*-*-linux*. From-SVN: r245060
2017-01-24* configure.tgt: Enable tsan and lsan on powerpc64{,le}-*-linux*.Jakub Jelinek2-1/+8
From-SVN: r244854
2017-01-24re PR sanitizer/79168 (libtsan fails to link when cross compiling GCC tip ↵Jakub Jelinek9-0/+28
for Aarch64 target) PR sanitizer/79168 * merge.sh (change_comment_headers): Don't remove 2nd and 3rd line if the 3rd line doesn't contain 'The LLVM Compiler Infrastructure' text. * sanitizer_common/sanitizer_linux_mips64.S: Regenerated. * sanitizer_common/sanitizer_linux_x86_64.S: Likewise. * tsan/tsan_ppc_regs.h: Likewise. * tsan/tsan_rtl_aarch64.S: Likewise. * tsan/tsan_rtl_mips64.S: Likewise. * tsan/tsan_rtl_ppc64.S: Likewise. From-SVN: r244844
2017-01-21re PR other/79046 (g++ -print-file-name=plugin uses full version number in path)Jakub Jelinek13-12/+29
PR other/79046 libatomic/ * testsuite/Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. * testsuite/Makefile.in: Regenerated. libffi/ * configure.ac: Add GCC_BASE_VER. * include/Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. * configure: Regenerated. * testsuite/Makefile.in: Regenerated. * include/Makefile.in: Regenerated. * Makefile.in: Regenerated. * man/Makefile.in: Regenerated. libgomp/ * testsuite/Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. * testsuite/Makefile.in: Regenerated. libitm/ * testsuite/Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. * testsuite/Makefile.in: Regenerated. libmpx/ * mpxrt/Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. * mpxwrap/Makefile.am (gcc_version): Likewise. * mpxrt/Makefile.in: Regenerated. * mpxwrap/Makefile.in: Regenerated. liboffloadmic/ * plugin/configure.ac: Add GCC_BASE_VER. * plugin/Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. * plugin/configure: Regenerated. * plugin/aclocal.m4: Regenerated. * plugin/Makefile.in: Regenerated. libsanitizer/ * interception/Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. * asan/Makefile.am (gcc_version): Likewise. * ubsan/Makefile.am (gcc_version): Likewise. * sanitizer_common/Makefile.am (gcc_version): Likewise. * lsan/Makefile.am (gcc_version): Likewise. * tsan/Makefile.am (gcc_version): Likewise. * interception/Makefile.in: Regenerated. * asan/Makefile.in: Regenerated. * ubsan/Makefile.in: Regenerated. * sanitizer_common/Makefile.in: Regenerated. * lsan/Makefile.in: Regenerated. * tsan/Makefile.in: Regenerated. libvtv/ * testsuite/Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. * testsuite/Makefile.in: Regenerated. From-SVN: r244742
2017-01-17re PR other/79046 (g++ -print-file-name=plugin uses full version number in path)Jakub Jelinek12-4/+50
PR other/79046 * configure: Regenerated. config/ * acx.m4 (GCC_BASE_VER): New m4 function. (ACX_TOOL_DIRS): Require GCC_BASE_VER, for --with-gcc-major-version-only use just major number from BASE-VER. gcc/ * configure.ac: Add GCC_BASE_VER. * Makefile.in (version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. (CFLAGS-gcc.o): Add -DBASEVER=$(BASEVER_s). (gcc.o): Depend on $(BASEVER). * common.opt (dumpfullversion): New option. * gcc.c (driver_handle_option): Handle OPT_dumpfullversion. * doc/invoke.texi: Document -dumpfullversion. * doc/install.texi: Document --with-gcc-major-version-only. * configure: Regenerated. libatomic/ * configure.ac: Add GCC_BASE_VER. * Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. * testsuite/Makefile.in: Regenerated. * configure: Regenerated. * Makefile.in: Regenerated. libgomp/ * configure.ac: Add GCC_BASE_VER. * Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. * testsuite/Makefile.in: Regenerated. * configure: Regenerated. * Makefile.in: Regenerated. libgcc/ * configure.ac: Add GCC_BASE_VER. * Makefile.in (version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. * configure: Regenerated. libssp/ * configure.ac: Add GCC_BASE_VER. * Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. * configure: Regenerated. * Makefile.in: Regenerated. liboffloadmic/ * configure.ac: Add GCC_BASE_VER. * Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. * aclocal.m4: Include ../config/acx.m4. * configure: Regenerated. * Makefile.in: Regenerated. libquadmath/ * configure.ac: Add GCC_BASE_VER. * Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. * configure: Regenerated. * Makefile.in: Regenerated. libmpx/ * configure.ac: Add GCC_BASE_VER. * Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. * configure: Regenerated. * Makefile.in: Regenerated. libada/ * configure.ac: Add GCC_BASE_VER. * Makefile.in (version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. * configure: Regenerated. lto-plugin/ * configure.ac: Add GCC_BASE_VER. * Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. * configure: Regenerated. * Makefile.in: Regenerated. libitm/ * configure.ac: Add GCC_BASE_VER. * Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. * testsuite/Makefile.in: Regenerated. * configure: Regenerated. * Makefile.in: Regenerated. fixincludes/ * configure.ac: Add GCC_BASE_VER. * Makefile.in (gcc_version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. * configure: Regenerated. libcilkrts/ * configure.ac: Add GCC_BASE_VER. * Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. * aclocal.m4: Include ../config/acx.m4. * configure: Regenerated. * Makefile.in: Regenerated. libcc1/ * configure.ac: Add GCC_BASE_VER. For --with-gcc-major-version-only use just major number from BASE-VER. * configure: Regenerated. * Makefile.in: Regenerated. libobjc/ * configure.ac: Add GCC_BASE_VER. * Makefile.in (gcc_version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. * configure: Regenerated. libstdc++-v3/ * configure.ac: Add GCC_BASE_VER. * fragment.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. * po/Makefile.in: Regenerated. * libsupc++/Makefile.in: Regenerated. * testsuite/Makefile.in: Regenerated. * src/Makefile.in: Regenerated. * configure: Regenerated. * Makefile.in: Regenerated. * include/Makefile.in: Regenerated. * doc/Makefile.in: Regenerated. * python/Makefile.in: Regenerated. * src/c++11/Makefile.in: Regenerated. * src/c++98/Makefile.in: Regenerated. * src/filesystem/Makefile.in: Regenerated. libvtv/ * configure.ac: Add GCC_BASE_VER. * Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. * testsuite/Makefile.in: Regenerated. * configure: Regenerated. * Makefile.in: Regenerated. libsanitizer/ * configure.ac: Add GCC_BASE_VER. * Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. * libbacktrace/Makefile.in: Regenerated. * interception/Makefile.in: Regenerated. * asan/Makefile.in: Regenerated. * ubsan/Makefile.in: Regenerated. * configure: Regenerated. * sanitizer_common/Makefile.in: Regenerated. * lsan/Makefile.in: Regenerated. * Makefile.in: Regenerated. * tsan/Makefile.in: Regenerated. libgfortran/ * configure.ac: Add GCC_BASE_VER. * Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. * configure: Regenerated. * Makefile.in: Regenerated. From-SVN: r244521
2017-01-10re PR sanitizer/78992 (Incorrect sigaction definition on 32-bit sparc)James Clarke2-2/+11
PR sanitizer/78992 * sanitizer_common/sanitizer_platform_limits_posix.h (struct __sanitizer_sigaction): Cherry-pick upstream r291561. From-SVN: r244275
2016-11-30Add PR sanitizer/78532 patch to libsanitizer/LOCAL_PATCHES.Maxim Ostapenko2-0/+5
From-SVN: r243016
2016-11-30re PR sanitizer/78532 (libsanitizer fails to build on sparc64-linux-gnu)Maxim Ostapenko2-0/+18
PR sanitizer/78532 * sanitizer_common/sanitizer_platform_limits_posix.h (__sanitizer_sigaction): Adjust for sparc targets and various Glibc versions. From-SVN: r243014
2016-11-29Remove r242480 from libsanitizer/LOCAL_PATCHESMarkus Trippelsdorf2-1/+4
The fix is now upstream. * LOCAL_PATCHES: Remove r242480. From-SVN: r242957
2016-11-20Add PR sanitizer/78267 patch to libsanitizer/LOCAL_PATCHESRainer Orth2-0/+5
From-SVN: r242634
2016-11-20Fix libsanitizer build on OS X 10.1[01], macOS 10.12 (PR sanitizer/78267)Rainer Orth2-1/+7
fixincludes: PR sanitizer/78267 * inclhack.def (darwin_availabilityinternal, darwin_os_trace_1) (darwin_os_trace_2, darwin_os_trace_3): New fixes. (hpux_stdint_least_fast): Remove spurious _EOFix_. * fixincl.x: Regenerate. * tests/bases/AvailabilityInternal.h: New file. * tests/bases/os/trace.h: New file. 2016-11-20 Jack Howarth <howarth.at.gcc@gmail.com> libsanitizer: PR sanitizer/78267 * sanitizer_common/sanitizer_mac.cc: Include <os/trace.h> only if compiler supports blocks extension. From-SVN: r242633
2016-11-16Add revsison to libsanitizer/LOCAL_PATCHESMarkus Trippelsdorf2-0/+5
From-SVN: r242481
2016-11-16Fix PR78294 - thread sanitizer broken when using ld.goldMarkus Trippelsdorf2-0/+6
When one uses ld.gold to build gcc, the thread sanitizer doesn't work, because gold is more conservative when applying TLS relaxations than ld.bfd. In this case a missing initial-exec attribute on a declaration causes gcc to assume the general dynamic model. With ld.bfd this gets relaxed to initial exec when linking the shared library, so the missing attribute doesn't matter. But ld.gold doesn't perform this optimization and this leads to crashes on tsan instrumented binaries. See: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78294 and: https://sourceware.org/bugzilla/show_bug.cgi?id=20805 The fix is easy, just add the missing attribute. PR sanitizer/78294 * tsan/tsan_rtl.cc: Add missing attribute. From-SVN: r242480
2016-11-16LOCAL_PATCHES: New file.Maxim Ostapenko2-0/+8
libsanitizer/ * LOCAL_PATCHES: New file. From-SVN: r242479
2016-11-16re PR sanitizer/78307 (missing symbols in libubsan without changing the soname)Maxim Ostapenko6-1/+71
PR sanitizer/78307 * ubsan/ubsan_handlers.cc (__ubsan_handle_cfi_bad_icall): New function. ( __ubsan_handle_cfi_bad_icall_abort): Likewise. * ubsan/ubsan_handlers.h (struct CFIBadIcallData): New type. * ubsan/ubsan_handlers_cxx.cc (__ubsan_handle_cfi_bad_type): New function. (__ubsan_handle_cfi_bad_type_abort): Likewise. * ubsan/ubsan_handlers_cxx.h (struct CFIBadTypeData): New type. (__ubsan_handle_cfi_bad_type): Export function. (__ubsan_handle_cfi_bad_type_abort): Likewise. * HOWTO_MERGE: Update documentation. From-SVN: r242478
2016-11-15config-ml.in: Remove references to GCJ.Matthias Klose2-1/+4
<toplevel> 2016-11-15 Matthias Klose <doko@ubuntu.com> * config-ml.in: Remove references to GCJ. * configure.ac: Likewise. * configure: Regenerate. config/ 2016-11-15 Matthias Klose <doko@ubuntu.com> multi.m4: Don't set GCJ. gcc/ 2016-11-15 Matthias Klose <doko@ubuntu.com> * doc/install.texi: Remove references to gcj/libjava. * doc/invoke.texi: Likewise. */ (where necessary) 2016-11-15 Matthias Klose <doko@ubuntu.com> * configure: Regenerate. From-SVN: r242433
2016-11-09asan_globals.cc (RegisterGlobal): Do not call CheckODRViolationViaPoisoning.Maxim Ostapenko2-19/+6
libsanitizer/ * asan/asan_globals.cc (RegisterGlobal): Do not call CheckODRViolationViaPoisoning. (CheckODRViolationViaPoisoning): Remove. From-SVN: r241981
2016-11-09sanitizer_stacktrace.cc (GetCanonicFrame): Assume we compiled code with GCC ↵Maxim Ostapenko2-2/+8
when extracting the caller PC for ARM if... libsanitizer/ * sanitizer_common/sanitizer_stacktrace.cc (GetCanonicFrame): Assume we compiled code with GCC when extracting the caller PC for ARM if no valid frame pointer is available. From-SVN: r241980
2016-11-09re PR sanitizer/63958 (bootstrap failure in the sanitizer libs on ↵Maxim Ostapenko3-3/+77
sparc-linux-gnu) PR sanitizer/63958 Reapply: 2014-10-14 David S. Miller <davem@davemloft.net> * sanitizer_common/sanitizer_platform_limits_linux.cc (time_t): Define at __kernel_time_t, as needed for sparc. (struct __old_kernel_stat): Don't check if __sparc__ is defined. * libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h (__sanitizer): Define struct___old_kernel_stat_sz, struct_kernel_stat_sz, and struct_kernel_stat64_sz for sparc. (__sanitizer_ipc_perm): Adjust for sparc targets. (__sanitizer_shmid_ds): Likewsie. (__sanitizer_sigaction): Likewise. (IOC_SIZE): Likewsie. From-SVN: r241978
2016-11-09All source files: Merge from upstream 285547.Maxim Ostapenko211-5347/+14569
libsanitizer/ * All source files: Merge from upstream 285547. * configure.tgt (SANITIZER_COMMON_TARGET_DEPENDENT_OBJECTS): New variable. * configure.ac (SANITIZER_COMMON_TARGET_DEPENDENT_OBJECTS): Handle it. * asan/Makefile.am (asan_files): Add new files. * asan/Makefile.in: Regenerate. * ubsan/Makefile.in: Likewise. * lsan/Makefile.in: Likewise. * tsan/Makefile.am (tsan_files): Add new files. * tsan/Makefile.in: Regenerate. * sanitizer_common/Makefile.am (sanitizer_common_files): Add new files. (EXTRA_libsanitizer_common_la_SOURCES): Define. (libsanitizer_common_la_LIBADD): Likewise. (libsanitizer_common_la_DEPENDENCIES): Likewise. * sanitizer_common/Makefile.in: Regenerate. * interception/Makefile.in: Likewise. * libbacktace/Makefile.in: Likewise. * Makefile.in: Likewise. * configure: Likewise. * merge.sh: Handle builtins/assembly.h merging. * builtins/assembly.h: New file. * asan/libtool-version: Bump the libasan SONAME. From-SVN: r241977
2016-09-21re PR sanitizer/77567 (ASAN: Bugus error "alloc-dealloc-mismatch (malloc vs ↵Jakub Jelinek2-10/+57
operator delete [])" with C++17's over-aligned types) PR sanitizer/77567 * asan/asan_new_delete.cc: Cherry-pick upstream r282019. From-SVN: r240316
2016-09-05re PR sanitizer/77396 (address sanitizer crashes if all static global ↵Jakub Jelinek2-3/+9
variables are optimized) PR sanitizer/77396 * asan/asan_globals.cc: Cherry-pick upstream r280657. * g++.dg/asan/pr77396-2.C: New test. From-SVN: r239998
2016-08-12re PR sanitizer/71042 (libtsan requires __pointer_chk_guard@GLIBC_PRIVATE (6))Jakub Jelinek3-12/+80
PR sanitizer/71042 * tsan/tsan_platform_linux.cc: Cherry-pick upstream r278292. * tsan/tsan_rtl_aarch64.S: Likewise. From-SVN: r239407
2016-07-25Revert 2015-11-09 sanitizer/obstack configuryAlan Modra13-72/+22
The 2015-11-23 sanitizer merge from upstream lost the changes from f6528435 to sanitizer_common/sanitizer_common_interceptors.inc, which made use of _OBSTACK_SIZE_T. So the configury changes to define _OBSTACK_SIZE_T don't do anything. This wasn't such a bad thing anyway.. The configure test wrongly adds -I${srcdir}/../include, effectively resulting in a test of libiberty/obstack rather than libc obstack support, and it's the latter that asan and tsan need to work with. So, remove the useless configure test. Upstream santizer project has been made aware of the problem if glibc obstack support is ever updated. Bootsrapped etc. x86_64-linux and committed as obvious. Revert 2015-11-09 Alan Modra <amodra@gmail.com> * configure.ac: Don't substitute OBSTACK_DEFS. * asan/Makefile.am: Remove OBSTACK_DEFS from DEFS. * tsan/Makefile.am: Likewise. * configure: Regenerate. * Makefile.in: Regenerate. * asan/Makefile.in: Regenerate. * interception/Makefile.in: Regenerate. * libbacktrace/Makefile.in: Regenerate. * lsan/Makefile.in: Regenerate. * sanitizer_common/Makefile.in: Regenerate. * tsan/Makefile.in: Regenerate. * ubsan/Makefile.in: Regenerate. From-SVN: r238701
2016-05-17re PR sanitizer/71160 (libasan: Backport support for malloc within dlsym)Jakub Jelinek2-10/+39
PR sanitizer/71160 * asan/asan_malloc_linux.cc: Cherry pick upstream r254395 and r269633. From-SVN: r236314
2016-04-21Cherry-pick r266868 from upstream.Maxim Ostapenko2-1/+10
PR sanitizer/70624 * asan/asan_mac.cc: Cherry pick upstream r266868. From-SVN: r235338
2016-01-19re PR sanitizer/68824 (libtsan is missing the __interceptor___tls_get_addr ↵Jakub Jelinek2-0/+21
symbol without bumping the soname) PR sanitizer/68824 * tsan/tsan_interceptors.cc (NEED_TLS_GET_ADDR, __tls_get_addr, InitializeInterceptors): Cherry pick upstream r258119. From-SVN: r232555
2016-01-14configure.ac: Replace the hard-coded -ldl requirement for ↵Andreas Tobler3-4/+56
link_sanitizer_common with a... 2016-01-14 Andreas Tobler <andreast@gcc.gnu.org> * configure.ac: Replace the hard-coded -ldl requirement for link_sanitizer_common with a configure time check for -ldl. * configure: Regenerate. From-SVN: r232385
2015-11-24Move ptrace.h to appropriate place.Max Ostapenko2-1/+6
libsanitizer/ * include/system/linux/asm/ptrace.h: Move to ... * include/system/asm/ptrace.h: ... this. From-SVN: r230804
2015-11-24Fix libsanitizer build with old kernel headers on ARM after r230739.Max Ostapenko2-0/+11
libsanitizer/ * include/system/linux/asm/ptrace.h: New header. From-SVN: r230790
2015-11-23libsanitizer merge from upstream r253555.Max Ostapenko65-778/+1709
libsanitizer/ 2015-11-23 Maxim Ostapenko <m.ostapenko@partner.samsung.com> * All source files: Merge from upstream r253555. * configure.tgt: Enable LSan on aarch64-*-linux* targets. Add new dependences for TSan for aarch64-*-linux* targets. * tsan/Makefile.am: Add new source files. * configure: Regenerate. * tsan/Makefile.in: Likewise. From-SVN: r230739
2015-11-09Update libsanitizer obstack interceptorsAlan Modra14-11/+99
New obstack uses sensible types, size_t instead of int for length params. Since libsanitizer does not use prototypes from obstack.h to call the real functions, it's necessary to update the libsanitizer function declarations emitted by the INTERCEPTOR macro. * sanitizer_common/sanitizer_common_interceptors.inc: Update size params for _obstack_begin_1, _obstack_begin, _obstack_newchunk interceptors. * configure.ac: Substitute OBSTACK_DEFS. * asan/Makefile.am: Add OBSTACK_DEFS to DEFS. * tsan/Makefile.am: Likewise. * configure: Regenerate. * Makefile.in: Regenerate. * asan/Makefile.in: Regenerate. * interception/Makefile.in: Regenerate. * libbacktrace/Makefile.in: Regenerate. * lsan/Makefile.in: Regenerate. * sanitizer_common/Makefile.in: Regenerate. * tsan/Makefile.in: Regenerate. * ubsan/Makefile.in: Regenerate. From-SVN: r229986
2015-10-23Update HOWTO_MERGE file for libsanitizer.Maxim Ostapenko1-18/+31
From-SVN: r229215
2015-10-22Fix bootstrap on x86_64-apple-darwin14 after r229119.Max Ostapenko5-31/+128
libsanitizer/ PR bootstrap/68041 * configure.ac (link_sanitizer_common): Link against librt only if it contains shm_open, required by sanitizers. (CXX_ABI_NEEDED): Remove variable. * configure: Regenerate. * ubsan/Makefile.am (libubsan_la_LIBADD): Do not add -lc++abi anymore. * ubsan/Makefile.in: Regenerate. From-SVN: r229168
2015-10-21HOWTO_MERGE: New file.Max Ostapenko2-0/+30
libsanitizer/ * HOWTO_MERGE: New file. From-SVN: r229116
2015-10-21sanitizer_stacktrace.cc (GetCanonicFrame): Assume we compiled code with GCC ↵Max Ostapenko2-2/+8
when extracting the caller PC for ARM if... libsanitizer/ * sanitizer_common/sanitizer_stacktrace.cc (GetCanonicFrame): Assume we compiled code with GCC when extracting the caller PC for ARM if no valid frame pointer is available. From-SVN: r229115
2015-10-21re PR bootstrap/63888 (bootstrap failed when configured with ↵Max Ostapenko2-1/+14
-with-build-config=bootstrap-asan --disable-werror) libsanitizer/ PR bootstrap/63888 Reapply: 2015-02-20 Jakub Jelinek <jakub@redhat.com> * asan/asan_globals.cc (RegisterGlobal): Disable detect_odr_violation support until it is rewritten upstream. * c-c++-common/asan/pr63888.c: New test. From-SVN: r229114
2015-10-21re PR sanitizer/63958 (bootstrap failure in the sanitizer libs on ↵Max Ostapenko3-3/+76
sparc-linux-gnu) libsanitizer/ PR sanitizer/63958 Reapply: 2014-10-14 David S. Miller <davem@davemloft.net> * sanitizer_common/sanitizer_platform_limits_linux.cc (time_t): Define at __kernel_time_t, as needed for sparc. (struct __old_kernel_stat): Don't check if __sparc__ is defined. * libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h (__sanitizer): Define struct___old_kernel_stat_sz, struct_kernel_stat_sz, and struct_kernel_stat64_sz for sparc. (__sanitizer_ipc_perm): Adjust for sparc targets. (__sanitizer_shmid_ds): Likewsie. (__sanitizer_sigaction): Likewise. (IOC_SIZE): Likewsie. From-SVN: r229113