New comment by 0x5c on void-packages repository https://github.com/void-linux/void-packages/pull/35591#issuecomment-1046115610 Comment: I did some research, and it seems that libspa-sys is inherently nocross, for now. I uses bindgen to generate the bindings, but does no effort whatsoever to have bindgen use the target toolchain, resulting in the bindings being generated for the host. This seems to work fine for musl, but glibc is a fragile thing that needs special handling. In this case stubs.h contains this ```h /* This file is automatically generated. This file selects the right generated file of `__stub_FUNCTION' macros based on the architecture being compiled for. */ #if !defined __x86_64__ # include #endif #if defined __x86_64__ && defined __LP64__ # include #endif #if defined __x86_64__ && defined __ILP32__ # include #endif ``` ... which assumes 32bit when 64bit isn't defined It seems that the musl bindings on cross might be broken too, just not in ways that prevents compilation. I would say it's nocross everywhere unless someone can test that musl cross produces working binaries. Outside of that, meson is only being used a a very very very thin wrapper around cargo, and to update gtk's icon cache. The first does no useful work, and the second should be done when installing the package. Switching the build style to cargo seems to work fine (apart from the existing cross issue), and removes the need for meson and the icon stuff in hostmakedeps.