This is the mail archive of the
libc-alpha@sources.redhat.com
mailing list for the glibc project.
Re: Versioning mess proved!!!
- To: Ulrich Drepper <drepper at redhat dot com>,Jack Howarth <howarth at fuse dot net>
- Subject: Re: Versioning mess proved!!!
- From: Franz Sirl <Franz dot Sirl-kernel at lauterbach dot com>
- Date: Sat, 30 Sep 2000 02:24:41 +0200
- Cc: libc-alpha at sourceware dot cygnus dot com,aj at suse dot de
- References: <39D50E20.263F646F@fuse.net> <m3vgveu6a2.fsf@otr.mynet.cygnus.com>
On Sat, 30 Sep 2000, Ulrich Drepper wrote:
> Jack Howarth <howarth@fuse.net> writes:
> > 6) now rebuild the zlib srpm on the glibc 2.1.94 machine and install it.
> > Attempt to run the ./example
> > created in step 5. You will get a segfault.
>
> I cannot reproduce this. I followed your instructions and it works
> just fine for me. On x86 that is. You haven't mentioned which
> architecture you tried it on but I assume PPC.
>
> There are two things to do:
>
> - you have the binary, just use the debugger. At least get a backtrace.
>
> - run
> readelf -a <BINARY>
>
> on both executables and diff the output.
>
>
> I don't have access to a PPC machine in the moment and therefore
> cannot help.
Hmm, it segfaults in call_gmon_start cause __gmon_start__ gets relocated and
thus is no longer NULL.
The problem seems to be that __gmon_start__ ends up as an untyped weak in
glibc22:
murx22: 0001e994 08114 R_PPC_GLOB_DAT 00000000 __gmon_start__
+ 0
murx22: 129: 00000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__
murx22: 248: 00000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__
whereas on glibc21 this was weak function:
murx21: 0001debc 08215 R_PPC_JMP_SLOT 0000b670 __gmon_start__
+ 0
murx21: 130: 0000b670 0 FUNC WEAK DEFAULT 14 __gmon_start__
murx21: 256: 0000b670 0 FUNC WEAK DEFAULT 14 __gmon_start__
AFAICS this is generated from sysdeps/generic/initfini.c into csu/initfini.s,
which only gets
/*@_fini_EPILOG_ENDS*/
/*@TRAILER_BEGINS*/
.weak __gmon_start__
.ident "GCC: (GNU) 2.96 20000928 (experimental)"
at the end. The result is the same whether I use gcc-2.95.3 or gcc-2.96 as of
yesterday. Any idea how this can be fixed?
Franz.