pppd: better fix for the Linux 4.8 kernel headers issue

Commit 035567b279 solved the build issue
of pppd with Linux 4.8 kernel headers, but in the process broke the
build with older kernel headers such as 3.10.

This commit takes a different approach, by moving the <netinet/in.h>
include above linux header includes.

Linux uapi headers try to avoid redeclaring things from libc via
linux/libc-compat.h. However that only works if the libc header is
included first.

Signed-off-by: Stefan Nickl <Stefan.Nickl@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit is contained in:
Stefan Nickl 2016-10-20 23:12:37 +02:00 committed by Thomas Petazzoni
parent 59b9cc7a2d
commit 9d08404d9a
2 changed files with 22 additions and 39 deletions

View file

@ -0,0 +1,22 @@
diff --git a/pppd/plugins/rp-pppoe/pppoe.h b/pppd/plugins/rp-pppoe/pppoe.h
index 9ab2eee..b827620 100644
--- a/pppd/plugins/rp-pppoe/pppoe.h
+++ b/pppd/plugins/rp-pppoe/pppoe.h
@@ -47,6 +47,8 @@
#include <sys/socket.h>
#endif
+#include <netinet/in.h>
+
/* Ugly header files on some Linux boxes... */
#if defined(HAVE_LINUX_IF_H)
#include <linux/if.h>
@@ -84,8 +86,6 @@ typedef unsigned long UINT32_t;
#include <linux/if_ether.h>
#endif
-#include <netinet/in.h>
-
#ifdef HAVE_NETINET_IF_ETHER_H
#include <sys/types.h>

View file

@ -1,39 +0,0 @@
From 492e240a651e3d32b84cac66e4675ee99dcbe05a Mon Sep 17 00:00:00 2001
From: Jackie Huang <jackie.huang@windriver.com>
Date: Thu, 13 Oct 2016 13:41:43 +0800
Subject: [PATCH] ppp: fix building with linux-4.8
Fix a build error when using the linux-4.8 headers that results in:
In file included from pppoe.h:87:0,
from plugin.c:29:
../usr/include/netinet/in.h:211:8: note: originally defined here
struct in6_addr
^~~~~~~~
In file included from ../usr/include/linux/if_pppol2tp.h:20:0,
from ../usr/include/linux/if_pppox.h:26,
from plugin.c:52:
../usr/include/linux/in6.h:49:8: error: redefinition of 'struct sockaddr_in6'
struct sockaddr_in6 {
^~~~~~~~~~~~
Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
[Thomas: downloaded from https://github.com/paulusmack/ppp/pull/69.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
pppd/plugins/rp-pppoe/pppoe.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pppd/plugins/rp-pppoe/pppoe.h b/pppd/plugins/rp-pppoe/pppoe.h
index 9ab2eee..96d2794 100644
--- a/pppd/plugins/rp-pppoe/pppoe.h
+++ b/pppd/plugins/rp-pppoe/pppoe.h
@@ -84,7 +84,7 @@ typedef unsigned long UINT32_t;
#include <linux/if_ether.h>
#endif
-#include <netinet/in.h>
+#include <linux/in.h>
#ifdef HAVE_NETINET_IF_ETHER_H
#include <sys/types.h>