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