[compiler-rt] r209835 - light up sanitizers for ARM

Reid Kleckner rnk at google.com
Thu May 29 13:58:29 PDT 2014


This can probably be reprod with 'cmake  -DLLVM_TARGETS_TO_BUILD=X86'.


On Thu, May 29, 2014 at 1:56 PM, Timur Iskhodzhanov <timurrrr at google.com>
wrote:

> See
> https://code.google.com/p/address-sanitizer/source/browse/trunk/build/scripts/slave/buildbot_standard.bat
> 30 мая 2014 г. 0:47 пользователь "Greg Fitzgerald" <gregf at codeaurora.org>
> написал:
>
> Can you please provide steps to reproduce the error?  What are you passing
>> to CMAKE_C_COMPILER?
>>
>>
>>
>> Thanks,
>>
>> Greg
>>
>>
>>
>>
>>
>> *From:* Timur Iskhodzhanov [mailto:timurrrr at google.com]
>> *Sent:* Thursday, May 29, 2014 1:25 PM
>> *To:* Greg Fitzgerald
>> *Cc:* llvm-commits; Alexey Samsonov; Reid Kleckner
>> *Subject:* Re: [compiler-rt] r209835 - light up sanitizers for ARM
>>
>>
>>
>> This has broken "check-asan" on my Windows bot which targets X86 only:
>> <...>projects/compiler-rt/lib/asan/tests/asan_asm_test.cc
>>
>> error: unknown target CPU 'armv7-a'
>>
>> you should probably add "REQUIRES"?
>>
>>
>>
>> 2014-05-29 23:01 GMT+04:00 Greg Fitzgerald <gregf at codeaurora.org>:
>>
>> Author: garious
>> Date: Thu May 29 14:01:32 2014
>> New Revision: 209835
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=209835&view=rev
>> Log:
>> light up sanitizers for ARM
>>
>> You can expect the sanitizers to be built under any of the following
>> conditions:
>>
>> 1) CMAKE_C_COMPILER is GCC built to cross-compile to ARM
>> 2) CMAKE_C_COMPILER is Clang built to cross-compile to ARM (ARM is
>> default target)
>> 3) CMAKE_C_COMPILER is Clang and CMAKE_C_FLAGS contains -target and
>> --sysroot
>>
>> Differential Revision: http://reviews.llvm.org/D3794
>>
>> Modified:
>>     compiler-rt/trunk/CMakeLists.txt
>>     compiler-rt/trunk/lib/lsan/CMakeLists.txt
>>     compiler-rt/trunk/test/asan/CMakeLists.txt
>>     compiler-rt/trunk/test/ubsan/CMakeLists.txt
>>
>> Modified: compiler-rt/trunk/CMakeLists.txt
>> URL:
>> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/CMakeLists.txt?rev=209835&r1=209834&r2=209835&view=diff
>>
>> ==============================================================================
>> --- compiler-rt/trunk/CMakeLists.txt (original)
>> +++ compiler-rt/trunk/CMakeLists.txt Thu May 29 14:01:32 2014
>> @@ -215,9 +215,9 @@ else()
>>      test_target_arch(i386 ${TARGET_32_BIT_CFLAGS})
>>    elseif("${LLVM_NATIVE_ARCH}" STREQUAL "PowerPC")
>>      test_target_arch(powerpc64 ${TARGET_64_BIT_CFLAGS})
>> -  elseif("${LLVM_NATIVE_ARCH}" STREQUAL "ARM")
>> -    test_target_arch(arm "")
>>    endif()
>> +  test_target_arch(arm "-march=armv7-a")
>> +  test_target_arch(aarch64 "-march=armv8-a")
>>  endif()
>>
>>  # We support running instrumented tests when we're not cross compiling
>> @@ -347,14 +347,14 @@ endif()
>>  # Architectures supported by Sanitizer runtimes. Specific sanitizers may
>>  # support only subset of these (e.g. TSan works on x86_64 only).
>>  filter_available_targets(SANITIZER_COMMON_SUPPORTED_ARCH
>> -  x86_64 i386 powerpc64 arm)
>> -filter_available_targets(ASAN_SUPPORTED_ARCH x86_64 i386 powerpc64)
>> +  x86_64 i386 powerpc64 arm aarch64)
>> +filter_available_targets(ASAN_SUPPORTED_ARCH x86_64 i386 powerpc64 arm)
>>  filter_available_targets(DFSAN_SUPPORTED_ARCH x86_64)
>>  filter_available_targets(LSAN_SUPPORTED_ARCH x86_64)
>>  filter_available_targets(MSAN_SUPPORTED_ARCH x86_64)
>> -filter_available_targets(PROFILE_SUPPORTED_ARCH x86_64 i386 arm)
>> +filter_available_targets(PROFILE_SUPPORTED_ARCH x86_64 i386 arm aarch64)
>>  filter_available_targets(TSAN_SUPPORTED_ARCH x86_64)
>> -filter_available_targets(UBSAN_SUPPORTED_ARCH x86_64 i386)
>> +filter_available_targets(UBSAN_SUPPORTED_ARCH x86_64 i386 arm aarch64)
>>
>>  add_subdirectory(include)
>>
>>
>> Modified: compiler-rt/trunk/lib/lsan/CMakeLists.txt
>> URL:
>> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/lsan/CMakeLists.txt?rev=209835&r1=209834&r2=209835&view=diff
>>
>> ==============================================================================
>> --- compiler-rt/trunk/lib/lsan/CMakeLists.txt (original)
>> +++ compiler-rt/trunk/lib/lsan/CMakeLists.txt Thu May 29 14:01:32 2014
>> @@ -19,7 +19,7 @@ set(LSAN_SRC_DIR ${CMAKE_CURRENT_SOURCE_
>>  # The common files need to build on every arch supported by ASan.
>>  # (Even if they build into dummy object files.)
>>  filter_available_targets(LSAN_COMMON_SUPPORTED_ARCH
>> -  x86_64 i386 powerpc64 arm)
>> +  x86_64 i386 powerpc64 arm aarch64)
>>
>>  add_custom_target(lsan)
>>
>>
>> Modified: compiler-rt/trunk/test/asan/CMakeLists.txt
>> URL:
>> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/asan/CMakeLists.txt?rev=209835&r1=209834&r2=209835&view=diff
>>
>> ==============================================================================
>> --- compiler-rt/trunk/test/asan/CMakeLists.txt (original)
>> +++ compiler-rt/trunk/test/asan/CMakeLists.txt Thu May 29 14:01:32 2014
>> @@ -34,6 +34,21 @@ if(CAN_TARGET_arm)
>>    list(APPEND ASAN_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/ARMLinuxConfig)
>>  endif()
>>
>> +if(CAN_TARGET_aarch64)
>> +  # This is only true if we are cross-compiling.
>> +  # Build all tests with host compiler and use host tools.
>> +  set(ASAN_TEST_TARGET_CC ${COMPILER_RT_TEST_COMPILER})
>> +  set(ASAN_TEST_TARGET_CFLAGS ${COMPILER_RT_TEST_COMPILER_CFLAGS})
>> +  set(ASAN_TEST_CONFIG_SUFFIX "-aarch64-linux")
>> +  set(ASAN_TEST_BITS "64")
>> +  set(ASAN_TEST_DYNAMIC False)
>> +  configure_lit_site_cfg(
>> +    ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
>> +    ${CMAKE_CURRENT_BINARY_DIR}/AArch64LinuxConfig/lit.site.cfg
>> +    )
>> +  list(APPEND ASAN_TESTSUITES
>> ${CMAKE_CURRENT_BINARY_DIR}/AArch64LinuxConfig)
>> +endif()
>> +
>>  if(CAN_TARGET_x86_64 OR CAN_TARGET_powerpc64)
>>    set(ASAN_TEST_CONFIG_SUFFIX "64")
>>    set(ASAN_TEST_BITS "64")
>>
>> Modified: compiler-rt/trunk/test/ubsan/CMakeLists.txt
>> URL:
>> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/ubsan/CMakeLists.txt?rev=209835&r1=209834&r2=209835&view=diff
>>
>> ==============================================================================
>> --- compiler-rt/trunk/test/ubsan/CMakeLists.txt (original)
>> +++ compiler-rt/trunk/test/ubsan/CMakeLists.txt Thu May 29 14:01:32 2014
>> @@ -4,11 +4,15 @@ set(UBSAN_LIT_TEST_MODE "Standalone")
>>  configure_lit_site_cfg(
>>    ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
>>    ${CMAKE_CURRENT_BINARY_DIR}/UbsanConfig/lit.site.cfg)
>> +set(UBSAN_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/UbsanConfig)
>>
>> -set(UBSAN_LIT_TEST_MODE "AddressSanitizer")
>> -configure_lit_site_cfg(
>> -  ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
>> -  ${CMAKE_CURRENT_BINARY_DIR}/AsanConfig/lit.site.cfg)
>> +if(ASAN_SUPPORTED_ARCH)
>> +  set(UBSAN_LIT_TEST_MODE "AddressSanitizer")
>> +  configure_lit_site_cfg(
>> +    ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
>> +    ${CMAKE_CURRENT_BINARY_DIR}/AsanConfig/lit.site.cfg)
>> +  list(APPEND UBSAN_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/AsanConfig)
>> +endif()
>>
>>  set(UBSAN_TEST_DEPS ${SANITIZER_COMMON_LIT_TEST_DEPS})
>>  if(NOT COMPILER_RT_STANDALONE_BUILD)
>> @@ -16,7 +20,6 @@ if(NOT COMPILER_RT_STANDALONE_BUILD)
>>  endif()
>>
>>  add_lit_testsuite(check-ubsan "Running UndefinedBehaviorSanitizer tests"
>> -  ${CMAKE_CURRENT_BINARY_DIR}/UbsanConfig
>> -  ${CMAKE_CURRENT_BINARY_DIR}/AsanConfig
>> +  ${UBSAN_TESTSUITES}
>>    DEPENDS ${UBSAN_TEST_DEPS})
>>  set_target_properties(check-ubsan PROPERTIES FOLDER "UBSan unittests")
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140529/e58e7108/attachment.html>


More information about the llvm-commits mailing list