Subject: iproute2: Make linux/in6.h a stub?

From: Felix Janda <[email-masked]>
Date: Sat, 25 Apr 2015 22:54:11 +0200

Hello.

Background:
Current iproute2 does not build when the libc is musl instead of glibc.
This is because of redefinition of in6_addr in netinet/in.h and
linux/in6.h. There are workarounds in linux/libc-compat.h to make it
somehow work for glibc.

As I can see linux/in6.h is only indirectly used via the other kernel
headers linux/if_bridge.h and linux/xfrm.h. These in turn include
linux/in6.h only in order to get a declaration of in6_addr.

Since iproute2 depends on the fact that in6_addr is defined in
<netinet/in.h> it should be safe to replace the content of linux/in6.h
by

#include <netinet/in.h>

This completely removes the possibility for redefinition of in6_addr
for any libc. Since linux/in6.h is anyway a patched kernel header, such
a change should also not increase the work needed to sync with newer
kernel headers.

Would it be possible to implement such a change?

Felix