[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] qemu-ga static compilation
From: |
Stefan Hajnoczi |
Subject: |
Re: [Qemu-devel] qemu-ga static compilation |
Date: |
Mon, 20 Mar 2017 13:57:08 +0000 |
User-agent: |
Mutt/1.7.1 (2016-10-04) |
On Tue, Mar 14, 2017 at 06:51:37PM +0200, Sameeh Jubran wrote:
> I am trying to compile qemu-ga for Windows statically using the following
> commands:
>
> ./configure --disable-docs --target-list=x86_64-softmmu
> --cross-prefix=x86_64-w64-mingw32- --static --enable-guest-agent-msi
> --with-vss-sdk=/path/to/VSSSDK72
>
> make -j8 qemu-ga
>
>
> And I keep getting this error:
>
> /home/sameeh/Builds/q/stubs/error-printf.c:7: undefined reference to
> `__imp_g_test_config_vars'
> collect2: error: ld returned 1 exit status
> Makefile:444: recipe for target 'qemu-ga.exe' failed
> make: *** [qemu-ga.exe] Error 1
>
>
> Notes to consider:
> * without --static I can compile it successfully
> * Build machine is running Fedora 25
> * I have upgraded all of the tools to their latest version
> * If I comment out the function which is causing the issue
> (g_test_initialized()), qemu ga compiles statically and runs successfully
> without the need of any dlls.
>
> Can anyone reproduce this? Do you have any idea why is this happening?
I guess GLIB_STATIC_COMPILATION is not defined in your build (see the
definition of GLIB_VAR in the glib headers).
The pkg-config file for glib doesn't define GLIB_STATIC_COMPILATION for
pkg-config --static. I guess we must add it manually.
Does this work?
diff --git a/configure b/configure
index 99d8bec..10f23b7 100755
--- a/configure
+++ b/configure
@@ -3047,6 +3047,10 @@ if test "$modules" = yes; then
glib_modules="$glib_modules gmodule-2.0"
fi
+if test "$static" = yes; then
+ QEMU_CFLAGS="-DGLIB_STATIC_COMPILATION $QEMU_CFLAGS"
+fi
+
for i in $glib_modules; do
if $pkg_config --atleast-version=$glib_req_ver $i; then
glib_cflags=$($pkg_config --cflags $i)
signature.asc
Description: PGP signature