[OE-core] [PATCH 1/1] qemu-native: depends on libxext-native when enable sdl

Richard Purdie richard.purdie at linuxfoundation.org
Thu Aug 14 21:54:43 UTC 2014


On Tue, 2014-07-29 at 01:02 -0700, Robert Yang wrote:
> Fixed do_configure error:
> 
> ERROR: User requested feature sdl
>        configure was not able to find it.
>        Install SDL devel
> 
> The error message from log.do_configure, and if we check config.log, the
> error is:
> 
> sysroots/x86_64-linux/usr/lib/libXext.so.6: undefined reference to `_XEatDataWords'
> 
> The _XEatDataWords is provided by libX11.so, the dependencies are:
> 
> qemu-native -> sdl(from the host) -> libXext.so(maybe host or native) -> libX11.so (maybe host or native)
> 
> For example on Ubuntu 12.04 x86_64, the link route is:
> 
> qemu-native's do_configure sdl checking:
> /usr/lib/x86_64-linux-gnu/libSDL.so --> <sysroots>/x86_64-linux/usr/lib/libXext.so.6 --> /usr/lib/x86_64-linux-gnu/libX11.so
> 
> So it is:
> host sdl -> sysroot libXext.so.6 -> host X11.so
> 
> qemu-native doesn't depend on libxext-native, so the error would happen
> if the libx11-native is being rebuilding and the host's libX11.so
> doesn't have _XEatDataWords.
> 
> Manually reproduce it on Ubuntu 12.04 x86_64:
> 
> $ bitbake qemu-native libx11-native libxext-native
> $ bitbake qemu-native libx11-native -ccleansstate && bitbake qemu-native
> 
> Note, only qemu-native has this problem since libxext depends on libX11,
> and SDL would depend on libxext when x11 is enabled.
> 
> Signed-off-by: Robert Yang <liezhi.yang at windriver.com>
> ---
>  meta/recipes-devtools/qemu/qemu.inc |    5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/meta/recipes-devtools/qemu/qemu.inc b/meta/recipes-devtools/qemu/qemu.inc
> index 3cb8536..1287e09 100644
> --- a/meta/recipes-devtools/qemu/qemu.inc
> +++ b/meta/recipes-devtools/qemu/qemu.inc
> @@ -98,10 +98,13 @@ PACKAGECONFIG[uuid] = "--enable-uuid,--disable-uuid,util-linux,"
>  PACKAGECONFIG[curses] = "--enable-curses,--disable-curses,ncurses,"
>  PACKAGECONFIG[gtk+] = "--enable-gtk,--disable-gtk,gtk+ libvte,"
>  PACKAGECONFIG[libcap-ng] = "--enable-cap-ng,--disable-cap-ng,libcap-ng,"
> -PACKAGECONFIG[sdl] = "--enable-sdl,--disable-sdl,libsdl,"
>  PACKAGECONFIG[ssh2] = "--enable-libssh2,--disable-libssh2,libssh2,"
>  PACKAGECONFIG[libusb] = "--enable-libusb,--disable-libusb,libusb1"
>  

Can't we just make this:

PACKAGECONFIG[sdl] = "--enable-sdl,--disable-sdl,libsdl libxext,"

?

As far as I can tell that should also avoid the problem? We'd obviously
need a comment to explain it?

Cheers,

Richard

> +NATIVEDEPS = ""
> +NATIVEDEPS_class-native = "libxext-native"
> +PACKAGECONFIG[sdl] = "--enable-sdl,--disable-sdl,libsdl ${NATIVEDEPS},"
> +
>  # Qemu target will not build in world build for ARM or Mips
>  BROKEN_qemuarm = "1"
>  BROKEN_qemumips64 = "1"
> -- 
> 1.7.9.5
> 





More information about the Openembedded-core mailing list