package/pppd: fix build with kernel < 4.7
Fix the following build failure with kernel < 4.7 raised since bump to version 2.5.0 in commit0c15169f5a
and81ad945630
: sys-linux.c: In function 'get_ppp_stats_rtnetlink': sys-linux.c:1783:29: error: field 'ifsm' has incomplete type 1783 | struct if_stats_msg ifsm; | ^~~~ Fixes: - http://autobuild.buildroot.org/results/82392df447f650f241f23e59e65131fb4a930010 Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
parent
f82384652c
commit
45c1def991
@ -0,0 +1,66 @@
|
|||||||
|
From 7a3f478a4b7128d4f70ea64d99fedec766b1c009 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jaco Kroon <jaco@uls.co.za>
|
||||||
|
Date: Tue, 31 Oct 2023 11:47:21 +0200
|
||||||
|
Subject: [PATCH] pppd/sys-linux: Fix compile with older Linux kernel headers
|
||||||
|
(#452)
|
||||||
|
|
||||||
|
When compiling pppd against kernel headers which don't provide
|
||||||
|
the definitions for the NETLINK mechanisms, leave out the code
|
||||||
|
which uses NETLINK, so as to avoid getting compile errors.
|
||||||
|
|
||||||
|
Upstream commit in Linux refers.
|
||||||
|
|
||||||
|
commit 10c9ead9f3c6bb24bddc9a96681f7d58e6623966
|
||||||
|
Author: Roopa Prabhu <roopa@cumulusnetworks.com>
|
||||||
|
Date: Wed Apr 20 08:43:43 2016 -0700
|
||||||
|
rtnetlink: add new RTM_GETSTATS message to dump link stats
|
||||||
|
|
||||||
|
This commit adds the #defines and structs used, so simply not compiling
|
||||||
|
this code if the required #defines isn't there should solve the problem.
|
||||||
|
|
||||||
|
Closes: #450
|
||||||
|
|
||||||
|
Signed-off-by: Jaco Kroon <jaco@uls.co.za>
|
||||||
|
Upstream: https://github.com/ppp-project/ppp/commit/7a3f478a4b7128d4f70ea64d99fedec766b1c009
|
||||||
|
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
|
||||||
|
---
|
||||||
|
pppd/sys-linux.c | 12 ++----------
|
||||||
|
1 file changed, 2 insertions(+), 10 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/pppd/sys-linux.c b/pppd/sys-linux.c
|
||||||
|
index 561b150f2..a8d6cd95b 100644
|
||||||
|
--- a/pppd/sys-linux.c
|
||||||
|
+++ b/pppd/sys-linux.c
|
||||||
|
@@ -131,16 +131,6 @@
|
||||||
|
#include <linux/netlink.h>
|
||||||
|
#include <linux/rtnetlink.h>
|
||||||
|
#include <linux/if_link.h>
|
||||||
|
-
|
||||||
|
-/* Attempt at retaining compile-support with older than 4.7 kernels, or kernels
|
||||||
|
- * where RTM_NEWSTATS isn't defined for whatever reason.
|
||||||
|
- */
|
||||||
|
-#ifndef RTM_NEWSTATS
|
||||||
|
-#define RTM_NEWSTATS 92
|
||||||
|
-#define RTM_GETSTATS 94
|
||||||
|
-#define IFLA_STATS_LINK_64 1
|
||||||
|
-#endif
|
||||||
|
-
|
||||||
|
#include <linux/if_addr.h>
|
||||||
|
|
||||||
|
/* glibc versions prior to 2.24 do not define SOL_NETLINK */
|
||||||
|
@@ -1776,6 +1766,7 @@ get_ppp_stats_ioctl(int u, struct pppd_stats *stats)
|
||||||
|
static int
|
||||||
|
get_ppp_stats_rtnetlink(int u, struct pppd_stats *stats)
|
||||||
|
{
|
||||||
|
+#ifdef RTM_NEWSTATS
|
||||||
|
static int fd = -1;
|
||||||
|
|
||||||
|
struct {
|
||||||
|
@@ -1825,6 +1816,7 @@ get_ppp_stats_rtnetlink(int u, struct pppd_stats *stats)
|
||||||
|
err:
|
||||||
|
close(fd);
|
||||||
|
fd = -1;
|
||||||
|
+#endif
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user