Re: R_SPARC_13

From: David Miller
Date: Mon Jan 17 2011 - 16:02:11 EST


From: Richard Mortimer <richm@xxxxxxxxxxxxxxx>
Date: Mon, 17 Jan 2011 19:46:21 +0000

> As an example from drivers/scsi/scsi_error.c function scsi_eh_wakeup().
>
> This has relocation records of
...
> 0000000000002be4 R_SPARC_LO10 __tracepoint_scsi_eh_wakeup
> 0000000000002be4 R_SPARC_13 *ABS*+0x0000000000000008
...
> lduw [%g1+%lo(__tracepoint_scsi_eh_wakeup)+8], %g2 ! __tracepoint_scsi_eh_wakeup.state,

In a final object, the binutils linker should be using one
R_SPARC_OLO10 relocation for this kind of expression on sparc64. Not
the two relocations on the same instruction it appears to be using
here. I think you're looking at an object output by the assembler
and not the finally linked module.

You should also be careful about which objects you are analyzing. You
should be looking at the finally linked "foo.ko" file, not the
individual "foo.o" objects, as the majority of the relocations go away
when the linker puts together the final module.

Is that what you're doing?
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/