Skip to contentSkip to conversation

two fixes for local.conf.sample and local.conf.sample.extended

PATCH In review Robert Yang 4 participants 11 messages Jul 22, 2014 – Jul 27, 2014

lore
Share & tools
lore
#0 lore raw

cover two fixes for local.conf.sample and local.conf.sample.extended

The following changes since commit 8b7116d25ed6255a03895d835e5a0560858ab496:

bitbake: Updated the the example 'bitbake -h' output to match the actual output, which has been recently patched to fix the '-S SIGNATURE_HANDLER, --dump-signatures=SIGNATURE_HANDLER' option. (2014-07-22 08:33:25 +0100)

are available in the git repository at:

git://git.pokylinux.org/poky-contrib rbt/doc
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=rbt/doc

Robert Yang (2):
local.conf.sample.extended: add KERNEL_IMAGE_MAXSIZE and
IMAGE_ROOTFS_MAXSIZE
local.conf.sample: qemu-native DEPENDS libxext-naive

 meta-yocto/conf/local.conf.sample          |    1 +
 meta-yocto/conf/local.conf.sample.extended |    8 ++++++++
 2 files changed, 9 insertions(+)
Signature · 1 line
1.7.9.5
#1 lore raw

PATCH 1/2 local.conf.sample.extended: add KERNEL_IMAGE_MAXSIZE and IMAGE_ROOTFS_MAXSIZE

[YOCTO #2610]

---
 meta-yocto/conf/local.conf.sample.extended |    8 ++++++++
 1 file changed, 8 insertions(+)
meta-yocto/conf/local.conf.sample.extended +8 -0
index b156319..4bd33a2 100644
@@ -331,3 +331,11 @@
 # feed layout is used where package files are placed in <outdir>/<arch>/.
 #
 #IPK_HIERARCHICAL_FEED = "1"
+
+# Checks the kernel image size against KERNEL_IMAGE_MAXSIZE (The unit is
+# Kbytes)
+#KERNEL_IMAGE_MAXSIZE = "8192"
+#
+# Check the rootfs size against IMAGE_ROOTFS_MAXSIZE (The unit is
+# Kbytes)
+#IMAGE_ROOTFS_MAXSIZE = "65536"
Signature · 1 line
1.7.9.5
#2 lore raw

PATCH 2/2 local.conf.sample: qemu-native DEPENDS libxext-naive

In reply to Robert Yang

Fixed do_configure error:

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

This is error 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)

We may meet the error if host's libX11.so doesn't provide _XEatDataWords, and native's libX11.so has been removed (for example, rebuild).

Another way to fix is: let qemu-native depend on libxext-naive when sdl is enabled, for example:

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

But this might be incorrect since target sdl or qemu may not require X11, so set:

DEPENDS_pn-qemu-native += "libxext-naive"

in local.conf.sample to fix problem.

---
 meta-yocto/conf/local.conf.sample |    1 +
 1 file changed, 1 insertion(+)
meta-yocto/conf/local.conf.sample +1 -0
index bcb0864..742eb1a 100644
@@ -243,6 +243,7 @@ BB_DISKMON_DIRS = "\
 # seen. The two lines below enable the SDL backend too. This assumes there is a
 # libsdl library available on your build system.
 PACKAGECONFIG_pn-qemu-native = "sdl"
+DEPENDS_pn-qemu-native += "libxext-naive"
 PACKAGECONFIG_pn-nativesdk-qemu = "sdl"
 ASSUME_PROVIDED += "libsdl-native"
 
Signature · 1 line
1.7.9.5
#3 lore raw

Re: [PATCH 2/2] local.conf.sample: qemu-native DEPENDS libxext-naive

Quoted 39 lines · Robert Yang

Fixed do_configure error:

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

This is error 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)

We may meet the error if host's libX11.so doesn't provide _XEatDataWords, and native's libX11.so has been removed (for example, rebuild).

