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: Eric Blake
Subject: Re: broken OpenBSD <net/if.h> [was: [libvirt] [PATCH] Include some extra headers needed for OpenBSD.]
Date: Tue, 04 Sep 2012 11:37:30 -0600
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:15.0) Gecko/20120828 Thunderbird/15.0

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

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

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