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 libc/21895] New: ppc64 setjmp/longjmp not fully interoperable with static dlopen


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

            Bug ID: 21895
           Summary: ppc64 setjmp/longjmp not fully interoperable with
                    static dlopen
           Product: glibc
           Version: unspecified
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: libc
          Assignee: unassigned at sourceware dot org
          Reporter: amonakov at gmail dot com
                CC: drepper.fsp at gmail dot com
  Target Milestone: ---

Created attachment 10311
  --> https://sourceware.org/bugzilla/attachment.cgi?id=10311&action=edit
testcase

On PowerPC64, implementations of setjmp and longjmp in Glibc save/restore
caller's saved TOC at ($r1+24) if compiled for shared libc.so, but not for
static libc.a.  However, since static dlopen is supported, a situation may
arise when libc.a longjmp is returning to a call site of libc.so setjmp; in
that case caller's saved TOC at ($r1+24) is not restored and the caller may
segfault. The attached testcase demonstrates this issue.

-- 
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]