From: Peter Seiderer <ps.report@gmx.net>
To: ell@lists.01.org
Subject: Re: [PATCH v1] ell/rtnl: fix compile with older toolchains
Date: Fri, 10 Apr 2020 22:06:04 +0200 [thread overview]
Message-ID: <20200410220604.284ba74b@gmx.net> (raw)
In-Reply-To: <E3333D13-5302-40E7-84E0-D55468068E1F@holtmann.org>
[-- Attachment #1: Type: text/plain, Size: 3008 bytes --]
Hello Marcel,
On Fri, 10 Apr 2020 19:58:53 +0200, Marcel Holtmann <marcel@holtmann.org> wrote:
> Hi Peter,
>
> > 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.
>
> sounds like these are two separate fixes.
>
> >
> > 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)
> > ---
> > 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
> > +
>
> Do we actually care about such an ancient kernel? And I don’t get the if check above.
It is not about ancient kernel, but about the kernel-header files the toolchain uses
(and in the embedded world this may be quiet ancient)...
Depending on the availability RTA_PREF it will be
#define HAVE_DECL_RTA_PREF 0
or
#define HAVE_DECL_RTA_PREF 1
Both will trigger '#if defined HAVE_DECL_RTA_PREF' the second
one will check for 0 or 1 (but will give a warning in case
HAVE_DECL_RTA_PREF is not defined at all)...
See [1] for motivation of this patch...
Regards,
Peter
[1] http://lists.busybox.net/pipermail/buildroot/2020-April/279531.html
>
> Regards
>
> Marcel
>
prev parent reply other threads:[~2020-04-10 20:06 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-09 20:38 [PATCH v1] ell/rtnl: fix compile with older toolchains Peter Seiderer
2020-04-09 21:15 ` =?unknown-8bit?q?Micha=C5=82?= Lowas-Rzechonek
2020-04-10 17:58 ` Marcel Holtmann
2020-04-10 20:06 ` Peter Seiderer [this message]
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=20200410220604.284ba74b@gmx.net \
--to=ps.report@gmx.net \
--cc=ell@lists.01.org \
/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.