On Thu, 17 Apr 2025 20:44:06 +0800, Hilton Chain wrote: > > On Thu, 17 Apr 2025 15:39:44 +0800, > Ludovic Courtès wrote: > > > > Hello, > > > > Hilton Chain <hako@ultrarare.space> writes: > > > > >> Just realized cross-compilation support (rust-sysroot) is missing when > > >> using > > >> other build systems. > > > > > > I think this issue can't be really solved without exposing interface for > > > target-inputs in all build systems. > > > > > > Luckily, all affected packages currently don't support cross-compilation > > > on > > > master, so I think this can be left for the future with a bigger change :) > > > > If cross-compilation of Rust packages doesn’t work at all right now, > > it makes sense to leave it for later. > > > > If it does work, but only for a couple of well-identified packages, > > perhaps there are workarounds that could be found for this specific > > cases. > > > > Anyhow, my take as an outsider is that this shouldn’t be a blocker. > > Some packages require mixed build systems, e.g. python + cargo, meson + cargo. > > Previously they were using cargo-build-system and applying build phases from > the > other build system. With changes currently on rust-team, we can do the > reverse > and apply build phases from cargo-build-system instead. This can simplify > package definitions. > > cargo-build-system itself supports cross-compilation but requires rust-sysroot > as a target input. This is the problem, no interface is available for > modifying > target-inputs.
Good news: rust-sysroot doesn't need a search path so there's a simple solution: adding it to native-inputs :) > Currently only a handful of packages have switched build system and on master > they don't support cross-compilation either, so the impact is low. But for > the > long term, this need to be addressed and mixing build systems should be made > easier. One more thing to note is that ‘guix shell --development’ doesn't support origins in propagated-inputs, which is caused by ‘package->manifest-entry’ assuming propagated-inputs to be packages.