Skip to content

Add 6.2 scheme files #627

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/scripts/build-matrix.rb
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
"main": "ghcr.io/swiftwasm/swift-ci:main-ubuntu-22.04",
"release-6.0": "ghcr.io/swiftwasm/swift-ci:main-ubuntu-20.04@sha256:06faf7795ea077b64986b1c821a27b2756242ebe6d73adcdae17f4e424c17dc5",
"release-6.1": "ghcr.io/swiftwasm/swift-ci:main-ubuntu-20.04@sha256:06faf7795ea077b64986b1c821a27b2756242ebe6d73adcdae17f4e424c17dc5",
"release-6.2": "ghcr.io/swiftwasm/swift-ci:main-ubuntu-20.04@sha256:ef0e9e4ff5b457103d8a060573050d9b33c91d9f680f7d4202412a99dc52cde0",
},
"run_stdlib_test": true,
"run_full_test": false,
Expand Down
152 changes: 152 additions & 0 deletions schemes/release-6.2/build/build-target-toolchain.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,152 @@
#!/bin/bash
#
# Build the Swift standard library.

set -euo pipefail
set -x

print_help() {
echo "Usage: $0 [options]"
echo ""
echo "Options:"
echo " --help Display this help message."
echo " --llvm-bin Path to LLVM bin directory."
echo " --swift-bin Path to Swift bin directory."
}

SCHEMES_BUILD_PATH="$(cd "$(dirname "$0")" && pwd)"
SOURCE_PATH="$(cd "$(dirname "$0")/../../../.." && pwd)"
TARGET_BUILD_ROOT=$SOURCE_PATH/build/WebAssembly
WASI_SYSROOT_PATH="$TARGET_BUILD_ROOT/wasi-sysroot"
PACKAGING_DIR="$SOURCE_PATH/build/Packaging"
TARGET_TOOLCHAIN_DESTDIR=$PACKAGING_DIR/target-toolchain

build_target_toolchain() {

local LLVM_BIN_DIR="$1"
local CLANG_BIN_DIR="$2"
local SWIFT_BIN_DIR="$3"
local TRIPLE="$4"
local SHORT_TRIPLE="$5"
local CLANG_MULTIARCH_TRIPLE="$6"
local STDLIB_PRODUCT="$7"
local COMPILER_RT_OS_DIR="$8"

local HOST_SUFFIX
HOST_SUFFIX=$(find "$TARGET_BUILD_ROOT" -name "wasmstdlib-*" -exec basename {} \; | sed 's/wasmstdlib-//')

local TRIPLE_DESTDIR="$TARGET_TOOLCHAIN_DESTDIR/$TRIPLE"

env DESTDIR="$TRIPLE_DESTDIR" \
cmake --install "$TARGET_BUILD_ROOT/$STDLIB_PRODUCT-$HOST_SUFFIX" --prefix /usr

env DESTDIR="$TRIPLE_DESTDIR" \
cmake --install "$TARGET_BUILD_ROOT/wasmswiftsdk-$HOST_SUFFIX/swift-testing/$TRIPLE" --prefix /usr
env DESTDIR="$TRIPLE_DESTDIR" \
cmake --install "$TARGET_BUILD_ROOT/wasmswiftsdk-$HOST_SUFFIX/foundation/$TRIPLE" --prefix /usr
env DESTDIR="$TRIPLE_DESTDIR" \
cmake --install "$TARGET_BUILD_ROOT/wasmswiftsdk-$HOST_SUFFIX/xctest/$TRIPLE" --prefix /usr

rm -rf "$TRIPLE_DESTDIR/usr/lib/swift_static/clang/lib/$COMPILER_RT_OS_DIR"
# XXX: Is this the right way to install compiler-rt?
cp -R "$TARGET_BUILD_ROOT/wasi-sysroot/$CLANG_MULTIARCH_TRIPLE/lib/$COMPILER_RT_OS_DIR" "$TRIPLE_DESTDIR/usr/lib/swift_static/clang/lib/$COMPILER_RT_OS_DIR"

# FIXME: The following is a workaround for the issue with wrong libxml2.a path
local LIBXML2_PATH_TO_FIX="$TARGET_BUILD_ROOT/wasi-sysroot/$CLANG_MULTIARCH_TRIPLE/lib/libxml2.a"
if [[ -f "$LIBXML2_PATH_TO_FIX" ]]; then
cp "$LIBXML2_PATH_TO_FIX" "$TRIPLE_DESTDIR/usr/lib/swift_static/wasi/libxml2.a"
fi
}

