Created
March 28, 2022 02:57
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/CMakeLists.txt b/CMakeLists.txt | |
index bc9b6790922..5c15bc7048b 100644 | |
--- a/CMakeLists.txt | |
+++ b/CMakeLists.txt | |
@@ -713,6 +713,8 @@ else() | |
set(SWIFT_HOST_VARIANT_ARCH_default "powerpc64le") | |
elseif("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "s390x") | |
set(SWIFT_HOST_VARIANT_ARCH_default "s390x") | |
+ elseif("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "armv5|armv5te") | |
+ set(SWIFT_HOST_VARIANT_ARCH_default "armv5") | |
# FIXME: Only matches v6l/v7l - by far the most common variants | |
elseif("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "armv6l") | |
set(SWIFT_HOST_VARIANT_ARCH_default "armv6") | |
diff --git a/cmake/modules/AddSwift.cmake b/cmake/modules/AddSwift.cmake | |
index a448bcb23c4..4bafb119105 100644 | |
--- a/cmake/modules/AddSwift.cmake | |
+++ b/cmake/modules/AddSwift.cmake | |
@@ -338,7 +338,7 @@ function(_add_host_variant_link_flags target) | |
target_link_libraries(${target} PRIVATE | |
pthread | |
dl) | |
- if("${SWIFT_HOST_VARIANT_ARCH}" MATCHES "armv6|armv7|i686") | |
+ if("${SWIFT_HOST_VARIANT_ARCH}" MATCHES "armv5|armv6|armv7|i686") | |
target_link_libraries(${target} PRIVATE atomic) | |
endif() | |
elseif(SWIFT_HOST_VARIANT_SDK STREQUAL FREEBSD) | |
diff --git a/cmake/modules/AddSwiftUnittests.cmake b/cmake/modules/AddSwiftUnittests.cmake | |
index 54a3138bec7..4b9dcf11197 100644 | |
--- a/cmake/modules/AddSwiftUnittests.cmake | |
+++ b/cmake/modules/AddSwiftUnittests.cmake | |
@@ -37,7 +37,7 @@ function(add_swift_unittest test_dirname) | |
if(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|AMD64") | |
target_compile_options(${test_dirname} PRIVATE | |
-march=core2) | |
- elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "armv6|armv7|i686") | |
+ elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "armv5|armv6|armv7|i686") | |
set_property(TARGET "${test_dirname}" APPEND PROPERTY LINK_LIBRARIES | |
"atomic") | |
endif() | |
diff --git a/cmake/modules/SwiftConfigureSDK.cmake b/cmake/modules/SwiftConfigureSDK.cmake | |
index 3c866f2e65c..103f1296fad 100644 | |
--- a/cmake/modules/SwiftConfigureSDK.cmake | |
+++ b/cmake/modules/SwiftConfigureSDK.cmake | |
@@ -323,7 +323,9 @@ macro(configure_sdk_unix name architectures) | |
endif() | |
if("${prefix}" STREQUAL "LINUX") | |
- if(arch MATCHES "(armv6|armv7)") | |
+ if(arch MATCHES "(armv5)") | |
+ set(SWIFT_SDK_LINUX_ARCH_${arch}_TRIPLE "${arch}-unknown-linux-gnueabi") | |
+ elseif(arch MATCHES "(armv6|armv7)") | |
set(SWIFT_SDK_LINUX_ARCH_${arch}_TRIPLE "${arch}-unknown-linux-gnueabihf") | |
elseif(arch MATCHES "(aarch64|i686|powerpc64|powerpc64le|s390x|x86_64)") | |
set(SWIFT_SDK_LINUX_ARCH_${arch}_TRIPLE "${arch}-unknown-linux-gnu") | |
diff --git a/cmake/modules/SwiftSetIfArchBitness.cmake b/cmake/modules/SwiftSetIfArchBitness.cmake | |
index fa29d77fe26..74a43e33343 100644 | |
--- a/cmake/modules/SwiftSetIfArchBitness.cmake | |
+++ b/cmake/modules/SwiftSetIfArchBitness.cmake | |
@@ -9,6 +9,7 @@ function(set_if_arch_bitness var_name) | |
if("${SIA_ARCH}" STREQUAL "i386" OR | |
"${SIA_ARCH}" STREQUAL "i686" OR | |
"${SIA_ARCH}" STREQUAL "x86" OR | |
+ "${SIA_ARCH}" STREQUAL "armv5" OR | |
"${SIA_ARCH}" STREQUAL "armv6" OR | |
"${SIA_ARCH}" STREQUAL "armv7" OR | |
"${SIA_ARCH}" STREQUAL "armv7k" OR | |
diff --git a/lib/Basic/Platform.cpp b/lib/Basic/Platform.cpp | |
index 141655332d8..47759ba6b8e 100644 | |
--- a/lib/Basic/Platform.cpp | |
+++ b/lib/Basic/Platform.cpp | |
@@ -218,6 +218,8 @@ StringRef swift::getMajorArchitectureName(const llvm::Triple &Triple) { | |
return "armv7"; | |
case llvm::Triple::SubArchType::ARMSubArch_v6: | |
return "armv6"; | |
+ case llvm::Triple::SubArchType::ARMSubArch_v5: | |
+ return "armv5"; | |
default: | |
break; | |
} | |
diff --git a/lib/IDE/Utils.cpp b/lib/IDE/Utils.cpp | |
index fe5d0111dee..a92f0d01790 100644 | |
--- a/lib/IDE/Utils.cpp | |
+++ b/lib/IDE/Utils.cpp | |
@@ -401,6 +401,10 @@ static std::string adjustClangTriple(StringRef TripleStr) { | |
OS << "armv6k"; break; | |
case llvm::Triple::SubArchType::ARMSubArch_v6t2: | |
OS << "armv6t2"; break; | |
+ case llvm::Triple::SubArchType::ARMSubArch_v5: | |
+ OS << "armv5"; break; | |
+ case llvm::Triple::SubArchType::ARMSubArch_v5te: | |
+ OS << "armv5te"; break; | |
default: | |
// Adjust i386-macosx to x86_64 because there is no Swift stdlib for i386. | |
if ((Triple.getOS() == llvm::Triple::MacOSX || | |
diff --git a/stdlib/cmake/modules/AddSwiftStdlib.cmake b/stdlib/cmake/modules/AddSwiftStdlib.cmake | |
index 104cea4df59..2cf19b3e5bb 100644 | |
--- a/stdlib/cmake/modules/AddSwiftStdlib.cmake | |
+++ b/stdlib/cmake/modules/AddSwiftStdlib.cmake | |
@@ -404,7 +404,7 @@ function(_add_target_variant_link_flags) | |
MACCATALYST_BUILD_FLAVOR "${LFLAGS_MACCATALYST_BUILD_FLAVOR}") | |
if("${LFLAGS_SDK}" STREQUAL "LINUX") | |
list(APPEND link_libraries "pthread" "dl") | |
- if("${LFLAGS_ARCH}" MATCHES "armv6|armv7|i686") | |
+ if("${LFLAGS_ARCH}" MATCHES "armv5|armv6|armv7|i686") | |
list(APPEND link_libraries "atomic") | |
endif() | |
elseif("${LFLAGS_SDK}" STREQUAL "FREEBSD") | |
diff --git a/utils/build-script-impl b/utils/build-script-impl | |
index 074e6f6cad2..fc05eee2894 100755 | |
--- a/utils/build-script-impl | |
+++ b/utils/build-script-impl | |
@@ -452,6 +452,7 @@ function verify_host_is_supported() { | |
| haiku-x86_64 \ | |
| linux-x86_64 \ | |
| linux-i686 \ | |
+ | linux-armv5 \ | |
| linux-armv6 \ | |
| linux-armv7 \ | |
| linux-aarch64 \ | |
@@ -545,6 +546,10 @@ function set_build_options_for_host() { | |
;; | |
esac | |
;; | |
+ linux-armv5) | |
+ SWIFT_HOST_TRIPLE="armv5-unknown-linux-gnueabi" | |
+ llvm_target_arch="ARM" | |
+ ;; | |
linux-armv6) | |
SWIFT_HOST_TRIPLE="armv6-unknown-linux-gnueabihf" | |
llvm_target_arch="ARM" | |
@@ -1099,7 +1104,7 @@ function false_true() { | |
CROSS_COMPILE_HOSTS=($CROSS_COMPILE_HOSTS) | |
for t in "${CROSS_COMPILE_HOSTS[@]}"; do | |
case ${t} in | |
- macosx* | iphone* | appletv* | watch* | linux-armv6 | linux-armv7 | android-* ) | |
+ macosx* | iphone* | appletv* | watch*| linux-armv5 | linux-armv6 | linux-armv7 | android-* ) | |
;; | |
*) | |
echo "Unknown host to cross-compile for: ${t}" | |
diff --git a/utils/swift_build_support/swift_build_support/targets.py b/utils/swift_build_support/swift_build_support/targets.py | |
index 05966defe28..e69c4272a02 100644 | |
--- a/utils/swift_build_support/swift_build_support/targets.py | |
+++ b/utils/swift_build_support/swift_build_support/targets.py | |
@@ -224,6 +224,7 @@ class StdlibDeploymentTarget(object): | |
Linux = Platform("linux", archs=[ | |
"x86_64", | |
"i686", | |
+ "armv5", | |
"armv6", | |
"armv7", | |
"aarch64", | |
@@ -304,6 +305,9 @@ class StdlibDeploymentTarget(object): | |
elif machine.startswith('armv6'): | |
# linux-armv6* is canonicalized to 'linux-armv6' | |
return StdlibDeploymentTarget.Linux.armv6 | |
+ elif machine.startswith('armv5'): | |
+ # linux-armv5* is canonicalized to 'linux-armv5' | |
+ return StdlibDeploymentTarget.Linux.armv5 | |
elif machine == 'aarch64': | |
return StdlibDeploymentTarget.Linux.aarch64 | |
elif machine == 'ppc64': |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment