[libvirt] [PATCH] build: fix some mingw issues

Eric Blake eblake at redhat.com
Wed Jun 2 21:53:12 UTC 2010


On Fedora 13 with sufficient mingw32-* packages installed, running
./autobuild.sh failed to cross-compile to mingw because
mingw32-pthreads installed a broken <pthread.h>.  With that
issue fixed, the build still failed due to use of O_SYNC.

Meanwhile, recent .spec.in changes got out of sync, and running
./autobuild.sh generates some leftover files worth ignoring.

* bootstrap.conf (gnulib_modules): Add fcntl-h, for O_SYNC.
* .gnulib: Update to latest, to work around buggy pthreads-win32
library.
* bootstrap: Import latest from gnulib.
* mingw32-libvirt.spec.in: Distribute new file.
* .gitignore: Ignore files built by ./autobuild.sh.
---

Took me the better part of a day to track all of this down,
but I got back to the point where ./autobuild.sh works
when you have a mingw cross-compiler installed.

 .gitignore              |    4 ++++
 .gnulib                 |    2 +-
 bootstrap               |   14 ++++++++------
 bootstrap.conf          |    1 +
 mingw32-libvirt.spec.in |    1 +
 5 files changed, 15 insertions(+), 7 deletions(-)

diff --git a/.gitignore b/.gitignore
index 39ed671..fee8f8e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,6 +12,10 @@
 /GNUmakefile
 /libvirt-[0-9]*
 /maint.mk
+/tools/virsh-console.gcda
+/tools/virsh-console.gcno
+/tools/virsh-virsh.gcda
+/tools/virsh-virsh.gcno
 ABOUT-NLS
 COPYING
 ChangeLog
diff --git a/.gnulib b/.gnulib
index 28e5820..df6774c 160000
--- a/.gnulib
+++ b/.gnulib
@@ -1 +1 @@
-Subproject commit 28e58203a7ab14264f8fa450884a89e9ae48025c
+Subproject commit df6774c09485e6b0f31f4659eb55d50c68c008a8
diff --git a/bootstrap b/bootstrap
index 365a3d9..2422549 100755
--- a/bootstrap
+++ b/bootstrap
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Print a version string.
-scriptversion=2010-02-24.17; # UTC
+scriptversion=2010-05-17.18; # UTC

 # Bootstrap this package from checked-out sources.

@@ -409,6 +409,7 @@ git_modules_config () {
 }

 gnulib_path=`git_modules_config submodule.gnulib.path`
+: ${gnulib_path=gnulib}

 # Get gnulib files.

@@ -424,7 +425,8 @@ case ${GNULIB_SRCDIR--} in

     trap cleanup_gnulib 1 2 13 15

-    git clone --help|grep depth > /dev/null && shallow='--depth 2' || shallow=
+    shallow=
+    git clone -h 2>&1 | grep -- --depth > /dev/null && shallow='--depth 2'
     git clone $shallow git://git.sv.gnu.org/gnulib "$gnulib_path" ||
       cleanup_gnulib

@@ -437,7 +439,7 @@ case ${GNULIB_SRCDIR--} in
   if test -d "$GNULIB_SRCDIR"/.git && \
         git_modules_config submodule.gnulib.url >/dev/null; then
     echo "$0: getting gnulib files..."
-    if git submodule --help|grep reference > /dev/null; then
+    if git submodule -h|grep -- --reference > /dev/null; then
       # Prefer the one-liner available in git 1.6.4 or newer.
       git submodule update --init --reference "$GNULIB_SRCDIR" \
         "$gnulib_path" || exit $?
@@ -488,7 +490,7 @@ update_po_files() {
   test -d $ref_po_dir || mkdir $ref_po_dir || return
   download_po_files $ref_po_dir $domain \
     && ls "$ref_po_dir"/*.po 2>/dev/null |
-      sed 's|.*/||; s|\.po$||' > "$po_dir/LINGUAS"
+      sed 's|.*/||; s|\.po$||' > "$po_dir/LINGUAS" || return

   langs=`cd $ref_po_dir && echo *.po|sed 's/\.po//g'`
   test "$langs" = '*' && langs=x
@@ -819,7 +821,7 @@ if test $with_gettext = yes; then
       a\
           '"$XGETTEXT_OPTIONS"' $${end_of_xgettext_options+}
     }
-  ' po/Makevars.template >po/Makevars
+  ' po/Makevars.template >po/Makevars || exit 1

   if test -d runtime-po; then
     # Similarly for runtime-po/Makevars, but not quite the same.
@@ -833,7 +835,7 @@ if test $with_gettext = yes; then
         a\
             '"$XGETTEXT_OPTIONS_RUNTIME"' $${end_of_xgettext_options+}
       }
-    ' <po/Makevars.template >runtime-po/Makevars
+    ' po/Makevars.template >runtime-po/Makevars || exit 1

     # Copy identical files from po to runtime-po.
     (cd po && cp -p Makefile.in.in *-quot *.header *.sed *.sin ../runtime-po)
diff --git a/bootstrap.conf b/bootstrap.conf
index 1e193d9..44d6d0e 100644
--- a/bootstrap.conf
+++ b/bootstrap.conf
@@ -27,6 +27,7 @@ close
 connect
 count-one-bits
 dirname-lgpl
+fcntl-h
 getaddrinfo
 gethostname
 getpass
diff --git a/mingw32-libvirt.spec.in b/mingw32-libvirt.spec.in
index fc90203..6b2b5c6 100644
--- a/mingw32-libvirt.spec.in
+++ b/mingw32-libvirt.spec.in
@@ -91,6 +91,7 @@ rm -rf $RPM_BUILD_ROOT
 %dir %{_mingw32_datadir}/libvirt/
 %dir %{_mingw32_datadir}/libvirt/schemas/
 %{_mingw32_datadir}/libvirt/schemas/domain.rng
+%{_mingw32_datadir}/libvirt/schemas/domainsnapshot.rng
 %{_mingw32_datadir}/libvirt/schemas/network.rng
 %{_mingw32_datadir}/libvirt/schemas/storagepool.rng
 %{_mingw32_datadir}/libvirt/schemas/storagevol.rng
-- 
1.7.0.1




More information about the libvir-list mailing list