Since commit 2f1242efe9d ("devlink: Add devlink health show command") we use the sys/sysinfo.h header for the sysinfo(2) system call. But since iproute2 carries a local version of the kernel struct sysinfo, this causes a collision with libc that do not rely on kernel defined sysinfo like musl libc:
In file included from devlink.c:25:0: .../sysroot/usr/include/sys/sysinfo.h:10:8: error: redefinition of 'struct sysinfo' struct sysinfo { ^~~~~~~ In file included from ../include/uapi/linux/kernel.h:5:0, from ../include/uapi/linux/netlink.h:5, from ../include/uapi/linux/genetlink.h:6, from devlink.c:21: ../include/uapi/linux/sysinfo.h:8:8: note: originally defined here struct sysinfo { ^~~~~~~ Rely on the kernel header alone to avoid kernel and userspace headers collision of definitions. Cc: Aya Levin <a...@mellanox.com> Cc: Moshe Shemesh <mo...@mellanox.com> Signed-off-by: Baruch Siach <bar...@tkos.co.il> --- devlink/devlink.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devlink/devlink.c b/devlink/devlink.c index 436935f88bda..d7a6ce94f0e6 100644 --- a/devlink/devlink.c +++ b/devlink/devlink.c @@ -22,7 +22,7 @@ #include <linux/devlink.h> #include <libmnl/libmnl.h> #include <netinet/ether.h> -#include <sys/sysinfo.h> +#include <linux/sysinfo.h> #include <sys/queue.h> #include "SNAPSHOT.h" -- 2.20.1