All of lore.kernel.org
 help / color / mirror / Atom feed
From: Matthew Wilcox <matthew@wil.cx>
To: parisc-linux@parisc-linux.org
Subject: [parisc-linux] glibc 2.2.3: setjmp/longjmp
Date: Fri, 4 May 2001 21:05:18 +0100	[thread overview]
Message-ID: <20010504210518.G32445@parcelfarce.linux.theplanet.co.uk> (raw)

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.

             reply	other threads:[~2001-05-04 20:05 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-05-04 20:05 Matthew Wilcox [this message]
2001-05-04 20:18 ` [parisc-linux] glibc 2.2.3: setjmp/longjmp 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

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20010504210518.G32445@parcelfarce.linux.theplanet.co.uk \
    --to=matthew@wil.cx \
    --cc=parisc-linux@parisc-linux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.