From: Daniel McGregor <[email protected]>

GCC 6 sets the default C++ standard to C++14 and introduces dead store
elimination by default. icedtea7 is not ready for either of these
changes, so just set the C++ standard back to gnu++98 and disable dead
store elimination.

Signed-off-by: Daniel McGregor <[email protected]>
Signed-off-by: Dan McGregor <[email protected]>
---
 recipes-core/icedtea/icedtea7-native.inc | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/recipes-core/icedtea/icedtea7-native.inc 
b/recipes-core/icedtea/icedtea7-native.inc
index d624b7a..3344acb 100644
--- a/recipes-core/icedtea/icedtea7-native.inc
+++ b/recipes-core/icedtea/icedtea7-native.inc
@@ -17,6 +17,13 @@ PACKAGECONFIG[x11] = ",--disable-headful,libx11-native 
xproto-native libxt-nativ
 OEMAKE_BUILD_HEADLESS_ONLY = "${@bb.utils.contains('PACKAGECONFIG', 'x11', '', 
'BUILD_HEADLESS_ONLY=1', d)}"
 CFLAGS_append = "${@bb.utils.contains('PACKAGECONFIG', 'x11', '', ' 
-DHEADLESS=true', d)}"
 
+# Disable dead store elimination and set C++ standard to C++98.
+# There are dead stores in the JVM that would be pretty hard to
+# remove, so disable the optimisation in the compiler.
+CFLAGS_append = " -fno-tree-dse"
+CXXFLAGS_append = " -fno-tree-dse"
+CXX_append = " -std=gnu++98"
+
 inherit native java autotools pkgconfig
 
 JAVA_HOME[unexport] = "1"
@@ -153,6 +160,8 @@ do_configure_append() {
        for F in openjdk/hotspot/make/linux/makefiles/gcc.make 
openjdk/hotspot/agent/src/os/linux/Makefile ;
        do
                sed -i \
+                       -e"s|HOST_GCC = gcc$|HOST_GCC = ${CC}|" \
+                       -e"s|HOST_CPP = g++$|HOST_CPP = ${CXX}|" \
                        -e"s|gcc\$(GCC_SUFFIX)|${CC}|" \
                        -e"s|g++\$(GCC_SUFFIX)|${CXX}|" \
                        $F
-- 
2.9.0

-- 
_______________________________________________
Openembedded-devel mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-devel

Reply via email to