[After multiple failed attempts at compressing this huge patch enough to let it pass through the drastic mailing engine's 400KB size limit, I am sending a link to the patch (at the end of this message) to let people download it instead. Sorry for spamming the people in the CC list.]
This patch imports the runtime library in the GCC tree, ensures that -lasan is passed to the linker when -faddress-sanitizer is used and sets up the build system accordingly. * configure.ac: Add libsanitizer to target_libraries. * Makefile.def: Ditto. * configure: Regenerate. * Makefile.in: Regenerate. * libsanitizer: New directory for asan runtime. Contains an empty tsan directory. gcc: * gcc.c (LINK_COMMAND_SPEC): Add -lasan to link command if -faddress-sanitizer is on. libsanitizer: Initial checkin: migrate asan runtime from llvm. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/asan@192977 138bc75d-0d04-0410-961f-82ee72b054a4 --- ChangeLog.asan | 16 + Makefile.def | 2 + Makefile.in | 487 +- configure | 1 + configure.ac | 1 + gcc/ChangeLog.asan | 5 + gcc/gcc.c | 1 + libsanitizer/ChangeLog.asan | 3 + libsanitizer/LICENSE.TXT | 97 + libsanitizer/Makefile.am | 46 + libsanitizer/Makefile.in | 773 + libsanitizer/README.gcc | 4 + libsanitizer/aclocal.m4 | 9599 ++++++++++ libsanitizer/asan/Makefile.am | 76 + libsanitizer/asan/Makefile.in | 631 + libsanitizer/asan/asan_allocator.cc | 1045 ++ libsanitizer/asan/asan_allocator.h | 177 + libsanitizer/asan/asan_flags.h | 103 + libsanitizer/asan/asan_globals.cc | 206 + libsanitizer/asan/asan_intercepted_functions.h | 217 + libsanitizer/asan/asan_interceptors.cc | 704 + libsanitizer/asan/asan_interceptors.h | 39 + libsanitizer/asan/asan_internal.h | 169 + libsanitizer/asan/asan_linux.cc | 150 + libsanitizer/asan/asan_lock.h | 40 + libsanitizer/asan/asan_mac.cc | 526 + libsanitizer/asan/asan_mac.h | 54 + libsanitizer/asan/asan_malloc_linux.cc | 142 + libsanitizer/asan/asan_malloc_mac.cc | 427 + libsanitizer/asan/asan_malloc_win.cc | 140 + libsanitizer/asan/asan_mapping.h | 120 + libsanitizer/asan/asan_new_delete.cc | 54 + libsanitizer/asan/asan_poisoning.cc | 151 + libsanitizer/asan/asan_posix.cc | 118 + libsanitizer/asan/asan_report.cc | 492 + libsanitizer/asan/asan_report.h | 51 + libsanitizer/asan/asan_rtl.cc | 404 + libsanitizer/asan/asan_stack.cc | 35 + libsanitizer/asan/asan_stack.h | 52 + libsanitizer/asan/asan_stats.cc | 86 + libsanitizer/asan/asan_stats.h | 65 + libsanitizer/asan/asan_thread.cc | 153 + libsanitizer/asan/asan_thread.h | 103 + libsanitizer/asan/asan_thread_registry.cc | 188 + libsanitizer/asan/asan_thread_registry.h | 83 + libsanitizer/asan/asan_win.cc | 190 + libsanitizer/asan/libtool-version | 6 + libsanitizer/config.guess | 1530 ++ libsanitizer/config.sub | 1773 ++ libsanitizer/configure | 17589 +++++++++++++++++++ libsanitizer/configure.ac | 42 + libsanitizer/depcomp | 630 + libsanitizer/include/sanitizer/asan_interface.h | 197 + .../include/sanitizer/common_interface_defs.h | 66 + libsanitizer/install-sh | 527 + libsanitizer/interception/Makefile.am | 59 + libsanitizer/interception/Makefile.in | 535 + libsanitizer/interception/interception.h | 195 + libsanitizer/interception/interception_linux.cc | 28 + libsanitizer/interception/interception_linux.h | 35 + libsanitizer/interception/interception_mac.cc | 29 + libsanitizer/interception/interception_mac.h | 47 + libsanitizer/interception/interception_win.cc | 149 + libsanitizer/interception/interception_win.h | 43 + libsanitizer/libtool-version | 6 + libsanitizer/ltmain.sh | 9661 ++++++++++ libsanitizer/missing | 376 + libsanitizer/sanitizer_common/Makefile.am | 71 + libsanitizer/sanitizer_common/Makefile.in | 564 + .../sanitizer_common/sanitizer_allocator.cc | 83 + .../sanitizer_common/sanitizer_allocator64.h | 573 + libsanitizer/sanitizer_common/sanitizer_atomic.h | 63 + .../sanitizer_common/sanitizer_atomic_clang.h | 120 + .../sanitizer_common/sanitizer_atomic_msvc.h | 134 + libsanitizer/sanitizer_common/sanitizer_common.cc | 151 + libsanitizer/sanitizer_common/sanitizer_common.h | 181 + libsanitizer/sanitizer_common/sanitizer_flags.cc | 95 + libsanitizer/sanitizer_common/sanitizer_flags.h | 25 + .../sanitizer_common/sanitizer_internal_defs.h | 186 + libsanitizer/sanitizer_common/sanitizer_libc.cc | 189 + libsanitizer/sanitizer_common/sanitizer_libc.h | 69 + libsanitizer/sanitizer_common/sanitizer_linux.cc | 296 + libsanitizer/sanitizer_common/sanitizer_list.h | 118 + libsanitizer/sanitizer_common/sanitizer_mac.cc | 249 + libsanitizer/sanitizer_common/sanitizer_mutex.h | 106 + .../sanitizer_common/sanitizer_placement_new.h | 31 + libsanitizer/sanitizer_common/sanitizer_posix.cc | 187 + libsanitizer/sanitizer_common/sanitizer_printf.cc | 196 + libsanitizer/sanitizer_common/sanitizer_procmaps.h | 95 + .../sanitizer_common/sanitizer_stackdepot.cc | 194 + .../sanitizer_common/sanitizer_stackdepot.h | 27 + .../sanitizer_common/sanitizer_stacktrace.cc | 245 + .../sanitizer_common/sanitizer_stacktrace.h | 73 + .../sanitizer_common/sanitizer_symbolizer.cc | 311 + .../sanitizer_common/sanitizer_symbolizer.h | 97 + .../sanitizer_common/sanitizer_symbolizer_linux.cc | 162 + .../sanitizer_common/sanitizer_symbolizer_mac.cc | 31 + .../sanitizer_common/sanitizer_symbolizer_win.cc | 33 + libsanitizer/sanitizer_common/sanitizer_win.cc | 205 + 99 files changed, 56908 insertions(+), 1 deletion(-) create mode 100644 ChangeLog.asan create mode 100644 libsanitizer/ChangeLog.asan create mode 100644 libsanitizer/LICENSE.TXT create mode 100644 libsanitizer/Makefile.am create mode 100644 libsanitizer/Makefile.in create mode 100644 libsanitizer/README.gcc create mode 100644 libsanitizer/aclocal.m4 create mode 100644 libsanitizer/asan/Makefile.am create mode 100644 libsanitizer/asan/Makefile.in create mode 100644 libsanitizer/asan/asan_allocator.cc create mode 100644 libsanitizer/asan/asan_allocator.h create mode 100644 libsanitizer/asan/asan_flags.h create mode 100644 libsanitizer/asan/asan_globals.cc create mode 100644 libsanitizer/asan/asan_intercepted_functions.h create mode 100644 libsanitizer/asan/asan_interceptors.cc create mode 100644 libsanitizer/asan/asan_interceptors.h create mode 100644 libsanitizer/asan/asan_internal.h create mode 100644 libsanitizer/asan/asan_linux.cc create mode 100644 libsanitizer/asan/asan_lock.h create mode 100644 libsanitizer/asan/asan_mac.cc create mode 100644 libsanitizer/asan/asan_mac.h create mode 100644 libsanitizer/asan/asan_malloc_linux.cc create mode 100644 libsanitizer/asan/asan_malloc_mac.cc create mode 100644 libsanitizer/asan/asan_malloc_win.cc create mode 100644 libsanitizer/asan/asan_mapping.h create mode 100644 libsanitizer/asan/asan_new_delete.cc create mode 100644 libsanitizer/asan/asan_poisoning.cc create mode 100644 libsanitizer/asan/asan_posix.cc create mode 100644 libsanitizer/asan/asan_report.cc create mode 100644 libsanitizer/asan/asan_report.h create mode 100644 libsanitizer/asan/asan_rtl.cc create mode 100644 libsanitizer/asan/asan_stack.cc create mode 100644 libsanitizer/asan/asan_stack.h create mode 100644 libsanitizer/asan/asan_stats.cc create mode 100644 libsanitizer/asan/asan_stats.h create mode 100644 libsanitizer/asan/asan_thread.cc create mode 100644 libsanitizer/asan/asan_thread.h create mode 100644 libsanitizer/asan/asan_thread_registry.cc create mode 100644 libsanitizer/asan/asan_thread_registry.h create mode 100644 libsanitizer/asan/asan_win.cc create mode 100644 libsanitizer/asan/libtool-version create mode 100644 libsanitizer/config.guess create mode 100644 libsanitizer/config.sub create mode 100755 libsanitizer/configure create mode 100644 libsanitizer/configure.ac create mode 100644 libsanitizer/depcomp create mode 100644 libsanitizer/include/sanitizer/asan_interface.h create mode 100644 libsanitizer/include/sanitizer/common_interface_defs.h create mode 100644 libsanitizer/install-sh create mode 100644 libsanitizer/interception/Makefile.am create mode 100644 libsanitizer/interception/Makefile.in create mode 100644 libsanitizer/interception/interception.h create mode 100644 libsanitizer/interception/interception_linux.cc create mode 100644 libsanitizer/interception/interception_linux.h create mode 100644 libsanitizer/interception/interception_mac.cc create mode 100644 libsanitizer/interception/interception_mac.h create mode 100644 libsanitizer/interception/interception_win.cc create mode 100644 libsanitizer/interception/interception_win.h create mode 100644 libsanitizer/libtool-version create mode 100644 libsanitizer/ltmain.sh create mode 100644 libsanitizer/missing create mode 100644 libsanitizer/sanitizer_common/Makefile.am create mode 100644 libsanitizer/sanitizer_common/Makefile.in create mode 100644 libsanitizer/sanitizer_common/sanitizer_allocator.cc create mode 100644 libsanitizer/sanitizer_common/sanitizer_allocator64.h create mode 100644 libsanitizer/sanitizer_common/sanitizer_atomic.h create mode 100644 libsanitizer/sanitizer_common/sanitizer_atomic_clang.h create mode 100644 libsanitizer/sanitizer_common/sanitizer_atomic_msvc.h create mode 100644 libsanitizer/sanitizer_common/sanitizer_common.cc create mode 100644 libsanitizer/sanitizer_common/sanitizer_common.h create mode 100644 libsanitizer/sanitizer_common/sanitizer_flags.cc create mode 100644 libsanitizer/sanitizer_common/sanitizer_flags.h create mode 100644 libsanitizer/sanitizer_common/sanitizer_internal_defs.h create mode 100644 libsanitizer/sanitizer_common/sanitizer_libc.cc create mode 100644 libsanitizer/sanitizer_common/sanitizer_libc.h create mode 100644 libsanitizer/sanitizer_common/sanitizer_linux.cc create mode 100644 libsanitizer/sanitizer_common/sanitizer_list.h create mode 100644 libsanitizer/sanitizer_common/sanitizer_mac.cc create mode 100644 libsanitizer/sanitizer_common/sanitizer_mutex.h create mode 100644 libsanitizer/sanitizer_common/sanitizer_placement_new.h create mode 100644 libsanitizer/sanitizer_common/sanitizer_posix.cc create mode 100644 libsanitizer/sanitizer_common/sanitizer_printf.cc create mode 100644 libsanitizer/sanitizer_common/sanitizer_procmaps.h create mode 100644 libsanitizer/sanitizer_common/sanitizer_stackdepot.cc create mode 100644 libsanitizer/sanitizer_common/sanitizer_stackdepot.h create mode 100644 libsanitizer/sanitizer_common/sanitizer_stacktrace.cc create mode 100644 libsanitizer/sanitizer_common/sanitizer_stacktrace.h create mode 100644 libsanitizer/sanitizer_common/sanitizer_symbolizer.cc create mode 100644 libsanitizer/sanitizer_common/sanitizer_symbolizer.h create mode 100644 libsanitizer/sanitizer_common/sanitizer_symbolizer_linux.cc create mode 100644 libsanitizer/sanitizer_common/sanitizer_symbolizer_mac.cc create mode 100644 libsanitizer/sanitizer_common/sanitizer_symbolizer_win.cc create mode 100644 libsanitizer/sanitizer_common/sanitizer_win.cc http://people.redhat.com/~dseketel/gcc/patches/0010-Import-the-asan-runtime-library-into-GCC-tree.patch -- Dodji