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