[llvm-dev] OpenJDK8 failed to work after compiled by LLVM 8 for X86 (original) (raw)
Dimitry Andric via llvm-dev llvm-dev at lists.llvm.org
Mon Sep 10 09:59:20 PDT 2018
- Previous message: [llvm-dev] OpenJDK8 failed to work after compiled by LLVM 8 for X86
- Next message: [llvm-dev] OpenJDK8 failed to work after compiled by LLVM 8 for X86
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Hi Leslie,
This is likely the same problem as was reported in https://bugs.freebsd.org/225054#c8, and fixed by the following patch:
Can you please try that out, and see if it fixes it for you too?
-Dimitry
On 10 Sep 2018, at 18:20, Leslie Zhai via llvm-dev <llvm-dev at lists.llvm.org> wrote:
Hi all, OpenJDK8 jdk8u-dev[1] is just able to work after compiled with LLVM 3.9.1 for X86: $ ./build/linux-x8664-normal-server-slowdebug/images/j2sdk-image/bin/java -version openjdk version "1.8.0-internal-debug" OpenJDK Runtime Environment (build 1.8.0-internal-debug-xiangzhai201809092108-b00) OpenJDK 64-Bit Server VM (build 25.71-b00-debug, mixed mode) $ strings ./build/linux-x8664-normal-server-slowdebug/images/j2sdk-image/bin/java | grep clang clang version 3.9.1 (tags/RELEASE391/final) But it failed to work after compiled with LLVM 8 for X86: $ ./build/linux-x8664-normal-server-fastdebug/images/j2sdk-image/bin/java -version Segmentation fault $ gdb --ex run --args ./build/linux-x8664-normal-server-fastdebug/images/j2sdk-image/bin/java -version GNU gdb (GDB) Fedora 7.12.1-48.fc25 ... Starting program: /home/xiangzhai/project/jdk8u-llvm/build/linux-x8664-normal-server-fastdebug/images/j2sdk-image/bin/java -version [Thread debugging using libthreaddb enabled] Using host libthreaddb library "/lib64/libthreaddb.so.1". Program received signal SIGSEGV, Segmentation fault. [ Legend: Modified register | Code | Heap | Stack | String ] ───────────────────────────────────────────────────────────────────────────────────────────────[ registers ]──── $rax : 0x0 $rbx : 0x0 $rcx : 0x7ffff7315eb0 → 0x00007ffff6ae30a0 → NativeCallStack::printon(outputStream*)+0 xor edx, edx $rdx : 0x0 $rsp : 0x7fffffff9328 → 0x00007ffff6a76822 → MemTracker::inittrackinglevel()+178 mov edi, ebx $rbp : 0x7fffffff93c0 → 0x00007fffffff94f0 → 0x00007fffffff9510 → 0x0000000000000002 $rsi : 0x0 $rdi : 0x7ffff7315e70 → 0x00007ffff7315eb0 → 0x00007ffff6ae30a0 → NativeCallStack::printon(outputStream*)+0 xor edx, edx $rip : 0x7ffff6ae2f5b → NativeCallStack::NativeCallStack(int,+0 mov QWORD PTR [rdi], rcx $r8 : 0x1 $r9 : 0xf $r10 : 0x64 $r11 : 0x0 $r12 : 0x7fffffffdc88 → 0x00007fffffffe04c → "/home/xiangzhai/project/jdk8u-llvm/build/linux-x86[...]" $r13 : 0x7fffffffdca0 → 0x00007fffffffe0bf → "XDGVTNR=1" $r14 : 0x7fffffff9330 → "NMTLEVEL10535" $r15 : 0x6 $eflags: [carry parity adjust zero sign trap INTERRUPT direction overflow RESUME virtualx86 identification] $ss: 0x002b ds:0x0000ds: 0x0000 ds:0x0000cs: 0x0033 es:0x0000es: 0x0000 es:0x0000gs: 0x0000 $fs: 0x0000 ───────────────────────────────────────────────────────────────────────────────────────────────────[ stack ]──── 0x00007fffffff9328│+0x00: 0x00007ffff6a76822 → MemTracker::inittrackinglevel()+178 mov edi, ebx ← $rsp 0x00007fffffff9330│+0x08: "NMTLEVEL10535" ← $r14 0x00007fffffff9338│+0x10: 0x0035333530315f4c ("L10535"?) 0x00007fffffff9340│+0x18: 0x0000000000000001 0x00007fffffff9348│+0x20: 0x0000000000602190 → 0x00007ffff5eb7000 → 0x00010102464c457f 0x00007fffffff9350│+0x28: 0x0000000000000004 0x00007fffffff9358│+0x30: 0x000000066474e551 0x00007fffffff9360│+0x38: 0x0000000000000000 ────────────────────────────────────────────────────────────────────────────────────────[ code:i386:x86-64 ]──── 0x7ffff6ae2f4b <printownedlocksonerror(outputStream*)+187> add eax, 0x1f0f00 0x7ffff6ae2f50 NativeCallStack::NativeCallStack(int,+0 mov rcx, QWORD PTR [rip+0x842781] # 0x7ffff73256d8 0x7ffff6ae2f57 NativeCallStack::NativeCallStack(int,+0 add rcx, 0x10 → 0x7ffff6ae2f5b NativeCallStack::NativeCallStack(int,+0 mov QWORD PTR [rdi], rcx 0x7ffff6ae2f5e NativeCallStack::NativeCallStack(int,+0 mov DWORD PTR [rdi+0x28], 0x0 0x7ffff6ae2f65 NativeCallStack::NativeCallStack(int,+0 add rdi, 0x8 0x7ffff6ae2f69 NativeCallStack::NativeCallStack(int,+0 test edx, edx 0x7ffff6ae2f6b NativeCallStack::NativeCallStack(int,+0 je 0x7ffff6ae2f7b <NativeCallStack::NativeCallStack(int, bool)+43> 0x7ffff6ae2f6d NativeCallStack::NativeCallStack(int,+0 mov eax, esi ─────────[ source:/home/xiangzhai/project/jdk8u-llvm/hotspot/src/share/vm/utilities/nativeCallStack.cpp+33 ]──── 28 #include "utilities/nativeCallStack.hpp" 29 30 const NativeCallStack NativeCallStack::EMPTYSTACK(0, false); 31 32 NativeCallStack::NativeCallStack(int toSkip, bool fillStack) : → 33 hashvalue(0) { 34 35 #if !PLATFORMNATIVESTACKWALKINGSUPPORTED 36 fillStack = false; 37 #endif 38 ─────────────────────────────────────────────────────────────────────────────────────────────────[ threads ]──── [#0] Id 1, Name: "java", stopped, reason: SIGSEGV ───────────────────────────────────────────────────────────────────────────────────────────────────[ trace ]──── [#0] 0x7ffff6ae2f5b → Name: NativeCallStack::NativeCallStack(this=0x7ffff7315e70 NativeCallStack::EMPTYSTACK, toSkip=0x0, fillStack=0x0) [#1] 0x7ffff6a76822 → Name: MemTracker::inittrackinglevel() [#2] 0x7ffff62eff49 → Name: MemTracker::trackinglevel() [#3] 0x7ffff62eff49 → Name: ResourceObj::operator new(size=0x20, type=ResourceObj::STACKOREMBEDDED, flags=) [#4] 0x7ffff61369ec → Name: GLOBAL_subIc1Greedy.cpp() [#5] 0x7ffff7de7d9a → Name: callinit(l=, argc=0x2, argv=0x7fffffffdc88, env=0x7fffffffdca0) [#6] 0x7ffff7de7eab → Name: callinit(env=0x7fffffffdca0, argv=0x7fffffffdc88, argc=0x2, l=) [#7] 0x7ffff7de7eab → Name: dlinit(mainmap=0x602190, argc=0x2, argv=0x7fffffffdc88, env=0x7fffffffdca0) [#8] 0x7ffff7dece46 → Name: dlopenworker(a=0x7fffffff97e0) [#9] 0x7ffff7de7c44 → Name: dlcatcherror(objname=0x7fffffff97d0, errstring=0x7fffffff97d8, mallocedp=0x7fffffff97cf, operate=0x7ffff7decae0 , args=0x7fffffff97e0) ──────────────────────────────────────────────────────────────────────────────────────────────────────────────── 0x00007ffff6ae2f5b in NativeCallStack::NativeCallStack (this=0x7ffff7315e70 NativeCallStack::EMPTYSTACK, toSkip=0x0, fillStack=0x0) at /home/xiangzhai/project/jdk8u-llvm/hotspot/src/share/vm/utilities/nativeCallStack.cpp:33 33 hashvalue(0) { gef➤ c Continuing. Program terminated with signal SIGSEGV, Segmentation fault. The program no longer exists. gef➤ ----- 8< -------- 8< -------- 8< -------- 8< -------- 8< -------- 8< --- I started to use and contribute clang static analyzer[2] just for finding the bugs for open source software from LLVM 3.x, perhaps it is a bug of LLVM 8, because jdk8u is just able to print out '-version' after compiled with llvm-3.9.1, I will rebuild the LLVM 8 again, then rebuild jdk8u for triple check. 1. Workaround-compile-with-llvm.patch https://raw.githubusercontent.com/xiangzhai/jdk8u-dev/master/Workaround-compile-with-llvm.patch 2. https://github.com/llvm-mirror/clang/commit/a530e823ed2793ac149de7a984014e242a787682#diff-ff9160d4628cb9b6186559837c2c8668 3. The build option of LLVM 8 (bootstrap with LLVM 3.9.1): _cmake .. -DCMAKEBUILDTYPE=Release _ _-DCMAKECCOMPILER=clang _ _-DCMAKECXXCOMPILER=clang++ _ _-DCMAKECFLAGS="-fPIC" _ _-DCMAKECXXFLAGS="-std=c++11 -fPIC" _ _-DLLVMBUILDLLVMDYLIB=ON _ _-DLLVMLINKLLVMDYLIB=ON _ _-DLLVMINSTALLUTILS=ON _ _-DLLVMENABLERTTI=ON _ _-DLLVMENABLEFFI=ON _ _-DLLVMENABLEEH=ON _ _-DLLVMBUILDTESTS=ON _ _-DLLVMBUILDDOCS=OFF _ _-DLLVMENABLESPHINX=OFF _ _-DLLVMENABLEDOXYGEN=OFF _ _-DLLDBDISABLELIBEDIT=1 _ _-DSPHINXWARNINGSASERRORS=OFF _ _-DFFIINCLUDEDIR=$(pkg-config --variable=includedir libffi) _ _-DFFILIBRARYDIR:PATH="$(pkg-config --variable=libdir libffi)" _ _-DLLVMBINUTILSINCDIR=/usr/include _ _-DLLVMLIBDIRSUFFIX=64 _ _-DLIBCXXENABLEABILINKERSCRIPT=ON _ _-DLIBUNWINDENABLESHARED=ON _ _-DLIBCXXABIUSELLVMUNWINDER=ON _ _-DLLDBTESTCCOMPILER=clang _ _-DLLDBTESTCXXCOMPILER=clang++ _ _-DLLVMDEFAULTTARGETTRIPLE="x8664-redhat-linux" _ -DCLANGVENDOR="LLVM China" 4. $ clang -v LLVM China clang version 8.0.0 (git at github.com:llvm-mirror/clang.git 81ef98628ebf5186d746c0986dcbf5073e842043) (git at github.com:llvm-mirror/llvm.git e1aac9723d55497e74d83d216329f08d9842e494) (based on LLVM 8.0.0svn) Target: x8664-redhat-linux Thread model: posix InstalledDir: /usr/bin Found candidate GCC installation: /usr/bin/../lib/gcc/i686-redhat-linux/6.4.1 Found candidate GCC installation: /usr/bin/../lib/gcc/x8664-redhat-linux/6.4.1 Found candidate GCC installation: /usr/lib/gcc/i686-redhat-linux/6.4.1 Found candidate GCC installation: /usr/lib/gcc/x8664-redhat-linux/6.4.1 Selected GCC installation: /usr/bin/../lib/gcc/x8664-redhat-linux/6.4.1 Candidate multilib: .;@m64 Candidate multilib: 32;@m32 Selected multilib: .;@m64 -- Regards, Leslie Zhai
LLVM Developers mailing list llvm-dev at lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
-------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 223 bytes Desc: Message signed with OpenPGP URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20180910/20e0f50e/attachment-0001.sig>
- Previous message: [llvm-dev] OpenJDK8 failed to work after compiled by LLVM 8 for X86
- Next message: [llvm-dev] OpenJDK8 failed to work after compiled by LLVM 8 for X86
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]