Creating base chroot for other architectures using x86_64
After bootstrapping the x86_64 architecture as described in the XBPS source packages collection you may wish to also create the base-chroot and base-chroot-musl meta packages for some or all of the other architectures.
Accomplishing this is actually as simple as running the following command for e.g. i686-musl:
./xbps-src -a i686-musl -N pkg base-chroot-musl
There is, however, at least one known issue with a cross built python-2.7 for i686, the 32 bit variant. It fails to run certain scripts such as the gn or gyp scripts used to generate ninja which are found in Chromium builds that are part of some packages (packages: chromium, webkitgtk, webkit2gtk, qt5-webengine ...).
Thus it is strongly recommended to rebuild python-2.7 using the native i686 environment once the base chroot for this architecture was cross built.
./xbps-src -m master-i686 zap ./xbps-src -m master-i686 binary-bootstrap i686 ./xbps-src -m master-i686 -f pkg python
The -f here makes sure the already existing package is overwritten and registered.
The exact reason why a cross-built python-2.7 for i686 fails for these specific scripts is yet unknown. It possibly has to do with the not easy to solve problem of defining the corrent value for sizeof(off_t) in the autoconf cache presets found in the common/environment/configure/autoconf_cache architecture specific scripts. The value of sizeof(off_t) cannot be determined by configure when cross compiling, because cross compiled test programs cannot run on the host architecture.