Chris Lalancette <clalance(a)redhat.com> wrote:
Actually, the subject isn't strictly true. Libvirt CVS currently
fails to build
when using this configuration on any platform:
./configure --build=i686-redhat-linux-gnu --host=i686-redhat-linux-gnu
--target=i386-redhat-linux-gnu --program-prefix= --prefix=/usr
--exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc
--datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib
--libexecdir=/usr/libexec --localstatedir=/var --sharedstatedir=/usr/com
--mandir=/usr/share/man --infodir=/usr/share/info --without-xen --without-qemu
--with-init-script=redhat --with-qemud-pid-file=/var/run/libvirt_qemud.pid
--with-remote-file=/var/run/libvirtd.pid
(the important part is the --without-xen --without-qemu in there). This just
happens to be the configuration that koji uses when it is building the ppc
libvirt package. There are a lot of build errors, but they start with:
network_driver.c:64: error: expected specifier-qualifier-list before
'iptablesContext'
network_driver.c: In function 'networkStartup':
network_driver.c:124: error: 'struct network_driver' has no member named
'logDir'
This seems to stem from the new module refactoring. I'm not entirely sure
what's the correct way to fix it, however; I *think* we always want to build the
network_driver at this point, but if that's the case, then we need to make sure
we have the header files for iptablesContext and friends included. Dan, any ideas?
Hi Chris,
FYI, this patch fixes it.
The result builds both on rawhide and for mingw.
From ea7a97d34f1ae04ef6bd1f9584d946a5bc4575b4 Mon Sep 17 00:00:00 2001
From: Jim Meyering <meyering(a)redhat.com>
Date: Thu, 6 Nov 2008 08:42:33 +0100
Subject: [PATCH] always compile iptables.c
Avoid a build error when configuring --without-xen --without-qemu.
* src/iptables.c [WITH_QEMU]: Don't #ifdef-out.
* src/iptables.h [WITH_QEMU]: Don't #ifdef-out.
---
src/iptables.c | 4 ----
src/iptables.h | 6 +-----
2 files changed, 1 insertions(+), 9 deletions(-)
diff --git a/src/iptables.c b/src/iptables.c
index 53e0f41..ad7fddf 100644
--- a/src/iptables.c
+++ b/src/iptables.c
@@ -21,8 +21,6 @@
#include <config.h>
-#if WITH_QEMU
-
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
@@ -1120,5 +1118,3 @@ iptablesRemoveForwardMasquerade(iptablesContext *ctx,
{
return iptablesForwardMasquerade(ctx, network, physdev, REMOVE);
}
-
-#endif /* WITH_QEMU */
diff --git a/src/iptables.h b/src/iptables.h
index 95f07de..fbe9b5d 100644
--- a/src/iptables.h
+++ b/src/iptables.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007 Red Hat, Inc.
+ * Copyright (C) 2007, 2008 Red Hat, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -22,8 +22,6 @@
#ifndef __QEMUD_IPTABLES_H__
#define __QEMUD_IPTABLES_H__
-#if WITH_QEMU
-
typedef struct _iptablesContext iptablesContext;
iptablesContext *iptablesContextNew (void);
@@ -95,6 +93,4 @@ int iptablesRemoveForwardMasquerade (iptablesContext *ctx,
const char *network,
const char *physdev);
-#endif /* WITH_QEMU */
-
#endif /* __QEMUD_IPTABLES_H__ */
--
1.6.0.3.756.gb776d