main() {
local OPTIONS_LLVM_BIN=""
local OPTIONS_CLANG_BIN=""
local OPTIONS_SWIFT_BIN=""

while [[ $# -gt 0 ]]; do
case "$1" in
--llvm-bin)
OPTIONS_LLVM_BIN="$2"
shift 2
;;
--clang-bin)
OPTIONS_CLANG_BIN="$2"
shift 2
;;
--swift-bin)
OPTIONS_SWIFT_BIN="$2"
shift 2
;;
--scheme)
OPTIONS_SCHEME="$2"
shift 2
;;
--help)
print_help
exit 0
;;
*)
echo "Unknown option: $1"
print_help
exit 1
;;
esac
done

if [[ -z "$OPTIONS_LLVM_BIN" ]]; then
echo "Missing --llvm-bin option"
print_help
exit 1
fi

if [[ -z "$OPTIONS_SWIFT_BIN" ]]; then
echo "Missing --swift-bin option"
print_help
exit 1
fi

if [[ -z "$OPTIONS_CLANG_BIN" ]]; then
OPTIONS_CLANG_BIN="$OPTIONS_LLVM_BIN"
fi

# NOTE: The llvm-cmake-options is a workaround for the issue on amazonlinux2
# See https://github.com/apple/swift/commit/40c7268e8f7d402b27e3ad16a84180e07c37f92c
# NOTE: Add llvm-bin directory to PATH so that wasmstdlib.py can find FileCheck during tests
env PATH="$OPTIONS_LLVM_BIN:$OPTIONS_SWIFT_BIN:$PATH" "$SOURCE_PATH/swift/utils/build-script" \
--build-subdir=WebAssembly \
--release \
--skip-build-llvm \
--skip-build-swift \
--skip-build-cmark \
--skip-build-benchmarks \
--skip-early-swift-driver \
--build-wasm-stdlib \
--skip-test-wasm-stdlib \
--native-swift-tools-path="$OPTIONS_SWIFT_BIN" \
--native-clang-tools-path="$OPTIONS_CLANG_BIN" \
--native-llvm-tools-path="$OPTIONS_LLVM_BIN" \
--extra-cmake-options="\
-DSWIFT_STDLIB_TRACING=NO \
-DSWIFT_STDLIB_HAS_ASL=NO \
-DSWIFT_STDLIB_CONCURRENCY_TRACING=NO \
-DSWIFT_RUNTIME_CRASH_REPORTER_CLIENT=NO \
-DSWIFT_STDLIB_INSTALL_PARENT_MODULE_FOR_SHIMS=NO \
" \
--llvm-cmake-options="\
-DCROSS_TOOLCHAIN_FLAGS_LLVM_NATIVE='-DCMAKE_C_COMPILER=clang;-DCMAKE_CXX_COMPILER=clang++' \
" \
--sccache

local BUILD_TOOLS_ARGS=(
"$OPTIONS_LLVM_BIN"
"$OPTIONS_CLANG_BIN"
"$OPTIONS_SWIFT_BIN"
)

build_target_toolchain "${BUILD_TOOLS_ARGS[@]}" "wasm32-unknown-wasip1" "wasip1-wasm32" "wasm32-wasip1" "wasmstdlib" "wasip1"
build_target_toolchain "${BUILD_TOOLS_ARGS[@]}" "wasm32-unknown-wasip1-threads" "wasip1-threads-wasm32" "wasm32-wasip1-threads" "wasmthreadsstdlib" "wasip1"

rsync -av "$WASI_SYSROOT_PATH/" "$PACKAGING_DIR/wasi-sysroot/"
}

main "$@"
5 changes: 5 additions & 0 deletions schemes/release-6.2/build/run-test.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!/bin/bash

set -euxo pipefail

echo "Skipping test because we now run tests in build-script"
7 changes: 7 additions & 0 deletions schemes/release-6.2/manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"update-checkout-scheme": "release/6.2",
"base-tag": "swift-6.2-DEVELOPMENT-SNAPSHOT-2025-08-14-a",
"icu4c": [],
"libxml2": [],
"swift-org-download-channel": "swift-6.2-branch"
}
Loading