Module Name: src Committed By: christos Date: Wed Jun 1 22:48:55 UTC 2016
Modified Files: src/external/gpl3/gcc/lib/libasan: Makefile src/external/gpl3/gcc/lib/libtsan: Makefile Added Files: src/external/gpl3/gcc/lib: Makefile.sanitizer src/external/gpl3/gcc/lib/libubsan: Makefile shlib_version Log Message: Add ubsan (not enabled, not tested, compiling) Update tsan (not enable, not tested, not compiling) Merge common infrastructure. XXX: Perhaps the common code should be made into a separate library? Or always require asan? To generate a diff of this commit: cvs rdiff -u -r0 -r1.1 src/external/gpl3/gcc/lib/Makefile.sanitizer cvs rdiff -u -r1.15 -r1.16 src/external/gpl3/gcc/lib/libasan/Makefile cvs rdiff -u -r1.3 -r1.4 src/external/gpl3/gcc/lib/libtsan/Makefile cvs rdiff -u -r0 -r1.1 src/external/gpl3/gcc/lib/libubsan/Makefile \ src/external/gpl3/gcc/lib/libubsan/shlib_version Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/external/gpl3/gcc/lib/libasan/Makefile diff -u src/external/gpl3/gcc/lib/libasan/Makefile:1.15 src/external/gpl3/gcc/lib/libasan/Makefile:1.16 --- src/external/gpl3/gcc/lib/libasan/Makefile:1.15 Wed Jun 1 00:20:20 2016 +++ src/external/gpl3/gcc/lib/libasan/Makefile Wed Jun 1 18:48:55 2016 @@ -1,10 +1,11 @@ +# $NetBSD: Makefile,v 1.16 2016/06/01 22:48:55 christos Exp $ .include <bsd.own.mk> .include "../Makefile.inc" +.include "../Makefile.sanitizer" -ASAN=${GCCDIST}/libsanitizer -.PATH: ${ASAN}/asan ${ASAN}/interception ${ASAN}/sanitizer_common +.PATH: ${SANITIZER}/asan ASAN_SRCS= \ asan_activation.cc \ @@ -30,75 +31,11 @@ asan_win.cc \ asan_win_dll_thunk.cc \ asan_win_dynamic_runtime_thunk.cc -INTERCEPTION_SRCS= \ -interception_linux.cc \ -interception_mac.cc \ -interception_type_test.cc \ -interception_win.cc - -SANITIZER_SRCS= \ -sanitizer_allocator.cc \ -sanitizer_common.cc \ -sanitizer_common_libcdep.cc \ -sanitizer_coverage_libcdep.cc \ -sanitizer_coverage_mapping_libcdep.cc \ -sanitizer_deadlock_detector1.cc \ -sanitizer_deadlock_detector2.cc \ -sanitizer_flags.cc \ -sanitizer_libc.cc \ -sanitizer_libignore.cc \ -sanitizer_linux.cc \ -sanitizer_linux_libcdep.cc \ -sanitizer_mac.cc \ -sanitizer_persistent_allocator.cc \ -sanitizer_platform_limits_linux.cc \ -sanitizer_platform_limits_posix.cc \ -sanitizer_posix.cc \ -sanitizer_posix_libcdep.cc \ -sanitizer_printf.cc \ -sanitizer_procmaps_common.cc \ -sanitizer_procmaps_netbsd.cc \ -sanitizer_procmaps_freebsd.cc \ -sanitizer_procmaps_linux.cc \ -sanitizer_procmaps_mac.cc \ -sanitizer_stackdepot.cc \ -sanitizer_stacktrace.cc \ -sanitizer_stacktrace_libcdep.cc \ -sanitizer_stacktrace_printer.cc \ -sanitizer_stoptheworld_linux_libcdep.cc \ -sanitizer_suppressions.cc \ -sanitizer_symbolizer.cc \ -sanitizer_symbolizer_libbacktrace.cc \ -sanitizer_symbolizer_libcdep.cc \ -sanitizer_symbolizer_posix_libcdep.cc \ -sanitizer_symbolizer_win.cc \ -sanitizer_thread_registry.cc \ -sanitizer_tls_get_addr.cc \ -sanitizer_unwind_posix_libcdep.cc \ -sanitizer_win.cc - -# The linux build does this to avoid preinit sections on shared libraries -CSHLIBFLAGS+= -DPIC - LIB= asan -SRCS= ${ASAN_SRCS} ${INTERCEPTION_SRCS} ${SANITIZER_SRCS} -CPPFLAGS+=-I${ASAN}/include -I${ASAN} -CPPFLAGS.sanitizer_netbsd.cc+=-I${GCCDIST}/gcc/ginclude -CPPFLAGS+=-D_DEBUG -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -DASAN_HAS_EXCEPTIONS=1 -DASAN_FLEXIBLE_MAPPING_AND_OFFSET=0 -DASAN_NEEDS_SEGV=1 - -LIBDPLIBS+= stdc++ ${.CURDIR}/../libstdc++-v3 -LIBDPLIBS+= pthread ${.CURDIR}/../../../../../lib/libpthread -COPTS+=-std=gnu++11 -fsized-deallocation -fvisibility=hidden -COPTS+=-fno-builtin -fno-exceptions -fno-rtti -funwind-tables -# Can't profile without it` -#-fomit-frame-pointer +SRCS+= ${ASAN_SRCS} .if ${MACHINE_ARCH} == "vax" COPTS.asan_allocator2.cc += -O1 -COPTS.sanitizer_mac.cc += -O1 -COPTS.sanitizer_netbsd.cc += -O1 -COPTS.sanitizer_printf.cc += -O1 -COPTS.sanitizer_stackdepot.cc += -O1 .endif .include <bsd.lib.mk> Index: src/external/gpl3/gcc/lib/libtsan/Makefile diff -u src/external/gpl3/gcc/lib/libtsan/Makefile:1.3 src/external/gpl3/gcc/lib/libtsan/Makefile:1.4 --- src/external/gpl3/gcc/lib/libtsan/Makefile:1.3 Tue Jan 5 08:07:46 2016 +++ src/external/gpl3/gcc/lib/libtsan/Makefile Wed Jun 1 18:48:55 2016 @@ -1,67 +1,41 @@ -# $NetBSD: Makefile,v 1.3 2016/01/05 13:07:46 christos Exp $ +# $NetBSD: Makefile,v 1.4 2016/06/01 22:48:55 christos Exp $ .include <bsd.own.mk> .include "../Makefile.inc" +.include "../Makefile.sanitizer" -TSAN=${GCCDIST}/libsanitizer -.PATH: ${TSAN}/tsan ${TSAN}/interception ${TSAN}/sanitizer_common +.PATH: ${SANITIZER}/tsan TSAN_SRCS= \ - tsan_clock.cc \ - tsan_fd.cc \ - tsan_flags.cc \ - tsan_interceptors.cc \ - tsan_interface.cc \ - tsan_interface_ann.cc \ - tsan_interface_atomic.cc \ - tsan_interface_java.cc \ - tsan_md5.cc \ - tsan_mman.cc \ - tsan_mutex.cc \ - tsan_mutexset.cc \ - tsan_platform_linux.cc \ - tsan_platform_mac.cc \ - tsan_report.cc \ - tsan_rtl.cc \ - tsan_rtl_amd64.S \ - tsan_rtl_mutex.cc \ - tsan_rtl_report.cc \ - tsan_rtl_thread.cc \ - tsan_stat.cc \ - tsan_suppressions.cc \ - tsan_symbolize.cc \ - tsan_symbolize_addr2line_linux.cc \ - tsan_sync.cc - -INTERCEPTION_SRCS= \ - interception_linux.cc \ - interception_type_test.cc - -SANITIZER_SRCS= \ - sanitizer_allocator.cc \ - sanitizer_common.cc \ - sanitizer_flags.cc \ - sanitizer_libc.cc \ - sanitizer_netbsd.cc \ - sanitizer_mac.cc \ - sanitizer_posix.cc \ - sanitizer_platform_limits_posix.cc \ - sanitizer_printf.cc \ - sanitizer_stackdepot.cc \ - sanitizer_stacktrace.cc \ - sanitizer_symbolizer.cc \ - sanitizer_symbolizer_linux.cc \ - sanitizer_win.cc - -# The linux build does this to avoid preinit sections on shared libraries -CSHLIBFLAGS+= -DPIC +tsan_clock.o \ +tsan_fd.o \ +tsan_flags.o \ +tsan_ignoreset.o \ +tsan_interceptors.o \ +tsan_interface.o \ +tsan_interface_ann.o \ +tsan_interface_atomic.o \ +tsan_interface_java.o \ +tsan_md5.o \ +tsan_mman.o \ +tsan_mutex.o \ +tsan_mutexset.o \ +tsan_platform_linux.o \ +tsan_platform_mac.o \ +tsan_platform_windows.o \ +tsan_report.o \ +tsan_rtl.o \ +tsan_rtl_mutex.o \ +tsan_rtl_report.o \ +tsan_rtl_thread.o \ +tsan_stack_trace.o \ +tsan_stat.o \ +tsan_suppressions.o \ +tsan_symbolize.o \ +tsan_sync.o LIB= tsan -SRCS= ${TSAN_SRCS} ${INTERCEPTION_SRCS} ${SANITIZER_SRCS} -CPPFLAGS+=-I${TSAN}/include -I${TSAN} - -LIBDPLIBS+= stdc++ ${.CURDIR}/../libstdc++-v3 \ - pthread ${NETBSDSRCDIR}/lib/libpthread +SRCS+= ${TSAN_SRCS} .include <bsd.lib.mk> Added files: Index: src/external/gpl3/gcc/lib/Makefile.sanitizer diff -u /dev/null src/external/gpl3/gcc/lib/Makefile.sanitizer:1.1 --- /dev/null Wed Jun 1 18:48:55 2016 +++ src/external/gpl3/gcc/lib/Makefile.sanitizer Wed Jun 1 18:48:55 2016 @@ -0,0 +1,76 @@ +# $NetBSD: Makefile.sanitizer,v 1.1 2016/06/01 22:48:55 christos Exp $ + +SANITIZER=${GCCDIST}/libsanitizer +.PATH: ${SANITIZER}/interception ${SANITIZER}/sanitizer_common + +INTERCEPTION_SRCS= \ +interception_linux.cc \ +interception_mac.cc \ +interception_type_test.cc \ +interception_win.cc + +SANITIZER_SRCS= \ +sanitizer_allocator.cc \ +sanitizer_common.cc \ +sanitizer_common_libcdep.cc \ +sanitizer_coverage_libcdep.cc \ +sanitizer_coverage_mapping_libcdep.cc \ +sanitizer_deadlock_detector1.cc \ +sanitizer_deadlock_detector2.cc \ +sanitizer_flags.cc \ +sanitizer_libc.cc \ +sanitizer_libignore.cc \ +sanitizer_linux.cc \ +sanitizer_linux_libcdep.cc \ +sanitizer_mac.cc \ +sanitizer_persistent_allocator.cc \ +sanitizer_platform_limits_linux.cc \ +sanitizer_platform_limits_posix.cc \ +sanitizer_posix.cc \ +sanitizer_posix_libcdep.cc \ +sanitizer_printf.cc \ +sanitizer_procmaps_common.cc \ +sanitizer_procmaps_netbsd.cc \ +sanitizer_procmaps_freebsd.cc \ +sanitizer_procmaps_linux.cc \ +sanitizer_procmaps_mac.cc \ +sanitizer_stackdepot.cc \ +sanitizer_stacktrace.cc \ +sanitizer_stacktrace_libcdep.cc \ +sanitizer_stacktrace_printer.cc \ +sanitizer_stoptheworld_linux_libcdep.cc \ +sanitizer_suppressions.cc \ +sanitizer_symbolizer.cc \ +sanitizer_symbolizer_libbacktrace.cc \ +sanitizer_symbolizer_libcdep.cc \ +sanitizer_symbolizer_posix_libcdep.cc \ +sanitizer_symbolizer_win.cc \ +sanitizer_thread_registry.cc \ +sanitizer_tls_get_addr.cc \ +sanitizer_unwind_posix_libcdep.cc \ +sanitizer_win.cc + +# The linux build does this to avoid preinit sections on shared libraries +CSHLIBFLAGS+= -DPIC + +SRCS+= ${INTERCEPTION_SRCS} ${SANITIZER_SRCS} +CPPFLAGS+=-I${SANITIZER}/include -I${SANITIZER} +CPPFLAGS.sanitizer_netbsd.cc+=-I${GCCDIST}/gcc/ginclude +CPPFLAGS+=-D_DEBUG -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS +CPPFLAGS+=-D__STDC_LIMIT_MACROS -DSANITIZER_HAS_EXCEPTIONS=1 +CPPFLAGS+=-DSANITIZER_FLEXIBLE_MAPPING_AND_OFFSET=0 -DSANITIZER_NEEDS_SEGV=1 + +LIBDPLIBS+= stdc++ ${.CURDIR}/../libstdc++-v3 +LIBDPLIBS+= pthread ${.CURDIR}/../../../../../lib/libpthread +COPTS+=-std=gnu++11 -fsized-deallocation -fvisibility=hidden +COPTS+=-fno-builtin -fno-exceptions -fno-rtti -funwind-tables + +# Can't profile without it` +#-fomit-frame-pointer + +.if ${MACHINE_ARCH} == "vax" +COPTS.sanitizer_mac.cc += -O1 +COPTS.sanitizer_netbsd.cc += -O1 +COPTS.sanitizer_printf.cc += -O1 +COPTS.sanitizer_stackdepot.cc += -O1 +.endif Index: src/external/gpl3/gcc/lib/libubsan/Makefile diff -u /dev/null src/external/gpl3/gcc/lib/libubsan/Makefile:1.1 --- /dev/null Wed Jun 1 18:48:55 2016 +++ src/external/gpl3/gcc/lib/libubsan/Makefile Wed Jun 1 18:48:55 2016 @@ -0,0 +1,23 @@ +# $NetBSD: Makefile,v 1.1 2016/06/01 22:48:55 christos Exp $ +.include <bsd.own.mk> + +.include "../Makefile.inc" +.include "../Makefile.sanitizer" + +.PATH: ${SANITIZER}/ubsan + +UBSAN_SRCS= \ +ubsan_diag.o \ +ubsan_flags.o \ +ubsan_handlers.o \ +ubsan_handlers_cxx.o \ +ubsan_init.o \ +ubsan_type_hash.o \ +ubsan_value.o + +COPTS.ubsan_type_hash.cc+=-frtti + +LIB= ubsan +SRCS+= ${UBSAN_SRCS} + +.include <bsd.lib.mk> Index: src/external/gpl3/gcc/lib/libubsan/shlib_version diff -u /dev/null src/external/gpl3/gcc/lib/libubsan/shlib_version:1.1 --- /dev/null Wed Jun 1 18:48:55 2016 +++ src/external/gpl3/gcc/lib/libubsan/shlib_version Wed Jun 1 18:48:55 2016 @@ -0,0 +1,2 @@ +major=0 +minor=0