libunwind-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [libunwind] libunwind segv with gcc 2.96 programs run on Redhat EL 3


From: David Mosberger
Subject: Re: [libunwind] libunwind segv with gcc 2.96 programs run on Redhat EL 3 with GLIBC 2.3.2
Date: Mon, 9 Feb 2004 15:25:35 -0800

>>>>> On 04 Feb 2004 16:40:29 -0800, Jim Wilson <address@hidden> said:

  Jim> The call chain is supposed to be terminated with a 0 address.  This
  Jim> requires an instruction to load 0 into rp during the _start function,
  Jim> and an unwind descriptor to indicate that the 0 is there.  David
  Jim> Mosberger first added this stuff to glibc on 2001-04-09, and then
  Jim> revised it 2003-03-27.  I believe you need to have a glibc from after
  Jim> 2003-03-27 for this to work reliably.

The 2003-03-27 change is only needed to make unwinding work reliably
extremely early in the start up code.  Almost the only way to observe
failures in pre-2003-03-27 versions of the library is if you
single-step through the startup code (which almost nobody does).

  Jim> If you have a glibc in between those two dates, then it will
  Jim> probably work sometimes.  If you have a glibc from before
  Jim> 2001-04-09, then it probably won't work at all.  I don't know
  Jim> what glibc versions and patches are in the RH OS versions that
  Jim> you have.

I don't keep up with RH releases either, but like you said, there is
little hope of gcc-2.96-compiled code to work reliably for unwinding.

  Jim> Your testcase works fine on my debian system, which has an up-to-date
  Jim> copy of glibc.

The other thing that might work, Jerry, is to build a
statically-linked binary on RH EL V3 and then run that binary on the
older RH system.  However, glibc isn't very friendly towards
statically linked programs anymore, so this may cause other troubles
that may not be worth getting into (e.g., the DNS resolver needs to
load dynamic libraries even in statically linked programs).

        --david


reply via email to

[Prev in Thread] Current Thread [Next in Thread]