XCOFF 64 function address wrong?

Nick Clifton nickc@redhat.com
Wed Mar 9 12:53:00 GMT 2005


Hi David,

> I have a 64-bit AIX 5.2 XLC 7 compiled hello world binary.  I've built
> up gdb and binutils with --enable-64-bit-bfd - from latest CVS.
> 
> In GDB, it miscalculates the main(), as 0x428 (instead of 0x10000428).

This looks like a truncation to 32-bits rather than a more general 
miscalculation...

> So, in using a fresh binutils's "objdump -t":

> [ 89](sec  1)(fl 0x00)(ty  20)(scl   2) (nx 2) 0x00000428 .main

> Note the 0x0000428 .main, 

> I'm willing to put some time in to getting this sorted out, but at
> present don't know what I'm looking for -- so any help greatly
> appreciated.  

Have a look at the function coff_print_symbol() in bfd/coffgen.c.  This 
is the function that is printing out the incorrect value for .main.  My 
guess is that for some reason XCOFF64 is not defined for your 
configuration and so it is printing a 32-bit value instead of a 64-bit 
value.

Cheers
   Nick



More information about the Binutils mailing list