This is the mail archive of the libc-alpha@sourceware.cygnus.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]

Unaligned relocations on Alpha ELF64



Hi,

I've been trying to find the cause of alignment trap messages like the
following:
perl(12327): unaligned trap at 000002000001118c: 00000200011caef4 29 1

Yesterday I found the cause. That address is inside the relocation code
for the linux dynamic linker. The problem seems to be that certain shared
libraries like libstc++ have relocations that are not aligned, for
instance: 

lully{jgg}~#objdump -R /usr/lib/libstdc++-libc6.1-2.so.3 | grep -i "4 "
0000000000156374 RELATIVE          *ABS*
0000000000158ef4 RELATIVE          *ABS*
0000000000159424 RELATIVE          *ABS*
[..]

When ld.so loads these shared libs it alignement faults :< (I have a gdb
stack trace w/ debug info if anyone wants the exact line)

I'm not certain if this is a bug in gcc/g++ or a bug in ld.so, I don't
know what constraints should be placed on ELF64 relocations.

My system is Debian Potato on Alpha running glibc 2.1.2 (I have also tried
the loader from 2.1.3) the compiler environment is:
 gcc version 2.95.2 19991109 (Debian GNU/Linux)
 GNU ld version 2.9.5 (with BFD 2.9.5.0.22)

And libstdc++ was compiled using EGCS 1.1.1 (I think)

Thanks,
Jason


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