Skip to content

Commit 998930f

Browse files
[build-toolchain] don't copy swift tools from host build dir to avoid rpath issue
swift-frontend now links libswiftCore placed at relative to the executable (@executable_path/../lib/swift/macosx), so copying the executable to the target build dir doesn't work. This patch changes to use SWIFT_NATIVE_*_TOOLS_PATH via ninja check-swift task instead of run-test.
1 parent 1583b7e commit 998930f

File tree

3 files changed

+15
-10
lines changed

3 files changed

+15
-10
lines changed

.github/workflows/build-toolchain.yml

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -148,10 +148,7 @@ jobs:
148148
if: ${{ matrix.run_stdlib_test }}
149149
run: |
150150
TARGET_STDLIB_BUILD_DIR=${{ github.workspace }}/target-build/swift-stdlib-wasi-wasm32
151-
./swift/utils/run-test --build-dir "$TARGET_STDLIB_BUILD_DIR" --target wasi-wasm32 \
152-
"$TARGET_STDLIB_BUILD_DIR/test-wasi-wasm32/stdlib"
153-
./swift/utils/run-test --build-dir "$TARGET_STDLIB_BUILD_DIR" --target wasi-wasm32 \
154-
"$TARGET_STDLIB_BUILD_DIR/test-wasi-wasm32/Concurrency/Runtime"
151+
ninja check-swift-wasi-wasm32-custom -C "$TARGET_STDLIB_BUILD_DIR"
155152
156153
- name: Run all tests for wasi-wasm32
157154
if: ${{ matrix.run_full_test }}

test/CMakeLists.txt

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -154,8 +154,14 @@ if(NOT SWIFT_INCLUDE_TOOLS)
154154
)
155155
endif()
156156
if(SWIFT_BUILD_STDLIB)
157-
list(APPEND SWIFT_LIT_ARGS
158-
"--param" "test_resource_dir=${SWIFTLIB_DIR}")
157+
# if building only static stdlib, prefer static lib.
158+
if(NOT SWIFT_BUILD_DYNAMIC_STDLIB AND SWIFT_BUILD_STATIC_STDLIB)
159+
list(APPEND SWIFT_LIT_ARGS
160+
"--param" "test_resource_dir=${SWIFTSTATICLIB_DIR}")
161+
else()
162+
list(APPEND SWIFT_LIT_ARGS
163+
"--param" "test_resource_dir=${SWIFTLIB_DIR}")
164+
endif()
159165
endif()
160166
endif()
161167

utils/webassembly/build-toolchain.sh

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,8 @@ build_target_toolchain() {
111111
# Set WASI as a UNIX platform to spoof LLVM
112112
# FIXME(katei): host-build clang's libcxx is capable with LLVM, but it somehow
113113
# fails libcxx version check. So activate LLVM_COMPILER_CHECKED to spoof the checker
114+
# SWIFT_DRIVER_TEST_OPTIONS is used to specify clang resource dir for wasm32-unknown-wasi
115+
# because it's not built beside clang
114116
cmake -B "$SWIFT_STDLIB_BUILD_DIR" \
115117
-C "$SOURCE_PATH/swift/cmake/caches/Runtime-WASI-wasm32.cmake" \
116118
-D CMAKE_TOOLCHAIN_FILE="$SOURCE_PATH/swift/utils/webassembly/toolchain-wasi.cmake" \
@@ -123,6 +125,10 @@ build_target_toolchain() {
123125
-D LLVM_COMPILER_CHECKED=YES \
124126
-D UNIX=1 \
125127
-D SWIFT_NATIVE_SWIFT_TOOLS_PATH="$HOST_BUILD_DIR/swift-$HOST_SUFFIX/bin" \
128+
-D SWIFT_NATIVE_CLANG_TOOLS_PATH="$HOST_BUILD_DIR/llvm-$HOST_SUFFIX/bin" \
129+
-D SWIFT_NATIVE_LLVM_TOOLS_PATH="$HOST_BUILD_DIR/llvm-$HOST_SUFFIX/bin" \
130+
-D SWIFT_LIT_TEST_PATHS="$SWIFT_STDLIB_BUILD_DIR/test-wasi-wasm32/stdlib;$SWIFT_STDLIB_BUILD_DIR/test-wasi-wasm32/Concurrency/Runtime" \
131+
-D SWIFT_DRIVER_TEST_OPTIONS=" -Xclang-linker -resource-dir -Xclang-linker $COMPILER_RT_BUILD_DIR" \
126132
-D SWIFT_WASI_SYSROOT_PATH="$WASI_SYSROOT_PATH" \
127133
-D SWIFT_WASI_wasm32_ICU_UC_INCLUDE="$BUILD_SDK_PATH/icu/include" \
128134
-D SWIFT_WASI_wasm32_ICU_UC="$BUILD_SDK_PATH/icu/lib/libicuuc.a" \
@@ -134,10 +140,6 @@ build_target_toolchain() {
134140

135141
ninja install -C "$SWIFT_STDLIB_BUILD_DIR"
136142

137-
# Copy tool binaries in target build dir to test stdlib
138-
rsync -a "$HOST_BUILD_DIR/llvm-$HOST_SUFFIX/bin/" "$SWIFT_STDLIB_BUILD_DIR/bin/"
139-
rsync -a "$HOST_BUILD_DIR/swift-$HOST_SUFFIX/bin/" "$SWIFT_STDLIB_BUILD_DIR/bin/"
140-
141143
# Link compiler-rt libs to stdlib build dir
142144
mkdir -p "$SWIFT_STDLIB_BUILD_DIR/lib/clang/10.0.0/"
143145
ln -fs "$COMPILER_RT_BUILD_DIR/lib" "$SWIFT_STDLIB_BUILD_DIR/lib/clang/10.0.0/lib"

0 commit comments

Comments
 (0)