]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
cygwin/mingw: Fix version script handling
authorMatthias Bolte <matthias.bolte@googlemail.com>
Tue, 27 Apr 2010 07:43:55 +0000 (09:43 +0200)
committerMatthias Bolte <matthias.bolte@googlemail.com>
Wed, 28 Apr 2010 21:49:00 +0000 (23:49 +0200)
Let configure detect ld instead of hardcoding /usr/bin/ld, because
MinGW may have ld in /bin.

Only use a .def file to export symbols on MinGW. Cygwin's ld supports
the normal .syms file used on Linux.

configure.ac

index e8c71cf7ccd52a60cc35878a672e5d52ad4e32a1..f883ef75a7e7ee51395deead7306514c93fb3a72 100644 (file)
@@ -73,9 +73,10 @@ AC_LIBTOOL_WIN32_DLL
 
 AM_PROG_LIBTOOL
 AM_PROG_CC_C_O
+AM_PROG_LD
 
 VERSION_SCRIPT_FLAGS=-Wl,--version-script=
-`/usr/bin/ld --help 2>&1 | grep -- --version-script >/dev/null` || \
+`$LD --help 2>&1 | grep -- --version-script >/dev/null` || \
     VERSION_SCRIPT_FLAGS="-Wl,-M -Wl,"
 AC_SUBST(VERSION_SCRIPT_FLAGS)
 
@@ -1816,9 +1817,17 @@ case "$host" in
     if test "x$enable_shared" = "xno"; then
       WIN32_EXTRA_CFLAGS="-DLIBVIRT_STATIC"
     fi
+esac
+case "$host" in
+  *-*-mingw* | *-*-msvc* )
     # Also set the symbol file to .def, so src/Makefile generates libvirt.def
     # from libvirt.syms and passes libvirt.def instead of libvirt.syms to the linker
     LIBVIRT_SYMBOL_FILE=libvirt.def
+    # mingw's ld has the --version-script parameter, but it requires a .def file
+    # instead to work properly, therefore clear --version-script here
+    # cygwin's ld has the --version-script parameter too, but for some reason
+    # it's working there as expected
+    VERSION_SCRIPT_FLAGS=
     ;;
 esac
 AC_SUBST([CYGWIN_EXTRA_LDFLAGS])