Linking images at one address, but loading them at another.
Maciej W. Rozycki
macro@ds2.pg.gda.pl
Fri Oct 26 07:54:00 GMT 2001
On Fri, 26 Oct 2001, Richard Earnshaw wrote:
> I've done some more digging, the ARM ELF spec
> http://www.arm.com/armwww.ns4/img/12-Technical+Specs-ARM+ELF+Specification+PDF/$File/ARMELFA08.pdf?OpenElement
>
> is quite explicit about this in section 4.6 -- the p_vaddr field says where
> the image should be loaded, and the p_paddr field is ignored (and set to
> zero).
ELF specs generally assume a SYSV environment. That's typically
fulfilled when running userland under an OS, but a kernel image is not
usually loaded within a SYSV environment. It might even not be
dynamically linked. ;-) Thus the binary is not SYSV-compliant anyway.
In short: use p_vaddr in a loader if it operates on virtual addresses as
seen by the program and p_paddr if it operates on physical addresses. If
a loader operates on virtual addresses different from the ones seen by the
program, you should probably use p_paddr anyway.
--
+ Maciej W. Rozycki, Technical University of Gdansk, Poland +
+--------------------------------------------------------------+
+ e-mail: macro@ds2.pg.gda.pl, PGP key available +
More information about the Binutils
mailing list