[oe] [meta-java][PATCH] cacao-initial-native: Fix undefined behaviour in gc
Maxin B. John
maxin.john at intel.com
Fri Oct 23 07:54:43 UTC 2015
Hi Erkka,
On Wed, Oct 21, 2015 at 12:41:49PM +0300, Erkka Kääriä 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.
Thanks for fixing it. Pushed to master.
> 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
>
Best Regards,
Maxin
More information about the Openembedded-devel
mailing list