This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]