Unaligned relocations on Alpha ELF64

Jason Gunthorpe jgg@ualberta.ca
Wed Dec 15 13:11:00 GMT 1999


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



More information about the Gcc-bugs mailing list