Skip to content

Commit 0a784e4

Browse files
Merge pull request #2410 from swiftwasm/katei/min-wasi-sdk-deps
Minimize wasi-sdk dependency
2 parents 0b79254 + 633fa25 commit 0a784e4

File tree

10 files changed

+30
-30
lines changed

10 files changed

+30
-30
lines changed

cmake/modules/SwiftConfigureSDK.cmake

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -402,10 +402,10 @@ macro(configure_sdk_unix name architectures)
402402
if(NOT arch STREQUAL wasm32)
403403
message(FATAL_ERROR "unsupported arch for WebAssembly: ${arch}")
404404
endif()
405-
set(SWIFT_SDK_WASI_ARCH_wasm32_PATH "${SWIFT_WASI_SDK_PATH}/share/wasi-sysroot")
405+
set(SWIFT_SDK_WASI_ARCH_wasm32_PATH "${SWIFT_WASI_SYSROOT_PATH}")
406406
set(SWIFT_SDK_WASI_ARCH_wasm32_TRIPLE "wasm32-unknown-wasi")
407-
set(SWIFT_SDK_WASI_ARCH_wasm32_LIBC_INCLUDE_DIRECTORY "${SWIFT_WASI_SDK_PATH}/share/wasi-sysroot/include")
408-
set(SWIFT_SDK_WASI_ARCH_wasm32_LIBC_ARCHITECTURE_INCLUDE_DIRECTORY "${SWIFT_WASI_SDK_PATH}/share/wasi-sysroot/include")
407+
set(SWIFT_SDK_WASI_ARCH_wasm32_LIBC_INCLUDE_DIRECTORY "${SWIFT_WASI_SYSROOT_PATH}/include")
408+
set(SWIFT_SDK_WASI_ARCH_wasm32_LIBC_ARCHITECTURE_INCLUDE_DIRECTORY "${SWIFT_WASI_SYSROOT_PATH}/include")
409409
else()
410410
message(FATAL_ERROR "unknown Unix OS: ${prefix}")
411411
endif()

test/lit.site.cfg.in

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,6 @@ config.darwin_xcrun_toolchain = "@SWIFT_DARWIN_XCRUN_TOOLCHAIN@"
4444
config.android_ndk_path = "@SWIFT_ANDROID_NDK_PATH@"
4545
config.android_ndk_gcc_version = "@SWIFT_ANDROID_NDK_GCC_VERSION@"
4646

47-
# --- WebAssembly ---
48-
config.wasi_sdk_path = "@SWIFT_WASI_SDK_PATH@"
49-
5047
# --- Windows ---
5148
msvc_runtime_flags = {
5249
'MultiThreaded': 'MT',

utils/build-script

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -251,9 +251,9 @@ def validate_arguments(toolchain, args):
251251
"--android-icu-i18n-include, and --android-icu-data "
252252
"must be specified")
253253
if args.wasm:
254-
if args.wasi_sdk is None:
254+
if args.wasi_sysroot is None:
255255
fatal_error(
256-
"when building for WebAssembly, --wasi-sdk must be specified")
256+
"when building for WebAssembly, --wasi-sysroot must be specified")
257257

