diff options
author | sbc <sbc@chromium.org> | 2015-09-08 15:53:49 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-09-08 22:54:26 +0000 |
commit | bf2db0670c9c9737bb38fedf810157b8115f4054 (patch) | |
tree | 856d18e1c64bf4d0e0945c55df0f22240f45a612 /native_client_sdk/src | |
parent | e1bf30fc53406ba3bc1b302e87ecda6e3ad2025d (diff) | |
download | chromium_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.mk | 10 | ||||
-rwxr-xr-x | native_client_sdk/src/tools/create_nmf.py | 5 | ||||
-rw-r--r-- | native_client_sdk/src/tools/host_gcc.mk | 9 | ||||
-rw-r--r-- | native_client_sdk/src/tools/nacl_gcc.mk | 1 | ||||
-rwxr-xr-x | native_client_sdk/src/tools/sel_ldr.py | 24 |
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(':')]) |