[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Unaligned relocations on Alpha ELF64


I've been trying to find the cause of alignment trap messages like the
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

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

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


Reply to: