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

Otavio Salvador otavio at ossystems.com.br
Mon Jan 19 12:41:28 UTC 2015


Hello Max,

On Mon, Jan 19, 2015 at 9:56 AM, Max Krummenacher <max.oss.09 at gmail.com> wrote:
> 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.

Awesome analysis; I've been looking for some free time to debug this
for a while do a HUGE thanks for all your work on this :-)

> 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

It'd be great if you could prepare a patch to address this in OE-Core;
once it proves stable we can ask for it to be backported for Dizzy.

> 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

Agreed; we should do this.

> 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).

As said above, please do a proper patch for OE-Core as well; so we
solve the root cause of qemu failure. This allow us to use it later if
we want to.

Another thing, please add a link for this discussion in the commit
log; when looking similar issues in future this can reduce a lot the
research time :)

-- 
Otavio Salvador                             O.S. Systems
http://www.ossystems.com.br        http://code.ossystems.com.br
Mobile: +55 (53) 9981-7854            Mobile: +1 (347) 903-9750



More information about the Openembedded-devel mailing list