Skip to content

Commit 8c825ec

Browse files
Build libclang_rt.builtin for wasip1-threads target separately
`compiler-rt/lib/builtins/atomic.c` has to be built with atomics feature enabled for wasip1-threads target. We had been sharing the same libclang_rt.builtins.a for both wasi and wasip1-threads targets, but enabling atomics feature breaks non-threaded wasi target due to unnecessary feature dependencies. swiftlang/swift#73077 will build libclang_rt.builtins.a separately and install wasi-sysroot under different directories for each target.
1 parent c6a920f commit 8c825ec

File tree

1 file changed

+10
-8
lines changed

1 file changed

+10
-8
lines changed

schemes/main/build/build-target-toolchain.sh

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,9 @@ build_target_toolchain() {
2727
local CLANG_BIN_DIR="$2"
2828
local SWIFT_BIN_DIR="$3"
2929
local TRIPLE="$4"
30-
local STDLIB_PRODUCT="$5"
31-
local COMPILER_RT_OS_DIR="$6"
30+
local SHORT_TRIPLE="$5"
31+
local STDLIB_PRODUCT="$6"
32+
local COMPILER_RT_OS_DIR="$7"
3233

3334
local HOST_SUFFIX
3435
HOST_SUFFIX=$(find "$TARGET_BUILD_ROOT" -name "wasmstdlib-*" -exec basename {} \; | sed 's/wasmstdlib-//')
@@ -40,7 +41,7 @@ build_target_toolchain() {
4041

4142
rm -rf "$TRIPLE_DESTDIR/usr/lib/swift_static/clang/lib/$COMPILER_RT_OS_DIR"
4243
# XXX: Is this the right way to install compiler-rt?
43-
cp -R "$TARGET_BUILD_ROOT/wasi-sysroot/lib/$COMPILER_RT_OS_DIR" "$TRIPLE_DESTDIR/usr/lib/swift_static/clang/lib/$COMPILER_RT_OS_DIR"
44+
cp -R "$TARGET_BUILD_ROOT/wasi-sysroot/$SHORT_TRIPLE/lib/$COMPILER_RT_OS_DIR" "$TRIPLE_DESTDIR/usr/lib/swift_static/clang/lib/$COMPILER_RT_OS_DIR"
4445

4546
# FIXME: Clang resource directory installation is not the best way currently.
4647
# We currently have two copies of compiler headers copied from the base toolchain in
@@ -61,14 +62,15 @@ build_target_corelibs() {
6162
local CLANG_BIN_DIR="$2"
6263
local SWIFT_BIN_DIR="$3"
6364
local TRIPLE="$4"
65+
local SHORT_TRIPLE="$5"
6466

6567
local TRIPLE_DESTDIR="$TARGET_TOOLCHAIN_DESTDIR/$TRIPLE"
6668
local CORELIBS_ARGS=(
6769
"$TRIPLE_DESTDIR"
6870
"$LLVM_BIN_DIR"
6971
"$CLANG_BIN_DIR"
7072
"$SWIFT_BIN_DIR"
71-
"$WASI_SYSROOT_PATH"
73+
"$WASI_SYSROOT_PATH/$SHORT_TRIPLE"
7274
)
7375
"$SCHEMES_BUILD_PATH/build-foundation.sh" "${CORELIBS_ARGS[@]}" "$TRIPLE"
7476
"$SCHEMES_BUILD_PATH/build-xctest.sh" "${CORELIBS_ARGS[@]}" "$TRIPLE"
@@ -160,13 +162,13 @@ main() {
160162
"$OPTIONS_SWIFT_BIN"
161163
)
162164

163-
build_target_toolchain "${BUILD_TOOLS_ARGS[@]}" "wasm32-unknown-wasi" "wasmstdlib" "wasi"
164-
build_target_toolchain "${BUILD_TOOLS_ARGS[@]}" "wasm32-unknown-wasip1-threads" "wasmthreadsstdlib" "wasip1"
165+
build_target_toolchain "${BUILD_TOOLS_ARGS[@]}" "wasm32-unknown-wasi" "wasm32-wasi" "wasmstdlib" "wasi"
166+
build_target_toolchain "${BUILD_TOOLS_ARGS[@]}" "wasm32-unknown-wasip1-threads" "wasm32-wasip1-threads" "wasmthreadsstdlib" "wasip1"
165167

166168
rsync -av "$WASI_SYSROOT_PATH/" "$PACKAGING_DIR/wasi-sysroot/"
167169

168-
build_target_corelibs "${BUILD_TOOLS_ARGS[@]}" "wasm32-unknown-wasi"
169-
build_target_corelibs "${BUILD_TOOLS_ARGS[@]}" "wasm32-unknown-wasip1-threads"
170+
build_target_corelibs "${BUILD_TOOLS_ARGS[@]}" "wasm32-unknown-wasi" "wasm32-wasi"
171+
build_target_corelibs "${BUILD_TOOLS_ARGS[@]}" "wasm32-unknown-wasip1-threads" "wasm32-wasip1-threads"
170172
}
171173

172174
main "$@"

0 commit comments

Comments
 (0)