glibc 2.25 is warning about if applications depend on sys/types.h for makedev macro, it expects to be included from <sys/sysmacros.h>
Found this error while testing with GCC 6.3.1 on archlinux. lib/librte_eal/linuxapp/eal/eal_pci_uio.c: In function ‘pci_mknod_uio_dev’: lib/librte_eal/linuxapp/eal/eal_pci_uio.c:134:13: error: In the GNU C Library, "makedev" is defined by <sys/sysmacros.h>. For historical compatibility, it is currently defined by <sys/types.h> as well, but we plan to remove this soon. To use "makedev", include <sys/sysmacros.h> directly. If you did not intend to use a system-defined macro "makedev", you should undefine it after including <sys/types.h>. [-Werror] dev = makedev(major, minor); ^~~~~~~~~~~~~~~~~ Signed-off-by: Jerin Jacob <jerin.ja...@caviumnetworks.com> --- Not added the Fixes: tag because this issue is due to glibc change. --- lib/librte_eal/linuxapp/eal/eal_pci_uio.c | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/librte_eal/linuxapp/eal/eal_pci_uio.c b/lib/librte_eal/linuxapp/eal/eal_pci_uio.c index 20a4a665e..fa10329fd 100644 --- a/lib/librte_eal/linuxapp/eal/eal_pci_uio.c +++ b/lib/librte_eal/linuxapp/eal/eal_pci_uio.c @@ -38,6 +38,7 @@ #include <inttypes.h> #include <sys/stat.h> #include <sys/mman.h> +#include <sys/sysmacros.h> #include <linux/pci_regs.h> #if defined(RTE_ARCH_X86) -- 2.12.1