forked from OSchip/llvm-project
Reland r311842 - [cmake] Remove i686 target that is duplicate to i386
Remove the explicit i686 target that is completely duplicate to the i386 target, with the latter being used more commonly. 1. The runtime built for i686 will be identical to the one built for i386. 2. Supporting both -i386 and -i686 suffixes causes unnecessary confusion on the clang end which has to expect either of them. 3. The checks are based on wrong assumption that __i686__ is defined for all newer x86 CPUs. In fact, it is only declared when -march=i686 is explicitly used. It is not available when a more specific (or newer) -march is used. Curious enough, if CFLAGS contain -march=i686, the runtime will be built both for i386 and i686. For any other value, only i386 variant will be built. Differential Revision: https://reviews.llvm.org/D26764 llvm-svn: 311924
This commit is contained in:
parent
62dc83b9b7
commit
0e52de05db
|
@ -163,7 +163,6 @@ macro(detect_target_arch)
|
|||
check_symbol_exists(__arm__ "" __ARM)
|
||||
check_symbol_exists(__aarch64__ "" __AARCH64)
|
||||
check_symbol_exists(__x86_64__ "" __X86_64)
|
||||
check_symbol_exists(__i686__ "" __I686)
|
||||
check_symbol_exists(__i386__ "" __I386)
|
||||
check_symbol_exists(__mips__ "" __MIPS)
|
||||
check_symbol_exists(__mips64__ "" __MIPS64)
|
||||
|
@ -176,8 +175,6 @@ macro(detect_target_arch)
|
|||
add_default_target_arch(aarch64)
|
||||
elseif(__X86_64)
|
||||
add_default_target_arch(x86_64)
|
||||
elseif(__I686)
|
||||
add_default_target_arch(i686)
|
||||
elseif(__I386)
|
||||
add_default_target_arch(i386)
|
||||
elseif(__MIPS64) # must be checked before __MIPS
|
||||
|
|
|
@ -139,10 +139,6 @@ macro(test_targets)
|
|||
elseif("${COMPILER_RT_DEFAULT_TARGET_ARCH}" MATCHES "i[2-6]86|x86|amd64")
|
||||
if(NOT MSVC)
|
||||
test_target_arch(x86_64 "" "-m64")
|
||||
# FIXME: We build runtimes for both i686 and i386, as "clang -m32" may
|
||||
# target different variant than "$CMAKE_C_COMPILER -m32". This part should
|
||||
# be gone after we resolve PR14109.
|
||||
test_target_arch(i686 __i686__ "-m32")
|
||||
test_target_arch(i386 __i386__ "-m32")
|
||||
else()
|
||||
if (CMAKE_SIZEOF_VOID_P EQUAL 4)
|
||||
|
|
|
@ -25,7 +25,8 @@ int foo(int x, int y) {
|
|||
|
||||
set(ARM64 aarch64)
|
||||
set(ARM32 arm armhf armv6m armv7m armv7em armv7 armv7s armv7k)
|
||||
set(X86 i386 i686)
|
||||
set(ARM32 arm armhf)
|
||||
set(X86 i386)
|
||||
set(X86_64 x86_64)
|
||||
set(MIPS32 mips mipsel)
|
||||
set(MIPS64 mips64 mips64el)
|
||||
|
|
|
@ -174,7 +174,7 @@ endmacro()
|
|||
|
||||
set(ARM64 aarch64)
|
||||
set(ARM32 arm armhf)
|
||||
set(X86 i386 i686)
|
||||
set(X86 i386)
|
||||
set(X86_64 x86_64)
|
||||
set(MIPS32 mips mipsel)
|
||||
set(MIPS64 mips64 mips64el)
|
||||
|
|
|
@ -169,7 +169,7 @@ else()
|
|||
PARENT_TARGET asan)
|
||||
|
||||
foreach(arch ${ASAN_SUPPORTED_ARCH})
|
||||
if (UNIX AND NOT ${arch} MATCHES "i386|i686")
|
||||
if (UNIX AND NOT ${arch} STREQUAL "i386")
|
||||
add_sanitizer_rt_version_list(clang_rt.asan-dynamic-${arch}
|
||||
LIBS clang_rt.asan-${arch} clang_rt.asan_cxx-${arch}
|
||||
EXTRA asan.syms.extra)
|
||||
|
@ -218,7 +218,7 @@ else()
|
|||
DEFS ${ASAN_DYNAMIC_DEFINITIONS}
|
||||
PARENT_TARGET asan)
|
||||
|
||||
if (UNIX AND NOT ${arch} MATCHES "i386|i686")
|
||||
if (UNIX AND NOT ${arch} STREQUAL "i386")
|
||||
add_sanitizer_rt_symbols(clang_rt.asan_cxx
|
||||
ARCHS ${arch})
|
||||
add_dependencies(asan clang_rt.asan_cxx-${arch}-symbols)
|
||||
|
|
|
@ -95,7 +95,7 @@ function get_device_arch { # OUT OUT64
|
|||
local _ARCH=
|
||||
local _ARCH64=
|
||||
if [[ $_ABI == x86* ]]; then
|
||||
_ARCH=i686
|
||||
_ARCH=i386
|
||||
elif [[ $_ABI == armeabi* ]]; then
|
||||
_ARCH=arm
|
||||
elif [[ $_ABI == arm64-v8a* ]]; then
|
||||
|
|
|
@ -271,9 +271,6 @@ if (NOT MSVC)
|
|||
i386/chkstk.S
|
||||
i386/chkstk2.S)
|
||||
endif()
|
||||
|
||||
set(i686_SOURCES
|
||||
${i386_SOURCES})
|
||||
else () # MSVC
|
||||
# Use C versions of functions when building on MSVC
|
||||
# MSVC's assembler takes Intel syntax, not AT&T syntax.
|
||||
|
@ -285,7 +282,6 @@ else () # MSVC
|
|||
${GENERIC_SOURCES})
|
||||
set(x86_64h_SOURCES ${x86_64_SOURCES})
|
||||
set(i386_SOURCES ${GENERIC_SOURCES})
|
||||
set(i686_SOURCES ${i386_SOURCES})
|
||||
endif () # if (NOT MSVC)
|
||||
|
||||
set(arm_SOURCES
|
||||
|
@ -493,9 +489,7 @@ else ()
|
|||
# NOTE: some architectures (e.g. i386) have multiple names. Ensure that
|
||||
# we catch them all.
|
||||
set(_arch ${arch})
|
||||
if("${arch}" STREQUAL "i686")
|
||||
set(_arch "i386|i686")
|
||||
elseif("${arch}" STREQUAL "armv6m")
|
||||
if("${arch}" STREQUAL "armv6m")
|
||||
set(_arch "arm|armv6m")
|
||||
elseif("${arch}" MATCHES "^(armhf|armv7|armv7s|armv7k|armv7m|armv7em)$")
|
||||
set(_arch "arm")
|
||||
|
|
|
@ -178,7 +178,7 @@ else()
|
|||
|
||||
if (UNIX)
|
||||
set(ARCHS_FOR_SYMBOLS ${UBSAN_SUPPORTED_ARCH})
|
||||
list(REMOVE_ITEM ARCHS_FOR_SYMBOLS i386 i686)
|
||||
list(REMOVE_ITEM ARCHS_FOR_SYMBOLS i386)
|
||||
add_sanitizer_rt_symbols(clang_rt.ubsan_standalone
|
||||
ARCHS ${ARCHS_FOR_SYMBOLS}
|
||||
PARENT_TARGET ubsan
|
||||
|
|
|
@ -18,7 +18,7 @@ if (SHADOW_MAPPING_UNRELIABLE)
|
|||
endif()
|
||||
|
||||
macro(get_bits_for_arch arch bits)
|
||||
if (${arch} MATCHES "i386|i686|arm|mips|mipsel")
|
||||
if (${arch} MATCHES "i386|arm|mips|mipsel")
|
||||
set(${bits} 32)
|
||||
elseif (${arch} MATCHES "x86_64|powerpc64|powerpc64le|aarch64|mips64|mips64el|s390x")
|
||||
set(${bits} 64)
|
||||
|
|
|
@ -121,16 +121,11 @@ else:
|
|||
def build_invocation(compile_flags):
|
||||
return " " + " ".join([config.compile_wrapper, config.clang] + compile_flags) + " "
|
||||
|
||||
# Clang driver link 'x86' (i686) architecture to 'i386'.
|
||||
target_arch = config.target_arch
|
||||
if (target_arch == "i686"):
|
||||
target_arch = "i386"
|
||||
|
||||
config.substitutions.append( ("%clang ", build_invocation(target_cflags)) )
|
||||
config.substitutions.append( ("%clangxx ", build_invocation(target_cxxflags)) )
|
||||
config.substitutions.append( ("%clang_asan ", build_invocation(clang_asan_cflags)) )
|
||||
config.substitutions.append( ("%clangxx_asan ", build_invocation(clang_asan_cxxflags)) )
|
||||
config.substitutions.append( ("%shared_libasan", "libclang_rt.asan-%s.so" % target_arch))
|
||||
config.substitutions.append( ("%shared_libasan", "libclang_rt.asan-%s.so" % config.target_arch))
|
||||
if config.asan_dynamic:
|
||||
config.substitutions.append( ("%clang_asan_static ", build_invocation(clang_asan_static_cflags)) )
|
||||
config.substitutions.append( ("%clangxx_asan_static ", build_invocation(clang_asan_static_cxxflags)) )
|
||||
|
|
|
@ -135,7 +135,7 @@ config.substitutions.append( ("%expect_crash ", config.expect_crash) )
|
|||
target_arch = getattr(config, 'target_arch', None)
|
||||
if target_arch:
|
||||
config.available_features.add(target_arch + '-target-arch')
|
||||
if target_arch in ['x86_64', 'i386', 'i686']:
|
||||
if target_arch in ['x86_64', 'i386']:
|
||||
config.available_features.add('x86-target-arch')
|
||||
config.available_features.add(target_arch + '-' + config.host_os.lower())
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
// RUN: %env_lsan_opts=$LSAN_BASE:"use_tls=0" not %run %t 2>&1 | FileCheck %s
|
||||
// RUN: %env_lsan_opts=$LSAN_BASE:"use_tls=1" %run %t 2>&1
|
||||
// RUN: %env_lsan_opts="" %run %t 2>&1
|
||||
// UNSUPPORTED: i386-linux,i686-linux,arm
|
||||
// UNSUPPORTED: i386-linux,arm
|
||||
|
||||
#ifndef BUILD_DSO
|
||||
#include <assert.h>
|
||||
|
|
|
@ -26,7 +26,7 @@ config.available_features.add(config.tool_name)
|
|||
if config.target_arch not in ['arm', 'armhf', 'aarch64']:
|
||||
config.available_features.add('stable-runtime')
|
||||
|
||||
if config.host_os == 'Linux' and config.tool_name == "lsan" and (config.target_arch == 'i386' or config.target_arch == 'i686'):
|
||||
if config.host_os == 'Linux' and config.tool_name == "lsan" and config.target_arch == 'i386':
|
||||
config.available_features.add("lsan-x86")
|
||||
|
||||
if config.host_os == 'Darwin':
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
// RUN: %run %t 10000 > %T/random_shuffle_tmp_dir/out2
|
||||
// RUN: not diff %T/random_shuffle_tmp_dir/out?
|
||||
// RUN: rm -rf %T/random_shuffle_tmp_dir
|
||||
// UNSUPPORTED: i386-linux,i686-linux,arm-linux,armhf-linux,aarch64-linux,mips-linux,mipsel-linux,mips64-linux,mips64el-linux
|
||||
// UNSUPPORTED: i386-linux,arm-linux,armhf-linux,aarch64-linux,mips-linux,mipsel-linux,mips64-linux,mips64el-linux
|
||||
|
||||
// Tests that the allocator shuffles the chunks before returning to the user.
|
||||
|
||||
|
|
Loading…
Reference in New Issue