Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 12 Jan 2018 20:50:30 +0000
From:      bugzilla-noreply@freebsd.org
To:        java@FreeBSD.org
Subject:   [Bug 225054] java/openjdk* : fails to build with clang 6.0 (blocks 571 ports)
Message-ID:  <bug-225054-8522-WnDSpzqkgq@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-225054-8522@https.bugs.freebsd.org/bugzilla/>
References:  <bug-225054-8522@https.bugs.freebsd.org/bugzilla/>

next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D225054

--- Comment #9 from Dimitry Andric <dim@FreeBSD.org> ---
(In reply to Jan Beich from comment #8)
> Dimitry, does openjdk8 actually work for you? Clang 6 probably misoptimiz=
es
> it.

Not sure about misoptimizing, but it does indeed crash:

Program received signal SIGSEGV, Segmentation fault.
NativeCallStack::NativeCallStack (this=3D0x800e6a7a0
<NativeCallStack::EMPTY_STACK>, toSkip=3D0, fillStack=3Dfalse)
    at
/wrkdirs/share/dim/ports/java/openjdk8/work/openjdk/hotspot/src/share/vm/ut=
ilities/nativeCallStack.cpp:33
33        _hash_value(0) {
(gdb) bt
#0  NativeCallStack::NativeCallStack (this=3D0x800e6a7a0
<NativeCallStack::EMPTY_STACK>, toSkip=3D0, fillStack=3Dfalse)
    at
/wrkdirs/share/dim/ports/java/openjdk8/work/openjdk/hotspot/src/share/vm/ut=
ilities/nativeCallStack.cpp:33
#1  0x0000000801732d7e in MemTracker::init_tracking_level () at
/wrkdirs/share/dim/ports/java/openjdk8/work/openjdk/hotspot/src/share/vm/se=
rvices/memTracker.cpp:72
#2  0x000000080126cb62 in MemTracker::tracking_level () at
/wrkdirs/share/dim/ports/java/openjdk8/work/openjdk/hotspot/src/share/vm/se=
rvices/memTracker.hpp:118
#3  ResourceObj::operator new (size=3D32, type=3DResourceObj::STACK_OR_EMBE=
DDED,
flags=3DmtInternal) at
/wrkdirs/share/dim/ports/java/openjdk8/work/openjdk/hotspot/src/share/vm/me=
mory/allocation.cpp:89
#4  0x000000080180b93a in _GLOBAL__sub_I_reflectionUtils.cpp () at
/wrkdirs/share/dim/ports/java/openjdk8/work/openjdk/hotspot/src/share/vm/ru=
ntime/reflectionUtils.cpp:72
#5  0x0000000801939182 in __do_global_ctors_aux () from
/wrkdirs/share/dim/ports/java/openjdk8/work/openjdk/build/bsd-x86_64-normal=
-server-release/jdk/lib/amd64/server/libjvm.so
#6  0x00000008019391a6 in _init () from
/wrkdirs/share/dim/ports/java/openjdk8/work/openjdk/build/bsd-x86_64-normal=
-server-release/jdk/lib/amd64/server/libjvm.so
#7  0x00007fffffffc8f0 in ?? ()
#8  0x000000080020d06a in objlist_call_init (list=3D<optimized out>,
lockstate=3D<optimized out>) at /usr/src/libexec/rtld-elf/rtld.c:2672
#9  0x00000008002117e9 in dlopen_object (name=3D0x80022f800 "z\270P\325",
fd=3D<optimized out>, refobj=3D<optimized out>, lo_flags=3D2, mode=3D258,
lockstate=3D0x772f386b00000002) at /usr/src/libexec/rtld-elf/rtld.c:3391
#10 0x000000080020e1e6 in rtld_dlopen (name=3D0x7fffffffdeb0
"/wrkdirs/share/dim/ports/java/openjdk8/work/openjdk/build/bsd-x86_64-norma=
l-server-release/jdk/lib/amd64/server/libjvm.so",
fd=3D-1, mode=3D<optimized out>)
    at /usr/src/libexec/rtld-elf/rtld.c:3266
#11 0x000000080025136e in LoadJavaVM () from
/wrkdirs/share/dim/ports/java/openjdk8/work/openjdk/build/bsd-x86_64-normal=
-server-release/jdk/bin/../lib/amd64/jli/libjli.so
#12 0x000000080024ccf8 in JLI_Launch () from
/wrkdirs/share/dim/ports/java/openjdk8/work/openjdk/build/bsd-x86_64-normal=
-server-release/jdk/bin/../lib/amd64/jli/libjli.so
#13 0x000000000020130b in main ()
(gdb) print *this
$2 =3D {<StackObj> =3D {<No data fields>}, static EMPTY_STACK =3D {<StackOb=
j> =3D {<No
data fields>}, static EMPTY_STACK =3D <same as static member of an already =
seen
type>, _stack =3D {0x0, 0x0, 0x0, 0x0}, _hash_value =3D 0},
  _stack =3D {0x0, 0x0, 0x0, 0x0}, _hash_value =3D 0}
(gdb) disassemble
Dump of assembler code for function NativeCallStack::NativeCallStack(int,
bool):
   0x00000008017776c0 <+0>:     push   %rbp
   0x00000008017776c1 <+1>:     mov    %rsp,%rbp
   0x00000008017776c4 <+4>:     mov    %esi,%eax
=3D> 0x00000008017776c6 <+6>:     movl   $0x0,0x20(%rdi)
   0x00000008017776cd <+13>:    test   %edx,%edx
   0x00000008017776cf <+15>:    je     0x8017776de
<NativeCallStack::NativeCallStack(int, bool)+30>
   0x00000008017776d1 <+17>:    mov    $0x4,%esi
   0x00000008017776d6 <+22>:    mov    %eax,%edx
   0x00000008017776d8 <+24>:    pop    %rbp
   0x00000008017776d9 <+25>:    jmpq   0x8017aa290
<os::get_native_stack(unsigned char**, int, int)>
   0x00000008017776de <+30>:    xorps  %xmm0,%xmm0
   0x00000008017776e1 <+33>:    movups %xmm0,0x10(%rdi)
   0x00000008017776e5 <+37>:    movups %xmm0,(%rdi)
   0x00000008017776e8 <+40>:    pop    %rbp
   0x00000008017776e9 <+41>:    retq
End of assembler dump.
(gdb) print &this->_hash_value
$4 =3D (int *) 0x800e6a7c0 <NativeCallStack::EMPTY_STACK+32>
(gdb) info registers
rax            0x0      0
rbx            0x0      0
rcx            0x0      0
rdx            0x0      0
rsi            0x0      0
rdi            0x800e6a7a0      34374854560
rbp            0x7fffffffc320   0x7fffffffc320
rsp            0x7fffffffc320   0x7fffffffc320
r8             0xfffffff5       4294967285
r9             0xffffffff81c1b688       -2118011256
r10            0x800e72e5c      34374889052
r11            0x7fffffffc0c8   140737488339144
r12            0x80022f9f0      34362030576
r13            0x2      2
r14            0x7fffffffc370   140737488339824
r15            0x8006a8a40      34366720576
rip            0x8017776c6      0x8017776c6
<NativeCallStack::NativeCallStack(int, bool)+6>
eflags         0x10246  [ PF ZF IF RF ]
cs             0x43     67
ss             0x3b     59
ds             <unavailable>
es             <unavailable>
fs             <unavailable>
gs             <unavailable>
fs_base        0x8002318b0      34362038448
gs_base        0x0      0

So the address of the _hash_value field is OK, apparently.  As to why this
gives a segfault, no idea yet.

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-225054-8522-WnDSpzqkgq>