Skip to content

Commit 471b2a8

Browse files
committed
fix(windows): add .exe extension to WASI SDK binary paths
- Detect Windows platform in _create_wasi_sdk_build_file() - Add .exe extension to all WASI SDK tool binaries on Windows - Update both symlinks and filegroup definitions - Resolves missing input files error in Windows BCR tests (clang.exe, ar.exe, wasm-ld.exe, etc.)
1 parent c4efcf3 commit 471b2a8

File tree

1 file changed

+20
-13
lines changed

1 file changed

+20
-13
lines changed

toolchains/wasi_sdk_toolchain.bzl

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -166,18 +166,23 @@ def _setup_downloaded_wasi_sdk(repository_ctx):
166166
def _create_wasi_sdk_build_file(repository_ctx):
167167
"""Create BUILD file for WASI SDK"""
168168

169+
# Detect platform to determine binary extension
170+
platform = _detect_host_platform(repository_ctx)
171+
is_windows = platform.startswith("windows_")
172+
exe_ext = ".exe" if is_windows else ""
173+
169174
# Create a tools directory with proper symlinks for Rust builds
170175
# Note: Directory will be created automatically when symlinks are created
171176

172177
# Create symlinks in the tools directory that Rust can find
173178
tools = [
174-
("bin/ar", "tools/ar"),
175-
("bin/clang", "tools/clang"),
176-
("bin/clang++", "tools/clang++"),
177-
("bin/wasm-ld", "tools/wasm-ld"),
178-
("bin/llvm-nm", "tools/llvm-nm"),
179-
("bin/llvm-objdump", "tools/llvm-objdump"),
180-
("bin/llvm-strip", "tools/llvm-strip"),
179+
("bin/ar" + exe_ext, "tools/ar" + exe_ext),
180+
("bin/clang" + exe_ext, "tools/clang" + exe_ext),
181+
("bin/clang++" + exe_ext, "tools/clang++" + exe_ext),
182+
("bin/wasm-ld" + exe_ext, "tools/wasm-ld" + exe_ext),
183+
("bin/llvm-nm" + exe_ext, "tools/llvm-nm" + exe_ext),
184+
("bin/llvm-objdump" + exe_ext, "tools/llvm-objdump" + exe_ext),
185+
("bin/llvm-strip" + exe_ext, "tools/llvm-strip" + exe_ext),
181186
]
182187

183188
for src, dst in tools:
@@ -194,32 +199,32 @@ package(default_visibility = ["//visibility:public"])
194199
# File targets for WASI SDK tools
195200
filegroup(
196201
name = "clang",
197-
srcs = ["bin/clang"],
202+
srcs = ["bin/clang{exe_ext}"],
198203
)
199204
200205
filegroup(
201206
name = "ar",
202-
srcs = ["bin/ar"],
207+
srcs = ["bin/ar{exe_ext}"],
203208
)
204209
205210
filegroup(
206211
name = "wasm_ld",
207-
srcs = ["bin/wasm-ld"],
212+
srcs = ["bin/wasm-ld{exe_ext}"],
208213
)
209214
210215
filegroup(
211216
name = "llvm_nm",
212-
srcs = ["bin/llvm-nm"],
217+
srcs = ["bin/llvm-nm{exe_ext}"],
213218
)
214219
215220
filegroup(
216221
name = "llvm_objdump",
217-
srcs = ["bin/llvm-objdump"],
222+
srcs = ["bin/llvm-objdump{exe_ext}"],
218223
)
219224
220225
filegroup(
221226
name = "llvm_strip",
222-
srcs = ["bin/llvm-strip"],
227+
srcs = ["bin/llvm-strip{exe_ext}"],
223228
)
224229
225230
filegroup(
@@ -318,6 +323,8 @@ alias(
318323
)
319324
'''
320325

326+
# Format BUILD content with executable extension
327+
build_content = build_content.format(exe_ext = exe_ext)
321328
repository_ctx.file("BUILD.bazel", build_content)
322329

323330
# Create cc_toolchain_config.bzl with proper path resolution

0 commit comments

Comments
 (0)