This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
HELP with linker script!!!
- From: Pieter Arnout <pieter at powerescape dot com>
- To: binutils at sources dot redhat dot com
- Date: Wed, 30 Mar 2005 16:27:23 -0800
- Subject: HELP with linker script!!!
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