258258
targets_needing_toolchain = [
259259
'build_indexstoredb',
@@ -697,7 +697,7 @@ class BuildScriptInvocation(object):
697697

698698
if args.wasm:
699699
impl_args += [
700-
"--wasi-sdk", args.wasi_sdk,
700+
"--wasi-sysroot", args.wasi_sysroot,
701701
]
702702

703703
if platform.system() == 'Darwin':

utils/build-script-impl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ KNOWN_SETTINGS=(
119119
darwin-xcrun-toolchain "default" "the name of the toolchain to use on Darwin"
120120

121121
## WebAssembly/WASI Options
122-
wasi-sdk "" "An absolute path to the WASI SDK that will be used as a libc implementation for Wasm builds"
122+
wasi-sysroot "" "An absolute path to the wasi-sysroot that will be used as a libc implementation for Wasm builds"
123123

124124
## Build Types for Components
125125
swift-stdlib-build-type "Debug" "the CMake build variant for Swift"
@@ -1786,7 +1786,7 @@ for host in "${ALL_HOSTS[@]}"; do
17861786
if [[ ! "${SKIP_BUILD_WASM}" ]]; then
17871787
cmake_options=(
17881788
"${cmake_options[@]}"
1789-
-DSWIFT_WASI_SDK_PATH:STRING="${WASI_SDK}"
1789+
-DSWIFT_WASI_SYSROOT_PATH:STRING="${WASI_SYSROOT}"
17901790
)
17911791
fi
17921792

utils/build_swift/build_swift/driver_arguments.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1130,8 +1130,8 @@ def create_argument_parser():
11301130
# -------------------------------------------------------------------------
11311131
in_group('Build settings for WebAssembly')
11321132

1133-
option('--wasi-sdk', store_path,
1134-
help='An absolute path to WASI SDK that will be used as a libc '
1133+
option('--wasi-sysroot', store_path,
1134+
help='An absolute path to wasi-sysroot that will be used as a libc '
11351135
'implementation for Wasm builds')
11361136

11371137
# -------------------------------------------------------------------------

utils/webassembly/build-foundation.sh

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#!/bin/bash
22
set -ex
33
DESTINATION_TOOLCHAIN=$1
4+
WASI_SYSROOT_PATH=$2
45
SOURCE_PATH="$(cd "$(dirname $0)/../../.." && pwd)"
56

67
FOUNDATION_BUILD="$SOURCE_PATH/target-build/foundation-wasi-wasm32"
@@ -9,13 +10,15 @@ mkdir -p $FOUNDATION_BUILD
910
cd $FOUNDATION_BUILD
1011

1112
cmake -G Ninja \
13+
-DCMAKE_SYSROOT="$WASI_SYSROOT_PATH" \
1214
-DCMAKE_Swift_COMPILER="$DESTINATION_TOOLCHAIN/usr/bin/swiftc" \
1315
-DCMAKE_STAGING_PREFIX="$DESTINATION_TOOLCHAIN/usr" \
1416
-DCMAKE_TOOLCHAIN_FILE="$SOURCE_PATH/swift/utils/webassembly/toolchain-wasi.cmake" \
15-
-DWASI_SDK_PATH="$SOURCE_PATH/wasi-sdk" \
17+
-DLLVM_BIN="$DESTINATION_TOOLCHAIN/usr/bin" \
1618
-DICU_ROOT="$SOURCE_PATH/icu_out" \
1719
-DBUILD_SHARED_LIBS=OFF \
1820
-DCMAKE_Swift_COMPILER_FORCED=ON \
21+
-DCMAKE_ASM_FLAGS="-target wasm32-unknown-wasi" \
1922
"${SOURCE_PATH}/swift-corelibs-foundation"
2023

2124
ninja -v

utils/webassembly/build-toolchain.sh

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@ set -ex
44
SOURCE_PATH="$(cd "$(dirname "$0")/../../.." && pwd)"
55
UTILS_PATH="$(cd "$(dirname "$0")" && pwd)"
66

7-
WASI_SDK_PATH=$SOURCE_PATH/wasi-sdk
7+
WASI_SDK_PATH="$SOURCE_PATH/wasi-sdk"
8+
WASI_SYSROOT_PATH="$WASI_SDK_PATH/share/wasi-sysroot"
89

910
case $(uname -s) in
1011
Darwin)
@@ -74,7 +75,7 @@ build_target_toolchain() {
7475
-D CMAKE_C_COMPILER_LAUNCHER="$(which sccache)" \
7576
-D CMAKE_CXX_COMPILER_LAUNCHER="$(which sccache)" \
7677
-D CMAKE_INSTALL_PREFIX="$DIST_TOOLCHAIN_SDK/usr/lib/clang/10.0.0/" \
77-
-D COMPILER_RT_SWIFT_WASI_SDK_PATH="$WASI_SDK_PATH" \
78+
-D CMAKE_SYSROOT="${WASI_SYSROOT_PATH}" \
7879
-G Ninja \
7980
-S "$SOURCE_PATH/llvm-project/compiler-rt"
8081

@@ -93,7 +94,7 @@ build_target_toolchain() {
9394
-D CMAKE_INSTALL_PREFIX="$DIST_TOOLCHAIN_SDK/usr" \
9495
-D LLVM_DIR="$HOST_BUILD_DIR/llvm-$HOST_SUFFIX/lib/cmake/llvm/" \
9596
-D SWIFT_NATIVE_SWIFT_TOOLS_PATH="$HOST_BUILD_DIR/swift-$HOST_SUFFIX/bin" \
96-
-D SWIFT_WASI_SDK_PATH="$WASI_SDK_PATH" \
97+
-D SWIFT_WASI_SYSROOT_PATH="$WASI_SYSROOT_PATH" \
9798
-G Ninja \
9899
-S "$SOURCE_PATH/swift"
99100

@@ -110,8 +111,8 @@ build_target_toolchain() {
110111
# Remove host CoreFoundation module directory to avoid module conflict
111112
# while building Foundation
112113
rm -rf "$DIST_TOOLCHAIN_SDK/usr/lib/swift_static/CoreFoundation"
113-
"$UTILS_PATH/build-foundation.sh" "$DIST_TOOLCHAIN_SDK"
114-
"$UTILS_PATH/build-xctest.sh" "$DIST_TOOLCHAIN_SDK"
114+
"$UTILS_PATH/build-foundation.sh" "$DIST_TOOLCHAIN_SDK" "$WASI_SYSROOT_PATH"
115+
"$UTILS_PATH/build-xctest.sh" "$DIST_TOOLCHAIN_SDK" "$WASI_SYSROOT_PATH"
115116

116117
}
117118

utils/webassembly/build-xctest.sh

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#!/bin/bash
22
set -ex
33
DESTINATION_TOOLCHAIN=$1
4+
WASI_SYSROOT_PATH=$2
45
SOURCE_PATH="$(cd "$(dirname $0)/../../.." && pwd)"
56

67
BUILD_DIR="$SOURCE_PATH/target-build/xctest-wasi-wasm32"
@@ -9,10 +10,11 @@ mkdir -p $BUILD_DIR
910
cd $BUILD_DIR
1011

1112
cmake -G Ninja \
13+
-DCMAKE_SYSROOT="$WASI_SYSROOT_PATH" \
1214
-DCMAKE_Swift_COMPILER="$DESTINATION_TOOLCHAIN/usr/bin/swiftc" \
1315
-DCMAKE_STAGING_PREFIX="$DESTINATION_TOOLCHAIN/usr" \
1416
-DCMAKE_TOOLCHAIN_FILE="$SOURCE_PATH/swift/utils/webassembly/toolchain-wasi.cmake" \
15-
-DWASI_SDK_PATH="$SOURCE_PATH/wasi-sdk" \
17+
-DLLVM_BIN="$DESTINATION_TOOLCHAIN/usr/bin" \
1618
-DBUILD_SHARED_LIBS=OFF \
1719
-DCMAKE_Swift_COMPILER_FORCED=ON \
1820
-DSWIFT_FOUNDATION_PATH=$DESTINATION_TOOLCHAIN/usr/lib/swift_static/wasi/wasm32 \

utils/webassembly/compiler-rt-cache.cmake

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ set(CMAKE_C_COMPILER_TARGET wasm32-wasi CACHE STRING "" FORCE)
44
set(CMAKE_C_COMPILER_FORCED TRUE CACHE BOOL "")
55
set(CMAKE_CXX_COMPILER_FORCED TRUE CACHE BOOL "")
66
set(CMAKE_SYSTEM_NAME Wasm)
7-
set(CMAKE_SYSROOT ${COMPILER_RT_SWIFT_WASI_SDK_PATH}/share/wasi-sysroot CACHE STRING "")
87
set(CMAKE_SIZEOF_VOID_P 4 CACHE STRING "")
98
set(COMPILER_RT_BAREMETAL_BUILD ON CACHE BOOL "")
109
set(COMPILER_RT_BUILD_XRAY OFF CACHE BOOL "")

utils/webassembly/toolchain-wasi.cmake

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,13 @@ set(CMAKE_SYSTEM_VERSION 1)
33
set(CMAKE_SYSTEM_PROCESSOR wasm32)
44
set(triple wasm32-unknown-wasi)
55

6-
set(CMAKE_C_COMPILER "${WASI_SDK_PATH}/bin/clang")
7-
set(CMAKE_CXX_COMPILER "${WASI_SDK_PATH}/bin/clang++")
8-
set(CMAKE_AR "${WASI_SDK_PATH}/bin/llvm-ar" CACHE STRING "wasi-sdk build")
9-
set(CMAKE_RANLIB "${WASI_SDK_PATH}/bin/llvm-ranlib" CACHE STRING "wasi-sdk build")
10-
set(CMAKE_C_COMPILER_TARGET ${triple} CACHE STRING "wasi-sdk build")
11-
set(CMAKE_CXX_COMPILER_TARGET ${triple} CACHE STRING "wasi-sdk build")
12-
set(CMAKE_EXE_LINKER_FLAGS "-Wl,--no-threads" CACHE STRING "wasi-sdk build")
13-
14-
set(CMAKE_SYSROOT ${WASI_SDK_PATH}/share/wasi-sysroot CACHE STRING "wasi-sdk build")
6+
set(CMAKE_C_COMPILER "${LLVM_BIN}/clang")
7+
set(CMAKE_CXX_COMPILER "${LLVM_BIN}/clang++")
8+
set(CMAKE_AR "${LLVM_BIN}/llvm-ar" CACHE STRING "LLVM Archiver for wasm32")
9+
set(CMAKE_RANLIB "${LLVM_BIN}/llvm-ranlib" CACHE STRING "LLVM Ranlib for wasm32")
10+
set(CMAKE_C_COMPILER_TARGET ${triple} CACHE STRING "")
11+
set(CMAKE_CXX_COMPILER_TARGET ${triple} CACHE STRING "")
12+
set(CMAKE_EXE_LINKER_FLAGS "-Wl,--no-threads" CACHE STRING "Single thread options")
1513

1614
# Don't look in the sysroot for executables to run during the build
1715
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)

0 commit comments

Comments
 (0)