Subject: Re: [PATCH] devlink: fix libc and kernel headers collision

From: Petr Vorel <[email-masked]>
Date: Mon, 3 Jun 2019 11:02:59 +0200

Hi,

> 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.

Reviewed-by: Petr Vorel <[email-masked]>

Kind regards,
Petr