[compiler-rt] r315105 - [sanitizer] Test ubsan and cfi on android.

Evgenii Stepanov via llvm-commits llvm-commits at lists.llvm.org
Tue Oct 10 15:33:38 PDT 2017


Interesting. This means that config.root.host_arch on windows was
neither x86 nor x86_64? What was it, then? Anyway, it's probably
better to disableall tests under Function on windows in
test/ubsan/TestCases/TypeCheck/Function/lit.local.cfg

On Tue, Oct 10, 2017 at 3:12 PM, Hans Wennborg <hans at chromium.org> wrote:
> I think this accidentally enabled
> ubsan/TestCases/TypeCheck/Function/function.cpp on Windows, which
> broke the build:
> http://lab.llvm.org:8011/builders/clang-x64-ninja-win7/builds/6886
>
> I've xfailed it in r315374, but I'm not sure that's the right thing to do.
>
> On Fri, Oct 6, 2017 at 1:51 PM, Evgeniy Stepanov via llvm-commits
> <llvm-commits at lists.llvm.org> wrote:
>> Author: eugenis
>> Date: Fri Oct  6 13:51:51 2017
>> New Revision: 315105
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=315105&view=rev
>> Log:
>> [sanitizer] Test ubsan and cfi on android.
>>
>> Summary:
>> Enable check-cfi and check-ubsan on Android.
>> Check-ubsan includes standalone and ubsan+asan, but not tsan or msan.
>> Cross-dso cfi tests are disabled for now.
>>
>> Reviewers: vitalybuka, pcc
>>
>> Subscribers: srhines, kubamracek, llvm-commits, mgorny
>>
>> Differential Revision: https://reviews.llvm.org/D38608
>>
>> Modified:
>>     compiler-rt/trunk/cmake/config-ix.cmake
>>     compiler-rt/trunk/test/cfi/cross-dso/lit.local.cfg
>>     compiler-rt/trunk/test/cfi/lit.cfg
>>     compiler-rt/trunk/test/cfi/stats.cpp
>>     compiler-rt/trunk/test/lit.common.cfg
>>     compiler-rt/trunk/test/sanitizer_common/android_commands/android_run.py
>>     compiler-rt/trunk/test/ubsan/CMakeLists.txt
>>     compiler-rt/trunk/test/ubsan/TestCases/Integer/suppressions.cpp
>>     compiler-rt/trunk/test/ubsan/TestCases/TypeCheck/Function/lit.local.cfg
>>     compiler-rt/trunk/test/ubsan/lit.common.cfg
>>
>> Modified: compiler-rt/trunk/cmake/config-ix.cmake
>> URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/cmake/config-ix.cmake?rev=315105&r1=315104&r2=315105&view=diff
>> ==============================================================================
>> --- compiler-rt/trunk/cmake/config-ix.cmake (original)
>> +++ compiler-rt/trunk/cmake/config-ix.cmake Fri Oct  6 13:51:51 2017
>> @@ -208,7 +208,7 @@ set(ALL_TSAN_SUPPORTED_ARCH ${X86_64} ${
>>  set(ALL_UBSAN_SUPPORTED_ARCH ${X86} ${X86_64} ${ARM32} ${ARM64}
>>      ${MIPS32} ${MIPS64} ${PPC64} ${S390X})
>>  set(ALL_SAFESTACK_SUPPORTED_ARCH ${X86} ${X86_64} ${ARM64} ${MIPS32} ${MIPS64})
>> -set(ALL_CFI_SUPPORTED_ARCH ${X86} ${X86_64} ${MIPS64})
>> +set(ALL_CFI_SUPPORTED_ARCH ${X86} ${X86_64} ${ARM32} ${ARM64} ${MIPS64})
>>  set(ALL_ESAN_SUPPORTED_ARCH ${X86_64} ${MIPS64})
>>  set(ALL_SCUDO_SUPPORTED_ARCH ${X86} ${X86_64} ${ARM32} ${ARM64} ${MIPS32} ${MIPS64})
>>  set(ALL_XRAY_SUPPORTED_ARCH ${X86_64} ${ARM32} ${ARM64} ${MIPS32} ${MIPS64} powerpc64le)
>>
>> Modified: compiler-rt/trunk/test/cfi/cross-dso/lit.local.cfg
>> URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/cfi/cross-dso/lit.local.cfg?rev=315105&r1=315104&r2=315105&view=diff
>> ==============================================================================
>> --- compiler-rt/trunk/test/cfi/cross-dso/lit.local.cfg (original)
>> +++ compiler-rt/trunk/test/cfi/cross-dso/lit.local.cfg Fri Oct  6 13:51:51 2017
>> @@ -5,5 +5,5 @@ def getRoot(config):
>>
>>  root = getRoot(config)
>>
>> -if root.host_os not in ['Linux']:
>> +if root.host_os not in ['Linux'] or config.android:
>>    config.unsupported = True
>>
>> Modified: compiler-rt/trunk/test/cfi/lit.cfg
>> URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/cfi/lit.cfg?rev=315105&r1=315104&r2=315105&view=diff
>> ==============================================================================
>> --- compiler-rt/trunk/test/cfi/lit.cfg (original)
>> +++ compiler-rt/trunk/test/cfi/lit.cfg Fri Oct  6 13:51:51 2017
>> @@ -5,8 +5,8 @@ config.name = 'cfi' + config.name_suffix
>>  config.suffixes = ['.c', '.cpp', '.test']
>>  config.test_source_root = os.path.dirname(__file__)
>>
>> -clang = ' '.join([config.clang, config.target_cflags])
>> -clangxx = ' '.join([config.clang, config.target_cflags] + config.cxx_mode_flags)
>> +clang = ' '.join([config.compile_wrapper, config.clang, config.target_cflags])
>> +clangxx = ' '.join([config.compile_wrapper, config.clang, config.target_cflags] + config.cxx_mode_flags)
>>
>>  config.substitutions.append((r"%clang ", clang + ' '))
>>  config.substitutions.append((r"%clangxx ", clangxx + ' '))
>>
>> Modified: compiler-rt/trunk/test/cfi/stats.cpp
>> URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/cfi/stats.cpp?rev=315105&r1=315104&r2=315105&view=diff
>> ==============================================================================
>> --- compiler-rt/trunk/test/cfi/stats.cpp (original)
>> +++ compiler-rt/trunk/test/cfi/stats.cpp Fri Oct  6 13:51:51 2017
>> @@ -5,6 +5,9 @@
>>  // FIXME: We currently emit the wrong debug info under devirtualization.
>>  // UNSUPPORTED: devirt
>>
>> +// FIXME: %t.stats must be transferred from device to host for this to work on Android.
>> +// XFAIL: android
>> +
>>  struct ABase {};
>>
>>  struct A : ABase {
>>
>> Modified: compiler-rt/trunk/test/lit.common.cfg
>> URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lit.common.cfg?rev=315105&r1=315104&r2=315105&view=diff
>> ==============================================================================
>> --- compiler-rt/trunk/test/lit.common.cfg (original)
>> +++ compiler-rt/trunk/test/lit.common.cfg Fri Oct  6 13:51:51 2017
>> @@ -55,7 +55,7 @@ config.available_features.add(compiler_i
>>  # BFD linker in 64-bit android toolchains fails to find libm.so, which is a
>>  # transitive shared library dependency (via asan runtime).
>>  if config.android:
>> -  config.target_cflags += " -fuse-ld=gold -Wl,--enable-new-dtags"
>> +  config.target_cflags += " -pie -fuse-ld=gold -Wl,--enable-new-dtags"
>>
>>  # Clear some environment variables that might affect Clang.
>>  possibly_dangerous_env_vars = ['ASAN_OPTIONS', 'DFSAN_OPTIONS', 'LSAN_OPTIONS',
>>
>> Modified: compiler-rt/trunk/test/sanitizer_common/android_commands/android_run.py
>> URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/sanitizer_common/android_commands/android_run.py?rev=315105&r1=315104&r2=315105&view=diff
>> ==============================================================================
>> --- compiler-rt/trunk/test/sanitizer_common/android_commands/android_run.py (original)
>> +++ compiler-rt/trunk/test/sanitizer_common/android_commands/android_run.py Fri Oct  6 13:51:51 2017
>> @@ -12,7 +12,7 @@ def build_env():
>>      # Android linker ignores RPATH. Set LD_LIBRARY_PATH to Output dir.
>>      args.append('LD_LIBRARY_PATH=%s' % (ANDROID_TMPDIR,))
>>      for (key, value) in os.environ.items():
>> -        if key in ['ASAN_OPTIONS', 'ASAN_ACTIVATION_OPTIONS', 'SCUDO_OPTIONS']:
>> +        if key in ['ASAN_OPTIONS', 'ASAN_ACTIVATION_OPTIONS', 'SCUDO_OPTIONS', 'UBSAN_OPTIONS']:
>>              args.append('%s="%s"' % (key, value))
>>      return ' '.join(args)
>>
>>
>> Modified: compiler-rt/trunk/test/ubsan/CMakeLists.txt
>> URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/ubsan/CMakeLists.txt?rev=315105&r1=315104&r2=315105&view=diff
>> ==============================================================================
>> --- compiler-rt/trunk/test/ubsan/CMakeLists.txt (original)
>> +++ compiler-rt/trunk/test/ubsan/CMakeLists.txt Fri Oct  6 13:51:51 2017
>> @@ -35,7 +35,7 @@ foreach(arch ${UBSAN_TEST_ARCH})
>>    if(COMPILER_RT_HAS_MSAN AND ";${MSAN_SUPPORTED_ARCH};" MATCHES ";${arch};")
>>      add_ubsan_testsuite("MemorySanitizer" msan ${arch})
>>    endif()
>> -  if(COMPILER_RT_HAS_TSAN AND ";${TSAN_SUPPORTED_ARCH};" MATCHES ";${arch};")
>> +  if(COMPILER_RT_HAS_TSAN AND ";${TSAN_SUPPORTED_ARCH};" MATCHES ";${arch};" AND NOT ANDROID)
>>      add_ubsan_testsuite("ThreadSanitizer" tsan ${arch})
>>    endif()
>>  endforeach()
>>
>> Modified: compiler-rt/trunk/test/ubsan/TestCases/Integer/suppressions.cpp
>> URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/ubsan/TestCases/Integer/suppressions.cpp?rev=315105&r1=315104&r2=315105&view=diff
>> ==============================================================================
>> --- compiler-rt/trunk/test/ubsan/TestCases/Integer/suppressions.cpp (original)
>> +++ compiler-rt/trunk/test/ubsan/TestCases/Integer/suppressions.cpp Fri Oct  6 13:51:51 2017
>> @@ -3,6 +3,7 @@
>>  // Suppression by symbol name (unsigned-integer-overflow:do_overflow below)
>>  // requires the compiler-rt runtime to be able to symbolize stack addresses.
>>  // REQUIRES: can-symbolize
>> +// UNSUPPORTED: android
>>
>>  // Fails without any suppression.
>>  // RUN: %env_ubsan_opts=halt_on_error=1 not %run %t 2>&1 | FileCheck %s
>>
>> Modified: compiler-rt/trunk/test/ubsan/TestCases/TypeCheck/Function/lit.local.cfg
>> URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/ubsan/TestCases/TypeCheck/Function/lit.local.cfg?rev=315105&r1=315104&r2=315105&view=diff
>> ==============================================================================
>> --- compiler-rt/trunk/test/ubsan/TestCases/TypeCheck/Function/lit.local.cfg (original)
>> +++ compiler-rt/trunk/test/ubsan/TestCases/TypeCheck/Function/lit.local.cfg Fri Oct  6 13:51:51 2017
>> @@ -1,3 +1,3 @@
>>  # The function type checker is only supported on x86 and x86_64 for now.
>> -if config.root.host_arch not in ['x86', 'x86_64']:
>> +if config.target_arch not in ['x86', 'x86_64']:
>>    config.unsupported = True
>>
>> Modified: compiler-rt/trunk/test/ubsan/lit.common.cfg
>> URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/ubsan/lit.common.cfg?rev=315105&r1=315104&r2=315105&view=diff
>> ==============================================================================
>> --- compiler-rt/trunk/test/ubsan/lit.common.cfg (original)
>> +++ compiler-rt/trunk/test/ubsan/lit.common.cfg Fri Oct  6 13:51:51 2017
>> @@ -46,6 +46,9 @@ if config.host_os == 'Darwin':
>>    # much slower. Let's override this and run lit tests with 'abort_on_error=0'.
>>    default_ubsan_opts += ['abort_on_error=0']
>>    default_ubsan_opts += ['log_to_syslog=0']
>> +elif config.android:
>> +  default_ubsan_opts += ['abort_on_error=0']
>> +
>>  default_ubsan_opts_str = ':'.join(default_ubsan_opts)
>>  if default_ubsan_opts_str:
>>    config.environment['UBSAN_OPTIONS'] = default_ubsan_opts_str
>> @@ -55,7 +58,7 @@ config.substitutions.append(('%env_ubsan
>>                               'env UBSAN_OPTIONS=' + default_ubsan_opts_str))
>>
>>  def build_invocation(compile_flags):
>> -  return " " + " ".join([config.clang] + compile_flags) + " "
>> +  return " " + " ".join([config.compile_wrapper, config.clang] + compile_flags) + " "
>>
>>  target_cflags = [get_required_attr(config, "target_cflags")]
>>  clang_ubsan_cflags += target_cflags
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits


More information about the llvm-commits mailing list