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

Dan McGregor danismostlikely at gmail.com
Fri Oct 23 22:34:10 UTC 2015


On 21 Oct 2015 3:42 a.m., "Erkka Kääriä" <erkka.kaaria at intel.com> 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ä <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
>

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
> Openembedded-devel at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-devel



More information about the Openembedded-devel mailing list