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ä <erkka.kaa...@intel.com> --- 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ä <erkka.kaa...@intel.com> + +--- 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 --------------------------------------------------------------------- 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 Openembedded-devel@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-devel