Another way to fix is: let qemu-native depend on libxext-naive when sdl is enabled, for example:

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

But this might be incorrect since target sdl or qemu may not require X11, so set:

DEPENDS_pn-qemu-native += "libxext-naive"

in local.conf.sample to fix problem.

---
 meta-yocto/conf/local.conf.sample |    1 +
 1 file changed, 1 insertion(+)
meta-yocto/conf/local.conf.sample +0 -0
index bcb0864..742eb1a 100644

meta-yocto/conf/local.conf.sample BB_DISKMON_DIRS = "\ · line 246

Quoted 4 lines
meta-yocto/conf/local.conf.sample +1 -0
@@ -243,6 +243,7 @@ BB_DISKMON_DIRS = "\
 # seen. The two lines below enable the SDL backend too. This assumes there is a
 # libsdl library available on your build system.
 PACKAGECONFIG_pn-qemu-native = "sdl"
+DEPENDS_pn-qemu-native += "libxext-naive"

Doesn't this belong in qemu-native's PACKAGECONFIG definition for sdl?

Quoted 11 lines
meta-yocto/conf/local.conf.sample +0 -0
 PACKAGECONFIG_pn-nativesdk-qemu = "sdl"
 ASSUME_PROVIDED += "libsdl-native"
 
Signature · 7 lines
1.7.9.5

-- 
_______________________________________________
poky mailing list
[email protected]
https://lists.yoctoproject.org/listinfo/poky
Signature · 1 line
Martin 'JaMa' Jansa     jabber: [email protected]
#4 lore raw

Re: [PATCH 2/2] local.conf.sample: qemu-native DEPENDS libxext-naive

Quoted 35 lines · Martin Jansa
Quoted 34 lines · Robert Yang

Fixed do_configure error:

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

This is error 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)

We may meet the error if host's libX11.so doesn't provide _XEatDataWords, and native's libX11.so has been removed (for example, rebuild).

Another way to fix is: let qemu-native depend on libxext-naive when sdl is enabled, for example:

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

But this might be incorrect since target sdl or qemu may not require X11, so set:

DEPENDS_pn-qemu-native += "libxext-naive"

in local.conf.sample to fix problem.

---
  meta-yocto/conf/local.conf.sample |    1 +
  1 file changed, 1 insertion(+)
Quoted 11 lines

meta-yocto/conf/local.conf.sample BB_DISKMON_DIRS = "\ · line 246

Quoted 9 lines
meta-yocto/conf/local.conf.sample +1 -0
index bcb0864..742eb1a 100644
@@ -243,6 +243,7 @@ BB_DISKMON_DIRS = "\
  # seen. The two lines below enable the SDL backend too. This assumes there is a
  # libsdl library available on your build system.
  PACKAGECONFIG_pn-qemu-native = "sdl"
+DEPENDS_pn-qemu-native += "libxext-naive"

Doesn't this belong in qemu-native's PACKAGECONFIG definition for sdl?

Yes, but I don't know how to do it, what I know is:

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

That would affect the target qemu, too, for example, when the user defines:

PACKAGECONFIG = "sdl" for target qemu, then the depends would be:

"libsdl libxext"

But the target sdl or qemu may not require X11.

Do you know how to define it for qemu-native only, please ?

// Robert

Quoted 13 lines
Quoted 12 lines
meta-yocto/conf/local.conf.sample +0 -1
  PACKAGECONFIG_pn-nativesdk-qemu = "sdl"
  ASSUME_PROVIDED += "libsdl-native"
 
--

1.7.9.5

--
_______________________________________________
poky mailing list
[email protected]
https://lists.yoctoproject.org/listinfo/poky

#5 lore raw

Re: [PATCH 2/2] local.conf.sample: qemu-native DEPENDS libxext-naive

Quoted 62 lines · On Tuesday 22 July 2014 19:37:00 Robert Yang wrote:
Quoted 47 lines · Martin Jansa
Quoted 46 lines · Robert Yang

