Zero and native support on linux-ia64
David Holmes
david.holmes at oracle.com
Sat Dec 23 23:38:41 UTC 2017
On 24/12/2017 5:14 AM, John Paul Adrian Glaubitz wrote:
> On 12/23/2017 05:00 PM, Andrew Haley wrote:
>> On 23/12/17 11:44, John Paul Adrian Glaubitz wrote:
>>> So, I am wondering, did OpenJDK have native support for ia64 at some point or
>>> was this all needed for Zero? I know that ia64 has some weird peculiarities
>>> and was wondering whether it's still possible to build Zero here.
>>
>> There was native support for ia64, but it never made it into OpenJDK. You'd
>> have to see if Zero still builds.
>
> Ok, thanks! I did manage to build Openjdk-8 using existing OpenJDK-7 binaries
> from Debian Wheezy. However, the JVM crashes. My suspicion - I haven't done any
> in-depth analysis yet - is that there are remnants of the native ia64 support
> that were compiled in for this build and therefore resulted in the crash.
Quite possible. As Andrew notes the IA64 code in the mainline predates
OpenJDK and was never a supported platform in OpenJDK, but some
licensees still used it. It took a while to get around to removing it
from the OpenJDK codebase - except IIRC we tried not to touch Zero as
Zero deals with architectures the rest of the code doesn't need to know
about. So we may have left in unneeded code.
Cheers,
David
> I also noticed that OpenJDK-10 has received more clean-up regarding the native
> support and I suppose that only the necessary #ifdefs for Zero on ia64 are
> left such as the one in [1]. However, since I haven't tried cross-compiling
> OpenJDK yet, I had to start with OpenJDK-8 instead of 10.
>
> The backtrace of the crash is below in any case.
>
> (wheezy-backports_ia64-dchroot)glaubitz at titanium:~/debian/openjdk-8/openjdk-8-8u151-b12/build/jdk/bin$ gdb ./javac
> GNU gdb (GDB) 7.4.1-debian
> Copyright (C) 2012 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law. Type "show copying"
> and "show warranty" for details.
> This GDB was configured as "ia64-linux-gnu".
> For bug reporting instructions, please see:
> <http://www.gnu.org/software/gdb/bugs/>...
> Reading symbols from /home/glaubitz/debian/openjdk-8/openjdk-8-8u151-b12/build/jdk/bin/javac...done.
> (gdb) r
> Starting program: /home/glaubitz/debian/openjdk-8/openjdk-8-8u151-b12/build/jdk/bin/javac
> [Thread debugging using libthread_db enabled]
> Using host libthread_db library "/lib/ia64-linux-gnu/libthread_db.so.1".
> [New Thread 0x2000000001627200 (LWP 1627)]
>
> Program received signal SIGILL, Illegal instruction.
> [Switching to Thread 0x2000000001627200 (LWP 1627)]
> 0x2000000000a328b1 in java_lang_String::compute_offsets () at
> /home/glaubitz/debian/openjdk-8/openjdk-8-8u151-b12/src/hotspot/src/share/vm/classfile/javaClasses.cpp:152
> 152 void java_lang_String::compute_offsets() {
> (gdb) bt
> #0 0x2000000000a328b1 in java_lang_String::compute_offsets ()
> at /home/glaubitz/debian/openjdk-8/openjdk-8-8u151-b12/src/hotspot/src/share/vm/classfile/javaClasses.cpp:152
> #1 0x2000000000ee4b70 in SystemDictionary::initialize_preloaded_classes (__the_thread__=0x60000000000116c0)
> at /home/glaubitz/debian/openjdk-8/openjdk-8-8u151-b12/src/hotspot/src/share/vm/classfile/systemDictionary.cpp:1902
> #2 0x2000000000f24bd0 in Universe::genesis (__the_thread__=0x60000000000116c0)
> at /home/glaubitz/debian/openjdk-8/openjdk-8-8u151-b12/src/hotspot/src/share/vm/memory/universe.cpp:302
> #3 0x2000000000f281d0 in universe2_init () at /home/glaubitz/debian/openjdk-8/openjdk-8-8u151-b12/src/hotspot/src/share/vm/memory/universe.cpp:1021
> #4 0x2000000000965a80 in init_globals () at /home/glaubitz/debian/openjdk-8/openjdk-8-8u151-b12/src/hotspot/src/share/vm/runtime/init.cpp:116
> #5 0x2000000000f046d0 in Threads::create_vm (args=0x20000000016267d0, canTryAgain=0x20000000016267b0)
> at /home/glaubitz/debian/openjdk-8/openjdk-8-8u151-b12/src/hotspot/src/share/vm/runtime/thread.cpp:3421
> #6 0x2000000000a70a20 in JNI_CreateJavaVM (vm=0x2000000001626808, penv=0x2000000001626800, args=0x20000000016267d0)
> at /home/glaubitz/debian/openjdk-8/openjdk-8-8u151-b12/src/hotspot/src/share/vm/prims/jni.cpp:5220
> #7 0x20000000000d43f0 in InitializeJVM (ifn=<optimized out>, penv=<optimized out>, pvm=<optimized out>)
> at /home/glaubitz/debian/openjdk-8/openjdk-8-8u151-b12/src/jdk/src/share/bin/java.c:1215
> #8 JavaMain (_args=0x60000fffffff73f0) at /home/glaubitz/debian/openjdk-8/openjdk-8-8u151-b12/src/jdk/src/share/bin/java.c:376
> #9 0x20000000000de910 in call_continuation (_args=0x60000fffffff73c8)
> at /home/glaubitz/debian/openjdk-8/openjdk-8-8u151-b12/src/jdk/src/solaris/bin/java_md_solinux.c:1034
> #10 0x200000000005ebb0 in start_thread () from /lib/ia64-linux-gnu/libpthread.so.0
> #11 0x20000000002c98c0 in __clone2 () from /lib/ia64-linux-gnu/libc.so.6.1
> #12 0x0000000000000000 in ?? ()
> (gdb)
>
> Adrian
>
>> [1] http://hg.openjdk.java.net/jdk/hs/file/614068b0ddd7/src/hotspot/os_cpu/linux_zero/os_linux_zero.cpp#l356
>
More information about the hotspot-dev
mailing list