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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.