The package rpms/swift-lang.git has added or updated architecture specific content in its spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s): https://src.fedoraproject.org/cgit/rpms/swift-lang.git/commit/?id=7054ff7d85....
Change: +%ifarch aarch64
Thanks.
Full change: ============
commit 7054ff7d8504aeadb3deaed81a243ad1b977b284 Author: Ron Olson tachoknight@gmail.com Date: Sun Dec 16 10:56:00 2018 -0600
Swift 5.0-Dev with aarch64 support
diff --git a/aarch64-new-master-VarArgs.patch b/aarch64-new-master-VarArgs.patch new file mode 100644 index 0000000..c07cef0 --- /dev/null +++ b/aarch64-new-master-VarArgs.patch @@ -0,0 +1,219 @@ +diff --git a/lib/ClangImporter/ImportDecl.cpp b/lib/ClangImporter/ImportDecl.cpp +index ff503bf..c601288 100644 +--- swift/lib/ClangImporter/ImportDecl.cpp ++++ swift/lib/ClangImporter/ImportDecl.cpp +@@ -322,8 +322,11 @@ getSwiftStdlibType(const clang::TypedefNameDecl *D, + break; + + case MappedCTypeKind::VaList: +- if (ClangTypeSize != ClangCtx.getTypeSize(ClangCtx.VoidPtrTy)) +- return std::make_pair(Type(), ""); ++ if (ClangTypeSize != ClangCtx.getTypeSize(ClangCtx.VoidPtrTy)) { ++ if (ClangCtx.getTargetInfo().getBuiltinVaListKind() != ++ clang::TargetInfo::AArch64ABIBuiltinVaList) ++ return std::make_pair(Type(), ""); ++ } + break; + + case MappedCTypeKind::ObjCBool: +diff --git a/stdlib/public/core/CTypes.swift b/stdlib/public/core/CTypes.swift +index b46fa89..bdbe228 100644 +--- swift/stdlib/public/core/CTypes.swift ++++ swift/stdlib/public/core/CTypes.swift +@@ -219,6 +219,29 @@ extension UInt { + } + + /// A wrapper around a C `va_list` pointer. ++#if arch(arm64) && os(Linux) ++@_fixed_layout ++public struct CVaListPointer { ++ @usableFromInline // unsafe-performance ++ internal var value: (__stack: UnsafeMutablePointer<Int>?, ++ __gr_top: UnsafeMutablePointer<Int>?, ++ __vr_top: UnsafeMutablePointer<Int>?, ++ __gr_off: Int32, ++ __vr_off: Int32) ++ ++ @inlinable // unsafe-performance ++ public // @testable ++ init(__stack: UnsafeMutablePointer<Int>?, ++ __gr_top: UnsafeMutablePointer<Int>?, ++ __vr_top: UnsafeMutablePointer<Int>?, ++ __gr_off: Int32, ++ __vr_off: Int32) { ++ value = (__stack, __gr_top, __vr_top, __gr_off, __vr_off) ++ } ++} ++ ++#else ++ + @_fixed_layout + public struct CVaListPointer { + @usableFromInline // unsafe-performance +@@ -238,6 +261,8 @@ extension CVaListPointer : CustomDebugStringConvertible { + } + } + ++#endif ++ + @inlinable + internal func _memcpy( + dest destination: UnsafeMutableRawPointer, +diff --git a/stdlib/public/core/VarArgs.swift b/stdlib/public/core/VarArgs.swift +index 5d42c58..859d987 100644 +--- swift/stdlib/public/core/VarArgs.swift ++++ swift/stdlib/public/core/VarArgs.swift +@@ -90,6 +90,23 @@ internal let _registerSaveWords = _countGPRegisters + _countFPRegisters * _fpReg + internal let _countGPRegisters = 16 + @usableFromInline + internal let _registerSaveWords = _countGPRegisters ++ ++#elseif arch(arm64) && os(Linux) ++// ARM Procedure Call Standard for aarch64. (IHI0055B) ++// The va_list type may refer to any parameter in a parameter list may be in one ++// of three memory locations depending on its type and position in the argument ++// list : ++// 1. GP register save area x0 - x7 ++// 2. 128-bit FP/SIMD register save area q0 - q7 ++// 3. Stack argument area ++@usableFromInline ++internal let _countGPRegisters = 8 ++@usableFromInline ++internal let _countFPRegisters = 8 ++@usableFromInline ++internal let _fpRegisterWords = 16 / MemoryLayout<Int>.size ++@usableFromInline ++internal let _registerSaveWords = _countGPRegisters + (_countFPRegisters * _fpRegisterWords) + #endif + + #if arch(s390x) +@@ -498,6 +515,129 @@ final internal class _VaListBuilder { + Builtin.addressof(&self.header))) + } + } ++#elseif arch(arm64) && os(Linux) ++ ++@_fixed_layout // FIXME(sil-serialize-all) ++@usableFromInline // FIXME(sil-serialize-all) ++final internal class __VaListBuilder { ++ @usableFromInline // FIXME(sil-serialize-all) ++ internal init() { ++ // Prepare the register save area. ++ allocated = _registerSaveWords ++ storage = allocStorage(wordCount: allocated) ++ // Append stack arguments after register save area. ++ count = allocated ++ } ++ ++ @usableFromInline // FIXME(sil-serialize-all) ++ deinit { ++ if let allocatedStorage = storage { ++ deallocStorage(wordCount: allocated, storage: allocatedStorage) ++ } ++ } ++ ++ @usableFromInline // FIXME(sil-serialize-all) ++ internal func append(_ arg: CVarArg) { ++ var encoded = arg._cVarArgEncoding ++ ++ if arg is _CVarArgPassedAsDouble ++ && fpRegistersUsed < _countFPRegisters { ++ var startIndex = (fpRegistersUsed * _fpRegisterWords) ++ for w in encoded { ++ storage[startIndex] = w ++ startIndex += 1 ++ } ++ fpRegistersUsed += 1 ++ } else if encoded.count == 1 ++ && !(arg is _CVarArgPassedAsDouble) ++ && gpRegistersUsed < _countGPRegisters { ++ var startIndex = ( _fpRegisterWords * _countFPRegisters) + gpRegistersUsed ++ storage[startIndex] = encoded[0] ++ gpRegistersUsed += 1 ++ } else { ++ // Arguments in stack slot. ++ appendWords(encoded) ++ } ++ } ++ ++ @usableFromInline // FIXME(sil-serialize-all) ++ internal func va_list() -> CVaListPointer { ++ let vr_top = storage + (_fpRegisterWords * _countFPRegisters) ++ let gr_top = vr_top + _countGPRegisters ++ ++ return CVaListPointer(__stack: gr_top, __gr_top: gr_top, ++ __vr_top: vr_top, __gr_off: -64, __vr_off: -128) ++ } ++ ++ @usableFromInline // FIXME(sil-serialize-all) ++ internal func appendWords(_ words: [Int]) { ++ let newCount = count + words.count ++ if newCount > allocated { ++ let oldAllocated = allocated ++ let oldStorage = storage ++ let oldCount = count ++ ++ allocated = max(newCount, allocated * 2) ++ let newStorage = allocStorage(wordCount: allocated) ++ storage = newStorage ++ // Count is updated below. ++ if let allocatedOldStorage = oldStorage { ++ newStorage.moveInitialize(from: allocatedOldStorage, count: oldCount) ++ deallocStorage(wordCount: oldAllocated, storage: allocatedOldStorage) ++ } ++ } ++ ++ let allocatedStorage = storage! ++ for word in words { ++ allocatedStorage[count] = word ++ count += 1 ++ } ++ } ++ ++ @usableFromInline // FIXME(sil-serialize-all) ++ internal func rawSizeAndAlignment( ++ _ wordCount: Int ++ ) -> (Builtin.Word, Builtin.Word) { ++ return ((wordCount * MemoryLayout<Int>.stride)._builtinWordValue, ++ requiredAlignmentInBytes._builtinWordValue) ++ } ++ ++ @usableFromInline // FIXME(sil-serialize-all) ++ internal func allocStorage(wordCount: Int) -> UnsafeMutablePointer<Int> { ++ let (rawSize, rawAlignment) = rawSizeAndAlignment(wordCount) ++ let rawStorage = Builtin.allocRaw(rawSize, rawAlignment) ++ return UnsafeMutablePointer<Int>(rawStorage) ++ } ++ ++ @usableFromInline // FIXME(sil-serialize-all) ++ internal func deallocStorage( ++ wordCount: Int, storage: UnsafeMutablePointer<Int> ++ ) { ++ let (rawSize, rawAlignment) = rawSizeAndAlignment(wordCount) ++ Builtin.deallocRaw(storage._rawValue, rawSize, rawAlignment) ++ } ++ ++ @usableFromInline // FIXME(sil-serialize-all) ++ internal let requiredAlignmentInBytes = MemoryLayout<Double>.alignment ++ ++ @usableFromInline // FIXME(sil-serialize-all) ++ internal var count = 0 ++ ++ @usableFromInline // FIXME(sil-serialize-all) ++ internal var allocated = 0 ++ ++ @usableFromInline // FIXME(sil-serialize-all) ++ internal var storage: UnsafeMutablePointer<Int>! ++ ++ @usableFromInline // FIXME(sil-serialize-all) ++ internal var gpRegistersUsed = 0 ++ ++ @usableFromInline // FIXME(sil-serialize-all) ++ internal var fpRegistersUsed = 0 ++ ++ @usableFromInline // FIXME(sil-serialize-all) ++ internal var overflowWordsUsed = 0 ++} + + #else + diff --git a/change-lldb-location.patch b/change-lldb-location.patch new file mode 100644 index 0000000..3d324e7 --- /dev/null +++ b/change-lldb-location.patch @@ -0,0 +1,20 @@ +--- swift/lib/Driver/ToolChains.cpp.orig 2018-11-16 09:22:38.058780122 -0600 ++++ swift/lib/Driver/ToolChains.cpp 2018-11-16 09:31:08.699326699 -0600 +@@ -881,7 +881,7 @@ + useLLDB = true; + break; + case REPLJobAction::Mode::PreferLLDB: +- useLLDB = !findProgramRelativeToSwift("lldb").empty(); ++ useLLDB = true; + break; + } + +@@ -909,7 +909,7 @@ + ArgStringList Arguments; + Arguments.push_back(context.Args.MakeArgString(std::move(SingleArg))); + +- return {"lldb", Arguments}; ++ return {"/usr/libexec/swift-lldb/lldb", Arguments}; + } + + ToolChain::InvocationInfo diff --git a/compiler-rt-no-ustat.patch b/compiler-rt-no-ustat.patch deleted file mode 100644 index 2499d66..0000000 --- a/compiler-rt-no-ustat.patch +++ /dev/null @@ -1,49 +0,0 @@ ---- compiler-rt-orig/lib/sanitizer_common/sanitizer_common_syscalls.inc 2018-05-21 10:41:12.089534263 -0500 -+++ compiler-rt/lib/sanitizer_common/sanitizer_common_syscalls.inc 2018-05-21 10:47:21.172510188 -0500 -@@ -923,16 +923,6 @@ - } - } - --#if !SANITIZER_ANDROID --PRE_SYSCALL(ustat)(long dev, void *ubuf) {} -- --POST_SYSCALL(ustat)(long res, long dev, void *ubuf) { -- if (res >= 0) { -- if (ubuf) POST_WRITE(ubuf, struct_ustat_sz); -- } --} --#endif // !SANITIZER_ANDROID -- - PRE_SYSCALL(stat64)(const void *filename, void *statbuf) { - if (filename) - PRE_READ(filename, -diff -Naur compiler-rt-orig/lib/sanitizer_common/sanitizer_platform_limits_posix.cc compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cc ---- compiler-rt-orig/lib/sanitizer_common/sanitizer_platform_limits_posix.cc 2018-05-21 10:41:12.080534263 -0500 -+++ compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cc 2018-05-21 10:45:29.503517472 -0500 -@@ -159,7 +159,6 @@ - # include <sys/procfs.h> - #endif - #include <sys/user.h> --#include <sys/ustat.h> - #include <linux/cyclades.h> - #include <linux/if_eql.h> - #include <linux/if_plip.h> -@@ -253,7 +252,6 @@ - #endif // SANITIZER_LINUX || SANITIZER_FREEBSD - - #if SANITIZER_LINUX && !SANITIZER_ANDROID -- unsigned struct_ustat_sz = sizeof(struct ustat); - unsigned struct_rlimit64_sz = sizeof(struct rlimit64); - unsigned struct_statvfs64_sz = sizeof(struct statvfs64); - #endif // SANITIZER_LINUX && !SANITIZER_ANDROID -diff -Naur compiler-rt-orig/lib/sanitizer_common/sanitizer_platform_limits_posix.h compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h ---- compiler-rt-orig/lib/sanitizer_common/sanitizer_platform_limits_posix.h 2018-05-21 10:41:12.081534263 -0500 -+++ compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h 2018-05-21 10:44:28.392521458 -0500 -@@ -197,7 +197,6 @@ - int v[10]; - }; - -- extern unsigned struct_ustat_sz; - extern unsigned struct_rlimit64_sz; - extern unsigned struct_statvfs64_sz; - diff --git a/no-ninja-build.patch b/no-ninja-build.patch index e0a350f..a6bfdb9 100644 --- a/no-ninja-build.patch +++ b/no-ninja-build.patch @@ -1,7 +1,11 @@ ---- swift/utils/build-presets.orig 2018-06-12 12:33:42.690456898 -0500 -+++ swift/utils/build-presets.ini 2018-06-12 12:34:18.454458545 -0500 -@@ -717,7 +717,6 @@ +--- swift/utils/build-presets.ini.orig 2018-11-16 10:19:42.143559064 -0600 ++++ swift/utils/build-presets.ini 2018-11-16 10:20:13.638776829 -0600 +@@ -716,11 +716,9 @@ + llbuild + swiftpm xctest +-libicu + dash-dash
-build-ninja diff --git a/reflection-template.patch b/reflection-template.patch deleted file mode 100644 index 22f3ec2..0000000 --- a/reflection-template.patch +++ /dev/null @@ -1,18 +0,0 @@ ---- swift/include/swift/Reflection/TypeRef.h.orig 2018-09-09 16:18:28.138659278 -0500 -+++ swift/include/swift/Reflection/TypeRef.h 2018-09-09 16:20:47.423286114 -0500 -@@ -48,12 +48,12 @@ - - #define FIND_OR_CREATE_TYPEREF(Allocator, TypeRefTy, ...) \ - auto ID = Profile(__VA_ARGS__); \ -- const auto Entry = Allocator.DEPENDENT_TEMPLATE TypeRefTy##s.find(ID); \ -- if (Entry != Allocator.DEPENDENT_TEMPLATE TypeRefTy##s.end()) \ -+ const auto Entry = Allocator.TypeRefTy##s.find(ID); \ -+ if (Entry != Allocator.TypeRefTy##s.end()) \ - return Entry->second; \ - const auto TR = \ - Allocator.DEPENDENT_TEMPLATE makeTypeRef<TypeRefTy>(__VA_ARGS__); \ -- Allocator.DEPENDENT_TEMPLATE TypeRefTy##s.insert({ID, TR}); \ -+ Allocator.TypeRefTy##s.insert({ID, TR}); \ - return TR; - - /// An identifier containing the unique bit pattern made up of all of the diff --git a/sources b/sources index 8f30428..1bdb7a1 100644 --- a/sources +++ b/sources @@ -1,13 +1,13 @@ -SHA512 (clang.tar.gz) = 3bb02633721b9659155cca08bb8a75c0cbde17653795126bdb218194abade874c807b8d79ab959203c0934232b944ddfed4750932a68b93584585fc5e9553554 -SHA512 (cmark.tar.gz) = 4cc63d17f7111a1b6fc829784a71cece3932f87f0f8830837368f812e6024431a629cfecf29bdc9c4d54a049faa1385e6d11044a412f0aea601d5ebc305cce3b -SHA512 (corelibs-foundation.tar.gz) = 8f0a7f8b2a8692edf2bd268db2459e2e58a8046d1ab99c0ab48ec247c0cb8d8ccdaa902c3a4da8081c4c528527dcdd664b1f1539e6c06d872b490f9cbf7f6cd3 -SHA512 (corelibs-libdispatch.tar.gz) = 77189baaaf2dade91d24f23777dcc19c5b0e9de9cb0a43674ee068e3ba63f3a27732656d794f9490ccb2a54adae3f1640a0ecb1917f668529755222966da92ab -SHA512 (corelibs-xctest.tar.gz) = a31a65012356191ed7f7fa9a34bd8a25777c814b59a700598fb57493f9972ef7858a4923f4df066c9474ecad273d50f71c74e670e6a8d52d4b7939a8330498c4 -SHA512 (llbuild.tar.gz) = b6c9615a1fc665782745e5abb2dd1f046d0c2d676f80419c5ab9e89c9f298b29f2e560f52194491bc616fd01b13372bac605a80a233981c77f921188e39f956d -SHA512 (lldb.tar.gz) = 5e5cde8a43f157ca691fb1cd7223fb775af172f58b1ab4d27a37c85cefe90d00d6e77100f6eae622460eefaea770a2fa27cb05e68d77a530760894995b4541ce -SHA512 (llvm.tar.gz) = 5fa2a9ffb30f3b9349bcf3c40cdf79f440c6f51fea1d6f55d4ce22ba99e53b1edd60e1bcb1171ec5fea35dcb0bbb1ce85be93acba4559d3dd2272278c22ef567 -SHA512 (package-manager.tar.gz) = aed14c0f7283b53d13ab9c10d9a5c17cbe11d15108694e464c1dc4ce7e4cd4069df8f90990a8fe3f6e669b0c1222041ab687c8176f3f4cddc1f1d28950761912 -SHA512 (swift-compiler-rt.tar.gz) = 0384af3432241d1d686d5831d7a1d94e3a4e587d5703fddf1350bcc8aa98ad3d3f85becbdfc81f7091a5e7a8788f7048985395b7a4759e3601bb6e9a1e9b41a7 -SHA512 (swift-integration-tests.tar.gz) = 875b2862019be5fb781ba3c0a59805e95362575429403d52efaf1f6507c4abced5294e1ccc8f2ca03d3d0f1befdf5f191789148ab4f14f85383f8d3fb56a325a -SHA512 (swift-xcode-playground-support.tar.gz) = 09342c0eedd35c423e74421f4d35ac5e9345ff8a721edae60d31ab104b4a3781cfd80e3f507f035b2629b7959d2fa89d86a394a7151d843a9e3c4955de102879 -SHA512 (swift.tar.gz) = c8a4e6594f07e457d2ca999fe1fc55b02af5dd3b9684536902d1fb28ff417fb19a9d90bb7f0d0d02b9d7cc2abbe175be2cd26b9cc9092735f9cacaad41d1837a +SHA512 (clang.tar.gz) = 6154c2a86502e80190fafb03c0fbde7c93b3c68bc09a36e4c9d291152bd4a67d7d0b4f6acd25c67366c5aa75ccb3c47b48991625f8c3df641b6e743ce69615fc +SHA512 (cmark.tar.gz) = 2e2f4ebd66a70dc3be64d7d2008e0cedf7cc3eb3b5cb34fa605fdbeae41ef0067240373623eb4f2515f0673552b8423c3027e3cc163b847529cb8d5193e1e096 +SHA512 (corelibs-foundation.tar.gz) = d17fe595c70990aa1c1bc1cfd219d0aa29b69e845c58468380f4006c1422ecc4f513ca76e0b8551df7905a6ae34659080fd19354aa3150e505840599d8ce3780 +SHA512 (corelibs-libdispatch.tar.gz) = 299cf698fe06db712e187227516756e8158d1a91e2fd88cb12851112ebadccfb27fd2c472bfa55f768c4151e13b81c584852575d32f541bc9315731a651ffba4 +SHA512 (corelibs-xctest.tar.gz) = 309bb67cc39fbde3f9642bb5a261f5da3cc96eae953adddd319a7e915b7c3d35bb2018e12535dcbc917564aaecbcce248468c1b0fa6e1e2b6d9cc67f5792e2ae +SHA512 (llbuild.tar.gz) = bafad69d506ea670c3bc484874e5486570c7976ee037ba577a46d6c2df9fe609005a2882f0633ffbb86212b4d5fa48d02fcf5a14e13235e62cbc166ec7d87b4a +SHA512 (lldb.tar.gz) = 5155d4c21f13020f0c935823dbbc2422008f2d1523f881229f6e0aa15f836894a9c550e8d133c7a2353edc8a3a6d4edfae30f66f93ea45276de29969244fa428 +SHA512 (llvm.tar.gz) = 15b43a51855160841fbc505b426b8fbb84fd1bec920b7b07f176592a092cd69ea012a80f17912702b86446f9d61958f07f3aa4132597cabf121d1f19fa913fa9 +SHA512 (package-manager.tar.gz) = 3aadcc334e71bca73945e9f919dd6535ec2e83a0c1d79433a07ae4ab2c52092232e7d2876c7a0f61cc6ae255ccd8c2fb2d4e4fca2850006055d79a055f300aba +SHA512 (swift-compiler-rt.tar.gz) = c9ac21612a64f0d836ecf3eac20b5b1f579dd14b4e23a871ced857bb2b3feaabb7cf01f00c972ac69144cdc17780353e4dfdc65e66365c3c5eb0cdb71ca230e6 +SHA512 (swift-integration-tests.tar.gz) = 4dbc29814b5ccb2aea2720ba908594026b615c908be24630516bebaac22a66392eed785ccde16ce00564b98cc120669fee2d41bd782e78a025a0495055d51b47 +SHA512 (swift-xcode-playground-support.tar.gz) = f4212ae56bcbbbe80ee1c7533d03d25c4d46371c5895e96b86b6b9b46d9fef03de94a8ef197e93ae7de468f8797f5f05096229d465fd3115a86b6362cb207922 +SHA512 (swift.tar.gz) = 7a8cd38987789304fe0a24ee88950dec68efba710da202d30a406ae534099fde23ec1ccf1a0e206762d325cd526cf563db6ddee2fff59bce45ed4241cf5f98bc diff --git a/swift-lang-4.2.1-change-lldb-location.patch b/swift-lang-4.2.1-change-lldb-location.patch deleted file mode 100644 index 7a13cb1..0000000 --- a/swift-lang-4.2.1-change-lldb-location.patch +++ /dev/null @@ -1,23 +0,0 @@ ---- swift/lib/Driver/ToolChains.cpp.orig 2018-04-12 15:42:53.633440991 -0500 -+++ swift/lib/Driver/ToolChains.cpp 2018-04-12 15:44:37.578628169 -0500 -@@ -841,10 +841,8 @@ - useLLDB = false; - break; - case REPLJobAction::Mode::RequireLLDB: -- useLLDB = true; -- break; - case REPLJobAction::Mode::PreferLLDB: -- useLLDB = !findProgramRelativeToSwift("lldb").empty(); -+ useLLDB = true; - break; - } - -@@ -872,7 +870,7 @@ - ArgStringList Arguments; - Arguments.push_back(context.Args.MakeArgString(std::move(SingleArg))); - -- return {"lldb", Arguments}; -+ return {"/usr/libexec/swift-lldb/lldb", Arguments}; - } - - diff --git a/swift-lang.spec b/swift-lang.spec index 52e55ca..1287264 100644 --- a/swift-lang.spec +++ b/swift-lang.spec @@ -1,12 +1,12 @@ %global debug_package %{nil} -%global swifttag 4.2.1-RELEASE -%global swiftgithash 02a6ca9 -%global swiftgitdate 20181030 +%global swifttag 5.0-DEVELOPMENT-SNAPSHOT-2018-12-14-a +%global swiftgithash ee39236 +%global swiftgitdate 20181214 %global swiftbuild swift-source %global __provides_exclude ^/usr/lib/swift-lldb/.*\.so.* Name: swift-lang -Version: 4.2.1 -Release: 0.101.%{swiftgitdate}git%{swiftgithash}%{?dist} +Version: 5.0 +Release: 0.30.%{swiftgitdate}git%{swiftgithash}%{?dist} Summary: Apple's Swift programming language License: ASL 2.0 URL: https://swift.org @@ -26,10 +26,9 @@ Source12: https://github.com/apple/swift-xcode-playground-support/archive/ Source13: swift-lang.conf Source14: swift-lang-runtime.conf
-Patch0: %{name}-%{version}-change-lldb-location.patch -Patch1: compiler-rt-no-ustat.patch -Patch2: no-ninja-build.patch -Patch3: reflection-template.patch +Patch0: change-lldb-location.patch +Patch1: no-ninja-build.patch +Patch2: aarch64-new-master-VarArgs.patch
BuildRequires: clang BuildRequires: cmake @@ -56,11 +55,11 @@ BuildRequires: ninja-build
Requires: glibc-devel Requires: clang -Requires: ncurses-devel -Requires: ncurses-compat-libs +Requires: ncurses-devel +Requires: ncurses-compat-libs Requires: %{name}-runtime = %{version}-%{release}
-ExclusiveArch: x86_64 +ExclusiveArch: x86_64 aarch64
%description @@ -107,16 +106,14 @@ mv swift-xcode-playground-support-swift-%{swifttag} swift-xcode-playground-suppo # as the swift executable (i.e. /usr/bin). %patch0 -p0
-# sys/ustat.h was removed from glibc (per https://sourceware.org/git/?p=glibc.git;a=commit;h=cf2478d53ad7071e84c724a98...) -# A patch has been submitted to resolve this upstream (https://github.com/apple/swift-compiler-rt/pull/20) but until -# it is merged this patch is necessary to build Swift on Fedora with the latest glibc. +# Since we require ninja for building, there's no sense to rebuild it just for Swift %patch1 -p0
-# Since we require ninja for building, there's no sense to rebuild it just for Swift +# Specific patch for VarArg handling for Swift on ARM +%ifarch aarch64 %patch2 -p0 +%endif
-# Template issue with clang 7.0 -%patch3 -p0
%build export VERBOSE=1 @@ -150,19 +147,23 @@ install -m 0755 %{_builddir}/usr/bin/repl_swift %{buildroot}%{_libexecdir}/swift # make up the Swift toolchain. Since we use subdirectories for the # libraries, no actual .so files are dumped in /usr/lib. mkdir -p %{buildroot}/usr/lib/swift-lldb -cp %{_builddir}/usr/lib/liblldb.so.6.0.0 %{buildroot}/usr/lib/swift-lldb -ln -fs liblldb.so.6.0.0 %{buildroot}/usr/lib/swift-lldb/liblldb.so.6 -ln -fs liblldb.so.6 %{buildroot}/usr/lib/swift-lldb/liblldb.so +cp %{_builddir}/usr/lib/liblldb.so.7.0.0 %{buildroot}/usr/lib/swift-lldb +ln -fs liblldb.so.7.0.0 %{buildroot}/usr/lib/swift-lldb/liblldb.so.7 +ln -fs liblldb.so.7 %{buildroot}/usr/lib/swift-lldb/liblldb.so cp %{_builddir}/usr/lib/libsourcekitdInProc.so %{buildroot}/usr/lib/swift-lldb cp %{_builddir}/usr/lib/libswiftDemangle.so %{buildroot}/usr/lib/swift-lldb -cp %{_builddir}/usr/lib/liblldbIntelFeatures.so.6.0.0 %{buildroot}/usr/lib/swift-lldb -ln -fs liblldbIntelFeatures.so.6.0.0 %{buildroot}/usr/lib/swift-lldb/liblldbIntelFeatures.so.6 -ln -fs liblldbIntelFeatures.so.6 %{buildroot}/usr/lib/swift-lldb/liblldbIntelFeatures.so +cp %{_builddir}/usr/lib/liblldbIntelFeatures.so.7 %{buildroot}/usr/lib/swift-lldb +ln -fs liblldbIntelFeatures.so.7 %{buildroot}/usr/lib/swift-lldb/liblldbIntelFeatures.so ln -fs %{_bindir}/swift %{buildroot}%{_libexecdir}/swift-lldb/swift
mkdir -p %{buildroot}/usr/lib/swift cp -r %{_builddir}/usr/lib/swift/* %{buildroot}/usr/lib/swift ln -fs /usr/lib/swift %{buildroot}/usr/lib/swift-lldb/swift +chmod 0755 %{buildroot}/usr/lib/swift/linux/libswiftDispatch.so +chmod 0755 %{buildroot}/usr/lib/swift/linux/libFoundation.so +chmod 0755 %{buildroot}/usr/lib/swift/linux/libXCTest.so +chmod 0755 %{buildroot}/usr/lib/swift/pm/llbuild/libllbuild.so +chmod 0755 %{buildroot}/usr/lib/swift/pm/llbuild/libllbuildSwift.so
mkdir -p %{buildroot}/usr/lib/swift_static cp -r %{_builddir}/usr/lib/swift_static/* %{buildroot}/usr/lib/swift_static @@ -189,15 +190,18 @@ install -m 0644 %{_builddir}/usr/share/man/man1/swift.1 %{buildroot}%{_mandir}/m /usr/lib/swift/os/ /usr/lib/swift/pm/ /usr/lib/swift/shims/ +%ifarch aarch64 +/usr/lib/swift/linux/aarch64/ +%else /usr/lib/swift/linux/x86_64/ +%endif /usr/lib/swift_static/ %{_libexecdir}/swift-lldb/ %{_sysconfdir}/ld.so.conf.d/swift-lang.conf
%files runtime -/usr/lib/swift/ -/usr/lib/swift/linux/ +/usr/lib/swift/linux/* %{_sysconfdir}/ld.so.conf.d/swift-lang-runtime.conf
@@ -206,9 +210,53 @@ install -m 0644 %{_builddir}/usr/share/man/man1/swift.1 %{buildroot}%{_mandir}/m
%changelog -* Wed Dec 05 2018 Egor Zhdan egor.zhdan@gmail.com +* Sat Dec 15 2018 Ron Olson tachoknight@gmail.com 5.0-0.31.20181212gite231ae1 +- First version that supports aarch64 +* Thu Dec 13 2018 Ron Olson tachoknight@gmail.com 5.0-0.31.20181212gite231ae1 +- Updated to swift-5.0-DEVELOPMENT-SNAPSHOT-2018-12-12-a +* Thu Dec 13 2018 Ron Olson tachoknight@gmail.com 5.0-0.30.20181212gite231ae1 +- Updated to swift-5.0-DEVELOPMENT-SNAPSHOT-2018-12-12-a +* Thu Dec 13 2018 Ron Olson tachoknight@gmail.com 5.0-0.29.20181212gite231ae1 +- Updated to swift-5.0-DEVELOPMENT-SNAPSHOT-2018-12-12-a +* Tue Dec 11 2018 Ron Olson tachoknight@gmail.com 5.0-0.28.20181210gitf83ec0c +- Updated to swift-5.0-DEVELOPMENT-SNAPSHOT-2018-12-10-a +* Mon Dec 10 2018 Ron Olson tachoknight@gmail.com 5.0-0.26.20181209gitc14e1a3 +- Updated to swift-5.0-DEVELOPMENT-SNAPSHOT-2018-12-09-a +* Sun Dec 09 2018 Ron Olson tachoknight@gmail.com 5.0-0.25.20181208git3945260 +- Updated to swift-5.0-DEVELOPMENT-SNAPSHOT-2018-12-08-a +* Sat Dec 08 2018 Ron Olson tachoknight@gmail.com 5.0-0.24.20181207git0a73e15 +- Updated to swift-5.0-DEVELOPMENT-SNAPSHOT-2018-12-07-a +* Fri Dec 07 2018 Ron Olson tachoknight@gmail.com 5.0-0.23.20181206git565e767 +- Updated to swift-5.0-DEVELOPMENT-SNAPSHOT-2018-12-06-a +* Wed Dec 05 2018 Ron Olson tachoknight@gmail.com 5.0-0.22.20181204gitb74d54a +- Updated to swift-5.0-DEVELOPMENT-SNAPSHOT-2018-12-04-a +* Wed Dec 05 2018 Egor Zhdan egor.zhdan@gmail.com - Include dependencies to ncurser which are required by SourceKit and included in Apple installation guide +* Wed Dec 05 2018 Ron Olson tachoknight@gmail.com 5.0-0.21.20181204gitfacaad1 +- Updated to swift-DEVELOPMENT-SNAPSHOT-2018-12-04-a +* Tue Dec 04 2018 Ron Olson tachoknight@gmail.com 5.0-0.20.20181203git3376f9f +- Updated to swift-DEVELOPMENT-SNAPSHOT-2018-12-03-a +* Mon Dec 03 2018 Ron Olson tachoknight@gmail.com 5.0-0.19.20181202gita8a8bdc +- Updated to swift-DEVELOPMENT-SNAPSHOT-2018-12-02-a +* Sun Dec 02 2018 Ron Olson tachoknight@gmail.com 5.0-0.18.20181201gitb01ee72 +- Updated to swift-DEVELOPMENT-SNAPSHOT-2018-12-01-a +* Sat Dec 01 2018 Ron Olson tachoknight@gmail.com 5.0-0.17.20181130gitd8f12cb +- Updated to swift-DEVELOPMENT-SNAPSHOT-2018-11-30-a +* Thu Nov 29 2018 Ron Olson tachoknight@gmail.com 5.0-0.16.20181128git806cf57 +- Updated to swift-DEVELOPMENT-SNAPSHOT-2018-11-28-a +* Tue Nov 27 2018 Ron Olson tachoknight@gmail.com 5.0-0.15.20181126gita820992 +- Updated to swift-DEVELOPMENT-SNAPSHOT-2018-11-26-a +* Mon Nov 26 2018 Ron Olson tachoknight@gmail.com 5.0-0.14.20181125gita820992 +- Updated to swift-DEVELOPMENT-SNAPSHOT-2018-11-25-a +* Sat Nov 24 2018 Ron Olson tachoknight@gmail.com 5.0-0.13.20181123gita820992 +- Updated to swift-DEVELOPMENT-SNAPSHOT-2018-11-23-a +* Fri Nov 23 2018 Ron Olson tachoknight@gmail.com 5.0-0.12.20181122gitfb52a2e +- Updated to swift-DEVELOPMENT-SNAPSHOT-2018-11-22-a +* Mon Nov 19 2018 Ron Olson tachoknight@gmail.com 5.0-0.11.20181116git201dcba +- Updated to swift-DEVELOPMENT-SNAPSHOT-2018-11-16-a +* Fri Nov 16 2018 Ron Olson tachoknight@gmail.com 5.0-0.10.20181115git739169d +- Updated to swift-DEVELOPMENT-SNAPSHOT-2018-11-15-a * Wed Oct 31 2018 Ron Olson tachoknight@gmail.com 4.2.1-0.101.20181030git02a6ca9 - Updated to swift-4.2.1-RELEASE * Tue Oct 30 2018 Ron Olson tachoknight@gmail.com 4.2-0.100.20181029gitf4134eb
arch-excludes@lists.fedoraproject.org