diff options
author | Yi Zhao <yi.zhao@windriver.com> | 2017-11-17 10:17:13 +0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2017-12-02 11:24:34 +0000 |
commit | 85095edfc4bbf23d853fc21fbfb454e598206a24 (patch) | |
tree | 8de8cd3c12a1ab9205c643fbcc71b5ccdbd48ce9 | |
parent | addf309165059a113a6d02ea5fb29a0f495c1485 (diff) | |
download | openembedded-core-contrib-85095edfc4bbf23d853fc21fbfb454e598206a24.tar.gz |
ppp: include netinet/in.h before linux/in.h in pppoe.h
The patch ppp-fix-building-with-linux-4.8.patch tries to fix build error
with 4.8 or newer linux headers, but it would break building with kernel
< 4.8. There is a better solution to fix this issue in upstream.
Backport the upstream patch and replace the old one.
Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
3 files changed, 55 insertions, 45 deletions
diff --git a/meta/recipes-connectivity/ppp/ppp/0001-pppoe-include-netinet-in.h-before-linux-in.h.patch b/meta/recipes-connectivity/ppp/ppp/0001-pppoe-include-netinet-in.h-before-linux-in.h.patch new file mode 100644 index 0000000000..9362d12648 --- /dev/null +++ b/meta/recipes-connectivity/ppp/ppp/0001-pppoe-include-netinet-in.h-before-linux-in.h.patch @@ -0,0 +1,54 @@ +From 50a2997b256e0e0ef7a46fae133f56f60fce539c Mon Sep 17 00:00:00 2001 +From: Lubomir Rintel <lkundrak@v3.sk> +Date: Mon, 9 Jan 2017 13:34:23 +0000 +Subject: [PATCH] pppoe: include netinet/in.h before linux/in.h + +This fixes builds with newer kernels. Basically, <netinet/in.h> needs to be +included before <linux/in.h> otherwise the earlier, unaware of the latter, +tries to redefine symbols and structures. Also, <linux/if_pppox.h> doesn't work +alone anymore, since it pulls the headers in the wrong order, so we better +include <netinet/in.h> early. + +Upstream-Status: Backport +[https://github.com/paulusmack/ppp/commit/50a2997b256e0e0ef7a46fae133f56f60fce539c] + +Signed-off-by: Yi Zhao <yi.zhao@windriver.com> +--- + pppd/plugins/rp-pppoe/pppoe.h | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git a/pppd/plugins/rp-pppoe/pppoe.h b/pppd/plugins/rp-pppoe/pppoe.h +index 9ab2eee..c4aaa6e 100644 +--- a/pppd/plugins/rp-pppoe/pppoe.h ++++ b/pppd/plugins/rp-pppoe/pppoe.h +@@ -47,6 +47,10 @@ + #include <sys/socket.h> + #endif + ++/* This has to be included before Linux 4.8's linux/in.h ++ * gets dragged in. */ ++#include <netinet/in.h> ++ + /* Ugly header files on some Linux boxes... */ + #if defined(HAVE_LINUX_IF_H) + #include <linux/if.h> +@@ -84,8 +88,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> + +@@ -98,7 +100,6 @@ typedef unsigned long UINT32_t; + #endif + + +- + /* Ethernet frame types according to RFC 2516 */ + #define ETH_PPPOE_DISCOVERY 0x8863 + #define ETH_PPPOE_SESSION 0x8864 +-- +2.7.4 + diff --git a/meta/recipes-connectivity/ppp/ppp/ppp-fix-building-with-linux-4.8.patch b/meta/recipes-connectivity/ppp/ppp/ppp-fix-building-with-linux-4.8.patch deleted file mode 100644 index f77b0defc5..0000000000 --- a/meta/recipes-connectivity/ppp/ppp/ppp-fix-building-with-linux-4.8.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 3da19af53e2eee2e77b456cfbb9d633b06656d38 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 { - ^~~~~~~~~~~~ - -Upstream-Status: Submitted [1] - -[1] https://github.com/paulusmack/ppp/pull/69 - -Signed-off-by: Jackie Huang <jackie.huang@windriver.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> --- -2.8.3 - diff --git a/meta/recipes-connectivity/ppp/ppp_2.4.7.bb b/meta/recipes-connectivity/ppp/ppp_2.4.7.bb index b2c4d4c658..a5f764f6ec 100644 --- a/meta/recipes-connectivity/ppp/ppp_2.4.7.bb +++ b/meta/recipes-connectivity/ppp/ppp_2.4.7.bb @@ -30,7 +30,7 @@ SRC_URI = "https://download.samba.org/pub/${BPN}/${BP}.tar.gz \ file://0001-ppp-Fix-compilation-errors-in-Makefile.patch \ file://ppp@.service \ file://fix-CVE-2015-3310.patch \ - file://ppp-fix-building-with-linux-4.8.patch \ + file://0001-pppoe-include-netinet-in.h-before-linux-in.h.patch \ file://0001-ppp-Remove-unneeded-include.patch \ " |