[oe] [meta-java][PATCH 2/2] openjdk-8-native: Fix sigsegv with gcc7

Ricardo Ribalda Delgado ricardo.ribalda at gmail.com
Thu Sep 7 08:51:36 UTC 2017


OpenJDK does not build properly with GCC7. Add the same workaround that
we have for GCC6.

Without this patch:

| #
| # A fatal error has been detected by the Java Runtime Environment:
| #
| #  SIGSEGV (0xb) at pc=0x00007fcad0efcd5b, pid=17206, tid=0x00007fcab264c700
| #
| # JRE version: OpenJDK Runtime Environment (8.0_102-b14) (build 1.8.0_102-internal-b14)
| # Java VM: OpenJDK 64-Bit Server VM (25.102-b14 mixed mode linux-amd64 compressed oops)
| # Problematic frame:
| # V  [libjvm.so+0x78bd5b]  Node::Node(unsigned int)+0x2b
| #
| # Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
| #
| # An error report file with more information is saved as:
| # /home/ricardo/curro/qt5022/build-qt5022-pyro/build/tmp/work/x86_64-linux/openjdk-8-native/102b14-r0/build/hs_err_pid17206.log
| [thread 140508549912320 also had an error]
|
| [error occurred during error reporting , id 0xb]
|
| #
| # If you would like to submit a bug report, please visit:
| #   http://bugreport.java.com/bugreport/crash.jsp
| #

Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda at gmail.com>
---
 recipes-core/openjdk/openjdk-8-common.inc | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/recipes-core/openjdk/openjdk-8-common.inc b/recipes-core/openjdk/openjdk-8-common.inc
index def779db4d59..0c5c2c3e3d2f 100644
--- a/recipes-core/openjdk/openjdk-8-common.inc
+++ b/recipes-core/openjdk/openjdk-8-common.inc
@@ -218,10 +218,11 @@ EXTRA_OECONF_append = "\
         --with-update-version=${OPENJDK_UPDATE_VERSION} \
 "
 
-# GCC 6 sets the default C++ standard to C++14 and introduces dead store
-# elimination by default. OpenJDK 8 is not ready for either of these
-# changes.
+# Since v6, GCC sets the default C++ standard to C++14 and introduces
+# dead store elimination by default. OpenJDK 8 is not ready for either
+# of these changes.
 FLAGS_GCC6 = "-fno-lifetime-dse -fno-delete-null-pointer-checks"
+FLAGS_GCC7 = "-fno-lifetime-dse -fno-delete-null-pointer-checks"
 
 # All supported cross compilers support the compiler flags that were
 # added to make compilation with gcc6 work. But the host compiler for
-- 
2.14.1




More information about the Openembedded-devel mailing list