On 07/05/2011 10:18 PM, Laine Stump wrote:
I realized that PATCH 10/10 would cause the build to fail if someone
did a build --with-qemu but --without-network. I'm squashing the
following into the original patch to remedy that.
I'm not really a fan of putting #if all over the place, but this is
similar to what's done with WITH_MACVTAP, so at least there's
precedence. (This is necessary because this new "backend API" to the
network driver isn't called via a pointer table filled in at runtime,
as is done with the public API).
Would it be any easier to instead guarantee that even when #if
WITH_NETWORK is false, those same symbols are available as no-ops to
allow compilation to proceed?
+#if WITH_NETWORK
/* If appropriate, grab a physical device from the configured
* network's pool of devices, or resolve bridge device name
* to the one defined in the network definition.
*/
if (networkAllocateActualDevice(net) < 0)
goto error;
-
+#endif
That is, make networkAllocateActualDevice() be a no-op that returns 0 if
there is no network support compiled in, and therefore nothing to allocate.
+++ b/tests/Makefile.am
@@ -319,8 +319,11 @@ endif
if WITH_QEMU
-qemu_LDADDS = ../src/libvirt_driver_qemu.la \
- ../src/libvirt_driver_network.la
+qemu_LDADDS = ../src/libvirt_driver_qemu.la
+
+if WITH_NETWORK
+qemu_LDADDS += ../src/libvirt_driver_network.la
+endif
Then again, if you are compiling --without-network, you don't want to
link against a library that won't be built. That would imply that any
no-op stubs would have to be provided by static inline functions in the
header in the no-network case.
--
Eric Blake eblake(a)redhat.com +1-801-349-2682
Libvirt virtualization library
http://libvirt.org