configure | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Attempting to compile qemu-ga statically as follows for Windows causes
the following error:
Compilation:
./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
Error:
path/to/qemu/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
This is caused by a bug in the pkg-config file for glib as it doesn't define
GLIB_STATIC_COMPILATION for pkg-config --static.
Signed-off-by: Stefan Hajnoczi <stefanha@gmail.com>
Signed-off-by: Sameeh Jubran <sameeh@daynix.com>
---
configure | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configure b/configure
index b9a30cf..6f7b460 100755
--- a/configure
+++ b/configure
@@ -4138,7 +4138,7 @@ int main(void) { return VSS_CTX_BACKUP; }
EOF
if compile_prog "$vss_win32_include" "" ; then
guest_agent_with_vss="yes"
- QEMU_CFLAGS="$QEMU_CFLAGS $vss_win32_include"
+ QEMU_CFLAGS="-DGLIB_STATIC_COMPILATION $QEMU_CFLAGS $vss_win32_include"
libs_qga="-lole32 -loleaut32 -lshlwapi -lstdc++ -Wl,--enable-stdcall-fixup $libs_qga"
qga_vss_provider="qga/vss-win32/qga-vss.dll qga/vss-win32/qga-vss.tlb"
else
--
2.9.3
On 22 March 2017 at 13:09, Sameeh Jubran <sameeh@daynix.com> wrote: > Attempting to compile qemu-ga statically as follows for Windows causes > the following error: > > Compilation: > ./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 > > Error: > path/to/qemu/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 > > This is caused by a bug in the pkg-config file for glib as it doesn't define > GLIB_STATIC_COMPILATION for pkg-config --static. > > Signed-off-by: Stefan Hajnoczi <stefanha@gmail.com> > Signed-off-by: Sameeh Jubran <sameeh@daynix.com> > @@ -4138,7 +4138,7 @@ int main(void) { return VSS_CTX_BACKUP; } > EOF > if compile_prog "$vss_win32_include" "" ; then > guest_agent_with_vss="yes" > - QEMU_CFLAGS="$QEMU_CFLAGS $vss_win32_include" > + QEMU_CFLAGS="-DGLIB_STATIC_COMPILATION $QEMU_CFLAGS $vss_win32_include" > libs_qga="-lole32 -loleaut32 -lshlwapi -lstdc++ -Wl,--enable-stdcall-fixup $libs_qga" > qga_vss_provider="qga/vss-win32/qga-vss.dll qga/vss-win32/qga-vss.tlb" > else If we need this for static glib compilation we should be adding it where we do the "test for glib and add glib related flags to the CFLAGS", not in the part of configure where we decide that we're compiling the guest agent. Also, please can we have a comment that clearly states why we need this and that we're working around a packaging bug in glib for Windows, please? thanks -- PMM
On Wed, Mar 22, 2017 at 3:21 PM, Peter Maydell <peter.maydell@linaro.org> wrote: > On 22 March 2017 at 13:09, Sameeh Jubran <sameeh@daynix.com> wrote: > > Attempting to compile qemu-ga statically as follows for Windows causes > > the following error: > > > > Compilation: > > ./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 > > > > Error: > > path/to/qemu/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 > > > > This is caused by a bug in the pkg-config file for glib as it doesn't > define > > GLIB_STATIC_COMPILATION for pkg-config --static. > > > > Signed-off-by: Stefan Hajnoczi <stefanha@gmail.com> > > Signed-off-by: Sameeh Jubran <sameeh@daynix.com> > > @@ -4138,7 +4138,7 @@ int main(void) { return VSS_CTX_BACKUP; } > > EOF > > if compile_prog "$vss_win32_include" "" ; then > > guest_agent_with_vss="yes" > > - QEMU_CFLAGS="$QEMU_CFLAGS $vss_win32_include" > > + QEMU_CFLAGS="-DGLIB_STATIC_COMPILATION $QEMU_CFLAGS > $vss_win32_include" > > libs_qga="-lole32 -loleaut32 -lshlwapi -lstdc++ > -Wl,--enable-stdcall-fixup $libs_qga" > > qga_vss_provider="qga/vss-win32/qga-vss.dll > qga/vss-win32/qga-vss.tlb" > > else > > If we need this for static glib compilation we should > be adding it where we do the "test for glib and > add glib related flags to the CFLAGS", not in the > part of configure where we decide that we're > compiling the guest agent. > > Also, please can we have a comment that clearly states > why we need this and that we're working around a > packaging bug in glib for Windows, please? > sure, no problem. > > thanks > -- PMM > -- Respectfully, *Sameeh Jubran* *Linkedin <https://il.linkedin.com/pub/sameeh-jubran/87/747/a8a>* *Software Engineer @ Daynix <http://www.daynix.com>.*
Hi On Wed, Mar 22, 2017 at 5:11 PM Sameeh Jubran <sameeh@daynix.com> wrote: > Attempting to compile qemu-ga statically as follows for Windows causes > the following error: > > Compilation: > ./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 > > Error: > path/to/qemu/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 > weird, I don't get this error on fedora 25 (but I have no vss-sdk, is that related?). > > This is caused by a bug in the pkg-config file for glib as it doesn't > define > GLIB_STATIC_COMPILATION for pkg-config --static. > If that's a bug in glib, it would be nice to have a link to a bug report. > > Signed-off-by: Stefan Hajnoczi <stefanha@gmail.com> > Signed-off-by: Sameeh Jubran <sameeh@daynix.com> > --- > configure | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/configure b/configure > index b9a30cf..6f7b460 100755 > --- a/configure > +++ b/configure > @@ -4138,7 +4138,7 @@ int main(void) { return VSS_CTX_BACKUP; } > EOF > if compile_prog "$vss_win32_include" "" ; then > guest_agent_with_vss="yes" > - QEMU_CFLAGS="$QEMU_CFLAGS $vss_win32_include" > + QEMU_CFLAGS="-DGLIB_STATIC_COMPILATION $QEMU_CFLAGS > $vss_win32_include" > libs_qga="-lole32 -loleaut32 -lshlwapi -lstdc++ > -Wl,--enable-stdcall-fixup $libs_qga" > qga_vss_provider="qga/vss-win32/qga-vss.dll qga/vss-win32/qga-vss.tlb" > else > -- > 2.9.3 > > > -- Marc-André Lureau
On Wed, Mar 22, 2017 at 3:29 PM, Marc-André Lureau < marcandre.lureau@gmail.com> wrote: > Hi > > On Wed, Mar 22, 2017 at 5:11 PM Sameeh Jubran <sameeh@daynix.com> wrote: > >> Attempting to compile qemu-ga statically as follows for Windows causes >> the following error: >> >> Compilation: >> ./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 >> >> Error: >> path/to/qemu/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 >> > > weird, I don't get this error on fedora 25 (but I have no vss-sdk, is that > related?). > Can you please try it with vss-sdk ( https://www.microsoft.com/en-us/download/details.aspx?id=23490) > > >> >> This is caused by a bug in the pkg-config file for glib as it doesn't >> define >> GLIB_STATIC_COMPILATION for pkg-config --static. >> > > If that's a bug in glib, it would be nice to have a link to a bug report. > I've just filed a bug report: https://bugzilla.gnome.org/show_bug.cgi?id=780399 <https://bugzilla.gnome.org/show_bug.cgi?id=780399> > > >> >> Signed-off-by: Stefan Hajnoczi <stefanha@gmail.com> >> Signed-off-by: Sameeh Jubran <sameeh@daynix.com> >> > --- >> configure | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/configure b/configure >> index b9a30cf..6f7b460 100755 >> --- a/configure >> +++ b/configure >> @@ -4138,7 +4138,7 @@ int main(void) { return VSS_CTX_BACKUP; } >> EOF >> if compile_prog "$vss_win32_include" "" ; then >> guest_agent_with_vss="yes" >> - QEMU_CFLAGS="$QEMU_CFLAGS $vss_win32_include" >> + QEMU_CFLAGS="-DGLIB_STATIC_COMPILATION $QEMU_CFLAGS >> $vss_win32_include" >> libs_qga="-lole32 -loleaut32 -lshlwapi -lstdc++ >> -Wl,--enable-stdcall-fixup $libs_qga" >> qga_vss_provider="qga/vss-win32/qga-vss.dll >> qga/vss-win32/qga-vss.tlb" >> else >> -- >> 2.9.3 >> >> >> -- > Marc-André Lureau > -- Respectfully, *Sameeh Jubran* *Linkedin <https://il.linkedin.com/pub/sameeh-jubran/87/747/a8a>* *Software Engineer @ Daynix <http://www.daynix.com>.*
© 2016 - 2024 Red Hat, Inc.