diff --git a/swift-ci/sdks/android/build-docker b/swift-ci/sdks/android/build-docker index 3b88952c..bf1cffc8 100755 --- a/swift-ci/sdks/android/build-docker +++ b/swift-ci/sdks/android/build-docker @@ -49,6 +49,18 @@ perl -pi -g -we "s#(call rm ... \".\{LIBDISPATCH_BUILD_DIR\}\"\n(\s+)fi\n)#\1\2i # disable backtrace() for Android (needs either API33+ or libandroid-execinfo, or to manually add in backtrace backport) perl -pi -e 's;os\(Android\);os\(AndroidDISABLED\);g' ${WORKDIR}/source/swift-project/swift-testing/Sources/Testing/SourceAttribution/Backtrace.swift +# Push trunk back to build against Android API 24 with NDK 28c +if [[ -n "${SWIFT_VERSION}" && ($SWIFT_VERSION == scheme:main || $SWIFT_VERSION == tag:swift-DEV*) ]]; then + ANDROID_NDK_VERSION=android-ndk-r28c + ANDROID_API=24 + + rm ${WORKDIR}/source/swift-project/swift/test/Interop/Cxx/class/invalid-members/stdlib-containers-of-incomplete.swift + rm ${WORKDIR}/source/swift-project/swift/test/Interop/SwiftToCxx/stdlib/stdlib-in-cxx-no-diagnostics-generated-header.cpp + rm ${WORKDIR}/source/swift-project/swift/test/Reflection/typeref_decoding_packs.swift + rm ${WORKDIR}/source/swift-project/swift/test/Reflection/typeref_lowering.swift + rm ${WORKDIR}/source/swift-project/swift/test/Reflection/typeref_lowering_packs.swift +fi + mkdir -p ${WORKDIR}/products chmod ugo+rwx ${WORKDIR}/products diff --git a/swift-ci/sdks/android/build-local b/swift-ci/sdks/android/build-local index b5f078c5..1f51d1a0 100755 --- a/swift-ci/sdks/android/build-local +++ b/swift-ci/sdks/android/build-local @@ -33,6 +33,12 @@ fi mkdir -p ${WORKDIR} WORKDIR=$(realpath ${WORKDIR}) +# Push trunk back to build against Android API 24 with NDK 28c +if [[ -n "${SWIFT_VERSION}" && ($SWIFT_VERSION == scheme:main || $SWIFT_VERSION == tag:swift-DEV*) ]]; then + ANDROID_NDK_VERSION=android-ndk-r28c + ANDROID_API=24 +fi + HOST_OS=ubuntu$(lsb_release -sr) source ./scripts/toolchain-vars.sh @@ -71,6 +77,15 @@ perl -pi -g -we "s#(call rm ... \".\{LIBDISPATCH_BUILD_DIR\}\"\n(\s+)fi\n)#\1\2i # disable backtrace() for Android (needs either API33+ or libandroid-execinfo, or to manually add in backtrace backport) perl -pi -e 's;os\(Android\);os\(AndroidDISABLED\);g' ${WORKDIR}/source/swift-project/swift-testing/Sources/Testing/SourceAttribution/Backtrace.swift +# Disable failing trunk tests when building against NDK 28c +if [[ -n "${SWIFT_VERSION}" && ($SWIFT_VERSION == scheme:main || $SWIFT_VERSION == tag:swift-DEV*) ]]; then + rm ${WORKDIR}/source/swift-project/swift/test/Interop/Cxx/class/invalid-members/stdlib-containers-of-incomplete.swift + rm ${WORKDIR}/source/swift-project/swift/test/Interop/SwiftToCxx/stdlib/stdlib-in-cxx-no-diagnostics-generated-header.cpp + rm ${WORKDIR}/source/swift-project/swift/test/Reflection/typeref_decoding_packs.swift + rm ${WORKDIR}/source/swift-project/swift/test/Reflection/typeref_lowering.swift + rm ${WORKDIR}/source/swift-project/swift/test/Reflection/typeref_lowering_packs.swift +fi + mkdir -p ${WORKDIR}/products ./scripts/build.sh \ diff --git a/swift-ci/sdks/android/scripts/build.sh b/swift-ci/sdks/android/scripts/build.sh index b36f08ba..af6d7e1a 100755 --- a/swift-ci/sdks/android/scripts/build.sh +++ b/swift-ci/sdks/android/scripts/build.sh @@ -351,6 +351,7 @@ for arch in $archs; do -DLIBXML2_WITH_ICU=NO \ -DLIBXML2_WITH_ICONV=NO \ -DLIBXML2_WITH_LZMA=NO \ + -DLIBXML2_WITH_TESTS=OFF \ -DBUILD_SHARED_LIBS=OFF \ -DBUILD_STATIC_LIBS=ON @@ -486,6 +487,7 @@ for arch in $archs; do --host-test \ --skip-test-linux \ --skip-test-xctest --skip-test-foundation \ + --skip-clean-libdispatch --skip-clean-foundation --skip-clean-xctest \ --build-swift-static-stdlib \ --swift-install-components='compiler;clang-resource-dir-symlink;license;stdlib;sdk-overlay' \ --install-swift \ @@ -500,10 +502,12 @@ for arch in $archs; do --cross-compile-append-host-target-to-destdir=False # --extra-cmake-options='-DCMAKE_EXTRA_LINK_FLAGS="-Wl,-z,max-page-size=16384"' # need to remove the arch-specific portion of the Swift resource dir in - # the build directory, through this symlink that we create in the NDK to + # the build directories, through this symlink that we create in the NDK to # the build directory, or else we get errors like: - # error: could not find module '_Builtin_float' for target 'x86_64-unknown-linux-android'; found: aarch64-unknown-linux-android, at: /home/runner/work/_temp/swift-android-sdk/ndk/android-ndk-r27c/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/swift/android/_Builtin_float.swiftmodule + # error: could not find module '_Builtin_float' for target 'x86_64-unknown-linux-android'; found: aarch64-unknown-linux-android, at: /home/runner/work/_temp/swift-android-sdk/ndk/android-ndk-r28c/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/swift/android/_Builtin_float.swiftmodule rm -rf $ndk_installation/sysroot/usr/lib/swift/android + rm -rf $ndk_installation/sysroot/usr/lib/swift/../swift_static/android + rm -rf $ndk_installation/sysroot/usr/lib/swift/../../../swift-linux-x86_64/lib/swift{,_static}/android quiet_popd groupend done