From 311591ddc6fe1b014f3d3527d1ff577b08000339 Mon Sep 17 00:00:00 2001 From: Alastair Houghton Date: Wed, 26 Feb 2025 13:43:31 +0000 Subject: [PATCH 1/3] [Static SDK for Linux] Add a sanity check. Build a simple Hello World program after building the SDK, to check that the SDK actually works. --- swift-ci/sdks/static-linux/build | 1 + swift-ci/sdks/static-linux/scripts/build.sh | 24 +++++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/swift-ci/sdks/static-linux/build b/swift-ci/sdks/static-linux/build index 6e984960..2d00e7e8 100755 --- a/swift-ci/sdks/static-linux/build +++ b/swift-ci/sdks/static-linux/build @@ -43,5 +43,6 @@ mkdir -p products $DOCKER run -it --rm \ -v ./source:/source \ -v ./products:/products \ + -m 10G \ static-swift-linux \ /scripts/build.sh --source-dir /source --products-dir /products diff --git a/swift-ci/sdks/static-linux/scripts/build.sh b/swift-ci/sdks/static-linux/scripts/build.sh index b7da4346..dafcdc2e 100755 --- a/swift-ci/sdks/static-linux/scripts/build.sh +++ b/swift-ci/sdks/static-linux/scripts/build.sh @@ -926,3 +926,27 @@ quiet_pushd "${build_dir}" mkdir -p "${products_dir}" tar cvzf "${products_dir}/${bundle}.tar.gz" "${bundle}" quiet_popd + +header "Install SDK" +swift sdk install "${products_dir}/${bundle}.tar.gz" + +header "Build Hello World" +quite_pushd "${build_dir}" +mkdir -p hello-world +cd hello-world +swift package init --type executable +for arch in $archs; do + swift build --swift-sdk ${arch}-swift-linux-musl +done +quiet_popd + +header "Run Hello World" +quiet_pushd "${build_dir}/hello-world" +native_arch=$(uname -p) +native_binary=.build/${native_arch}-swift-linux-musl/debug/hello-world +if [[ -x "${native_binary}" ]]; then + "${native_binary}" +else + echo "No binary for ${native_arch}" +fi +quiet_popd From 527afde0a328b4e3ed5027c3a158b8b44fd3182c Mon Sep 17 00:00:00 2001 From: Alastair Houghton Date: Wed, 26 Feb 2025 13:47:34 +0000 Subject: [PATCH 2/3] [Static SDK for Linux] Tweak at-desk build script slightly. Add support for `i386` as the output of `arch`. --- swift-ci/sdks/static-linux/build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swift-ci/sdks/static-linux/build b/swift-ci/sdks/static-linux/build index 2d00e7e8..2d3509b7 100755 --- a/swift-ci/sdks/static-linux/build +++ b/swift-ci/sdks/static-linux/build @@ -22,7 +22,7 @@ case $(arch) in arm64|aarch64) OS_ARCH_SUFFIX=-aarch64 ;; - amd64|x86_64) + i386|amd64|x86_64) OS_ARCH_SUFFIX= ;; *) From 0c645ca3e09b613223ffd97e8172134d02fcd76f Mon Sep 17 00:00:00 2001 From: Alastair Houghton Date: Mon, 3 Mar 2025 19:40:06 +0000 Subject: [PATCH 3/3] [Static SDK for Linux] Fix typo. This now successfully builds and runs a Hello World program as part of the Static SDK build. --- swift-ci/sdks/static-linux/build | 2 +- swift-ci/sdks/static-linux/scripts/build.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/swift-ci/sdks/static-linux/build b/swift-ci/sdks/static-linux/build index 2d3509b7..ed23bc2c 100755 --- a/swift-ci/sdks/static-linux/build +++ b/swift-ci/sdks/static-linux/build @@ -32,7 +32,7 @@ case $(arch) in esac # Build the Docker image -$DOCKER build --build-arg OS_ARCH_SUFFIX=$OS_ARCH_SUFFIX -t static-swift-linux . +$DOCKER build $DOCKER_EXTRA_ARGS --build-arg OS_ARCH_SUFFIX=$OS_ARCH_SUFFIX -t static-swift-linux . # Check-out the sources scripts/fetch-source.sh --clone-with-ssh --source-dir source diff --git a/swift-ci/sdks/static-linux/scripts/build.sh b/swift-ci/sdks/static-linux/scripts/build.sh index dafcdc2e..002fd226 100755 --- a/swift-ci/sdks/static-linux/scripts/build.sh +++ b/swift-ci/sdks/static-linux/scripts/build.sh @@ -931,7 +931,7 @@ header "Install SDK" swift sdk install "${products_dir}/${bundle}.tar.gz" header "Build Hello World" -quite_pushd "${build_dir}" +quiet_pushd "${build_dir}" mkdir -p hello-world cd hello-world swift package init --type executable