Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src Enhance MKSANITIZER support



details:   https://anonhg.NetBSD.org/src/rev/36829e60a1b4
branches:  trunk
changeset: 453692:36829e60a1b4
user:      kamil <kamil%NetBSD.org@localhost>
date:      Fri Aug 23 06:38:27 2019 +0000

description:
Enhance MKSANITIZER support

Add i386 support for LLVM sanitizers.

Add new build phases do-sanitizer-* for building LLVM sanitizers after libs
and before other programs. This phase is important as sanitizers need
to link with libs and sanitized programs must link with sanitizer runtimes.

diffstat:

 Makefile                                               |  23 +++++++++++++++++-
 distrib/sets/lists/base/md.i386                        |  18 +++++++++++++-
 external/bsd/Makefile                                  |   5 +---
 external/bsd/compiler_rt/lib/clang/lib/Makefile        |   3 +-
 external/bsd/compiler_rt/lib/clang/lib/netbsd/Makefile |   7 +++-
 5 files changed, 47 insertions(+), 9 deletions(-)

diffs (131 lines):

diff -r b1ce4df0ee11 -r 36829e60a1b4 Makefile
--- a/Makefile  Fri Aug 23 05:37:05 2019 +0000
+++ b/Makefile  Fri Aug 23 06:38:27 2019 +0000
@@ -1,4 +1,4 @@
-#      $NetBSD: Makefile,v 1.327 2019/06/14 09:12:42 martin Exp $
+#      $NetBSD: Makefile,v 1.328 2019/08/23 06:38:27 kamil Exp $
 
 #
 # This is the top-level makefile for building NetBSD. For an outline of
@@ -235,6 +235,13 @@
 .endif
 BUILDTARGETS+= do-lib
 BUILDTARGETS+= do-compat-lib
+.if ${MKLLVM} != "no"
+BUILDTARGETS+= do-sanitizer-includes
+BUILDTARGETS+= do-sanitizer-lib
+.if ${MKSANITIZER:Uno} == "yes"
+BUILDTARGETS+= do-sanitizer-tools
+.endif
+.endif
 .if ${MKX11} != "no"
 BUILDTARGETS+= do-x11
 .endif
@@ -470,6 +477,20 @@
 do-compat-lib: .PHONY .MAKE
        ${MAKEDIRTARGET} compat build_install BOOTSTRAP_SUBDIRS="../../../lib"
 
+do-sanitizer-includes: .PHONY .MAKE
+       ${MAKEDIRTARGET} external/bsd/compiler_rt/lib/clang/include includes
+       ${MAKEDIRTARGET} external/bsd/compiler_rt/lib/clang/share includes
+
+do-sanitizer-lib: .PHONY .MAKE
+       ${MAKEDIRTARGET} external/bsd/compiler_rt/lib/clang/lib build_install
+
+do-sanitizer-tools: .PHONY .MAKE
+.if !exists(${TOOLDIR}/lib/clang)
+       mkdir -p ${TOOLDIR}/lib/clang
+       cd ${DESTDIR}/usr/lib/clang && \
+               ${TOOL_PAX} -rw . ${TOOLDIR}/lib/clang
+.endif
+
 do-top-obj: .PHONY .MAKE
        ${MAKEDIRTARGET} . obj NOSUBDIR=
 
diff -r b1ce4df0ee11 -r 36829e60a1b4 distrib/sets/lists/base/md.i386
--- a/distrib/sets/lists/base/md.i386   Fri Aug 23 05:37:05 2019 +0000
+++ b/distrib/sets/lists/base/md.i386   Fri Aug 23 06:38:27 2019 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: md.i386,v 1.152 2018/09/30 15:56:47 jmcneill Exp $
+# $NetBSD: md.i386,v 1.153 2019/08/23 06:38:27 kamil Exp $
 ./dev/lms0                                     base-obsolete           obsolete
 ./dev/mms0                                     base-obsolete           obsolete
 ./dev/pms0                                     base-obsolete           obsolete
@@ -19,6 +19,22 @@
 ./usr/bin/iasl                                 base-util-bin
 ./usr/bin/pmc                                  base-obsolete           obsolete
 ./usr/bin/vttest                               base-obsolete           obsolete
