Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 26 Apr 2018 16:39:51 +0000
From:      bugzilla-noreply@freebsd.org
To:        bugs@FreeBSD.org
Subject:   [Bug 227552] w, uptime i386 cordeump
Message-ID:  <bug-227552-227-yQJdXcbcHt@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-227552-227@https.bugs.freebsd.org/bugzilla/>
References:  <bug-227552-227@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=3D227552

Dimitry Andric <dim@FreeBSD.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |dim@FreeBSD.org,
                   |                            |emaste@freebsd.org

--- Comment #10 from Dimitry Andric <dim@FreeBSD.org> ---
(In reply to Oleksandr Tymoshenko from comment #9)
> xo_default_handle is passed as an argument to xo_init_handle so I added a
> breakpoint and checked its content. Since it's static it's supposed to be
> zero-initialized but instead there are a lot of garbage values.
> xo_default_handle is thread-local variable so it might be a contributing
> factor.
...
> (gdb) p *xop
> $1 =3D {xo_flags =3D 0, xo_iflags =3D 2883994737386192896, xo_style =3D 4=
5072,
> xo_indent =3D 10246, xo_indent_by =3D 41472, xo_write =3D 0x1,
>   xo_close =3D 0x280601ef <__pthread_cleanup_push_imp_int+31>, xo_flush =
=3D

It definitely seems to have something to do with TLS.  The libxo.so.0 file
shipped in the FreeBSD-11.2-PRERELEASE-i386-20180420-r332802 snapshot has:

Program Header:
    LOAD off    0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**12
         filesz 0x00017160 memsz 0x00017160 flags r-x
    LOAD off    0x00017160 vaddr 0x00018160 paddr 0x00018160 align 2**12
         filesz 0x00000604 memsz 0x00000654 flags rw-
 DYNAMIC off    0x00017264 vaddr 0x00018264 paddr 0x00018264 align 2**2
         filesz 0x000000d8 memsz 0x000000d8 flags rw-
     TLS off    0x00017160 vaddr 0x00018764 paddr 0x00018764 align 2**3
         filesz 0x00000000 memsz 0x00000050 flags r--
   STACK off    0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**2
         filesz 0x00000000 memsz 0x00000000 flags rw-

but if I install this snapshot onto a machine, check out stable/11 r332802 =
and
rebuild lib/libxo, the resulting libxo.so.0 has:

Program Header:
    LOAD off    0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**12
         filesz 0x00017160 memsz 0x00017160 flags r-x
    LOAD off    0x00017160 vaddr 0x00018160 paddr 0x00018160 align 2**12
         filesz 0x00000604 memsz 0x00000654 flags rw-
 DYNAMIC off    0x00017264 vaddr 0x00018264 paddr 0x00018264 align 2**2
         filesz 0x000000d8 memsz 0x000000d8 flags rw-
     TLS off    0x00017160 vaddr 0x00018160 paddr 0x00018160 align 2**3
         filesz 0x00000000 memsz 0x00000658 flags r--
   STACK off    0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**2
         filesz 0x00000000 memsz 0x00000000 flags rw-

E.g. the shipped version has a TLS section of just 0x50 bytes, while the
recompiled version has 0x658 bytes.  The recompiled version also works just
fine, with every test I throw at it.

I don't know how the shipped versions are built, but I suspect there is
something off there.

--=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-227552-227-yQJdXcbcHt>