Crossdirect redirects archivers (gz, bzip2, ...) to their native
versions when cross compiling. This works e.g. when extracting sources or
packing the .apks at the end of the build. But it currently fails when
such an archiver gets called during package().
For example with bootchart2:
>>> bootchart2: Entering fakeroot...
...
gzip -c bootchart2.1 > /home/pmos/build/pkg/bootchart2/usr/share/man/man1/bootchart2.1.gz
Error relocating /native/usr/lib/libfakeroot.so: unsupported relocation type 6
Error relocating /native/usr/lib/libfakeroot.so: unsupported relocation type 6
Error relocating /native/usr/lib/libfakeroot.so: unsupported relocation type 1
Error relocating /native/usr/lib/libfakeroot.so: unsupported relocation type 6
Fix this by running the foreign arch version when it gets called in a
fakeroot.
Fixes: 8a7c9ce7 ("cross/crossdirect: run archivers natively too")
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7120>
Run native binaries for extracting / packing various archives if they
are installed in the native chroot when using the crossdirect
compilation method, instead of having them go through QEMU. The
resulting extracted/packed files should always be the same but this is
significantly faster.
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6763