On Tue, Sep 04, 2012 at 10:45:41AM -0600, Eric Blake wrote:
On 09/04/2012 10:23 AM, Jasper Lievisse Adriaanse wrote:
> On Tue, Sep 04, 2012 at 09:18:20AM -0600, Eric Blake wrote:
>> On 09/04/2012 08:57 AM, Jasper Lievisse Adriaanse wrote:
>>> >From bafcb4ed2b90b5ba845ca6b61861e3caa548b16a Mon Sep 17 00:00:00 2001
>>> From: Jasper Lievisse Adriaanse <jasper(a)humppa.nl>
>>> Date: Tue, 4 Sep 2012 16:57:09 +0200
>>> Subject: [PATCH] Include some extra headers needed for OpenBSD.
>>>
>>> ---
>>> src/util/virnetdevbridge.c | 9 +++++++++
>>> 1 files changed, 9 insertions(+), 0 deletions(-)
>>
>> Please show the compiler errors that you got without these includes. I
>> can't help but wonder if you have instead uncovered a bug in the gnulib
>> headers, but knowing which symbols were not declared makes a difference
>> in answering that question.
I'd still like to know the compiler error you got when <sys/socket.h>
was not present, but just guessing from the source code, I see one call
of socket() (protected behind #if defined(HAVE_NET_IF_H) &&
defined(SIOCBRADDBR), but maybe those are both true for OpenBSD?). Even
though I'm pushing, I would STILL like to know why.
Of course, here it is:
In file included from util/virnetdevbridge.c:35:
/usr/include/net/if.h:276: warning: 'struct sockaddr' declared inside
parameter list
/usr/include/net/if.h:276: warning: its scope is only this definition or
declaration, which is probably not what you want
/usr/include/net/if.h:280: warning: 'struct sockaddr' declared inside
parameter list
/usr/include/net/if.h:293: error: 'AF_MAX' undeclared here (not in a function)
/usr/include/net/if.h:606: error: field 'ifru_addr' has incomplete type
/usr/include/net/if.h:607: error: field 'ifru_dstaddr' has incomplete type
/usr/include/net/if.h:608: error: field 'ifru_broadaddr' has incomplete type
/usr/include/net/if.h:626: error: field 'ifra_addr' has incomplete type
/usr/include/net/if.h:627: error: field 'ifra_dstaddr' has incomplete type
/usr/include/net/if.h:629: error: field 'ifra_mask' has incomplete type
/usr/include/net/if.h:673: error: field 'addr' has incomplete type
/usr/include/net/if.h:674: error: field 'dstaddr' has incomplete type
In file included from /usr/include/net/if.h:692,
from util/virnetdevbridge.c:35:
/usr/include/net/if_arp.h:79: error: field 'arp_pa' has incomplete type
/usr/include/net/if_arp.h:80: error: field 'arp_ha' has incomplete type
Error while executing cc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -I../gnulib/lib
-I../gnulib/lib -I../include -I../include -I../src/util -DIN_LIBVIRT
-I/usr/local/include -I/usr/local/include/libxml2 -I/usr/local/include -Wall
-W -Wformat-y2k -Wformat-security -Winit-self -Wmissing-include-dirs -Wunused
-Wunknown-pragmas -Wstrict-aliasing -Wshadow -Wpointer-arith
-Wbad-function-cast -Wcast-align -Wwrite-strings -Wstrict-prototypes
-Wold-style-definition -Wmissing-noreturn -Wmissing-format-attribute
-Wredundant-decls -Wnested-externs -Winline -Winvalid-pch
-Wvolatile-register-var -Wdisabled-optimization -Wattributes
-Wdeprecated-declarations -Wdiv-by-zero -Wendif-labels -Wextra
-Wformat-extra-args -Wformat-zero-length -Wformat=2 -Wmultichar
-Wnormalized=nfc -Woverflow -Wpointer-to-int-cast -Wpragmas -Wtrampolines
-Wno-missing-field-initializers -Wno-sign-compare -Wno-format-nonliteral
-fexceptions -fasynchronous-unwind-tables -fdiagnostics-show-option
-funit-at-a-time -fipa-pure-const -I/usr/local/include/dbus-1.0
-I/usr/local/lib/dbus-1.0/include -O2 -pipe -MT
libvirt_util_la-virnetdevbridge.lo -MD -MP -MF
.deps/libvirt_util_la-virnetdevbridge.Tpo -c util/virnetdevbridge.c -fPIC
-DPIC -o .libs/libvirt_util_la-virnetdevbridge.o
gmake[3]: *** [libvirt_util_la-virnetdevbridge.lo] Error 1
gmake[3]: Leaving directory `/usr/obj/ports/libvirt-0.10.1/libvirt-0.10.1/src'
gmake[2]: *** [all] Error 2
gmake[2]: Leaving directory `/usr/obj/ports/libvirt-0.10.1/libvirt-0.10.1/src'
gmake[1]: *** [all-recursive] Error 1
gmake[1]: Leaving directory `/usr/obj/ports/libvirt-0.10.1/libvirt-0.10.1'
gmake: *** [all] Error 2
>> This line shouldn't be necessary; gnulib guarantees a
working
>> <sys/socket.h> on all architectures.
> OK. Could you please push this one then?
Here's what I squashed in before pushing; I also added you to AUTHORS.
Let me know if you prefer an alternate spelling or email address (the
file is in UTF-8, if that matters).
Thanks, my name and e-mail as I sent them are
ok.
diff --git i/src/util/virnetdevbridge.c w/src/util/virnetdevbridge.c
index 8559223..a29e4b2 100644
--- i/src/util/virnetdevbridge.c
+++ w/src/util/virnetdevbridge.c
@@ -30,14 +30,7 @@
#include "intprops.h"
#include <sys/ioctl.h>
-
-#ifdef HAVE_SYS_PARAM_H
-# include <sys/param.h>
-#endif
-
-#ifdef HAVE_SYS_SOCKET_H
-# include <sys/socket.h>
-#endif
+#include <sys/socket.h>
#ifdef HAVE_NET_IF_H
# include <net/if.h>
--
Eric Blake eblake(a)redhat.com +1-919-301-3266
Libvirt virtualization library
http://libvirt.org
--
Cheers,
Jasper
"Stay Hungry. Stay Foolish"