Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Tue, 26 Jun 2018 20:51:23 -0400
From: Rich Felker <dalias@...c.org>
To: musl@...ts.openwall.com
Subject: Re: Package build failure with musl 1.1.19 + Linux 4.14.48
 (UAPI?)

On Tue, Jun 26, 2018 at 06:19:49PM -0500, A. Wilcox wrote:
> Hi there,
> 
> Attempting to build net-tools 1.60 on musl 1.1.19 with Linux headers
> from kernel 4.14.48 installed on a PowerPC computer, we're seeing the
> following build error:
> 
> 
> In file included from /usr/include/linux/if_tunnel.h:7:0,
>                  from iptunnel.c:34:
> /usr/include/linux/ip.h:86:8: error: redefinition of ‘struct iphdr’
>  struct iphdr {
>         ^~~~~
> In file included from iptunnel.c:29:0:
> /usr/include/netinet/ip.h:25:8: note: originally defined here
>  struct iphdr {
>         ^~~~~
> make: *** [Makefile:94: iptunnel.o] Error 1
> 
> 
> This failure was not present with kernel headers from 4.4.  This may be
> a regression in the kernel or it may just be a change that needs to be
> made to musl.  I am not very experienced in dealing with UAPI and didn't
> see much in the kernel doc tree so I was wondering if someone on this
> list could point me towards any resources about how to debug/fix such
> issues.
> 
> Thank you for your time and attention.

The breakage was introduced in 2016 in Linux commit
1fe8e0f074c77aa41aaa579345a9e675acbebfa9. Incidentally, they *knew*
this was wrong back in 2009; before the UAPI headers were separated
out, commit 0afd4a21ba7d75e93fa79cf05d7a21774e149c0f documents that if
if_tunnel.h includes linux/ip.h it will break userspace, and puts it
under #ifdef __KERNEL__.

Rich

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.