From 300e9994968c2956656f71b54f453d741ee806fd Mon Sep 17 00:00:00 2001 From: Henning Heinold Date: Sat, 6 Apr 2013 06:13:05 +0000 Subject: openjdk-6: add arm thumb2 fix for version 1.12.4 * bump PR Signed-off-by: Henning Heinold --- .../openjdk/openjdk-6-6b27/arm-thumb2-fix.patch | 95 ++++++++++++++++++++++ recipes-core/openjdk/openjdk-6_6b27-1.12.4.bb | 4 +- 2 files changed, 98 insertions(+), 1 deletion(-) create mode 100644 recipes-core/openjdk/openjdk-6-6b27/arm-thumb2-fix.patch (limited to 'recipes-core') diff --git a/recipes-core/openjdk/openjdk-6-6b27/arm-thumb2-fix.patch b/recipes-core/openjdk/openjdk-6-6b27/arm-thumb2-fix.patch new file mode 100644 index 0000000..54b8b7b --- /dev/null +++ b/recipes-core/openjdk/openjdk-6-6b27/arm-thumb2-fix.patch @@ -0,0 +1,95 @@ + +# HG changeset patch +# User chrisphi +# Date 1365166908 14400 +# Node ID 623621d29d04d87dc17f376b3917464e59026248 +# Parent 12f5fe9e85d373261c29be3bbd37ffc364678978 +Bug 1362: Fedora 19 / rawhide FTBFS SIGILL +Summary: Fix reg alloc problem in thumb2.cpp compiler. + +diff -r 12f5fe9e85d3 -r 623621d29d04 arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp +--- a/arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp Wed Mar 20 11:00:45 2013 +0000 ++++ b/arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp Fri Apr 05 09:01:48 2013 -0400 +@@ -1,5 +1,6 @@ + /* + * Copyright 2009, 2010 Edward Nevill ++ * Copyright 2013 Red Hat + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as +@@ -399,6 +400,8 @@ + + static jmp_buf compiler_error_env; + ++#define J_BogusImplementation() longjmp(compiler_error_env, COMPILER_RESULT_FAILED) ++ + #ifdef PRODUCT + + #define JASSERT(cond, msg) 0 +@@ -3505,8 +3508,6 @@ + #define TOSM2(jstack) ((jstack)->stack[(jstack)->depth-3]) + #define TOSM3(jstack) ((jstack)->stack[(jstack)->depth-4]) + +-#define POP(jstack) ((jstack)->stack[--(jstack)->depth]) +-#define PUSH(jstack, r) ((jstack)->stack[(jstack)->depth++] = (r)) + #define SWAP(jstack) do { \ + Reg r = (jstack)->stack[(jstack)->depth-1]; \ + (jstack)->stack[(jstack)->depth-1] = (jstack)->stack[(jstack)->depth-2]; \ +@@ -3516,6 +3517,17 @@ + #define JSTACK_REG(jstack) jstack_reg(jstack) + #define JSTACK_PREFER(jstack, prefer) jstack_prefer(jstack, prefer) + ++int PUSH(Thumb2_Stack *jstack, unsigned reg) { ++ jstack->stack[jstack->depth] = reg; ++ jstack->depth++; ++ return reg; ++} ++ ++int POP(Thumb2_Stack *jstack) { ++ jstack->depth--; ++ return jstack->stack[jstack->depth]; ++} ++ + static const unsigned last_clear_bit[] = { + 3, // 0000 + 3, // 0001 +@@ -3532,11 +3544,13 @@ + 1, // 1100 + 1, // 1101 + 0, // 1110 +- 0, // 1111 ++ 0, // 1111 // No registers available... + }; + + #define LAST_CLEAR_BIT(mask) last_clear_bit[mask] + ++unsigned long thumb2_register_allocation_failures = 0; ++ + unsigned jstack_reg(Thumb2_Stack *jstack) + { + unsigned *stack = jstack->stack; +@@ -3547,7 +3561,10 @@ + + for (i = 0; i < depth; i++) mask |= 1 << stack[i]; + mask &= (1 << STACK_REGS) - 1; +- JASSERT(mask != (1 << STACK_REGS) - 1, "No free reg in push"); ++ if (mask >= (1 << STACK_REGS) - 1) { // No free registers ++ thumb2_register_allocation_failures++; ++ J_BogusImplementation(); ++ } + r = LAST_CLEAR_BIT(mask); + return r; + } +@@ -3563,7 +3580,10 @@ + for (i = 0; i < depth; i++) mask |= 1 << stack[i]; + mask &= (1 << STACK_REGS) - 1; + if ((prefer & ~mask) & 0x0f) mask |= (~prefer & ((1 << STACK_REGS) - 1)); +- JASSERT(mask != (1 << STACK_REGS) - 1, "No free reg in push"); ++ if (mask >= (1 << STACK_REGS) - 1) { // No free registers ++ thumb2_register_allocation_failures++; ++ J_BogusImplementation(); ++ } + r = LAST_CLEAR_BIT(mask); + return r; + } + diff --git a/recipes-core/openjdk/openjdk-6_6b27-1.12.4.bb b/recipes-core/openjdk/openjdk-6_6b27-1.12.4.bb index da36da5..d368abe 100644 --- a/recipes-core/openjdk/openjdk-6_6b27-1.12.4.bb +++ b/recipes-core/openjdk/openjdk-6_6b27-1.12.4.bb @@ -1,10 +1,12 @@ require openjdk-6-release-6b27.inc -PR = "${INC_PR}.0" +PR = "${INC_PR}.1" SRC_URI[iced.md5sum] = "85bfc656c20fb762b72b71d3492a326c" SRC_URI[iced.sha256sum] = "eb326c6ae0147ca4abe4bd79e52c1edc2ef08e5e008230e24bee3abb39e14dda" +OEPATCHES += "file://arm-thumb2-fix.patch" + ICEDTEAPATCHES += "file://icedtea-jdk-rmi-crosscompile.patch;apply=no" DISTRIBUTION_PATCHES += "patches/icedtea-jdk-rmi-crosscompile.patch" -- cgit v1.2.3-54-g00ecf