Skip to content

Instantly share code, notes, and snippets.

View colemancda's full-sized avatar
🏎️
Working with Swift on ARM

Alsey Coleman Miller colemancda

🏎️
Working with Swift on ARM
View GitHub Profile
@colemancda
colemancda / swift-tools-5.6-mips.patch
Created March 18, 2022 08:42
Swift Tools 5.6 patched for MIPS
diff --git a/Sources/TSCUtility/Triple.swift b/Sources/TSCUtility/Triple.swift
index 0b682c8..1e217a6 100644
--- a/Sources/TSCUtility/Triple.swift
+++ b/Sources/TSCUtility/Triple.swift
@@ -49,6 +49,10 @@ public struct Triple: Encodable, Equatable {
case arm64
case arm64e
case wasm32
+ case mips
+ case mipsel
@colemancda
colemancda / llvm-5.6-mips.patch
Created March 18, 2022 08:41
LLVM 5.6 patched for MIPS
diff --git a/clang/lib/Basic/Targets/Mips.h b/clang/lib/Basic/Targets/Mips.h
index b475c03889a1..73378ecbd3bf 100644
--- a/clang/lib/Basic/Targets/Mips.h
+++ b/clang/lib/Basic/Targets/Mips.h
@@ -200,6 +200,17 @@ public:
return TargetInfo::VoidPtrBuiltinVaList;
}
+ CallingConvCheckResult checkCallingConvention(CallingConv CC) const override {
+ switch (CC) {
@colemancda
colemancda / swift-5.6-mips.patch
Created March 18, 2022 08:41
Swift 5.6 patched for MIPS
diff --git a/CMakeLists.txt b/CMakeLists.txt
index bc9b6790922..70cb28f3f8c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -713,6 +713,14 @@ 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}" STREQUAL "mips")
+ set(SWIFT_HOST_VARIANT_ARCH_default "mips")
@colemancda
colemancda / llvm-5.6-ppc32.patch
Last active March 27, 2022 22:16
LLVM 5.6 patched for PowerPC 32-bit
diff --git a/clang/lib/Basic/Targets/PPC.h b/clang/lib/Basic/Targets/PPC.h
index 7c14a4eb9410..f03d1f40cc53 100644
--- a/clang/lib/Basic/Targets/PPC.h
+++ b/clang/lib/Basic/Targets/PPC.h
@@ -400,6 +400,17 @@ public:
// This is the ELF definition, and is overridden by the Darwin sub-target
return TargetInfo::PowerABIBuiltinVaList;
}
+
+ CallingConvCheckResult checkCallingConvention(CallingConv CC) const override {
@colemancda
colemancda / swift-5.6-ppc32.patch
Last active May 25, 2022 15:57
Swift 5.6 patched for PowerPC 32-bit
diff --git a/CMakeLists.txt b/CMakeLists.txt
index bc9b6790922..734d2dae23f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -709,6 +709,8 @@ else()
endif()
elseif("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "ppc64")
set(SWIFT_HOST_VARIANT_ARCH_default "powerpc64")
+ elseif("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "ppc")
+ set(SWIFT_HOST_VARIANT_ARCH_default "powerpc")
@colemancda
colemancda / swift-tools-5.6-ppc32.patch
Created March 18, 2022 05:56
Swift Core Tools 5.6 patched for PowerPC 32-bit
diff --git a/Sources/TSCUtility/Triple.swift b/Sources/TSCUtility/Triple.swift
index 0b682c8..5f4d3e5 100644
--- a/Sources/TSCUtility/Triple.swift
+++ b/Sources/TSCUtility/Triple.swift
@@ -40,6 +40,7 @@ public struct Triple: Encodable, Equatable {
case x86_64
case x86_64h
case i686
+ case powerpc
case powerpc64le
@colemancda
colemancda / qemu_riscv64_virt_defconfig
Created March 18, 2022 01:16
Buildroot QEMU RISCV64 Config with Swift 5.6 packages
# Architecture
BR2_riscv=y
BR2_RISCV_64=y
# System
BR2_SYSTEM_DHCP="eth0"
BR2_TARGET_GENERIC_GETTY=y
# Filesystem
BR2_TARGET_ROOTFS_EXT2=y
@colemancda
colemancda / swift-5.6-riscv-buildroot-config
Last active March 27, 2022 06:54
Swift 5.6 RISCV64 Buildroot Configuration
#
# Automatically generated file; DO NOT EDIT.
# Buildroot 2022.02-390-gcf37c90de7-dirty Configuration
#
BR2_HAVE_DOT_CONFIG=y
BR2_HOST_GCC_AT_LEAST_4_9=y
BR2_HOST_GCC_AT_LEAST_5=y
BR2_HOST_GCC_AT_LEAST_6=y
BR2_HOST_GCC_AT_LEAST_7=y
BR2_HOST_GCC_AT_LEAST_8=y
@colemancda
colemancda / swift-5.6-riscv64-buildroot.patch
Last active March 27, 2022 06:58
Buildroot patches to add Swift 5.6 package with RISCV64 support
diff --git a/package/Config.in b/package/Config.in
index 0d5d763180..b89a49913e 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1422,6 +1422,7 @@ menu "Crypto"
source "package/openssl/Config.in"
source "package/pkcs11-helper/Config.in"
source "package/rhash/Config.in"
+ source "package/swift-crypto/Config.in"
source "package/tinydtls/Config.in"
@colemancda
colemancda / alltheflags.md
Created March 17, 2022 16:46 — forked from CodaFi/alltheflags.md
Every Option and Flag /swift (1.2) Accepts Ever

#Every Single Option Under The Sun

  • optimization level options
  • automatic crashing options
  • debug info options
  • swift internal options
  • swift debug/development internal options
  • linker-specific options
  • mode options