[oe] Query on meta-java layer openjdk-7-jre build

Max Krummenacher max.oss.09 at gmail.com
Mon Jan 19 11:56:44 UTC 2015


Hello

I made some progress.
We seem to be discussing two issues

1)
qemu stops with a segmentation fault.
When DEFAULTTUNE is "armv7ahf" or "armv7athf" and a binary is compiled
with "-static" and the gold linker is used, then the resulting binary
does not run on qemu or on real hardware.
The Angstrom distribution by default uses gold, so the issue presents
itself when using Angstrom. On the fsl-arm setup with poky gold is not
even built so one will not trigger the bug.
The solution for this is to change all compiler calls used for qemu
run binaries to include -fuse-ld=bfd.

2)
qemu runs indefinitely.
While hunting the above mentioned bug I found that when using qemu
with the sysroot, i.e. using the -L <path-to-sysroot> parameter qemu
executes and never returns.
On my machine free shows increasingly used RAM but I was to impatient
to ever see an OOM kill of qemu but maybe this is also what Colin
experiences and probably also why Alex does have issues with the "-L"
change.

An strace qemu .... run shows that qemu runs in circles of recursive
symlink in /usr/lib/udev/ptest/.... files.
Using the fsl-arm setup with poky enables ptest. When udev has been
compiled in this setup those testfiles have been staged and qemu
chokes on them..
http://lists.openembedded.org/pipermail/openembedded-core/2014-September/097098.html

a) One way to go would be to fix udev in oe-core, e.g.
index 0f8e9b6..a93b58d 100644
--- a/meta/recipes-core/udev/udev/add-install-ptest.patch
+++ b/meta/recipes-core/udev/udev/add-install-ptest.patch
@@ -21,7 +21,7 @@ Upstream-Status: Pending
 +    sed -i -e 's|^Makefile:|_Makefile:|' $(DESTDIR)/Makefile
 +    $(MKDIR_P) $(DESTDIR)/test
 +    (cd $(top_srcdir) && install $(TESTS) $(DESTDIR)/test)
-+    tar -C $(DESTDIR)/test/ -xJf $(top_srcdir)/test/sys.tar.xz
++    cp  $(top_srcdir)/test/sys.tar.xz $(DESTDIR)/test/
 --- a/test/udev-test.pl    2012-03-18 16:43:36.000000000 +0100
 +++ b/test/udev-test.pl    2013-02-18 10:31:29.706357321 +0100
 @@ -1459,11 +1459,13 @@
diff --git a/meta/recipes-core/udev/udev/run-ptest
b/meta/recipes-core/udev/udev/run-ptest
index c6961ce..0e39806 100644
--- a/meta/recipes-core/udev/udev/run-ptest
+++ b/meta/recipes-core/udev/udev/run-ptest
@@ -1,3 +1,5 @@
 #!/bin/sh

+tar -C test/ -xJf test/sys.tar.xz
 make -k check-TESTS
+make test-sys-distclean
-- 
1.8.4.5

b) The quick fix would be to revert passing qemu the sysroot and make
sure that all binaries qemu executes are linked statically. As issue
1) now can be addressed without linking dynamically I don't see real
disadvantages.
revert http://git.yoctoproject.org/cgit/cgit.cgi/meta-java/commit/?id=ab51e51d9a9a51bedd19de09bcba4ce830dfc5e7

c) The even quicker fix is to delete the testdata, i.e.
rm  -rf <target-sysroot>/usr/lib/udev/ptest/test/sys


I will create/send a patch to address issues 1) and 2) solution b).

Regards
Max Krummenacher



More information about the Openembedded-devel mailing list