[scudo] Additional modifications for Android tests support
Summary: With the recent move of `android_commands` to `sanitizer_common`, some things have to be updated with regard to Scudo on Android. Notably: - `config.android` is dealt with in the common code - `config.compile_wrapper` can be prepended to allow for the use of the android commands - `SCUDO_OPTIONS` must be passed with the environment when running a test - `preinit.cpp` fails with some API levels, not sure why, I will have to dig into this later. Note that `check-scudo` is not enabled yet in the bots. It's all local testing for now until everything looks good. Reviewers: alekseyshl, vitalybuka Reviewed By: vitalybuka Subscribers: srhines, kubamracek, llvm-commits Differential Revision: https://reviews.llvm.org/D37990 llvm-svn: 313561
This commit is contained in:
parent
dc7d460945
commit
58c9a79bc2
|
|
@ -13,7 +13,7 @@ def build_env():
|
||||||
# Android linker ignores RPATH. Set LD_LIBRARY_PATH to Output dir.
|
# Android linker ignores RPATH. Set LD_LIBRARY_PATH to Output dir.
|
||||||
args.append('LD_LIBRARY_PATH=%s' % (ANDROID_TMPDIR,))
|
args.append('LD_LIBRARY_PATH=%s' % (ANDROID_TMPDIR,))
|
||||||
for (key, value) in os.environ.items():
|
for (key, value) in os.environ.items():
|
||||||
if key in ['ASAN_OPTIONS', 'ASAN_ACTIVATION_OPTIONS']:
|
if key in ['ASAN_OPTIONS', 'ASAN_ACTIVATION_OPTIONS', 'SCUDO_OPTIONS']:
|
||||||
args.append('%s="%s"' % (key, value))
|
args.append('%s="%s"' % (key, value))
|
||||||
return ' '.join(args)
|
return ' '.join(args)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,7 @@ if not config.android:
|
||||||
c_flags += ["-lrt"]
|
c_flags += ["-lrt"]
|
||||||
|
|
||||||
def build_invocation(compile_flags):
|
def build_invocation(compile_flags):
|
||||||
return " " + " ".join([config.clang] + compile_flags) + " "
|
return " " + " ".join([config.compile_wrapper, config.clang] + compile_flags) + " "
|
||||||
|
|
||||||
# Add clang substitutions.
|
# Add clang substitutions.
|
||||||
config.substitutions.append(("%clang_scudo ",
|
config.substitutions.append(("%clang_scudo ",
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,6 @@
|
||||||
config.name_suffix = "@SCUDO_TEST_CONFIG_SUFFIX@"
|
config.name_suffix = "@SCUDO_TEST_CONFIG_SUFFIX@"
|
||||||
config.target_arch = "@SCUDO_TEST_TARGET_ARCH@"
|
config.target_arch = "@SCUDO_TEST_TARGET_ARCH@"
|
||||||
config.target_cflags = "@SCUDO_TEST_TARGET_CFLAGS@"
|
config.target_cflags = "@SCUDO_TEST_TARGET_CFLAGS@"
|
||||||
config.android = "@ANDROID@"
|
|
||||||
|
|
||||||
# Load common config for all compiler-rt lit tests.
|
# Load common config for all compiler-rt lit tests.
|
||||||
lit_config.load_config(config, "@COMPILER_RT_BINARY_DIR@/test/lit.common.configured")
|
lit_config.load_config(config, "@COMPILER_RT_BINARY_DIR@/test/lit.common.configured")
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,10 @@
|
||||||
// Verifies that calling malloc in a preinit_array function succeeds, and that
|
// Verifies that calling malloc in a preinit_array function succeeds, and that
|
||||||
// the resulting pointer can be freed at program termination.
|
// the resulting pointer can be freed at program termination.
|
||||||
|
|
||||||
|
// On some Android versions, calling mmap() from a preinit function segfaults.
|
||||||
|
// It looks like __mmap2.S ends up calling a NULL function pointer.
|
||||||
|
// UNSUPPORTED: android
|
||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue