cross-rs / cross

“Zero setup” cross compilation and “cross testing” of Rust crates
Apache License 2.0
6.27k stars 357 forks source link

WIP freebsd: fix sysroot layout #1412

Open ydirson opened 6 months ago

ydirson commented 6 months ago

Until now the sysroot took in base.txz only the bare minimum to get cross gcc to build, by copying selectively a small number of libs into otherwise non-standard paths, and then fixing up the symlinks broken by the move.

This is a problem for clang, used by rust-bindgen, because the libs and headers were now in non-standard locations. And the greater number of libs that were not kept still had their headers installed, even though they were in /include/.

This keeps things as close as possible to upstream base system, creating symlinks for the strange specific the gcc cross build demands. For this we cannot help having to merge /lib into /usr/lib, but this should be better already.

PROBLEM:

With this the gcc build fails, apparently trying to find in host's /lib the libc that's otherwise findable in sysroot' /lib.