Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 13 Nov 2018 18:04:45 +0000
From:      bugzilla-noreply@freebsd.org
To:        freebsd-arm@FreeBSD.org
Subject:   [Bug 233204] rtld issue on aarch64
Message-ID:  <bug-233204-7@https.bugs.freebsd.org/bugzilla/>

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

            Bug ID: 233204
           Summary: rtld issue on aarch64
           Product: Base System
           Version: CURRENT
          Hardware: arm64
                OS: Any
            Status: New
          Severity: Affects Many People
          Priority: ---
         Component: arm
          Assignee: freebsd-arm@FreeBSD.org
          Reporter: mikael.urankar@gmail.com
                CC: emaste@freebsd.org

Created attachment 199211
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=3D199211&action=
=3Dedit
test program

Hi,
I'm having the following crash in rtld on aarch64 when a program uses dlope=
n,
pthread and tls variables with the test program available at [1] :

Program terminated with signal SIGSEGV, Segmentation fault.
#0  free_tls (tcb=3D0x4028e010, tcbsize=3D16, tcbalign=3D16) at
/usr/src/libexec/rtld-elf/rtld.c:4842
4842        dtvsize =3D dtv[1];

(gdb) bt
#0  free_tls (tcb=3D0x4028e010, tcbsize=3D16, tcbalign=3D16) at
/usr/src/libexec/rtld-elf/rtld.c:4842
#1  0x0000000040235910 in _rtld_free_tls (tcb=3D0x4028e010, tcbsize=3D16,
tcbalign=3D<optimized out>)
   at /usr/src/libexec/rtld-elf/rtld.c:5062
#2  0x00000000402acde4 in _thr_free (curthread=3D0x406c4000, thread=3D0x406=
c4500)
at /usr/src/lib/libthr/thread/thr_list.c:199
#3  0x00000000402accf0 in _thr_gc (curthread=3D0x406c4000) at
/usr/src/lib/libthr/thread/thr_list.c:129
#4  0x00000000402ad164 in _thr_alloc (curthread=3D0x406c4000) at
/usr/src/lib/libthr/thread/thr_list.c:141
#5  0x00000000402a2124 in _pthread_create (thread=3D0xffffffffe948, attr=3D=
0x0,
start_routine=3D0x406d906c <do_something>, arg=3D0x0)
   at /usr/src/lib/libthr/thread/thr_create.c:81
#6  0x0000000000210364 in main ()

(gdb) p *0x4028e010
$1 =3D 666

The tcb points to my __thread variable which seems wrong.

I don't have the knowledge to debug this problem further so any help will be
greatly appreciated.

It crashes on 11.2-RELEASE and 13.0-CURRENT r340197.

[1]  http://mikael.urankar.free.fr/FreeBSD/aarch64/test.c
http://mikael.urankar.free.fr/FreeBSD/aarch64/test_lib.c

--=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-233204-7>