[oe] [meta-java][PATCH] cacao-initial-native: Fix undefined behaviour in gc

Erkka Kääriä erkka.kaaria at intel.com
Wed Oct 21 09:41:49 UTC 2015


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.kaaria at 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.kaaria at 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.


More information about the Openembedded-devel mailing list