Linux PARISC architecture development
 help / color / mirror / Atom feed
* [parisc-linux] glibc 2.2.3: setjmp/longjmp
@ 2001-05-04 20:05 Matthew Wilcox
  2001-05-04 20:18 ` John David Anglin
  0 siblings, 1 reply; 19+ messages in thread
From: Matthew Wilcox @ 2001-05-04 20:05 UTC (permalink / raw)
  To: parisc-linux

i think i've traced the problem down to setjmp/longjmp not working.

here's what happens:

__libc_dlsym calls
dlerror_run(do_dlsym) calls
_dl_catch_error -> setjmp, then calls
do_dlsym which calls
_dl_lookup_symbol which fails and calls
_dl_signal_cerror which calls
_dl_signal_error which calls longjmp

At this point, we should expect to get back to where we called setjmp, however that appears to not work.  If I add:

  errcode = setjmp (c.env);
_dl_printf("after setjmp, errcode = %u\n", errcode);
  if (__builtin_expect (errcode, 0) == 0)

the output from my debug logs looks like:

__libc_dlsym gconv_end
after setjmp, errcode = 0
current_value = 0 0
in the if... *ref = 0
in the if... not checking ELFW(ST_BIND)
in _dl_signal_cerror, receiver = 0
_dl_signal_error(0, /home/willy/cvs/glibc-build/iconvdata/SJIS.so, undefined symbol: gconv_end)
_dl_signal_error: lcatch = 7ff01300
_dl_signal_error: about to longjmp to 7ff01308
dlerror_run: errstr = (null)
Segmentation fault

so it's returning to the _caller_ of _dl_catch_error instead.  Ugh.
I'll be trying to decode assembler now...

-- 
Revolutions do not require corporate support.

^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2001-05-06 22:14 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2001-05-04 20:05 [parisc-linux] glibc 2.2.3: setjmp/longjmp Matthew Wilcox
2001-05-04 20:18 ` John David Anglin
2001-05-04 20:39   ` Matthew Wilcox
2001-05-04 21:02   ` Matthew Wilcox
2001-05-04 21:31     ` John David Anglin
2001-05-04 21:38       ` Matthew Wilcox
2001-05-04 21:51         ` John David Anglin
2001-05-04 22:36           ` Matthew Wilcox
2001-05-04 22:56             ` John David Anglin
2001-05-04 22:57           ` Matthew Wilcox
2001-05-05  0:00             ` Matthew Wilcox
2001-05-05  0:49               ` Alan Modra
2001-05-05  1:01                 ` Matthew Wilcox
2001-05-05  1:18                   ` Alan Modra
2001-05-05  1:47                     ` Matthew Wilcox
2001-05-06  6:14         ` Ulrich Drepper
2001-05-06  7:07           ` Grant Grundler
2001-05-06 15:53             ` John David Anglin
2001-05-06 22:13           ` Matthew Wilcox

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox