Cross-OS building
Oh, here is an interesting one, while trying to cross-build glib2.0:
In file included from /usr/include/linux/sysinfo.h:5,
from /usr/include/linux/kernel.h:5,
from /usr/include/linux/netlink.h:5,
from ../../../gio/gnetworkmonitornetlink.c:39:
/usr/include/linux/types.h:5:10: fatal error: asm/types.h: No such file or directory
5 | #include <asm/types.h>
| ^~~~~~~~~~~~~
compilation terminated.
what happens apparently is that
meson.build:if cc.has_header('linux/netlink.h')
detected the presence of linux/netlink.h without actually checking that it
compiles with i686-gnu-gcc:
#ifdef __has_include
#if !__has_include("linux/netlink.h")
#error "Header 'linux/netlink.h' could not be found"
#endif
#else
#include <linux/netlink.h>
#endif
and thus enabled HAVE_NETLINK, and then on compilation with i686-gnu-gcc
of the source code making actual use of it, it's missing the per-arch
asm/ file.
Put another way, the issue here is that since linux-libc-dev:amd64's
headers are still in non-multiarch /usr/include, i686-gnu-gcc sees them
erroneously.
Samuel
Reply to: