summaryrefslogtreecommitdiffstats
path: root/native_client_sdk/src
diff options
context:
space:
mode:
authorsbc <sbc@chromium.org>2015-09-08 15:53:49 -0700
committerCommit bot <commit-bot@chromium.org>2015-09-08 22:54:26 +0000
commitbf2db0670c9c9737bb38fedf810157b8115f4054 (patch)
tree856d18e1c64bf4d0e0945c55df0f22240f45a612 /native_client_sdk/src
parente1bf30fc53406ba3bc1b302e87ecda6e3ad2025d (diff)
downloadchromium_src-bf2db0670c9c9737bb38fedf810157b8115f4054.zip
chromium_src-bf2db0670c9c9737bb38fedf810157b8115f4054.tar.gz
chromium_src-bf2db0670c9c9737bb38fedf810157b8115f4054.tar.bz2
[NaCl SDK] Add msan support to SDK build system
Also fix config name for asan builds CQ_EXTRA_TRYBOTS=tryserver.chromium.linux:linux_nacl_sdk;tryserver.chromium.mac:mac_nacl_sdk Review URL: https://codereview.chromium.org/1331443008 Cr-Commit-Position: refs/heads/master@{#347817}
Diffstat (limited to 'native_client_sdk/src')
-rw-r--r--native_client_sdk/src/tools/common.mk10
-rwxr-xr-xnative_client_sdk/src/tools/create_nmf.py5
-rw-r--r--native_client_sdk/src/tools/host_gcc.mk9
-rw-r--r--native_client_sdk/src/tools/nacl_gcc.mk1
-rwxr-xr-xnative_client_sdk/src/tools/sel_ldr.py24
5 files changed, 32 insertions, 17 deletions
diff --git a/native_client_sdk/src/tools/common.mk b/native_client_sdk/src/tools/common.mk
index d23dc8f..1dbc3d6 100644
--- a/native_client_sdk/src/tools/common.mk
+++ b/native_client_sdk/src/tools/common.mk
@@ -253,6 +253,9 @@ endif
ifdef TSAN
CONFIG_DIR := tsan_$(CONFIG_DIR)
endif
+ifdef ASAN
+CONFIG_DIR := asan_$(CONFIG_DIR)
+endif
OUTDIR := $(OUTBASE)/$(TOOLCHAIN)/$(CONFIG_DIR)
STAMPDIR ?= $(OUTDIR)
@@ -468,13 +471,6 @@ PPAPI_RELEASE = $(abspath $(OSNAME)/Release/$(TARGET)$(HOST_EXT));application/x-
SYSARCH := $(shell $(GETOS) --nacl-arch)
SEL_LDR_PATH := python $(NACL_SDK_ROOT)/tools/sel_ldr.py
-#
-# Common Compile Options
-#
-ifeq ($(CONFIG),Debug)
-SEL_LDR_ARGS += --debug-libs
-endif
-
ifndef STANDALONE
#
# Assign a sensible default to CHROME_PATH.
diff --git a/native_client_sdk/src/tools/create_nmf.py b/native_client_sdk/src/tools/create_nmf.py
index 3a2d2e8..a97fd92 100755
--- a/native_client_sdk/src/tools/create_nmf.py
+++ b/native_client_sdk/src/tools/create_nmf.py
@@ -570,7 +570,7 @@ def main(args):
help='Legacy option, do not use')
parser.add_argument('--config', default='Release',
help='Use a particular library configuration (normally '
- 'Debug or Release')
+ 'Debug or Release)')
parser.add_argument('-L', '--library-path', dest='lib_path',
action='append', default=[],
help='Add DIRECTORY to library search path',
@@ -632,8 +632,7 @@ def main(args):
if options.debug_libs:
sys.stderr.write('warning: --debug-libs is deprecated (use --config).\n')
# Implement legacy behavior
- if not options.config:
- options.config = 'Debug'
+ options.config = 'Debug'
canonicalized = ParseExtraFiles(options.extra_files, sys.stderr)
if canonicalized is None:
diff --git a/native_client_sdk/src/tools/host_gcc.mk b/native_client_sdk/src/tools/host_gcc.mk
index c9ab5e5..6c98369 100644
--- a/native_client_sdk/src/tools/host_gcc.mk
+++ b/native_client_sdk/src/tools/host_gcc.mk
@@ -15,6 +15,10 @@ ifdef TSAN
CLANG = 1
endif
+ifdef MSAN
+CLANG = 1
+endif
+
#
# Macros for TOOLS
#
@@ -69,6 +73,11 @@ HOST_CFLAGS += -fsanitize=thread
HOST_LDFLAGS += -pie -fsanitize=thread
endif
+ifdef MSAN
+HOST_CFLAGS += -fsanitize=memory
+HOST_LDFLAGS += -pie -fsanitize=memory
+endif
+
#
# Individual Macros
#
diff --git a/native_client_sdk/src/tools/nacl_gcc.mk b/native_client_sdk/src/tools/nacl_gcc.mk
index 3791128..d2c3f13 100644
--- a/native_client_sdk/src/tools/nacl_gcc.mk
+++ b/native_client_sdk/src/tools/nacl_gcc.mk
@@ -468,6 +468,7 @@ endef
#
NMF := python $(NACL_SDK_ROOT)/tools/create_nmf.py
NMF_FLAGS += --config=$(CONFIG_DIR)
+SEL_LDR_ARGS += --config=$(CONFIG_DIR)
EXECUTABLES = $(GLIBC_SO_LIST)
ifneq (,$(findstring x86_32,$(ARCHES)))
diff --git a/native_client_sdk/src/tools/sel_ldr.py b/native_client_sdk/src/tools/sel_ldr.py
index 3909b0c..a4aa5fd 100755
--- a/native_client_sdk/src/tools/sel_ldr.py
+++ b/native_client_sdk/src/tools/sel_ldr.py
@@ -60,8 +60,10 @@ def main(argv):
parser.add_argument('-p', '--passthrough-environment', action='store_true',
help='Pass environment of host through to nexe')
parser.add_argument('--debug-libs', action='store_true',
- help='For dynamic executables, reference debug '
- 'libraries rather then release')
+ help='Legacy option, do not use')
+ parser.add_argument('--config', default='Release',
+ help='Use a particular library configuration (normally '
+ 'Debug or Release)')
parser.add_argument('executable', help='executable (.nexe) to run')
parser.add_argument('args', nargs='*', help='argument to pass to exectuable')
parser.add_argument('--library-path',
@@ -149,11 +151,11 @@ def main(argv):
if dynamic:
if options.debug_libs:
- sdk_lib_dir = os.path.join(NACL_SDK_ROOT, 'lib',
- 'glibc_%s' % arch_suffix, 'Debug')
- else:
- sdk_lib_dir = os.path.join(NACL_SDK_ROOT, 'lib',
- 'glibc_%s' % arch_suffix, 'Release')
+ sys.stderr.write('warning: --debug-libs is deprecated (use --config).\n')
+ options.config = 'Debug'
+
+ sdk_lib_dir = os.path.join(NACL_SDK_ROOT, 'lib',
+ 'glibc_%s' % arch_suffix, options.config)
if elf_arch == 'x86-64':
lib_subdir = 'lib'
@@ -180,6 +182,14 @@ def main(argv):
usr_lib_dir = os.path.join(toolchain_dir, usr_arch + '-nacl', 'usr', 'lib')
libpath = [usr_lib_dir, sdk_lib_dir, lib_dir]
+
+ if options.config not in ['Debug', 'Release']:
+ config_fallback = 'Release'
+ if 'Debug' in options.config:
+ config_fallback = 'Debug'
+ libpath.append(os.path.join(NACL_SDK_ROOT, 'lib',
+ 'glibc_%s' % arch_suffix, config_fallback))
+
if options.library_path:
libpath.extend([os.path.abspath(p) for p
in options.library_path.split(':')])