summaryrefslogtreecommitdiffstats
path: root/recipes-core/openjdk/patches-openjdk-7/icedtea-flags-to-compile-with-GCC-6.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-core/openjdk/patches-openjdk-7/icedtea-flags-to-compile-with-GCC-6.patch')
-rw-r--r--recipes-core/openjdk/patches-openjdk-7/icedtea-flags-to-compile-with-GCC-6.patch74
1 files changed, 74 insertions, 0 deletions
diff --git a/recipes-core/openjdk/patches-openjdk-7/icedtea-flags-to-compile-with-GCC-6.patch b/recipes-core/openjdk/patches-openjdk-7/icedtea-flags-to-compile-with-GCC-6.patch
new file mode 100644
index 0000000..062c6bf
--- /dev/null
+++ b/recipes-core/openjdk/patches-openjdk-7/icedtea-flags-to-compile-with-GCC-6.patch
@@ -0,0 +1,74 @@
1From 732aab80cb1505ef2f4d8a6e141f835aa9f6d985 Mon Sep 17 00:00:00 2001
2From: Abdur Rehman <abdur_rehman@mentor.com>
3Date: Mon, 24 Oct 2016 20:24:32 +0500
4Subject: [PATCH] icedtea flags to compile with GCC 6
5
6Upstream bug filed here:
7https://bugs.openjdk.java.net/browse/JDK-8163032
8
9This patch combines the changes introduced by following commits:
10* http://hg.openjdk.java.net/jdk7u/jdk7u/hotspot/rev/e34324d73cd5
11* http://hg.openjdk.java.net/jdk7u/jdk7u/jdk/rev/9e1264f51bae
12
13Upstream-Status: Backport
14
15Signed-off-by: Abdur Rehman <abdur_rehman@mentor.com>
16---
17 openjdk/hotspot/make/linux/makefiles/gcc.make | 7 +++++++
18 openjdk/jdk/make/common/Defs-linux.gmk | 8 +++++++-
19 2 files changed, 14 insertions(+), 1 deletion(-)
20
21diff --git openjdk/hotspot/make/linux/makefiles/gcc.make openjdk/hotspot/make/linux/makefiles/gcc.make
22index 4ef0e49..bca3c5c 100644
23--- openjdk/hotspot/make/linux/makefiles/gcc.make
24+++ openjdk/hotspot/make/linux/makefiles/gcc.make
25@@ -83,6 +83,7 @@ ifeq ($(TYPE),SHARK)
26 CFLAGS += $(LIBFFI_CFLAGS)
27 CFLAGS += $(LLVM_CFLAGS)
28 endif
29+CFLAGS += -std=gnu++98
30 CFLAGS += $(VM_PICFLAG)
31 CFLAGS += -fno-rtti
32 CFLAGS += -fno-exceptions
33@@ -93,6 +94,12 @@ CFLAGS += -fcheck-new
34 ifneq "$(shell expr \( $(CC_VER_MAJOR) \> 4 \) \| \( \( $(CC_VER_MAJOR) = 4 \) \& \( $(CC_VER_MINOR) \>= 3 \) \))" "0"
35 CFLAGS += -fvisibility=hidden
36 endif
37+# GCC 6 has more aggressive dead-store elimination which causes the VM to crash
38+# It also optimises away null pointer checks which are still needed.
39+# We turn both of these optimisations off.
40+ifneq "$(shell expr \( $(CC_VER_MAJOR) \>= 6 \))" "0"
41+CFLAGS += -fno-delete-null-pointer-checks -fno-lifetime-dse
42+endif
43
44 ARCHFLAG = $(ARCHFLAG/$(BUILDARCH))
45 ARCHFLAG/i486 = -m32 -march=i586
46diff --git openjdk/jdk/make/common/Defs-linux.gmk openjdk/jdk/make/common/Defs-linux.gmk
47index f64042c..727593c 100644
48--- openjdk/jdk/make/common/Defs-linux.gmk
49+++ openjdk/jdk/make/common/Defs-linux.gmk
50@@ -217,6 +217,12 @@ CFLAGS_REQUIRED_ppc64 += -fno-tree-vectorize
51 CFLAGS_REQUIRED = $(CFLAGS_REQUIRED_$(ARCH))
52 LDFLAGS_COMMON += $(LDFLAGS_COMMON_$(ARCH))
53 endif
54+# GCC 6 has more aggressive dead-store elimination which causes the VM to crash
55+# It also optimises away null pointer checks which are still needed.
56+# We turn both of these optimisations off.
57+ifeq ($(shell $(EXPR) $(CC_MAJORVER) \>= 6 ),1)
58+ CFLAGS_REQUIRED += -fno-delete-null-pointer-checks -fno-lifetime-dse
59+endif
60
61 # If this is a --hash-style=gnu system, use --hash-style=both
62 # The gnu .hash section won't work on some Linux systems like SuSE 10.
63@@ -281,7 +287,7 @@ CFLAGS_OPT = $(CC_OPT)
64 CFLAGS_DBG = $(DEBUG_FLAG)
65 CFLAGS_COMMON += $(CFLAGS_REQUIRED)
66
67-CXXFLAGS_COMMON = $(GLOBAL_KPIC) -DCC_NOEX $(GCC_WARNINGS)
68+CXXFLAGS_COMMON = -std=gnu++98 $(GLOBAL_KPIC) -DCC_NOEX $(GCC_WARNINGS)
69 CXXFLAGS_OPT = $(CC_OPT)
70 CXXFLAGS_DBG = $(DEBUG_FLAG)
71 CXXFLAGS_COMMON += $(CFLAGS_REQUIRED)
72--
732.8.1
74