I ran into a problem today working with a recent glibc on a PowerPC system. It
had GNU_HASH enabled. When I attempted to prelink it, I got a floating point
error.. (actually it was a divide by zero).
The prelinker found a GNU_HASH section, and attempted to call elf32_xlatetof on
that. The fsize table was missing the an entry for the ELF_T_GNUHASH. The
start of the xlatetof does a count % size != 0 -- error to detect an alignment
problem. This triggered a divide by zero.
Attached is the patch I came up with to address this problem. This is against
0.148. Let me know if there are any questions, I'm not subscribed to the list.
In the process I noticed that both ELF_T_LIB and ELF_T_GNUHASH were missing, so
I attempted to add them. I'm not completely sure that I have the right sizes,
so someone more knowledgeable in elf will need to verify the sizes are correct.
--Mark
Show replies by date
Your changes look right to me. I put them in.
Thanks,
Roland