+./usr/lib/clang/7.0.0/lib/netbsd/libclang_rt.asan-i386.a       comp-cxx-lib    llvm
+./usr/lib/clang/7.0.0/lib/netbsd/libclang_rt.asan-i386.so      comp-cxx-lib    llvm
+./usr/lib/clang/7.0.0/lib/netbsd/libclang_rt.asan-i386.so.0    comp-cxx-lib    llvm
+./usr/lib/clang/7.0.0/lib/netbsd/libclang_rt.asan-i386.so.0.0  comp-cxx-lib    llvm
+./usr/lib/clang/7.0.0/lib/netbsd/libclang_rt.asan-preinit-i386.a       comp-cxx-lib    llvm
+./usr/lib/clang/7.0.0/lib/netbsd/libclang_rt.asan_cxx-i386.a   comp-cxx-lib    llvm
+./usr/lib/clang/7.0.0/lib/netbsd/libclang_rt.safestack-i386.a  comp-cxx-lib    llvm
+./usr/lib/clang/7.0.0/lib/netbsd/libclang_rt.ubsan_minimal-i386.a      comp-cxx-lib    llvm
+./usr/lib/clang/7.0.0/lib/netbsd/libclang_rt.ubsan_minimal-i386.so      comp-cxx-lib   llvm
+./usr/lib/clang/7.0.0/lib/netbsd/libclang_rt.ubsan_minimal-i386.so.0   comp-cxx-lib    llvm
+./usr/lib/clang/7.0.0/lib/netbsd/libclang_rt.ubsan_minimal-i386.so.0.0 comp-cxx-lib    llvm
+./usr/lib/clang/7.0.0/lib/netbsd/libclang_rt.ubsan_standalone-i386.a   comp-cxx-lib    llvm
+./usr/lib/clang/7.0.0/lib/netbsd/libclang_rt.ubsan_standalone-i386.so  comp-cxx-lib    llvm
+./usr/lib/clang/7.0.0/lib/netbsd/libclang_rt.ubsan_standalone-i386.so.0        comp-cxx-lib    llvm
+./usr/lib/clang/7.0.0/lib/netbsd/libclang_rt.ubsan_standalone-i386.so.0.0      comp-cxx-lib    llvm
+./usr/lib/clang/7.0.0/lib/netbsd/libclang_rt.ubsan_standalone_cxx-i386.a       comp-cxx-lib    llvm
 ./usr/lib/libi386.so                           base-sys-shlib          pic
 ./usr/lib/libi386.so.2                         base-sys-shlib          pic
 ./usr/lib/libi386.so.2.0                       base-sys-shlib          pic
diff -r b1ce4df0ee11 -r 36829e60a1b4 external/bsd/Makefile
--- a/external/bsd/Makefile     Fri Aug 23 05:37:05 2019 +0000
+++ b/external/bsd/Makefile     Fri Aug 23 06:38:27 2019 +0000
@@ -1,4 +1,4 @@
-#      $NetBSD: Makefile,v 1.64 2019/08/14 01:42:08 kamil Exp $
+#      $NetBSD: Makefile,v 1.65 2019/08/23 06:38:27 kamil Exp $
 
 .include <bsd.own.mk>
 
@@ -30,9 +30,6 @@
 .if (${MKLLVM} != "no" || ${MKLLVMRT} != "no")
 SUBDIR+= llvm
 .endif
-.if (${MKLLVM} != "no")
-SUBDIR+= compiler_rt
-.endif
 .if (${MKNSD} != "no")
 SUBDIR+= nsd
 .endif
diff -r b1ce4df0ee11 -r 36829e60a1b4 external/bsd/compiler_rt/lib/clang/lib/Makefile
--- a/external/bsd/compiler_rt/lib/clang/lib/Makefile   Fri Aug 23 05:37:05 2019 +0000
+++ b/external/bsd/compiler_rt/lib/clang/lib/Makefile   Fri Aug 23 06:38:27 2019 +0000
@@ -1,5 +1,6 @@
-#      $NetBSD: Makefile,v 1.1 2019/08/08 14:00:28 kamil Exp $
+#      $NetBSD: Makefile,v 1.2 2019/08/23 06:38:27 kamil Exp $
 
 SUBDIR+=       netbsd
 
+.include <bsd.buildinstall.mk>
 .include <bsd.subdir.mk>
diff -r b1ce4df0ee11 -r 36829e60a1b4 external/bsd/compiler_rt/lib/clang/lib/netbsd/Makefile
--- a/external/bsd/compiler_rt/lib/clang/lib/netbsd/Makefile    Fri Aug 23 05:37:05 2019 +0000
+++ b/external/bsd/compiler_rt/lib/clang/lib/netbsd/Makefile    Fri Aug 23 06:38:27 2019 +0000
@@ -1,7 +1,8 @@
-#      $NetBSD: Makefile,v 1.2 2019/08/22 18:15:44 adam Exp $
+#      $NetBSD: Makefile,v 1.3 2019/08/23 06:38:27 kamil Exp $
 
 .include <bsd.own.mk>
 
+.if ${MACHINE_ARCH} == "x86_64"
 SUBDIR+=       asan-m64
 SUBDIR+=       asan-preinit-m64
 SUBDIR+=       asan_cxx-m64
@@ -24,8 +25,10 @@
 SUBDIR+=       xray-basic-m64
 SUBDIR+=       xray-fdr-m64
 SUBDIR+=       xray-profiling-m64
+.endif
 
-.if ${MKCOMPAT} != "no"
+.if ${MACHINE_ARCH} == "i386" || \
+        (${MACHINE_ARCH} == "x86_64" && ${MKCOMPAT} != "no")
 SUBDIR+=       asan-m32
 SUBDIR+=       asan-preinit-m32
 SUBDIR+=       asan_cxx-m32



Home | Main Index | Thread Index | Old Index