eal/linux: fix build with glibc 2.25
authorJerin Jacob <jerin.jacob@caviumnetworks.com>
Mon, 3 Apr 2017 08:35:14 +0000 (14:05 +0530)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Tue, 4 Apr 2017 12:52:06 +0000 (14:52 +0200)
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.jacob@caviumnetworks.com>
lib/librte_eal/linuxapp/eal/eal_pci_uio.c

index 20a4a66..fa10329 100644 (file)
@@ -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)