Message ID | 20170320135708.GV17887@stefanha-x1.localdomain (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 20 March 2017 at 13:57, Stefan Hajnoczi <stefanha@gmail.com> wrote: > 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. This seems like a pkg-config config file bug to me. > 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 > + I know this is just a "let's see if this works" patch, but some notes for if this becomes a real patch later: If we work around this packaging bug in our configure script we should have a comment stating that it's a workaround for a packaging bug, and we should probably restrict it to only being done for Windows builds. thanks -- PMM
On Mon, Mar 20, 2017 at 3:57 PM, Stefan Hajnoczi <stefanha@gmail.com> wrote: > 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 > + > Yes! this works thank you =) > for i in $glib_modules; do > if $pkg_config --atleast-version=$glib_req_ver $i; then > glib_cflags=$($pkg_config --cflags $i) >
Just to make it clear, Stefan you are going to send a patch right? On Mon, Mar 20, 2017 at 5:44 PM, Sameeh Jubran <sameeh@daynix.com> wrote: > > > On Mon, Mar 20, 2017 at 3:57 PM, Stefan Hajnoczi <stefanha@gmail.com> > wrote: > >> 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 >> + >> > Yes! this works thank you =) > >> for i in $glib_modules; do >> if $pkg_config --atleast-version=$glib_req_ver $i; then >> glib_cflags=$($pkg_config --cflags $i) >> > > > > -- > Respectfully, > *Sameeh Jubran* > *Linkedin <https://il.linkedin.com/pub/sameeh-jubran/87/747/a8a>* > *Software Engineer @ Daynix <http://www.daynix.com>.* >
On Tue, Mar 21, 2017 at 11:23:39AM +0200, Sameeh Jubran wrote: > Just to make it clear, > > Stefan you are going to send a patch right? I see you've sent a patch. Please go ahead with it. Stefan
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)