[OE-core] [PATCH] qemu: Enabled SDL when compiling for target architecture

Prica, Mihai mihai.prica at intel.com
Fri Feb 8 15:19:57 UTC 2013


> -----Original Message-----
> From: Saul Wold [mailto:sgw at linux.intel.com]
> 
> On 02/06/2013 02:58 PM, Prica, Mihai wrote:
> >> -----Original Message-----
> >> From: Saul Wold [mailto:sgw at linux.intel.com]
> >> Sent: Wednesday, February 06, 2013 7:41 PM
> >> To: Prica, Mihai
> >> Cc: openembedded-core at lists.openembedded.org
> >> Subject: Re: [OE-core] [PATCH] qemu: Enabled SDL when compiling for
> >> target architecture
> >>
> >> On 02/06/2013 04:12 AM, Mihai Prica wrote:
> >>> - enables qemu to run images with video output without the need for
> >> vncviewer.
> >>> - SDLPACKAGECONFIG is used because there is no need for the
> >>> native-libsdl package when building the qemu-native package.
> >>>
> >>> Signed-off-by: Mihai Prica <mihai.prica at intel.com>
> >>> ---
> >>>    meta/recipes-devtools/qemu/qemu.inc |   19 +++++++++++--------
> >>>    1 file changed, 11 insertions(+), 8 deletions(-)
> >>>
> >>> diff --git a/meta/recipes-devtools/qemu/qemu.inc
> >>> b/meta/recipes-devtools/qemu/qemu.inc
> >>> index 2b60347..4633f47 100644
> >>> --- a/meta/recipes-devtools/qemu/qemu.inc
> >>> +++ b/meta/recipes-devtools/qemu/qemu.inc
> >>> @@ -3,8 +3,7 @@ HOMEPAGE = "http://qemu.org"
> >>>    LICENSE = "GPLv2 & LGPLv2.1"
> >>>    DEPENDS = "glib-2.0 zlib alsa-lib virtual/libx11 pixman"
> >>>    DEPENDS_class-native = "zlib-native alsa-lib-native
> >>> glib-2.0-native pixman-
> >> native"
> >>> -DEPENDS_class-nativesdk = "nativesdk-zlib nativesdk-libsdl
> >>> nativesdk-glib-2.0
> >> nativesdk-pixman"
> >>> -RDEPENDS_${PN}_class-nativesdk = "nativesdk-libsdl"
> >>> +DEPENDS_class-nativesdk = "nativesdk-zlib nativesdk-glib-2.0
> >>> +nativesdk-
> >> pixman"
> >>>
> >>>    require qemu-targets.inc
> >>>    inherit autotools
> >>> @@ -13,10 +12,6 @@ BBCLASSEXTEND = "native nativesdk"
> >>>    # QEMU_TARGETS is overridable variable
> >>>    QEMU_TARGETS ?= "arm i386 mips mipsel mips64 mips64el ppc sh4 x86_64"
> >>>
> >>> -SDL ?= "--disable-sdl"
> >>> -SDL_class-native ?= ""
> >>> -SDL_class-nativesdk ?= ""
> >>> -
> >>>    SRC_URI = "\
> >>>        file://powerpc_rom.bin \
> >>>        file://no-strip.patch \
> >>> @@ -32,7 +27,7 @@ SRC_URI_append_class-nativesdk = "\
> >>>        file://relocatable_sdk.patch \
> >>>        "
> >>>
> >>> -EXTRA_OECONF += "--target-list=${@get_qemu_target_list(d)}
> >>> --disable-
> >> werror --disable-vnc-tls --audio-drv-list=oss,alsa
> >> --audio-card-list=ac97,es1370 ${SDL} --disable-curl --disable-vnc-jpeg --
> disable-bluez --with-system-pixman"
> >>> +EXTRA_OECONF += "--target-list=${@get_qemu_target_list(d)}
> >>> +--disable-
> >> werror --disable-vnc-tls --audio-drv-list=oss,alsa
> >> --audio-card-list=ac97,es1370 -- disable-curl --disable-vnc-jpeg --disable-bluez
> --with-system-pixman"
> >>>
> >>>    EXTRA_OECONF_class-nativesdk =
> >>> "--target-list=${@get_qemu_target_list(d)}
> >> --disable-werror --disable-vnc-tls \
> >>>    				--disable-curl \
> >>> @@ -83,7 +78,15 @@ do_install_append() {
> >>>    }
> >>>    # END of qemu-mips workaround
> >>>
> >>> -PACKAGECONFIG ??= ""
> >> Seems to be left over from a previous patch?
> >
> > Yes, this was already here.
> >
> >>
> >>> +PACKAGECONFIG ??= "sdl"
> >>> +PACKAGECONFIG_class-native ??= "sdl"
> >> Is this right?  If you only want it for target, why set it for native.
> >
> > SDL was already enabled for native and nativesdk. I just enabled it
> > when building for the target arch.
> >
> Was it really?  I just did a build on my laptop and failed, I reverted this patch and it
> worked, I think this needs some more thought and testing.
> 
> I am running Fedora 18 with only SDL on my laptop, I get the following
> error:
> > | ERROR
> > | ERROR: User requested feature sdl
> > | ERROR: configure was not able to find it
> 
> I think the above lines should be PACKAGECONFIG_class-native = "" and
> PACKAGECONFIG_class-nativesdk = "sdl"

Yes, you are right. The PACKAGECONFIG line should be like:

PACKAGECONFIG[sdl] = ",--disable-sdl,${SDLPACKAGECONFIG},${SDLPACKAGECONFIG}"

This way, it will install sdl for qemu-native only if it detects libsdl on the host. This was how 
it was configured before my changes. I'll do some tests and send the V2.

> 
> 
> 
> >>
> >>> +PACKAGECONFIG_class-nativesdk ??= "sdl"
> >>> +
> >>> +PACKAGECONFIG[sdl] = "--enable-sdl,--disable-
> >> sdl,${SDLPACKAGECONFIG},${SDLPACKAGECONFIG}"
> >>> +
> >> If it's disabled, you should not need the SDLPACKAGECONFIG in the
> >> "false" case for DEPENDS.
> >
> > I'm not sure if I understand your question. The second
> > SDLPACKAGECONFIG is for RDEPENDS when sdl is set in PACKAGECONFIG.
> >
> I think the issue is that you bring in the RDEPENDS for both the true and false
> causes above, I think that's wrong upon further review.

The DPENDS and RDEPENDS get set only if the PACKAGECNFIG contains sdl.
I tested using bitbake -e and when PACKAGECONFIG is not set(""), nothing is added to RDEPENDS.

Thanks,
Mihai

> 
> Sau!
> 
> 
> >>
> >>> +SDLPACKAGECONFIG = "libsdl"
> >>> +SDLPACKAGECONFIG_class-native = ""
> >>> +SDLPACKAGECONFIG_class-nativesdk = "nativesdk-libsdl"
> >>>
> >> It might be clearer to have these lines above the PACKAGECONFIG[sdl]
> >> where they are used.
> >
> > I'll put the lines above the PACKAGECONFIG and resend the patch.
> >
> >>
> >>
> >>
> >>>    # Qemu target will not build in world build for ARM or Mips
> >>>    BROKEN_qemuarm = "1"
> >>>
> >
> >




More information about the Openembedded-core mailing list