From 57d6f737e62aaa2831e7e981d089d654b99390bb Mon Sep 17 00:00:00 2001 From: Evgeniy Stepanov Date: Thu, 21 Feb 2013 13:55:54 +0000 Subject: [PATCH] [sanitizer] Add MSan to Makefile-based build rules. llvm-svn: 175737 --- compiler-rt/lib/Makefile.mk | 1 + compiler-rt/lib/msan/Makefile.mk | 24 ++++++++++++++++++++++++ compiler-rt/make/platform/clang_linux.mk | 7 ++++++- 3 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 compiler-rt/lib/msan/Makefile.mk diff --git a/compiler-rt/lib/Makefile.mk b/compiler-rt/lib/Makefile.mk index ea471e0..3068485 100644 --- a/compiler-rt/lib/Makefile.mk +++ b/compiler-rt/lib/Makefile.mk @@ -19,6 +19,7 @@ SubDirs += interception SubDirs += profile SubDirs += sanitizer_common SubDirs += tsan +SubDirs += msan SubDirs += ubsan # FIXME: We don't currently support building an atomic library, and as it must diff --git a/compiler-rt/lib/msan/Makefile.mk b/compiler-rt/lib/msan/Makefile.mk new file mode 100644 index 0000000..99e3b03 --- /dev/null +++ b/compiler-rt/lib/msan/Makefile.mk @@ -0,0 +1,24 @@ +#===- lib/msan/Makefile.mk ---------------------------------*- Makefile -*--===# +# +# The LLVM Compiler Infrastructure +# +# This file is distributed under the University of Illinois Open Source +# License. See LICENSE.TXT for details. +# +#===------------------------------------------------------------------------===# + +ModuleName := msan +SubDirs := + +Sources := $(foreach file,$(wildcard $(Dir)/*.cc),$(notdir $(file))) +ObjNames := $(Sources:%.cc=%.o) + +Implementation := Generic + +# FIXME: use automatic dependencies? +Dependencies := $(wildcard $(Dir)/*.h) +Dependencies += $(wildcard $(Dir)/../interception/*.h) +Dependencies += $(wildcard $(Dir)/../sanitizer_common/*.h) + +# Define a convenience variable for all the msan functions. +MsanFunctions := $(Sources:%.cc=%) diff --git a/compiler-rt/make/platform/clang_linux.mk b/compiler-rt/make/platform/clang_linux.mk index ce763ad..89f7268 100644 --- a/compiler-rt/make/platform/clang_linux.mk +++ b/compiler-rt/make/platform/clang_linux.mk @@ -60,11 +60,13 @@ endif # Build runtime libraries for x86_64. ifeq ($(call contains,$(SupportedArches),x86_64),true) -Configs += full-x86_64 profile-x86_64 asan-x86_64 tsan-x86_64 ubsan-x86_64 +Configs += full-x86_64 profile-x86_64 asan-x86_64 tsan-x86_64 msan-x86_64 \ + ubsan-x86_64 Arch.full-x86_64 := x86_64 Arch.profile-x86_64 := x86_64 Arch.asan-x86_64 := x86_64 Arch.tsan-x86_64 := x86_64 +Arch.msan-x86_64 := x86_64 Arch.ubsan-x86_64 := x86_64 endif @@ -89,6 +91,7 @@ CFLAGS.asan-i386 := $(CFLAGS) -m32 -fPIE -fno-builtin \ CFLAGS.asan-x86_64 := $(CFLAGS) -m64 -fPIE -fno-builtin \ -DASAN_FLEXIBLE_MAPPING_AND_OFFSET=1 CFLAGS.tsan-x86_64 := $(CFLAGS) -m64 -fPIE -fno-builtin +CFLAGS.msan-x86_64 := $(CFLAGS) -m64 -fPIE -fno-builtin CFLAGS.ubsan-i386 := $(CFLAGS) -m32 -fPIE -fno-builtin CFLAGS.ubsan-x86_64 := $(CFLAGS) -m64 -fPIE -fno-builtin @@ -121,6 +124,8 @@ FUNCTIONS.asan-arm-android := $(AsanFunctions) $(InterceptionFunctions) \ $(SanitizerCommonFunctions) FUNCTIONS.tsan-x86_64 := $(TsanFunctions) $(InterceptionFunctions) \ $(SanitizerCommonFunctions) +FUNCTIONS.msan-x86_64 := $(MsanFunctions) $(InterceptionFunctions) \ + $(SanitizerCommonFunctions) FUNCTIONS.ubsan-i386 := $(UbsanFunctions) $(SanitizerCommonFunctions) FUNCTIONS.ubsan-x86_64 := $(UbsanFunctions) $(SanitizerCommonFunctions) -- 2.7.4