extract ELF load address with binutils?
Tue Mar 18 17:44:00 GMT 2014
But as I (and objcopy) have illustrated:
1. Not all LOAD types get loaded
2. The address where the segment is loaded can be "wrong", when the loaded segment
has been padded.
I agree about the multiple segments, but I can't make it work even for one.
The padding clearly comes from the non-embedded world where throwing away 32k of memory
may be OK; I don't have that luxury.
"When objcopy generates a raw binary file, it will essentially produce a memory dump
of the contents of the input object file." Memory dump is what I want, to me "undumping"
the dump is synonymous with loading the right data in the right place in memory.
It is my understanding that the LOAD segment itself can contain an ELF header so it
can be loaded without additional metadata. I have no idea how (or whether) I can make
readelf give me the actual data to be loaded.
That's where I see a big difference between objcopy and readelf.
From: Paul_Koning@Dell.com [mailto:Paul_Koning@Dell.com]
Sent: Tuesday, March 18, 2014 1:13 PM
To: Radouch, Zdenek
Subject: Re: extract ELF load address with binutils?
On Mar 18, 2014, at 1:02 PM, Radouch, Zdenek <email@example.com> wrote:
> I am writing a firmware updater that takes an ELF executable and needs
> to extract the RAM data and the address to where the data should be loaded. ...
> The question is can I somehow convince one of the binutils to give me
> the load address alone, so that I don't have to invent an algorithm extracting the address from the section dump?
I'm not sure the notion of "THE load address" makes sense. It may be valid for your specific case, but not in general. ELF files can have multiple load sections, each of which has a load address.
Normally I would say: look in the program headers. Each header of type LOAD describes something that's loaded, and it shows the addresses.
More information about the Binutils