This is the output from a 'readelf -a /bin/ls'. It is the cause
of the dynamic linker problem (glibc 2.5 or later). By allowing
/bin/ld write this into the ELF executable, the /lib/ld-linux.so.2
does not like it on the older systems. Additionally, we are missing
a ".hash" ELF section, but the above is a trigger.
I have a tool which removes the .gnu.hash section and adds a .hash
section. Whilst the above .dynamic entry exists, it doesnt know what
I did. Additionally, gdb gets confused too.
Next step is to polish off the code so it can create a fully
conforming/working ELF executable, and its ready to roll.
(In case you didnt follow any of this, how to create an executable
on Linux which runs on any release of Linux/glibc. Later Linux
distros dont create backward compliant executables leading to an
arms race of platform and version specific releases which is a waste
of everyones' effort).