This is the mail archive of the
libc-hacker@cygnus.com
mailing list for the glibc project.
Re: deep troubles with register_frame_info
- To: "H.J. Lu" <hjl@lucon.org>
- Subject: Re: deep troubles with register_frame_info
- From: Ruediger Oertel <ro@suse.de>
- Date: Mon, 5 Apr 1999 19:27:14 +0200 (MEST)
- Cc: law@cygnus.com, florian@suse.de, GNU C Library <libc-hacker@cygnus.com>
On Mon, 5 Apr 1999, H.J. Lu wrote:
> > In message <m10UAsu-000ErMC@ocean.lucon.org>you write:
> > > I have warned everyone on the glibc mailing list that you HAVE to get
> > > the latest glibc 2.0 from CVS or use glibc 2.1.1. We haven't made any
> > > glibc 2.0 releases for a long time. But there are quite a few important
> > > changes in CVS. Please either
> > That is not acceptable. We can not break existing binaries like that. Period,
> > that is simply not acceptable. You need to find a better solution or the
> > change will have to be reverted.
> >
>
> Have you tried it on RedHat 5.2? Does it break anything? I only saw
> this when
>
> 1. Run binaries compiled against the new glibc on a system with an
> older glibc.
> 2. Recompile the older/buggy glibc 2.0 with egcs 1.1.2.
>
> I guess #2 is the case for SuSE. They should have never done that. FYI,
> glibc is a very special case. It doesn't use crtbegin.o/crtend.o from
> egcs. It has its own crtbegin.o/crtend.o. The ones in the glibc which
> SuSE uses are broken. I don't even know reverting my changes in egcs
> will help. The correct way to fix it is to update glibc to get the
> working crtbegin.o/crtend.o.
>
> BTW, in glibc, we don't call them crtbegin.o/crtend.o. They are called
> soinit.os and sofini.os.
It's not the change that came in glibc. It's simply the other shared
libraries. We compiled glibc-2.0 with egcs from the start and
register_frame_info was never in there (similar as it is on redhat
with a gcc-compiled glibc-2.0)
The problem comes up with (e.g.) libncurses, which contained the
register_frame_info functions with the old setup, and thus, binaries
compiled on a SuSE-6.09 system relied on finding these functions (outside
the binary itself). /usr/bin/vim for example is a candidate.
libncurses compiled after the change in egcs-1.1.2 would not contain
the function register_frame_info any more. Thus installing a recently
compiled ncurses-rpm (or what ever archiver format you prefer)
on a old installation will result in a partially inoperable system.
with kind regards (mit freundlichem Grinsen),
Ruediger Oertel (ro@suse.de)
-----------------------------------------------------------------
Linux version 2.2.5 (root@fatou) (egcs-1.1.2 release) #2 SMP
Total of 2 processors activated (800.36 BogoMIPS)
Mem: 264187904 Swap: 2270130176