Re: [Qemu-devel] [PATCH v5 01/18] Add hard build dependency on glib
--- On Tue, 7/26/11, Kenneth Salerno wrote: > From: Kenneth Salerno > Subject: Re: [Qemu-devel] [PATCH v5 01/18] Add hard build dependency on glib > To: qemu-devel@nongnu.org > Date: Tuesday, July 26, 2011, 10:02 AM > From: Michael > Roth > Subject: [Qemu-devel] [PATCH v5 01/18] > Add hard build dependency on glib > Date: Tue, 5 Jul 2011 08:02:28 -0500 > > > From: Anthony Liguori > > > > GLib is an extremely common library that has a > portable thread implementation > > along with tons of other goodies. > > > > GLib and GObject have a fantastic amount of > infrastructure we can leverage in > > QEMU including an object oriented programming > infrastructure. > > > > Short term, it has a very nice thread pool > implementation that we could leverage > > in something like virtio-9p. It also has a test > harness implementation that > > this series will use. > > > > Signed-off-by: Anthony Liguori > > Signed-off-by: Michael Roth > > --- > > Makefile | 2 > ++ > > Makefile.objs | 2 ++ > > Makefile.target | 1 + > > configure > | 13 + > > 4 files changed, 18 insertions(+), 0 deletions(-) > > > > diff --git a/Makefile b/Makefile > > index b3ffbe2..42ae4e5 100644 > > --- a/Makefile > > +++ b/Makefile > > @@ -106,6 +106,8 @@ audio/audio.o audio/fmodaudio.o: > QEMU_CFLAGS += > > $(FMOD_CFLAGS) > > > > QEMU_CFLAGS+=$(CURL_CFLAGS) > > > > +QEMU_CFLAGS+=$(GLIB_CFLAGS) > > + > > ui/cocoa.o: ui/cocoa.m > > > > ui/sdl.o audio/sdlaudio.o ui/sdl_zoom.o baum.o: > QEMU_CFLAGS += $(SDL_CFLAGS) > > diff --git a/Makefile.objs b/Makefile.objs > > index cea15e4..493c988 100644 > > --- a/Makefile.objs > > +++ b/Makefile.objs > > @@ -376,3 +376,5 @@ vl.o: > QEMU_CFLAGS+=$(GPROF_CFLAGS) > > > > vl.o: QEMU_CFLAGS+=$(SDL_CFLAGS) > > > > +vl.o: QEMU_CFLAGS+=$(GLIB_CFLAGS) > > + > > diff --git a/Makefile.target b/Makefile.target > > index a53a2ff..b8256ae 100644 > > --- a/Makefile.target > > +++ b/Makefile.target > > @@ -203,6 +203,7 @@ QEMU_CFLAGS += $(VNC_TLS_CFLAGS) > > QEMU_CFLAGS += $(VNC_SASL_CFLAGS) > > QEMU_CFLAGS += $(VNC_JPEG_CFLAGS) > > QEMU_CFLAGS += $(VNC_PNG_CFLAGS) > > +QEMU_CFLAGS += $(GLIB_CFLAGS) > > > > # xen backend driver support > > obj-i386-$(CONFIG_XEN) += xen_machine_pv.o > xen_domainbuild.o > > diff --git a/configure b/configure > > index 88159ac..63156a2 100755 > > --- a/configure > > +++ b/configure > > @@ -1803,6 +1803,18 @@ EOF > > fi > > > ## > > +# glib support probe > > +if $pkg_config --modversion gthread-2.0 gio-2.0 > > /dev/null 2>&1 ; then > > + glib_cflags=`$pkg_config --cflags > gthread-2.0 gio-2.0 2>/dev/null` > > + glib_libs=`$pkg_config --libs > gthread-2.0 gio-2.0 2>/dev/null` > > + libs_softmmu="$glib_libs > $libs_softmmu" > > + libs_tools="$glib_libs $libs_tools" > > +else > > + echo "glib-2.0 required to compile > QEMU" > > + exit 1 > > +fi > > + > > +## > > # pthread probe > > PTHREADLIBS_LIST="-lpthread -lpthreadGC2" > > > > @@ -2849,6 +2861,7 @@ if test "$bluez" = "yes" ; then > > echo "CONFIG_BLUEZ=y" >> > $config_host_mak > > echo "BLUEZ_CFLAGS=$bluez_cflags" > >> $config_host_mak > > fi > > +echo "GLIB_CFLAGS=$glib_cflags" >> > $config_host_mak > > if test "$xen" = "yes" ; then > > echo "CONFIG_XEN=y" >> > $config_host_mak > > echo > "CONFIG_XEN_CTRL_INTERFACE_VERSION=$xen_ctrl_version" > >> > > $config_host_mak > > -- > > 1.7.0.4 > > > > That sounds like a good idea, especially if it will help > resolve the multi-threading issue in Cygwin which creates > the need to pin QEMU to one CPU core. > > However, this has broken the MinGW build in Cygwin because > there is no Glib2 (or gettext or libiconv) built and > distributed for MinGW by the Cygwin project which means I > now have to compile those packages myself as a prerequisite > if I want to try to build the latest snapshot of QEMU > development code (and future releases of QEMU stable for > that matter)... > Ignore. My apologies - I didn't have pkg-config installed. Ken
Re: [Qemu-devel] [PATCH v5 01/18] Add hard build dependency on glib
From: Michael Roth Subject:[Qemu-devel] [PATCH v5 01/18] Add hard build dependency on glib Date: Tue, 5 Jul 2011 08:02:28 -0500 > From: Anthony Liguori > > GLib is an extremely common library that has a portable thread implementation > along with tons of other goodies. > > GLib and GObject have a fantastic amount of infrastructure we can leverage in > QEMU including an object oriented programming infrastructure. > > Short term, it has a very nice thread pool implementation that we could > leverage > in something like virtio-9p. It also has a test harness implementation that > this series will use. > > Signed-off-by: Anthony Liguori > Signed-off-by: Michael Roth > --- > Makefile|2 ++ > Makefile.objs |2 ++ > Makefile.target |1 + > configure | 13 + > 4 files changed, 18 insertions(+), 0 deletions(-) > > diff --git a/Makefile b/Makefile > index b3ffbe2..42ae4e5 100644 > --- a/Makefile > +++ b/Makefile > @@ -106,6 +106,8 @@ audio/audio.o audio/fmodaudio.o: QEMU_CFLAGS += > $(FMOD_CFLAGS) > > QEMU_CFLAGS+=$(CURL_CFLAGS) > > +QEMU_CFLAGS+=$(GLIB_CFLAGS) > + > ui/cocoa.o: ui/cocoa.m > > ui/sdl.o audio/sdlaudio.o ui/sdl_zoom.o baum.o: QEMU_CFLAGS += $(SDL_CFLAGS) > diff --git a/Makefile.objs b/Makefile.objs > index cea15e4..493c988 100644 > --- a/Makefile.objs > +++ b/Makefile.objs > @@ -376,3 +376,5 @@ vl.o: QEMU_CFLAGS+=$(GPROF_CFLAGS) > > vl.o: QEMU_CFLAGS+=$(SDL_CFLAGS) > > +vl.o: QEMU_CFLAGS+=$(GLIB_CFLAGS) > + > diff --git a/Makefile.target b/Makefile.target > index a53a2ff..b8256ae 100644 > --- a/Makefile.target > +++ b/Makefile.target > @@ -203,6 +203,7 @@ QEMU_CFLAGS += $(VNC_TLS_CFLAGS) > QEMU_CFLAGS += $(VNC_SASL_CFLAGS) > QEMU_CFLAGS += $(VNC_JPEG_CFLAGS) > QEMU_CFLAGS += $(VNC_PNG_CFLAGS) > +QEMU_CFLAGS += $(GLIB_CFLAGS) > > # xen backend driver support > obj-i386-$(CONFIG_XEN) += xen_machine_pv.o xen_domainbuild.o > diff --git a/configure b/configure > index 88159ac..63156a2 100755 > --- a/configure > +++ b/configure > @@ -1803,6 +1803,18 @@ EOF > fi > ## > +# glib support probe > +if $pkg_config --modversion gthread-2.0 gio-2.0 > /dev/null 2>&1 ; then > +glib_cflags=`$pkg_config --cflags gthread-2.0 gio-2.0 2>/dev/null` > +glib_libs=`$pkg_config --libs gthread-2.0 gio-2.0 2>/dev/null` > +libs_softmmu="$glib_libs $libs_softmmu" > +libs_tools="$glib_libs $libs_tools" > +else > +echo "glib-2.0 required to compile QEMU" > +exit 1 > +fi > + > +## > # pthread probe > PTHREADLIBS_LIST="-lpthread -lpthreadGC2" > > @@ -2849,6 +2861,7 @@ if test "$bluez" = "yes" ; then >echo "CONFIG_BLUEZ=y" >> $config_host_mak >echo "BLUEZ_CFLAGS=$bluez_cflags" >> $config_host_mak > fi > +echo "GLIB_CFLAGS=$glib_cflags" >> $config_host_mak > if test "$xen" = "yes" ; then >echo "CONFIG_XEN=y" >> $config_host_mak >echo "CONFIG_XEN_CTRL_INTERFACE_VERSION=$xen_ctrl_version" >> > $config_host_mak > -- > 1.7.0.4 That sounds like a good idea, especially if it will help resolve the multi-threading issue in Cygwin which creates the need to pin QEMU to one CPU core. However, this has broken the MinGW build in Cygwin because there is no Glib2 (or gettext or libiconv) built and distributed for MinGW by the Cygwin project which means I now have to compile those packages myself as a prerequisite if I want to try to build the latest snapshot of QEMU development code (and future releases of QEMU stable for that matter)...
[Qemu-devel] [PATCH v5 01/18] Add hard build dependency on glib
From: Anthony Liguori GLib is an extremely common library that has a portable thread implementation along with tons of other goodies. GLib and GObject have a fantastic amount of infrastructure we can leverage in QEMU including an object oriented programming infrastructure. Short term, it has a very nice thread pool implementation that we could leverage in something like virtio-9p. It also has a test harness implementation that this series will use. Signed-off-by: Anthony Liguori Signed-off-by: Michael Roth --- Makefile|2 ++ Makefile.objs |2 ++ Makefile.target |1 + configure | 13 + 4 files changed, 18 insertions(+), 0 deletions(-) diff --git a/Makefile b/Makefile index b3ffbe2..42ae4e5 100644 --- a/Makefile +++ b/Makefile @@ -106,6 +106,8 @@ audio/audio.o audio/fmodaudio.o: QEMU_CFLAGS += $(FMOD_CFLAGS) QEMU_CFLAGS+=$(CURL_CFLAGS) +QEMU_CFLAGS+=$(GLIB_CFLAGS) + ui/cocoa.o: ui/cocoa.m ui/sdl.o audio/sdlaudio.o ui/sdl_zoom.o baum.o: QEMU_CFLAGS += $(SDL_CFLAGS) diff --git a/Makefile.objs b/Makefile.objs index cea15e4..493c988 100644 --- a/Makefile.objs +++ b/Makefile.objs @@ -376,3 +376,5 @@ vl.o: QEMU_CFLAGS+=$(GPROF_CFLAGS) vl.o: QEMU_CFLAGS+=$(SDL_CFLAGS) +vl.o: QEMU_CFLAGS+=$(GLIB_CFLAGS) + diff --git a/Makefile.target b/Makefile.target index a53a2ff..b8256ae 100644 --- a/Makefile.target +++ b/Makefile.target @@ -203,6 +203,7 @@ QEMU_CFLAGS += $(VNC_TLS_CFLAGS) QEMU_CFLAGS += $(VNC_SASL_CFLAGS) QEMU_CFLAGS += $(VNC_JPEG_CFLAGS) QEMU_CFLAGS += $(VNC_PNG_CFLAGS) +QEMU_CFLAGS += $(GLIB_CFLAGS) # xen backend driver support obj-i386-$(CONFIG_XEN) += xen_machine_pv.o xen_domainbuild.o diff --git a/configure b/configure index 88159ac..63156a2 100755 --- a/configure +++ b/configure @@ -1803,6 +1803,18 @@ EOF fi ## +# glib support probe +if $pkg_config --modversion gthread-2.0 gio-2.0 > /dev/null 2>&1 ; then +glib_cflags=`$pkg_config --cflags gthread-2.0 gio-2.0 2>/dev/null` +glib_libs=`$pkg_config --libs gthread-2.0 gio-2.0 2>/dev/null` +libs_softmmu="$glib_libs $libs_softmmu" +libs_tools="$glib_libs $libs_tools" +else +echo "glib-2.0 required to compile QEMU" +exit 1 +fi + +## # pthread probe PTHREADLIBS_LIST="-lpthread -lpthreadGC2" @@ -2849,6 +2861,7 @@ if test "$bluez" = "yes" ; then echo "CONFIG_BLUEZ=y" >> $config_host_mak echo "BLUEZ_CFLAGS=$bluez_cflags" >> $config_host_mak fi +echo "GLIB_CFLAGS=$glib_cflags" >> $config_host_mak if test "$xen" = "yes" ; then echo "CONFIG_XEN=y" >> $config_host_mak echo "CONFIG_XEN_CTRL_INTERFACE_VERSION=$xen_ctrl_version" >> $config_host_mak -- 1.7.0.4