From: Peter Seiderer <ps.report@gmx.net>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH v1] package/ell: fix compile with older toolchains
Date: Thu, 9 Apr 2020 22:47:50 +0200 [thread overview]
Message-ID: <20200409224750.736128c8@gmx.net> (raw)
In-Reply-To: <20200409203500.18857-1-ps.report@gmx.net>
On Thu, 9 Apr 2020 22:35:00 +0200, Peter Seiderer <ps.report@gmx.net> wrote:
> Older toolchains need to include sys/types.h and sys/socket.h before
> linux/if.h, RTA_PREF was introduces with linux-4.1.x.
>
> Fixes:
>
> http://autobuild.buildroot.net/results/2d1/2d1a3f82abb8475d39908b22f775c2dac781f330
>
> In file included from ell/rtnl.c:28:0:
> .../host/arm-buildroot-linux-gnueabi/sysroot/usr/include/linux/if.h:185:19: error: field 'ifru_addr' has incomplete type
> .../host/arm-buildroot-linux-gnueabi/sysroot/usr/include/linux/if.h:186:19: error: field 'ifru_dstaddr' has incomplete type
> .../host/arm-buildroot-linux-gnueabi/sysroot/usr/include/linux/if.h:187:19: error: field 'ifru_broadaddr' has incomplete type
> .../host/arm-buildroot-linux-gnueabi/sysroot/usr/include/linux/if.h:188:19: error: field 'ifru_netmask' has incomplete type
> .../arm-buildroot-linux-gnueabi/sysroot/usr/include/linux/if.h:189:20: error: field 'ifru_hwaddr' has incomplete type
> ell/rtnl.c: In function 'l_rtnl_route_extract':
> ell/rtnl.c:120:8: error: 'RTA_PREF' undeclared (first use in this function)
And suggested upstream:
https://ml01.01.org/hyperkitty/list/ell at lists.01.org/thread/TOJ5XEY7X6WMOMJHX4KWI5LFEOX2QTBQ/
Regards,
Peter
>
> Signed-off-by: Peter Seiderer <ps.report@gmx.net>
> ---
> ...nl-fix-compile-with-older-toolchains.patch | 67 +++++++++++++++++++
> 1 file changed, 67 insertions(+)
> create mode 100644 package/ell/0002-ell-rtnl-fix-compile-with-older-toolchains.patch
>
> diff --git a/package/ell/0002-ell-rtnl-fix-compile-with-older-toolchains.patch b/package/ell/0002-ell-rtnl-fix-compile-with-older-toolchains.patch
> new file mode 100644
> index 0000000000..a9828f1904
> --- /dev/null
> +++ b/package/ell/0002-ell-rtnl-fix-compile-with-older-toolchains.patch
> @@ -0,0 +1,67 @@
> +From 60b4cd4c703be380aef194d31a1ffc4b42431bde Mon Sep 17 00:00:00 2001
> +From: Peter Seiderer <ps.report@gmx.net>
> +Date: Thu, 9 Apr 2020 22:21:36 +0200
> +Subject: [PATCH] ell/rtnl: fix compile with older toolchains
> +
> +Older toolchains need to include sys/types.h and sys/socket.h before
> +linux/if.h, RTA_PREF was introduces with linux-4.1.x.
> +
> +Fixes:
> +
> + In file included from ell/rtnl.c:28:0:
> + .../host/arm-buildroot-linux-gnueabi/sysroot/usr/include/linux/if.h:185:19: error: field 'ifru_addr' has incomplete type
> + .../host/arm-buildroot-linux-gnueabi/sysroot/usr/include/linux/if.h:186:19: error: field 'ifru_dstaddr' has incomplete type
> + .../host/arm-buildroot-linux-gnueabi/sysroot/usr/include/linux/if.h:187:19: error: field 'ifru_broadaddr' has incomplete type
> + .../host/arm-buildroot-linux-gnueabi/sysroot/usr/include/linux/if.h:188:19: error: field 'ifru_netmask' has incomplete type
> + .../arm-buildroot-linux-gnueabi/sysroot/usr/include/linux/if.h:189:20: error: field 'ifru_hwaddr' has incomplete type
> + ell/rtnl.c: In function 'l_rtnl_route_extract':
> + ell/rtnl.c:120:8: error: 'RTA_PREF' undeclared (first use in this function)
> +
> +Signed-off-by: Peter Seiderer <ps.report@gmx.net>
> +---
> + configure.ac | 2 ++
> + ell/rtnl.c | 7 ++++++-
> + 2 files changed, 8 insertions(+), 1 deletion(-)
> +
> +diff --git a/configure.ac b/configure.ac
> +index 0351f89..3be35a4 100644
> +--- a/configure.ac
> ++++ b/configure.ac
> +@@ -113,6 +113,8 @@ AC_CHECK_LIB(dl, dlopen, dummy=yes,
> +
> + AC_CHECK_HEADERS(linux/types.h linux/if_alg.h)
> +
> ++AC_CHECK_DECLS([RTA_PREF], [], [], [[#include <linux/rtnetlink.h>]])
> ++
> + AC_ARG_ENABLE(glib, AC_HELP_STRING([--enable-glib],
> + [enable ell/glib main loop example]),
> + [enable_glib=${enableval}])
> +diff --git a/ell/rtnl.c b/ell/rtnl.c
> +index dc83937..3493d34 100644
> +--- a/ell/rtnl.c
> ++++ b/ell/rtnl.c
> +@@ -25,8 +25,9 @@
> + #endif
> +
> + #define _GNU_SOURCE
> +-#include <linux/if.h>
> ++#include <sys/types.h>
> + #include <sys/socket.h>
> ++#include <linux/if.h>
> + #include <arpa/inet.h>
> +
> + #include "util.h"
> +@@ -35,6 +36,10 @@
> + #include "rtnl.h"
> + #include "private.h"
> +
> ++#if defined HAVE_DECL_RTA_PREF && !HAVE_DECL_RTA_PREF
> ++#define RTA_PREF 20
> ++#endif
> ++
> + static size_t rta_add_u8(void *rta_buf, unsigned short type, uint8_t value)
> + {
> + struct rtattr *rta = rta_buf;
> +--
> +2.26.0
> +
next prev parent reply other threads:[~2020-04-09 20:47 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-09 20:35 [Buildroot] [PATCH v1] package/ell: fix compile with older toolchains Peter Seiderer
2020-04-09 20:47 ` Peter Seiderer [this message]
2020-04-11 8:12 ` Thomas Petazzoni
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200409224750.736128c8@gmx.net \
--to=ps.report@gmx.net \
--cc=buildroot@busybox.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox