From mboxrd@z Thu Jan 1 00:00:00 1970 From: carlo.caione@gmail.com (Carlo Caione) Date: Sat, 24 Mar 2012 16:26:38 +0100 Subject: Query on linker scripts In-Reply-To: References: Message-ID: <4F6DE7AE.9070808@gmail.com> To: kernelnewbies@lists.kernelnewbies.org List-Id: kernelnewbies.lists.kernelnewbies.org On 24/03/2012 05:43, Vaibhav Jain wrote: > Hi, [cut] > is confusing. An example is the use of symbols sbss and ebss in the bss > section as show in the script below > ENTRY (loader) > SECTIONS > { > . = 0x00100000; > .text ALIGN (0x1000) : > { > *(.text) > } > .rodata ALIGN (0x1000) : > { > *(.rodata*) > } > .data ALIGN (0x1000) : > { > *(.data) > } > .bss : > { > sbss = .; > *(COMMON) > *(.bss) > ebss = .; > } > } I'm not sure if you are OT, anyway... i.e. they are useful if you want to clear the bss section before execution. [snippet for ARM proc] ... ldr r2, =_sbss b LoopFillZerobss /* Zero fill the bss segment. */ FillZerobss: movs r3, #0 str r3, [r2], #4 LoopFillZerobss: ldr r3, = _ebss cmp r2, r3 bcc FillZerobss ... -- Carlo Caione