[sanitizer] Move %ld_flags_rpath_exe to common and use it in more tests.
Reviewers: vitalybuka Subscribers: kubamracek, llvm-commits Differential Revision: https://reviews.llvm.org/D38527 llvm-svn: 315010
This commit is contained in:
parent
5f689d0db3
commit
3b87cc910e
|
|
@ -178,21 +178,6 @@ config.substitutions.append( ("%libdl", libdl_flag) )
|
|||
|
||||
config.available_features.add("asan-" + config.bits + "-bits")
|
||||
|
||||
if config.host_os == 'Darwin':
|
||||
config.substitutions.append( ("%ld_flags_rpath_exe", '-Wl,-rpath,@executable_path/ %dynamiclib') )
|
||||
config.substitutions.append( ("%ld_flags_rpath_so", '-install_name @rpath/`basename %dynamiclib`') )
|
||||
elif config.host_os == 'FreeBSD':
|
||||
config.substitutions.append( ("%ld_flags_rpath_exe", "-Wl,-z,origin -Wl,-rpath,\$ORIGIN -L%T -l%xdynamiclib_namespec") )
|
||||
config.substitutions.append( ("%ld_flags_rpath_so", '') )
|
||||
elif config.host_os == 'Linux':
|
||||
config.substitutions.append( ("%ld_flags_rpath_exe", "-Wl,-rpath,\$ORIGIN -L%T -l%xdynamiclib_namespec") )
|
||||
config.substitutions.append( ("%ld_flags_rpath_so", '') )
|
||||
|
||||
# Must be defined after the substitutions that use %dynamiclib.
|
||||
config.substitutions.append( ("%dynamiclib", '%T/%xdynamiclib_filename') )
|
||||
config.substitutions.append( ("%xdynamiclib_filename", 'lib%xdynamiclib_namespec.so') )
|
||||
config.substitutions.append( ("%xdynamiclib_namespec", '%basename_t.dynamic') )
|
||||
|
||||
# Allow tests to use REQUIRES=stable-runtime. For use when you cannot use XFAIL
|
||||
# because the test hangs. Adding armhf as we now have two modes.
|
||||
if config.target_arch != 'arm' and config.target_arch != 'armhf' and config.target_arch != 'aarch64':
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
// RUN: %clangxx -g -DSHARED_LIB %s -fPIC -shared -o %T/target_uninstrumented-so.so
|
||||
// RUN: %clangxx_cfi_diag -g %s -o %t %T/target_uninstrumented-so.so
|
||||
// RUN: %clangxx -g -DSHARED_LIB %s -fPIC -shared -o %dynamiclib %ld_flags_rpath_so
|
||||
// RUN: %clangxx_cfi_diag -g %s -o %t %ld_flags_rpath_exe
|
||||
// RUN: %run %t 2>&1 | FileCheck %s
|
||||
|
||||
// REQUIRES: cxxabi
|
||||
|
|
@ -32,7 +32,7 @@ void A::f() {}
|
|||
int main(int argc, char *argv[]) {
|
||||
void *p = create_B();
|
||||
// CHECK: runtime error: control flow integrity check for type 'A' failed during cast to unrelated type
|
||||
// CHECK: invalid vtable in module {{.*}}target_uninstrumented-so.so
|
||||
// CHECK: invalid vtable in module {{.*}}libtarget_uninstrumented.cpp.dynamic.so
|
||||
A *a = (A *)p;
|
||||
memset(p, 0, sizeof(A));
|
||||
// CHECK: runtime error: control flow integrity check for type 'A' failed during cast to unrelated type
|
||||
|
|
|
|||
|
|
@ -280,3 +280,18 @@ if platform.system() == 'Windows':
|
|||
# of large mmap'd regions (terabytes) by the kernel.
|
||||
if platform.system() == 'Darwin':
|
||||
lit_config.parallelism_groups["darwin-64bit-sanitizer"] = 3
|
||||
|
||||
if config.host_os == 'Darwin':
|
||||
config.substitutions.append( ("%ld_flags_rpath_exe", '-Wl,-rpath,@executable_path/ %dynamiclib') )
|
||||
config.substitutions.append( ("%ld_flags_rpath_so", '-install_name @rpath/`basename %dynamiclib`') )
|
||||
elif config.host_os == 'FreeBSD':
|
||||
config.substitutions.append( ("%ld_flags_rpath_exe", "-Wl,-z,origin -Wl,-rpath,\$ORIGIN -L%T -l%xdynamiclib_namespec") )
|
||||
config.substitutions.append( ("%ld_flags_rpath_so", '') )
|
||||
elif config.host_os == 'Linux':
|
||||
config.substitutions.append( ("%ld_flags_rpath_exe", "-Wl,-rpath,\$ORIGIN -L%T -l%xdynamiclib_namespec") )
|
||||
config.substitutions.append( ("%ld_flags_rpath_so", '') )
|
||||
|
||||
# Must be defined after the substitutions that use %dynamiclib.
|
||||
config.substitutions.append( ("%dynamiclib", '%T/%xdynamiclib_filename') )
|
||||
config.substitutions.append( ("%xdynamiclib_filename", 'lib%xdynamiclib_namespec.so') )
|
||||
config.substitutions.append( ("%xdynamiclib_namespec", '%basename_t.dynamic') )
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
// RUN: %clangxx -frtti -fsanitize=vptr -fno-sanitize-recover=vptr -I%p/Helpers -g %s -fPIC -shared -o %t-lib.so -DBUILD_SO
|
||||
// RUN: %clangxx -frtti -fsanitize=vptr -fno-sanitize-recover=vptr -I%p/Helpers -g %s -O3 -o %t %t-lib.so
|
||||
// RUN: %clangxx -frtti -fsanitize=vptr -fno-sanitize-recover=vptr -I%p/Helpers -g %s -fPIC -shared -o %dynamiclib -DBUILD_SO %ld_flags_rpath_so
|
||||
// RUN: %clangxx -frtti -fsanitize=vptr -fno-sanitize-recover=vptr -I%p/Helpers -g %s -O3 -o %t %ld_flags_rpath_exe
|
||||
// RUN: %run %t
|
||||
//
|
||||
// REQUIRES: cxxabi
|
||||
|
|
|
|||
Loading…
Reference in New Issue