Fixed do_configure error:

ERROR: User requested feature sdl

configure was not able to find it.
Install SDL devel

This is error 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)

We may meet the error if host's libX11.so doesn't provide _XEatDataWords, and native's libX11.so has been removed (for example, rebuild).

Another way to fix is: let qemu-native depend on libxext-naive when sdl is
enabled, for example:

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

But this might be incorrect since target sdl or qemu may not require X11, so set:

DEPENDS_pn-qemu-native += "libxext-naive"

in local.conf.sample to fix problem.

---

  meta-yocto/conf/local.conf.sample |    1 +
  1 file changed, 1 insertion(+)
(quoted diff) +0 -0

b/meta-yocto/conf/local.conf.sample index bcb0864..742eb1a 100644

meta-yocto/conf/local.conf.sample +0 -0
@@ -243,6 +243,7 @@ BB_DISKMON_DIRS = "\
 
Quoted 7 lines

meta-yocto/conf/local.conf.sample BB_DISKMON_DIRS = "\ · line 248

Quoted 5 lines
meta-yocto/conf/local.conf.sample +1 -0
  # seen. The two lines below enable the SDL backend too. This assumes
  there is a # libsdl library available on your build system.
  PACKAGECONFIG_pn-qemu-native = "sdl"
 
+DEPENDS_pn-qemu-native += "libxext-naive"

Doesn't this belong in qemu-native's PACKAGECONFIG definition for sdl?

Yes, but I don't know how to do it, what I know is:

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

That would affect the target qemu, too, for example, when the user defines:

Quoted 7 lines

PACKAGECONFIG = "sdl" for target qemu, then the depends would be:

"libsdl libxext"

But the target sdl or qemu may not require X11.

Do you know how to define it for qemu-native only, please ?

Surely something like this would work:

PACKAGECONFIG[sdl] = "--enable-sdl,--disable-sdl,libsdl ${NATIVEDEPS}," NATIVEDEPS = ""
NATIVEDEPS_class-native = "libxext-native"

Cheers,
Paul

Signature · 2 lines
Paul Eggleton
Intel Open Source Technology Centre
#6 lore raw

Re: [PATCH 2/2] local.conf.sample: qemu-native DEPENDS libxext-naive

Quoted 69 lines · Paul Eggleton
Quoted 68 lines · On Tuesday 22 July 2014 19:37:00 Robert Yang wrote:
Quoted 47 lines · Martin Jansa
Quoted 46 lines · Robert Yang

Fixed do_configure error:

ERROR: User requested feature sdl

configure was not able to find it.
Install SDL devel

This is error 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)

We may meet the error if host's libX11.so doesn't provide _XEatDataWords, and native's libX11.so has been removed (for example, rebuild).

Another way to fix is: let qemu-native depend on libxext-naive when sdl is
enabled, for example:

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

But this might be incorrect since target sdl or qemu may not require X11, so set:

DEPENDS_pn-qemu-native += "libxext-naive"

in local.conf.sample to fix problem.

---

   meta-yocto/conf/local.conf.sample |    1 +
   1 file changed, 1 insertion(+)
(quoted diff) +0 -0

b/meta-yocto/conf/local.conf.sample index bcb0864..742eb1a 100644

meta-yocto/conf/local.conf.sample +0 -0
@@ -243,6 +243,7 @@ BB_DISKMON_DIRS = "\
 
Quoted 7 lines

meta-yocto/conf/local.conf.sample BB_DISKMON_DIRS = "\ · line 248

Quoted 5 lines
meta-yocto/conf/local.conf.sample +1 -0
   # seen. The two lines below enable the SDL backend too. This assumes
   there is a # libsdl library available on your build system.
   PACKAGECONFIG_pn-qemu-native = "sdl"
 
+DEPENDS_pn-qemu-native += "libxext-naive"

Doesn't this belong in qemu-native's PACKAGECONFIG definition for sdl?

Yes, but I don't know how to do it, what I know is:

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

