[aarch64-port-dev ] Building with BUILTIN_SIM generates SIGSEGV when running java -version
Andrew McDermott
andrew.mcdermott at linaro.org
Thu Oct 31 12:26:46 PDT 2013
Hi,
I'm building the tip of aarch64-port via the sim_configure/sim_compile
scripts but running `java -version' leads to a crash[1].
The error stems from an assert() in:
jdk8/hotspot/src/share/vm/memory/allocation.cpp:692
#ifndef ALLOW_OPERATOR_NEW_USAGE
void* operator new(size_t size) throw() {
assert(false, "Should not call global operator new");
return 0;
}
Digging a little deeper I see that in:
jdk8/hotspot/make/linux/makefiles/aarch64.make
we have:
ifeq ($(BUILTIN_SIM), true)
CFLAGS += -DBUILTIN_SIM
#CFLAGS += -DBUILTIN_SIM -DALLOW_OPERATOR_NEW_USAGE
endif
Is there any reason why the "-DALLOW_OPERATOR_NEW_USAGE" is not enabled by
default. If I add this then the SEGV goes away (obviously!). Or, if this
is deliberately disabled, is there any value if I create a patch which
replaces uses of 'new char[]' with, say, class stringStream in parts of the
builtin simulator code?
[1] java -version
# To suppress the following error report, specify this argument
# after -XX: or in .hotspotrc: SuppressErrorAt=/allocation.cpp:697
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error
(/home/aim/jdk8/hotspot/src/share/vm/memory/allocation.cpp:697), pid=12534,
tid=140431156107008
# assert(false) failed: Should not call global operator new[]
#
# JRE version: (8.0) (build )
# Java VM: OpenJDK 64-Bit Client VM (25.0-b52-debug mixed mode
linux-aarch64 )
# 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/aim/jdk8/hs_err_pid12534.log
#
# If you would like to submit a bug report, please visit:
# http://bugreport.sun.com/bugreport/crash.jsp
#
Current thread is 140431156107008
Dumping core ...
LOOPING...
--
andy
More information about the aarch64-port-dev
mailing list