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.

Reply via email to