That would affect the target qemu, too, for example, when the user defines:

PACKAGECONFIG = "sdl" for target qemu, then the depends would be:

"libsdl libxext"

But the target sdl or qemu may not require X11.

Quoted 7 lines
Quoted 1 line

Do you know how to define it for qemu-native only, please ?

Surely something like this would work:

PACKAGECONFIG[sdl] = "--enable-sdl,--disable-sdl,libsdl ${NATIVEDEPS}," NATIVEDEPS = ""
NATIVEDEPS_class-native = "libxext-native"

Cool, thanks, I will fix it.

// Robert

Quoted 4 lines

Cheers,
Paul

#7 lore raw

Re: [PATCH 2/2] local.conf.sample: qemu-native DEPENDS libxext-naive

In reply to Robert Yang
Quoted 1 line · Robert Yang

sysroots/x86_64-linux/usr/lib/libXext.so.6: undefined reference to `_XEatDataWords'

Context: that function was added to libX11 1.6, and numerous other client libraries started using it to avoid security problems. Older hosts won't have it, but they also won't have libraries that are using it. So as far as I can tell the only way of replicating this is to have a sysroot which contains libxext but not libx11. Considering libxext depends on libx11 that's not very likely.

What's your actual replication method?

Ross

#8 lore raw

Re: [PATCH 2/2] local.conf.sample: qemu-native DEPENDS libxext-naive

Quoted 9 lines · Ross
Quoted 1 line · Robert Yang

sysroots/x86_64-linux/usr/lib/libXext.so.6: undefined reference to `_XEatDataWords'

Context: that function was added to libX11 1.6, and numerous other client libraries started using it to avoid security problems. Older hosts won't have it, but they also won't have libraries that are using it. So as far as I can tell the only way of replicating this is to have a sysroot which contains libxext but not libx11. Considering libxext depends on libx11 that's not very likely.

We have also seen this on Yocto's AB.

Quoted 2 lines

What's your actual replication method?

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 on Ubuntu 12.04 x86_64:

$ bitbake qemu-native libx11-native libxext-native
$ bitbake qemu-native libx11-native -ccleansstate && bitbake qemu-native

Then errors:

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

// Robert

Quoted 4 lines

Ross

#9 lore raw

Re: [PATCH 2/2] local.conf.sample: qemu-native DEPENDS libxext-naive

Quoted 10 lines · Robert Yang

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

Quoted 8 lines

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 on Ubuntu 12.04 x86_64:

$ bitbake qemu-native libx11-native libxext-native
$ bitbake qemu-native libx11-native -ccleansstate && bitbake qemu-native

This is where I insert my moan that the sysroot needs to have locking and not modified during builds...

Maybe qemu-native should have a wrapper script that removes the sysroot from LD_LIBRARY_PATH? It's a native binary that doesn't need anything in the sysroot, so let's stop it even looking there.

Ross

#10 lore raw

Re: [PATCH 2/2] local.conf.sample: qemu-native DEPENDS libxext-naive

Quoted 15 lines · Ross
Quoted 14 lines · Robert Yang

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.

Quoted 7 lines
Quoted 4 lines

Manually reproduce on Ubuntu 12.04 x86_64:

$ bitbake qemu-native libx11-native libxext-native
$ bitbake qemu-native libx11-native -ccleansstate && bitbake qemu-native

This is where I insert my moan that the sysroot needs to have locking and not modified during builds...

I'm afraid that the lock can't fix such an issue when build them manually.

Quoted 3 lines

Maybe qemu-native should have a wrapper script that removes the sysroot from LD_LIBRARY_PATH? It's a native binary that doesn't need

I'm afraid not, the qemu-native does depend on a few native recipes:

DEPENDS_class-native = "zlib-native alsa-lib-native glib-2.0-native pixman-native dtc-native"

// Robert

Quoted 5 lines

anything in the sysroot, so let's stop it even looking there.

Ross