To at least give someone a start to track down this bug...

I played a bit with objdump today, trying to find out what the hell is
going wrong.

According to gdb, this is what happens when I try to run an application
compiled with the broken binutils:

#0  0x800002e0 in ?? ()
(gdb)

I then did 'objdump -D <binary>', and got the following at that
address (section <.plt>):

800002e0:       4efb 0171 8000  jmp %pc@(28b6 
<_init-0x7fffd9fa>)@(0000000000000000)
800002e6:       25d4

whereas the exact same source compiled with working binutils produces
this (different address, but it's also the sixth instruction in the
<.plt> section):

80000380:       4efb 0171 0000  jmp %pc@(8000267c 
<_GLOBAL_OFFSET_TABLE_+0xc>)@(0000000000000000)
80000386:       22fa

I think it's clear that the first is totally wrong in that it tries to
jump to an address outside the code section.

If required, I can send the binaries (both the broken and the working
one) and a core file. I'll try to further identify the bug myself, but I
don't know much about binutils' internals or the ELF file format, so
don't expect much luck...

-- 
The amount of time between slipping on the peel and landing on the
pavement is precisely one bananosecond


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to