RFR: 8350683: Non-C2 / minimal JVM crashes in the build on ppc64 platforms
Amit Kumar
amitkumar at openjdk.org
Fri Feb 28 02:59:52 UTC 2025
On Thu, 27 Feb 2025 09:19:50 GMT, Amit Kumar <amitkumar at openjdk.org> wrote:
>> When building a JVM without C2 (e.g. minimal) on ppc64 platforms , it crashes in the build because of unwanted dependencies to C2.
>> AIX crash is (linux ppc64le crash is similar) :
>>
>>
>> # Internal Error (compiledIC_ppc.cpp:141), pid=17695018, tid=258
>> # Error: ShouldNotReachHere()
>> #
>>
>> iar: 0x0900000008800c60 libjvm.so::AixNativeCallstack::print_callstack_for_context(outputStream*, ucontext_t const*, bool, char*, unsigned long)+0x4bc (C++ uses_alloca saves_cr saves_lr stores_bc gpr_saved:18 fixedparms:5 parmsonstk:1)
>> lr: 0x09000000087ea9b8 libjvm.so::fdStream::write(char const*, unsigned long)+0x44 (C++ uses_alloca saves_lr stores_bc gpr_saved:4 fixedparms:3 parmsonstk:1)
>> sp: 0x000000011023aab0 (base - 0x2DD8)
>> rtoc: 0x08001000a0088ff0
>> |---stackaddr----| |----lrsave------|: <function name>
>> 0x000000011023aea0 - 0x0900000008800730 libjvm.so::os::Aix::platform_print_native_stack(outputStream*, void const*, char*, int, unsigned char*&)+0x24 (C++ uses_alloca saves_lr stores_bc gpr_saved:1 fixedparms:5 parmsonstk:1)
>> 0x000000011023af20 - 0x0900000008800644 libjvm.so::NativeStackPrinter::print_stack(outputStream*, char*, int, unsigned char*&, bool, int)+0x60 (C++ uses_alloca saves_cr saves_lr stores_bc gpr_saved:6 fixedparms:7 parmsonstk:1)
>> 0x000000011023afc0 - 0x09000000087f6ff8 libjvm.so::VMError::report(outputStream*, bool)+0x11f0 (C++ fp_present uses_alloca saves_cr saves_lr stores_bc gpr_saved:13 fixedparms:2 parmsonstk:1)
>> 0x000000011023b830 - 0x09000000087e9fdc libjvm.so::VMError::report_and_die(int, char const*, char const*, char*, Thread*, unsigned char*, void const*, void const*, char const*, int, unsigned long)+0x6a0 (C++ uses_alloca saves_lr stores_bc gpr_saved:18 fixedparms:8 parmsonstk:1)
>> 0x000000011023ba10 - 0x09000000087e96a0 libjvm.so::report_vm_error(char const*, int, char const*, char const*, ...)+0xa0 (C++ uses_alloca saves_lr stores_bc gpr_saved:5 fixedparms:4 parmsonstk:1)
>> 0x000000011023bad0 - 0x09000000087e95cc libjvm.so::report_vm_error(char const*, int, char const*)+0x24 (C++ uses_alloca saves_lr stores_bc gpr_saved:1 fixedparms:3 parmsonstk:1)
>> 0x000000011023bb50 - 0x09000000087e956c libjvm.so::report_should_not_reach_here(char const*, int)+0x20 (C++ uses_alloca saves_lr stores_bc gpr_saved:1 fixedparms:2 parmsonstk:1)
>> 0x000000011023bbd0 - 0x0900000008906e5c libjvm.so::CompiledDirectCall::emit_to_interp_stub(MacroAssembler*, unsigned char*)+0x28 (C++ uses_alloca saves_lr stores_bc gpr_saved:1 fixedparms:2 p...
>
> Ok I ran another build with this configuration and still build was successful :
>
> bash configure \
> --with-boot-jdk=$HOME/boot_jdk_23 \
> --with-jtreg=$HOME/jtreg \
> --with-gtest=$HOME/googletest \
> --with-jmh=build/jmh/jars \
> --with-jvm-variants=minimal \
> --with-jvm-features=minimal \
> --with-debug-level=fastdebug \
> --with-native-debug-symbols=internal \
> --disable-precompiled-headers
> Hi @offamitkumar this is a bit surprising because the matcher header is only included if COMPILER2 is defined https://github.com/openjdk/jdk/blob/master/src/hotspot/cpu/s390/compiledIC_s390.cpp#L32 and this should not be the case in minimal JVM , but if this somehow works on your side, then fine :-) !
I have finished tier1 on minimal build, will see if this issue gets reproduced by any of the tests.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/23794#issuecomment-2689596308
More information about the hotspot-compiler-dev
mailing list