ping? On Mon, Oct 31, 2016 at 11:34 AM, Ricardo Ribalda Delgado <[email protected]> wrote: > Without this patch the generated icedtea produces segmentation faults. > This is probably due to a race condition during cleanout. > > Signed-off-by: Ricardo Ribalda Delgado <[email protected]> > --- > recipes-core/icedtea/icedtea7-native.inc | 2 ++ > .../icedtea/openjdk-7-03b147/sigsegv.patch | 42 > ++++++++++++++++++++++ > 2 files changed, 44 insertions(+) > create mode 100644 recipes-core/icedtea/openjdk-7-03b147/sigsegv.patch > > diff --git a/recipes-core/icedtea/icedtea7-native.inc > b/recipes-core/icedtea/icedtea7-native.inc > index 00756888b62c..0ecf620cd279 100644 > --- a/recipes-core/icedtea/icedtea7-native.inc > +++ b/recipes-core/icedtea/icedtea7-native.inc > @@ -42,6 +42,7 @@ SRC_URI = " \ > file://allow-headless-build.patch;striplevel=0 \ > file://jaxws_fix_NullPointerException.patch;apply=no \ > file://timezoneszip.patch \ > + file://sigsegv.patch;apply=no \ > " > > S = "${WORKDIR}/${ICEDTEA}" > @@ -153,6 +154,7 @@ do_configure_append() { > oe_runmake patch-boot > > patch -p1 < ${WORKDIR}/jaxws_fix_NullPointerException.patch > + patch -p1 < ${WORKDIR}/sigsegv.patch > } > > EXTRA_OEMAKE = ' \ > diff --git a/recipes-core/icedtea/openjdk-7-03b147/sigsegv.patch > b/recipes-core/icedtea/openjdk-7-03b147/sigsegv.patch > new file mode 100644 > index 000000000000..0c3e44eff826 > --- /dev/null > +++ b/recipes-core/icedtea/openjdk-7-03b147/sigsegv.patch > @@ -0,0 +1,42 @@ > +diff --git a/openjdk-boot/hotspot/src/share/vm/runtime/thread.cpp > b/openjdk-boot/hotspot/src/share/vm/runtime/thread.cpp > +index 8b7059c8389f..67e9e7bd4bce 100644 > +--- a/openjdk-boot/hotspot/src/share/vm/runtime/thread.cpp > ++++ b/openjdk-boot/hotspot/src/share/vm/runtime/thread.cpp > +@@ -764,10 +764,13 @@ bool Thread::claim_oops_do_par_case(int > strong_roots_parity) { > + } > + > + void Thread::oops_do(OopClosure* f, CodeBlobClosure* cf) { > +- active_handles()->oops_do(f); > ++ if (f && active_handles()) > ++ active_handles()->oops_do(f); > + // Do oop for ThreadShadow > +- f->do_oop((oop*)&_pending_exception); > +- handle_area()->oops_do(f); > ++ if (f) > ++ f->do_oop((oop*)&_pending_exception); > ++ if (f && handle_area()) > ++ handle_area()->oops_do(f); > + } > + > + void Thread::nmethods_do(CodeBlobClosure* cf) { > +diff --git a/openjdk/hotspot/src/share/vm/runtime/thread.cpp > b/openjdk/hotspot/src/share/vm/runtime/thread.cpp > +index 8b7059c8389f..67e9e7bd4bce 100644 > +--- a/openjdk/hotspot/src/share/vm/runtime/thread.cpp > ++++ b/openjdk/hotspot/src/share/vm/runtime/thread.cpp > +@@ -764,10 +764,13 @@ bool Thread::claim_oops_do_par_case(int > strong_roots_parity) { > + } > + > + void Thread::oops_do(OopClosure* f, CodeBlobClosure* cf) { > +- active_handles()->oops_do(f); > ++ if (f && active_handles()) > ++ active_handles()->oops_do(f); > + // Do oop for ThreadShadow > +- f->do_oop((oop*)&_pending_exception); > +- handle_area()->oops_do(f); > ++ if (f) > ++ f->do_oop((oop*)&_pending_exception); > ++ if (f && handle_area()) > ++ handle_area()->oops_do(f); > + } > + > + void Thread::nmethods_do(CodeBlobClosure* cf) { > -- > 2.10.1 >
-- Ricardo Ribalda -- _______________________________________________ Openembedded-devel mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-devel
