bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: broken OpenBSD <net/if.h> [was: [libvirt] [PATCH] Include some extra


From: Jasper Lievisse Adriaanse
Subject: Re: broken OpenBSD <net/if.h> [was: [libvirt] [PATCH] Include some extra headers needed for OpenBSD.]
Date: Thu, 6 Sep 2012 23:41:05 +0200
User-agent: Mutt/1.5.21 (2010-09-15)

On Tue, Sep 04, 2012 at 11:37:30AM -0600, Eric Blake wrote:
> On 09/04/2012 11:23 AM, Jasper Lievisse Adriaanse wrote:
> > On Tue, Sep 04, 2012 at 11:08:30AM -0600, Eric Blake wrote:
> >> [adding gnulib]
> >>
> >> Ouch.  The POSIX definition of <net/if.h> doesn't include any interface
> >> that needs to use struct sockaddr.  Which OpenBSD extension function is
> >> triggering this warning? According to POSIX, this .c file should compile:
> >>
> >> #define _POSIX_C_SOURCE 200809L
> >> #include <net/if.h>
> >> #include <sys/socket.h>
> >> struct if_nameindex i;
> >>
> 
> > That snippet of example code does not compile on OpenBSD:
> > 
> > In file included from foo.c:2:
> > /usr/include/net/if.h:112: error: expected specifier-qualifier-list before 
> > 'u_int'
> 
> > 
> > Could you please reference where POSIX states it should, so this can 
> > hopefully
> > get fixed in OpenBSD.
> 
> http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/net_if.h.html#tag_13_30
> doesn't mention any prerequisite headers for <net/if.h>.  Furthermore,
> looking at each of the functions in that header, none of them call out a
> prerequisite:
> http://pubs.opengroup.org/onlinepubs/9699919799/functions/if_freenameindex.html#
> http://pubs.opengroup.org/onlinepubs/9699919799/functions/if_indextoname.html#
> http://pubs.opengroup.org/onlinepubs/9699919799/functions/if_nameindex.html#
> http://pubs.opengroup.org/onlinepubs/9699919799/functions/if_nametoindex.html#
> 
> If a header cannot be used in isolation, then POSIX would call out
> multiple headers.  For comparison, here's a case where POSIX 2008 _does_
> call out multiple headers:
> http://pubs.opengroup.org/onlinepubs/9699919799/functions/creat.html
> 
> creat() cannot use the S_IRUSR and other constants for its mode_t
> argument unless you also include <sys/stat.h>, since <fcntl.h> was not
> required to be self-contained on that front (there's talk underway about
> getting that fixed in the next version of POSIX, but that's another
> story... http://austingroupbugs.net/view.php?id=591)
> 
> -- 
> Eric Blake   address@hidden    +1-919-301-3266
> Libvirt virtualization library http://libvirt.org

A diff for the OpenBSD header file has been created and is currently being
tested. So this should be fixed pretty soon (and in time for OpenBSD 5.3).

-- 
Cheers,
Jasper

"Stay Hungry. Stay Foolish"



reply via email to

[Prev in Thread] Current Thread [Next in Thread]