This is the mail archive of the libc-alpha@sources.redhat.com mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: cannot install glibc-2.2.3 on Linux/ppc


At 12:44 17.05.2001, Christian Groessler wrote:
>Hi,
>
>I tried to install glibc-2.2.3 on a debian 2.2 potato ppc system.
>
>The final installation fails, since the elf/sln program segfaults.
>
>Here is a gdb trace:
>
>
>[muc-twinppc:/local/glibc-build2]$ gdb elf/sln
>GNU gdb 4.18
>Copyright 1998 Free Software Foundation, Inc.
>GDB is free software, covered by the GNU General Public License, and you are
>welcome to change it and/or distribute copies of it under certain conditions.
>Type "show copying" to see the conditions.
>There is absolutely no warranty for GDB.  Type "show warranty" for details.
>This GDB was configured as "powerpc-unknown-linux-gnu"...
>(gdb) break atexit
>Breakpoint 1 at 0x100008a8: file atexit.c, line 31.
>(gdb) r
>Starting program: /local/glibc-build2/elf/sln
>
>Breakpoint 1, atexit (func=0x1004d4d0 <_fini>) at atexit.c:31
>31        return __cxa_atexit ((void (*) (void *)) func, NULL,
>(gdb) x/10i $pc
>0x100008a8 <atexit+12>: lis     r9,0
>0x100008ac <atexit+16>: addi    r0,r9,0
>0x100008b0 <atexit+20>: lwz     r11,0(r9)
>0x100008b4 <atexit+24>: srawi   r9,r0,31
>0x100008b8 <atexit+28>: xor     r5,r9,r0
>0x100008bc <atexit+32>: subf    r5,r5,r9
>0x100008c0 <atexit+36>: srawi   r5,r5,31
>0x100008c4 <atexit+40>: and     r5,r11,r5
>0x100008c8 <atexit+44>: li      r4,0
>0x100008cc <atexit+48>: bl      0x100008e0 <__cxa_atexit>
>(gdb) stepi
>0x100008ac      31        return __cxa_atexit ((void (*) (void *)) func, NULL,
>(gdb)
>0x100008b0      31        return __cxa_atexit ((void (*) (void *)) func, NULL,
>(gdb)
>
>Program received signal SIGSEGV, Segmentation fault.
>0x100008b0 in atexit (func=0x1004d4d0 <_fini>) at atexit.c:31
>31        return __cxa_atexit ((void (*) (void *)) func, NULL,
>(gdb) inf reg r9
>r9             0x0      0
>(gdb)
>
>
>The offending part in stdlib/atexit.c is this:
>
>int
>atexit (void (*func) (void))
>{
>   return __cxa_atexit ((void (*) (void *)) func, NULL,
>                        &__dso_handle == NULL ? NULL : __dso_handle);
>}
>
>
>It seems the &__dso_handle == NULL check isn't performed by the
>compiler.
>I tried with gcc-2.95.2 (which comes with debian) and 2.95.3.

Since you are on debian, use the latest debian gcc-2.95.4. Or, if you 
compile gcc yourself, use the gcc-2_95-branch of the gcc CVS and apply 
<ftp://devel.linuxppc.org:21/users/fsirl/cvs-2_95-branch-ppc.diff>. The 
latest gcc-3.0 snapshots will work too.

Franz.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]