[dpdk-dev] eal/linux: fix build with glibc 2.25

Message ID 20170403083514.5401-1-jerin.jacob@caviumnetworks.com (mailing list archive)
State Accepted, archived
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Jerin Jacob April 3, 2017, 8:35 a.m. UTC
  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>
---
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(+)
  

Comments

Thomas Monjalon April 4, 2017, 12:51 p.m. UTC | #1
2017-04-03 14:05, Jerin Jacob:
> 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>

Applied, thanks
  

Patch

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)