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]

R_PPC_REL24 bugs in glibc 2.2.x


Hi,

it seems that the glibc 2.2.x can not handle the relocation properly. As
example, kmail compiled with 2.95.3 or the current CVS version can not
be used:

peach:~ # ldd -r /opt/kde2/bin/kmail
        libkhtml.so.3 => /opt/kde2/lib/libkhtml.so.3 (0x0154d000)
        libkjava.so.1 => /opt/kde2/lib/libkjava.so.1 (0x01508000)
        libkparts.so.1 => /opt/kde2/lib/libkparts.so.1 (0x014b0000)
        libkssl.so.2 => /opt/kde2/lib/libkssl.so.2 (0x0147a000)
        libssl.so.0 => /usr/lib/libssl.so.0 (0x01427000)
        libcrypto.so.0 => /usr/lib/libcrypto.so.0 (0x01317000)
        libkspell.so.3 => /opt/kde2/lib/libkspell.so.3 (0x012cf000)
        libkab.so.3 => /opt/kde2/lib/libkab.so.3 (0x01262000)
        libkfile.so.3 => /opt/kde2/lib/libkfile.so.3 (0x01199000)
        libksycoca.so.3 => /opt/kde2/lib/libksycoca.so.3 (0x010cb000)
        libkio.so.3 => /opt/kde2/lib/libkio.so.3 (0x00ff5000)
        libkdeui.so.3 => /opt/kde2/lib/libkdeui.so.3 (0x00d57000)
        libkdesu.so.1 => /opt/kde2/lib/libkdesu.so.1 (0x00d12000)
        libkdecore.so.3 => /opt/kde2/lib/libkdecore.so.3 (0x00b8a000)
        libkdefakes.so.3 => /opt/kde2/lib/libkdefakes.so.3 (0x00b69000)
        libdl.so.2 => /lib/libdl.so.2 (0x00b46000)
        libDCOP.so.1 => /opt/kde2/lib/libDCOP.so.1 (0x00b04000)
        libqt.so.2 => /usr/lib/qt2/lib/libqt.so.2 (0x00557000)
        libpng.so.2 => /usr/lib/libpng.so.2 (0x0050b000)
        libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0x004c8000)
        libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x00496000)
        libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x00373000)
        libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0x00349000)
        libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x00311000)
        libutil.so.1 => /lib/libutil.so.1 (0x002ee000)
        libz.so.1 => /lib/libz.so.1 (0x002be000)
        libstdc++-libc6.2-2.so.3 => /usr/lib/libstdc++-libc6.2-2.so.3
(0x00244000)
        libm.so.6 => /lib/libm.so.6 (0x001ab000)
        libc.so.6 => /lib/libc.so.6 (0x00051000)
        libXft.so.1 => /usr/X11R6/lib/libXft.so.1 (0x30029000)
        libmng.so.0 => /usr/lib/libmng.so.0 (0x300a4000)
        /lib/ld.so.1 => /lib/ld.so.1 (0x30000000)
        libXrender.so.1 => /usr/X11R6/lib/libXrender.so.1 (0x300fc000)
        liblcms.so.1 => /usr/lib/liblcms.so.1 (0x30111000)
/opt/kde2/bin/kmail: error while loading shared libraries:
/usr/X11R6/lib/libXft.so.1: R_PPC_REL24 relocation at 0x3004a574 for
symbol `)Ð' out of range

The symbol name is different with each compiler/glibc version that I
tried.

Running ld.so.1 in gdb didnt help much. It seems that
__process_machine_rela() in sysdeps/powerpc/dl-machine.c calls
dl_reloc_overflow() with wrong values, sym is never NULL:

(gdb) 
Run till exit from #0  __process_machine_rela (map=0x30150038,
reloc=0xa, sym=0xa, refsym=0x30150038, 
    reloc_addr=0x1135d4, finaladdr=1119184, rinfo=10) at
../sysdeps/powerpc/dl-machine.c:403
/opt/kde2/bin/kmail: error while loading shared libraries:
/usr/X11R6/lib/libXft.so.1: R_PPC_REL24 relocation at 0x0012ad38 for
symbol `c' out of range


Any ideas how to fix that? I was told it is a compiler bug, but it
happens also with the latest version so I guess the dynamic linker is
buggy on ppc.

The same KDE2 sources work fine with glibc 2.1.3, however, I didnt try
all possible combinations yet. ;)


Gruss Olaf
-- 
 $ man clone

BUGS
       Main feature not yet implemented...


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