On 21 Oct 2015 3:42 a.m., "Erkka Kääriä" <[email protected]> wrote: > > Upstream-Status: Backport > > Fixes undefined behaviour in boehm GC used by cacao-initial-native > as suggested at > https://github.com/ivmai/bdwgc/commit/16780405c899f01119bc45167122b4242f6b34fb . > > The undefined behaviour at very least causes a segmentation fault during > classpath-native configure step with Fedora 22. > > Signed-off-by: Erkka Kääriä <[email protected]> > --- > recipes-core/cacao/cacao-initial-native_0.98.bb | 1 + > ...-0.9.8-initial-fix-gc-undefined-behaviour.patch | 35 ++++++++++++++++++++++ > 2 files changed, 36 insertions(+) > create mode 100644 recipes-core/cacao/files/cacao-0.9.8-initial-fix-gc-undefined-behaviour.patch > > diff --git a/recipes-core/cacao/cacao-initial-native_0.98.bb b/recipes-core/cacao/cacao-initial-native_0.98.bb > index ec7fbdb..2a8ced5 100644 > --- a/recipes-core/cacao/cacao-initial-native_0.98.bb > +++ b/recipes-core/cacao/cacao-initial-native_0.98.bb > @@ -14,6 +14,7 @@ SRC_URI = "\ > http://www.complang.tuwien.ac.at/cacaojvm/download/cacao-${PV}/cacao-${PV}.tar.bz2; \ > file://cacao-0.98-initial.patch \ > file://disable_hw_exceptions.patch \ > + file://cacao-0.9.8-initial-fix-gc-undefined-behaviour.patch \ > " > > # libjvm disabled - it would conflict with cacao-native installations > diff --git a/recipes-core/cacao/files/cacao-0.9.8-initial-fix-gc-undefined-behaviour.patch b/recipes-core/cacao/files/cacao-0.9.8-initial-fix-gc-undefined-behaviour.patch > new file mode 100644 > index 0000000..ccc35cb > --- /dev/null > +++ b/recipes-core/cacao/files/cacao-0.9.8-initial-fix-gc-undefined-behaviour.patch > @@ -0,0 +1,35 @@ > +Upstream-Status: Backport > + > +This fixes undefined behaviour in boehm GC as suggested at > + https://github.com/ivmai/bdwgc/commit/16780405c899f01119bc45167122b4242f6b34fb . > + > +The undefined behaviour at very least causes a segmentation fault during > +classpath-native configure step. > + > +Signed-off-by: Erkka Kääriä <[email protected]> > + > +--- cacao-0.98/src/mm/boehm-gc/mark_rts.c > ++++ cacao-0.98/src/mm/boehm-gc/mark_rts.c > +@@ -371,18 +371,7 @@ ptr_t p; > + > + ptr_t GC_approx_sp() > + { > +- VOLATILE word dummy; > +- > +- dummy = 42; /* Force stack to grow if necessary. Otherwise the */ > +- /* later accesses might cause the kernel to think we're */ > +- /* doing something wrong. */ > +-# ifdef _MSC_VER > +-# pragma warning(disable:4172) > +-# endif > +- return((ptr_t)(&dummy)); > +-# ifdef _MSC_VER > +-# pragma warning(default:4172) > +-# endif > ++ return __builtin_frame_address(0); > + } > + > + /* > +-- > +2.1.4 > + > -- > 2.1.4 >
Nice, I've been trying to find this one for a while. I knew there was probably some UB somewhere, I just couldn't find it. > --------------------------------------------------------------------- > Intel Finland Oy > Registered Address: PL 281, 00181 Helsinki > Business Identity Code: 0357606 - 4 > Domiciled in Helsinki > > This e-mail and any attachments may contain confidential material for > the sole use of the intended recipient(s). Any review or distribution > by others is strictly prohibited. If you are not the intended > recipient, please contact the sender and delete all copies. > -- > _______________________________________________ > Openembedded-devel mailing list > [email protected] > http://lists.openembedded.org/mailman/listinfo/openembedded-devel -- _______________________________________________ Openembedded-devel mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-devel
