On Tue, 02.02.16 12:33, Jan Synáček (jsyna...@redhat.com) wrote:

> Hello,
> 
> systemd rawhide builds started failing in koji [1]:
> 
> In file included from src/shared/firewall-util.c:23:0:
> /usr/include/linux/if.h:71:2: error: redeclaration of enumerator 'IFF_UP'
>   IFF_UP    = 1<<0,  /* sysfs */
>   ^
> /usr/include/net/if.h:44:5: note: previous definition of 'IFF_UP' was here
>      IFF_UP = 0x1,  /* Interface is up.  */
>      ^
> /usr/include/linux/if.h:72:2: error: redeclaration of enumerator 
> 'IFF_BROADCAST'
>   IFF_BROADCAST   = 1<<1,  /* __volatile__ */
>   ^
> /usr/include/net/if.h:46:5: note: previous definition of 'IFF_BROADCAST' was 
> here
>      IFF_BROADCAST = 0x2, /* Broadcast address valid.  */
>      ^
> ...
> 
> $ rpm -qf /usr/include/linux/if.h /usr/include/net/if.h
> kernel-headers-4.3.4-300.fc23.x86_64
> glibc-headers-2.22-7.fc23.x86_64
> 
> Have there been any changes to these packages in regards to the include files?

Can't say I am surprised by this. THe kernel header linux/if.h is really messy
here and conflicts with glibc's net/if.h header. It's really fragile,
and unless you pull them in a very specific order won't work.

In systemd we ended up replicating quite a bit of these headers so
that we can safely include them, but this doesn't help if the kernel
and glibc API conflict lines change...

I figure the glibc and kernel uapi folks really should figure out who
provides which API so that one can actually use them without
headaches. And other than that it would already be a good start to at
least not break the API so that the fragile inclusion order based
work-around we have in userspace tools doesn't break...

Lennart

-- 
Lennart Poettering, Red Hat
--
devel mailing list
devel@lists.fedoraproject.org
http://lists.fedoraproject.org/admin/lists/devel@lists.fedoraproject.org

Reply via email to