Openembedded Core Discussions
 help / color / mirror / Atom feed
* [PATCH 0/1] qemu-native: depends on libxext-native when enable sdl
@ 2014-07-29  8:02 Robert Yang
  2014-07-29  8:02 ` [PATCH 1/1] " Robert Yang
  2014-08-12  3:35 ` [PATCH 0/1] " Robert Yang
  0 siblings, 2 replies; 5+ messages in thread
From: Robert Yang @ 2014-07-29  8:02 UTC (permalink / raw)
  To: openembedded-core

The following changes since commit 91ca6b1b2e009381d8e813906654c0958eee7efc:

  lib/oe/rootfs: Improve error message whitespace (2014-07-28 12:20:56 +0100)

are available in the git repository at:

  git://git.openembedded.org/openembedded-core-contrib rbt/qemu
  http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=rbt/qemu

Robert Yang (1):
  qemu-native: depends on libxext-native when enable sdl

 meta/recipes-devtools/qemu/qemu.inc |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

-- 
1.7.9.5



^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 1/1] qemu-native: depends on libxext-native when enable sdl
  2014-07-29  8:02 [PATCH 0/1] qemu-native: depends on libxext-native when enable sdl Robert Yang
@ 2014-07-29  8:02 ` Robert Yang
  2014-08-14 21:54   ` Richard Purdie
  2014-08-12  3:35 ` [PATCH 0/1] " Robert Yang
  1 sibling, 1 reply; 5+ messages in thread
From: Robert Yang @ 2014-07-29  8:02 UTC (permalink / raw)
  To: openembedded-core

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@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"
 
+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



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH 0/1] qemu-native: depends on libxext-native when enable sdl
  2014-07-29  8:02 [PATCH 0/1] qemu-native: depends on libxext-native when enable sdl Robert Yang
  2014-07-29  8:02 ` [PATCH 1/1] " Robert Yang
@ 2014-08-12  3:35 ` Robert Yang
  1 sibling, 0 replies; 5+ messages in thread
From: Robert Yang @ 2014-08-12  3:35 UTC (permalink / raw)
  To: openembedded-core


Ping, I think that it can fix qemu-native's build error on Yocto's AB:

     ERROR: User requested feature sdl
            configure was not able to find it.
            Install SDL devel

// Robert

On 07/29/2014 04:02 PM, Robert Yang wrote:
> The following changes since commit 91ca6b1b2e009381d8e813906654c0958eee7efc:
>
>    lib/oe/rootfs: Improve error message whitespace (2014-07-28 12:20:56 +0100)
>
> are available in the git repository at:
>
>    git://git.openembedded.org/openembedded-core-contrib rbt/qemu
>    http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=rbt/qemu
>
> Robert Yang (1):
>    qemu-native: depends on libxext-native when enable sdl
>
>   meta/recipes-devtools/qemu/qemu.inc |    5 ++++-
>   1 file changed, 4 insertions(+), 1 deletion(-)
>


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/1] qemu-native: depends on libxext-native when enable sdl
  2014-07-29  8:02 ` [PATCH 1/1] " Robert Yang
@ 2014-08-14 21:54   ` Richard Purdie
  2014-08-15  2:14     ` Robert Yang
  0 siblings, 1 reply; 5+ messages in thread
From: Richard Purdie @ 2014-08-14 21:54 UTC (permalink / raw)
  To: Robert Yang; +Cc: openembedded-core

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@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
> 




^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/1] qemu-native: depends on libxext-native when enable sdl
  2014-08-14 21:54   ` Richard Purdie
@ 2014-08-15  2:14     ` Robert Yang
  0 siblings, 0 replies; 5+ messages in thread
From: Robert Yang @ 2014-08-15  2:14 UTC (permalink / raw)
  To: Richard Purdie; +Cc: openembedded-core



On 08/15/2014 05:54 AM, Richard Purdie wrote:
> 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@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,"

I'm afraid not, target sdl depends on libx11 (libxext) optionally, if we use
this, the libxext will always be built when sdl is enabled, but it doesn't
have to.

For native, libsdl-native is in ASSUME_PROVIDED, the link chain is:

host sdl -> host libXext.so.6 -> host X11.so

this is right since all of libs are on the host,  or if libxext-native
has been built, then:

host sdl -> sysroot libXext.so.6 -> sysroot X11.so

This is right, too, but qemu-native doesn't depend on libxext-native,
so libx11-native can be missed (for example, when rebuilding) when
we rebuild qemu-native, then we may meet errors, the link chain is:

host sdl -> sysroot libXext.so.6 -> host X11.so

For example:
$ bitbake qemu-native libx11-native libxext-native
# Everything is ready in the sysroot (the order doesn't matter)

$ bitbake qemu-native libx11-native -ccleansstate
# The libx11-native is removed from sysroot

$ bitbake qemu-native
# Build qemu-native again, only qemu-native will be built since it
# doesn't depend on libx11-native, then we may see the errors as the
# link chain shows.

I've updated a comment in the patch, and also updated in the git repo,
please feel free to let me know if there is anything questions:

git://git.openembedded.org/openembedded-core-contrib rbt/qemu

+# The libxext is optional for target sdl, so only add libxext-native in
+# qemu-native's DEPENDS when sdl is enabled to fix potential build
+# failures.
+NATIVEDEPS = ""
+NATIVEDEPS_class-native = "libxext-native"
+PACKAGECONFIG[sdl] = "--enable-sdl,--disable-sdl,libsdl ${NATIVEDEPS},"
+

// Robert

>
> ?
>
> 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
>>
>
>
>
>


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2014-08-15  2:14 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-07-29  8:02 [PATCH 0/1] qemu-native: depends on libxext-native when enable sdl Robert Yang
2014-07-29  8:02 ` [PATCH 1/1] " Robert Yang
2014-08-14 21:54   ` Richard Purdie
2014-08-15  2:14     ` Robert Yang
2014-08-12  3:35 ` [PATCH 0/1] " Robert Yang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox