Skip to content

Commit 6058ac6

Browse files
committed
Patch and build against LTS NDK 26b instead on CI
1 parent 48c4993 commit 6058ac6

File tree

8 files changed

+554
-27
lines changed

8 files changed

+554
-27
lines changed

.github/workflows/sdks.yml

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ jobs:
8787
uses: actions/cache@v3
8888
with:
8989
path: ~/swift-${{ matrix.version }}-android-${{ matrix.arch }}-*-sdk.tar.xz
90-
key: ${{ matrix.version }}-${{ steps.version.outputs.latest }}-${{ matrix.arch }}-bump-sdk
90+
key: ${{ matrix.version }}-${{ steps.version.outputs.latest }}-${{ matrix.arch }}-sdk
9191
- name: Clone
9292
uses: actions/checkout@v3
9393
with:
@@ -106,17 +106,16 @@ jobs:
106106
SDK=`pwd`/$SDK_NAME
107107
108108
tar xf ~/$SWIFT_TAG-ubuntu22.04.tar.gz
109-
git apply swift-android.patch swift-android-ci.patch
109+
git apply swift-android.patch swift-android-ci.patch swift-android-ndk26.patch
110+
if [ ${{ matrix.version }} != 'release' ]; then
111+
git apply swift-android-arm.patch
112+
fi
110113
sed -i "s%/data/data/com.termux/files%$SDK%" $SDK/usr/lib/pkgconfig/sqlite3.pc
111114
sed -i "s%String(cString: getpass%\"fake\" //%" swiftpm/Sources/PackageRegistryTool/PackageRegistryTool+Auth.swift
112-
sed -i "s%#include <unistd%#include <signal.h>\n#include <unistd%" swift-corelibs-libdispatch/dispatch/dispatch.h
113-
sed -i "s%#include <unistd%#include <signal.h>\n#include <unistd%" llbuild/products/libllbuild/include/llbuild/buildsystem.h
114-
sed -i "s%#include <time%#include <signal.h>\n#include <time%" swift-tools-support-core/Sources/TSCclibc/include/indexstore_functions.h
115-
sed -i "s%#include <time%#include <signal.h>\n#include <time%" swift-crypto/Sources/CCryptoBoringSSL/include/CCryptoBoringSSL_asn1.h
116115
117-
./swift/utils/build-script -RA --skip-build-cmark --build-llvm=0 --android --android-ndk $ANDROID_NDK --android-arch ${{ matrix.arch }} --android-api-level $ANDROID_API_LEVEL --build-swift-tools=0 --native-swift-tools-path=`pwd`/$SWIFT_TAG-ubuntu22.04/usr/bin --native-clang-tools-path=`pwd`/$SWIFT_TAG-ubuntu22.04/usr/bin --cross-compile-hosts=android-${{ matrix.arch }} --cross-compile-deps-path=$SDK --skip-local-build --build-swift-static-stdlib --xctest --skip-early-swift-driver --install-swift --install-libdispatch --install-foundation --install-xctest --install-destdir=$SDK --swift-install-components='clang-resource-dir-symlink;license;stdlib;sdk-overlay' --cross-compile-append-host-target-to-destdir=False -b -p --install-llbuild --sourcekit-lsp --skip-early-swiftsyntax
116+
./swift/utils/build-script -RA --skip-build-cmark --build-llvm=0 --android --android-ndk $ANDROID_NDK_LATEST_HOME --android-arch ${{ matrix.arch }} --android-api-level $ANDROID_API_LEVEL --build-swift-tools=0 --native-swift-tools-path=`pwd`/$SWIFT_TAG-ubuntu22.04/usr/bin --native-clang-tools-path=`pwd`/$SWIFT_TAG-ubuntu22.04/usr/bin --cross-compile-hosts=android-${{ matrix.arch }} --cross-compile-deps-path=$SDK --skip-local-build --build-swift-static-stdlib --xctest --skip-early-swift-driver --install-swift --install-libdispatch --install-foundation --install-xctest --install-destdir=$SDK --swift-install-components='clang-resource-dir-symlink;license;stdlib;sdk-overlay' --cross-compile-append-host-target-to-destdir=False -b -p --install-llbuild --sourcekit-lsp --skip-early-swiftsyntax
118117
119-
cp $ANDROID_NDK/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/$(echo ${{ matrix.arch }} | sed "s/v7//")-linux-android*/libc++_shared.so $SDK/usr/lib
118+
cp $ANDROID_NDK_LATEST_HOME/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/$(echo ${{ matrix.arch }} | sed "s/v7//")-linux-android*/libc++_shared.so $SDK/usr/lib
120119
patchelf --set-rpath \$ORIGIN $SDK/usr/lib/swift/android/libdispatch.so
121120
patchelf --set-rpath \$ORIGIN/../..:\$ORIGIN $SDK/usr/lib/swift/android/lib[FXs]*.so
122121
@@ -149,7 +148,6 @@ jobs:
149148
- name: Build Swift crypto package
150149
run: |
151150
cd swift-crypto
152-
sed -i "s%#include <time%#include <signal.h>\n#include <time%" Sources/CCryptoBoringSSL/include/CCryptoBoringSSL_asn1.h
153151
sed -i "s%\\\\(testsDirectory)/.*Vectors%/data/local/tmp/pack/crypto-vectors%" Tests/CryptoTests/Utils/RFCVector.swift Tests/CryptoTests/Utils/Wycheproof.swift Tests/_CryptoExtrasTests/Utils/Wycheproof.swift
154152
../sdk-config/${{ steps.version.outputs.tag }}-ubuntu22.04/usr/bin/swift build --build-tests --destination ../sdk-config/swift-${{ matrix.version }}-*-sdk/usr/swiftpm-android-${{ matrix.arch }}.json -Xlinker -rpath -Xlinker \$ORIGIN/lib/swift/android
155153
- name: Get Swift NIO package
@@ -160,7 +158,7 @@ jobs:
160158
- name: Build Swift NIO package
161159
run: |
162160
cd swift-nio
163-
git apply ../sdk-config/swift-nio-disable-ecn-tests.patch
161+
git apply ../sdk-config/swift-nio-disable-ecn-tests.patch ../sdk-config/swift-nio-ndk26.patch
164162
../sdk-config/${{ steps.version.outputs.tag }}-ubuntu22.04/usr/bin/swift build --build-tests --destination ../sdk-config/swift-${{ matrix.version }}-*-sdk/usr/swiftpm-android-${{ matrix.arch }}.json -Xlinker -rpath -Xlinker \$ORIGIN/lib/swift/android
165163
- name: Get Swift Numerics package
166164
uses: actions/checkout@v3
@@ -180,6 +178,7 @@ jobs:
180178
run: |
181179
cd ss
182180
sed -i "s%/tmp%/data/local/tmp%" Tests/SystemTests/FileOperationsTest.swift
181+
git apply ../sdk-config/swift-system-ndk26.patch
183182
../sdk-config/${{ steps.version.outputs.tag }}-ubuntu22.04/usr/bin/swift build --build-tests --enable-test-discovery --destination ../sdk-config/swift-${{ matrix.version }}-*-sdk/usr/swiftpm-android-${{ matrix.arch }}.json -Xlinker -rpath -Xlinker \$ORIGIN/lib/swift/android
184183
- name: Get Swift Collections package
185184
uses: actions/checkout@v3
@@ -205,6 +204,7 @@ jobs:
205204
run: |
206205
cd sns
207206
sed -i "s%url: .*swift-\(\w\+\)\.git.*$%path: \"../swift-\1\"),%g" Package.swift
207+
git apply ../sdk-config/swift-nio-ssh-ndk26.patch
208208
../sdk-config/${{ steps.version.outputs.tag }}-ubuntu22.04/usr/bin/swift build --build-tests --destination ../sdk-config/swift-${{ matrix.version }}-*-sdk/usr/swiftpm-android-${{ matrix.arch }}.json -Xlinker -rpath -Xlinker \$ORIGIN/lib/swift/android
209209
- name: Get Swift NIO SSL package
210210
uses: actions/checkout@v3
@@ -214,7 +214,7 @@ jobs:
214214
- name: Build Swift NIO SSL package
215215
run: |
216216
cd snl
217-
sed -i "s%#include <time%#include <signal.h>\n#include <time%" Sources/CNIOBoringSSL/include/CNIOBoringSSL_asn1.h
217+
git apply ../sdk-config/swift-nio-ssl-ndk26.patch
218218
SWIFTCI_USE_LOCAL_DEPS=1 ../sdk-config/${{ steps.version.outputs.tag }}-ubuntu22.04/usr/bin/swift build --build-tests --destination ../sdk-config/swift-${{ matrix.version }}-*-sdk/usr/swiftpm-android-${{ matrix.arch }}.json -Xlinker -rpath -Xlinker \$ORIGIN/lib/swift/android
219219
- name: Get Yams package
220220
uses: actions/checkout@v3

swift-android-arm.patch

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
diff --git a/swift/stdlib/public/runtime/CrashHandlerLinux.cpp b/swift/stdlib/public/runtime/CrashHandlerLinux.cpp
2+
index ff44dbe7541..2f386278975 100644
3+
--- a/swift/stdlib/public/runtime/CrashHandlerLinux.cpp
4+
+++ b/swift/stdlib/public/runtime/CrashHandlerLinux.cpp
5+
@@ -243,7 +243,11 @@ handle_fatal_signal(int signum,
6+
#elif defined(__arm64__) || defined(__aarch64__)
7+
pc = (void *)(ctx->uc_mcontext.pc);
8+
#elif defined(__arm__)
9+
+#if defined(__ANDROID__)
10+
+ pc = (void *)(ctx->uc_mcontext.arm_pc);
11+
+#else
12+
pc = (void *)(ctx->uc_mcontext.gprs[15]);
13+
+#endif
14+
#endif
15+
16+
_swift_displayCrashMessage(signum, pc);

0 commit comments

Comments
 (0)