Message ID | 1299460984-15849-2-git-send-email-aliguori@us.ibm.com |
---|---|
State | New |
Headers | show |
On Sun, Mar 06, 2011 at 07:22:43PM -0600, Anthony Liguori wrote: > 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 <aliguori@us.ibm.com> > > diff --git a/Makefile b/Makefile > index eca4c76..6b1d716 100644 > --- a/Makefile > +++ b/Makefile > @@ -104,6 +104,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 9e98a66..0ba02c7 100644 > --- a/Makefile.objs > +++ b/Makefile.objs > @@ -322,3 +322,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 220589e..0bd42da 100644 > --- a/Makefile.target > +++ b/Makefile.target > @@ -204,6 +204,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-$(CONFIG_XEN) += xen_machine_pv.o xen_domainbuild.o > diff --git a/configure b/configure > index ef51a58..e1305ae 100755 > --- a/configure > +++ b/configure > @@ -1662,6 +1662,18 @@ EOF > fi > > ########################################## > +# glib support probe > +if $pkg_config --modversion gthread-2.0 > /dev/null 2>&1 ; then > + glib_cflags=`$pkg_config --cflags gthread-2.0 2>/dev/null` > + glib_libs=`$pkg_config --libs gthread-2.0 2>/dev/null` > + libs_softmmu="$glib_libs $libs_softmmu" > + libs_tools="$glib_libs $libs_softmmu" > +else > + echo "glib-2.0 required to compile QEMU" > + exit 1 > +fi It would be preferable to specify an explicit '--atleast-version=2.xxx' since I doubt QEMU will work with all 2.x versions of glib. Obviously the min version will limit what platforms QEMU can easily be deployed on, so we need to be as flexible as possible. Regards, Daniel
On 03/07/2011 04:59 AM, Daniel P. Berrange wrote: > On Sun, Mar 06, 2011 at 07:22:43PM -0600, Anthony Liguori wrote: > >> 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<aliguori@us.ibm.com> >> >> diff --git a/Makefile b/Makefile >> index eca4c76..6b1d716 100644 >> --- a/Makefile >> +++ b/Makefile >> @@ -104,6 +104,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 9e98a66..0ba02c7 100644 >> --- a/Makefile.objs >> +++ b/Makefile.objs >> @@ -322,3 +322,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 220589e..0bd42da 100644 >> --- a/Makefile.target >> +++ b/Makefile.target >> @@ -204,6 +204,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-$(CONFIG_XEN) += xen_machine_pv.o xen_domainbuild.o >> diff --git a/configure b/configure >> index ef51a58..e1305ae 100755 >> --- a/configure >> +++ b/configure >> @@ -1662,6 +1662,18 @@ EOF >> fi >> >> ########################################## >> +# glib support probe >> +if $pkg_config --modversion gthread-2.0> /dev/null 2>&1 ; then >> + glib_cflags=`$pkg_config --cflags gthread-2.0 2>/dev/null` >> + glib_libs=`$pkg_config --libs gthread-2.0 2>/dev/null` >> + libs_softmmu="$glib_libs $libs_softmmu" >> + libs_tools="$glib_libs $libs_softmmu" >> +else >> + echo "glib-2.0 required to compile QEMU" >> + exit 1 >> +fi >> > It would be preferable to specify an explicit '--atleast-version=2.xxx' > since I doubt QEMU will work with all 2.x versions of glib. Obviously > the min version will limit what platforms QEMU can easily be deployed > on, so we need to be as flexible as possible. > Yeah, right now, we don't really depend on a specific version but it would be good to have for when we do. The testing bits are not part of the main build (they depend on a pretty recent glib). Regards, Anthony Liguori > Regards, > Daniel >
diff --git a/Makefile b/Makefile index eca4c76..6b1d716 100644 --- a/Makefile +++ b/Makefile @@ -104,6 +104,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 9e98a66..0ba02c7 100644 --- a/Makefile.objs +++ b/Makefile.objs @@ -322,3 +322,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 220589e..0bd42da 100644 --- a/Makefile.target +++ b/Makefile.target @@ -204,6 +204,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-$(CONFIG_XEN) += xen_machine_pv.o xen_domainbuild.o diff --git a/configure b/configure index ef51a58..e1305ae 100755 --- a/configure +++ b/configure @@ -1662,6 +1662,18 @@ EOF fi ########################################## +# glib support probe +if $pkg_config --modversion gthread-2.0 > /dev/null 2>&1 ; then + glib_cflags=`$pkg_config --cflags gthread-2.0 2>/dev/null` + glib_libs=`$pkg_config --libs gthread-2.0 2>/dev/null` + libs_softmmu="$glib_libs $libs_softmmu" + libs_tools="$glib_libs $libs_softmmu" +else + echo "glib-2.0 required to compile QEMU" + exit 1 +fi + +########################################## # kvm probe if test "$kvm" != "no" ; then cat > $TMPC <<EOF @@ -2757,6 +2769,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 fi
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 <aliguori@us.ibm.com>