Date: Sat, 2 Nov 2013 15:34:23 -0400 From: Rich Felker <dalias@...ifal.cx> To: musl@...ts.openwall.com Subject: Re: netinet/if_ether.h and linux/if_ether.h On Sat, Nov 02, 2013 at 08:07:43PM +0100, Szabolcs Nagy wrote: > * Paul Schutte <sjpschutte@...il.com> [2013-11-02 13:18:41 +0000]: > > I am trying to compile openvpn against musl and I get the following: > > > > In file included from /usr/include/linux/if_tun.h:20:0, > > from syshead.h:222, > > from base64.c:40: > > /usr/include/linux/if_ether.h:127:8: error: redefinition of 'struct ethhdr' > > /usr/include/netinet/if_ether.h:93:8: note: originally defined here > > > > yes this was reported earlier but it was not addressed > > there is no clean solution: netinet/if_ether.h should include > linux/if_ether.h so they don't conflict, but then it cannot be > used without the kernel headers > > > I can get it to work by just removing the netinet/if_ether.h part, but > > maybe it is something worthy of your attention. > > netinet/if_ether.h has additional interfaces over the linux/if_ether.h > ones, so this does not work in general I think the proper solution is just to acknowledge that kernel headers and userspace headers are generally not to be used together. In particular things like this should be split into multiple source files. If there are still too many programs that break and can't be fixed easily, maybe we can make a script that removes the conflicting definitions from kernel headers and includes the userspace (libc) headers for them. The other direction is not really acceptable because the kernel folks do not respect namespace (how would you deal with things from the kernel that should be exposed under _GNU_SOURCE but not POSIX?)... 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.