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.
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.