Hi @Max_Desiatov and @kateinoigakukun
I was checking out the GSoC 2026 ideas list, and the Sysroot Support project in build-script really grabbed my attention. I've been diving deep into SwiftPM and swift-build lately—working on stuff like noneOS platform mapping, Windows MSVC linker flag normalization, and how SPM deals with -print-target-info. So far, I've mostly seen how the build system uses those target environments, and I'd love to use GSoC to dig even deeper into how build-script actually puts them together.
I've been poking around in utils/swift_build_support to understand the current setup, especially how wasmswiftsdk.py bundles the corelibs right now. From what I can tell, the goal is to break those out into their own target-specific build products that can use the --experimental-sysroot flag independently. This seems like a great way to stress-test the mechanism against different architectures, like an Android NDK sysroot or a Linux environment using musl libc.
As I wrap up the technical milestones for my proposal, I just wanted to double-check one thing about the dependency graph in Python: When we split the target-side corelibs into separate products, what's the best way to handle their relationship with the host compiler? Should the design expect the host toolchain to be built in the step right before during the same build-script run, or should it be modular enough to accept an existing, externally provided toolchain path? I'm thinking about how this impacts the build graph's flexibility and the efficiency of running target-side tests without always needing a full host rebuild.
I've got the main part of my implementation plan sketched out already, and I just want to make sure my thinking matches the team's vision before I share the full draft. Any advice here would be super helpful!
