On 12/16/2011 02:08 AM, Daniel P. Berrange wrote:
On Wed, Dec 14, 2011 at 11:02:23AM -0700, Eric Blake wrote:
> Many times, we don't notice a bug in src/libvirt_private.syms
> until someone attempts a build with modules enabled. Likewise,
> some gcc warnings about no % in a printf format string only
> appear under --disable-nls. And configure.ac should automatically
> be excluding modules on mingw without us having to be explicit.
> Improving autobuild.sh to stress more combinations can only help.
>
> * autobuild.sh: Add --with-driver-modules and --disable-nls. Update
> mingw build to rely more on configure.ac detection.
> ---
> @@ -71,23 +76,7 @@ if [ -x /usr/bin/i686-pc-mingw32-gcc ]; then
> --host=i686-pc-mingw32 \
> --prefix="$AUTOBUILD_INSTALL_ROOT/i686-pc-mingw32/sys-root/mingw" \
> --enable-compile-warnings=error \
> - --without-xen \
> - --without-qemu \
> - --without-openvz \
> - --without-lxc \
> - --without-vbox \
> - --without-xenapi \
> - --without-uml \
> - --without-sasl \
> - --without-avahi \
> - --without-polkit \
> - --without-python \
> - --without-libvirtd \
> - --without-phyp \
> - --without-hyperv \
> - --without-netcf \
> - --without-audit \
> - --without-dtrace \
> + --without-libvirtd
It turns out we don't disable dtrace correctly on mingw32, if the build
host has it present for native. So we either need to fix configure.ac
or add --without-dtrace back in.
I'm pushing this under the build-breaker rule, which gets me to the next
build failure that I'll be patching soon:
Creating library file: .libs/libvirt.dll.a
Cannot export virDomainEventDispatch: symbol not defined
Cannot export virDomainEventDispatchDefaultFunc: symbol not defined
Cannot export virDomainEventStateFlush: symbol not defined
From 0beb0ee16dce791651d8ca89deb8259ce004acb6 Mon Sep 17 00:00:00 2001
From: Eric Blake <eblake(a)redhat.com>
Date: Fri, 16 Dec 2011 08:35:17 -0700
Subject: [PATCH] build: disable dtrace on non-Linux builds
Using dtrace (and systemtap in general) is Linux-specific.
Running ./autobuild.sh shows that attempting a cross-build to
target mingw was mistakenly trying to build dtrace code, merely
because it was present on the compilation host.
* configure.ac (with_dtrace): Don't attempt to use dtrace when
doing a cross-build hosted on Linux but targetting elsewhere.
Reported by Daniel P. Berrange.
---
configure.ac | 8 ++++++---
1 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/configure.ac b/configure.ac
index 01a2bae..ec3e470 100644
--- a/configure.ac
+++ b/configure.ac
@@ -269,9 +269,10 @@ if test "$prefix" = "/usr" && test
"$sysconfdir" =
'${prefix}/etc' ; then
fi
dnl Make some notes about which OS we're compiling for, as the lxc and qemu
-dnl drivers require linux headers, while storage_mpath and nwfilter are
also
-dnl linux specific. The "network" and storage_fs drivers are known to not
-dnl work on MacOS X presently, so we also make a note if compiling for that
+dnl drivers require linux headers, and storage_mpath, dtrace, and nwfilter
+dnl are also linux specific. The "network" and storage_fs drivers are
known
+dnl to not work on MacOS X presently, so we also make a note if compiling
+dnl for that
with_linux=no with_osx=no
case $host in
@@ -288,6 +289,7 @@ if test $with_linux = no; then
then
with_qemu=no
fi
+ with_dtrace=no
fi
AM_CONDITIONAL([WITH_LINUX], [test "$with_linux" = "yes"])
--
1.7.7.4
--
Eric Blake eblake(a)redhat.com +1-919-301-3266
Libvirt virtualization library
http://libvirt.org