This is the mail archive of the glibc-bugs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug dynamic-link/21041] Fix for bug 20019 causes linker errors for shared libraries using longjmp


https://sourceware.org/bugzilla/show_bug.cgi?id=21041

--- Comment #6 from H.J. Lu <hjl.tools at gmail dot com> ---
(In reply to H.J. Lu from comment #5)
> Created attachment 9750 [details]
> Something like this

I take this back.  Does this testcase ever work after

commit ec2a88b3c659ad4f5a662ca289edae4f0dc19d88
Author: Roland McGrath <roland@hack.frob.com>
Date:   Fri Feb 6 10:53:27 2015 -0800

    Clean up NPTL longjmp to be compat-only.

I got

(gdb) r
Starting program: /export/home/hjl/bugs/libc/pr21041/main-dynamic 
warning: Unable to find libthread_db matching inferior's thread library, thread
debugging will not be available.

Program received signal SIGSEGV, Segmentation fault.
0x0000000000000000 in ?? ()
(gdb) bt
#0  0x0000000000000000 in ?? ()
#1  0x00007ffff741928e in bar ()
#2  0x00007ffff7bda2de in foo () from ./libfoo.so
#3  0x00000000004005f9 in main ()
(gdb) 

The problem is

(gdb) disass longjmp_resolve 
Dump of assembler code for function longjmp_resolve:
   0x00007ffff79cc350 <+0>:     mov    0x208c91(%rip),%rax        #
0x7ffff7bd4fe8
   0x00007ffff79cc357 <+7>:     retq   

which returns the address after relocating libpthread.so with

000000217fe8  005400000006 R_X86_64_GLOB_DAT 0000000000000000
__libc_longjmp@GLIBC_PRIVATE + 0

This is the same problem which my fix for PR 20019 tries to detect.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]