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