HELP with linker script!!!
Pieter Arnout
pieter@powerescape.com
Thu Mar 31 14:42:00 GMT 2005
I read the the Red Hat manual "Using ld, the GNU Linker", but I'm
having trouble. Essentially, I'd like to take specific symbols and
assign them to a memory region, rather than just take a section and
assign it to a memory region. I can obtain the symbol values and symbol
type from the objdump or nm output. The only examples offered in the
manual, however, only define the output sections .bss and .data by just
assigning everything from the .bss and .data input sections to it:
SECTIONS
{
. = 0x10000;
.text : { *(.text) }
. = 0x8000000;
.data : { *(.data) }
.bss : { *(.bss) }
}
I want some finer control. Does anyone know how I can go about
ultimately assigning specific symbols (or data structures if you will)
to a memory region? Should / can I create a section (much like .text,
.data or .bss above) in the linker script and call it "my_section" and
assign a list of symbols to "my_section"? Is this how I would go about
accomplishing what I want? If so do I reference the symbols by name or
by value when I call them out in the SECTIONS command? How does that
look like?
Additionally, where do I define the start and end regions of my stack
and heap? I use .bss for uninitialized variables, .data for initialized
variables, but how do I reference the beginning and end of stack and
the beginning and end of heap?
I need answers urgently.
Thanks so much for your help!
Pieter
More information about the Binutils
mailing list