Query on linker scripts

Vaibhav Jain vjoss197 at gmail.com
Sat Mar 24 00:43:40 EDT 2012


Hi,

Recently I have started reading tutorials for writing a small kernel. All
such tutorials mention use of linker scripts. I have
read few articles on linker scritps but I am stuck on one thing. I am
unable to understand the use of defining new symbols in linker scripts.
Using a linker script to arrange different sections in the object file is
understandable but defining symbols which are not referenced anywhere in
the script
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 = .;
    }
}

Please explain how defining such symbols is useful.

Thanks
Vaibhav Jain
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20120323/6e1741da/attachment.html 


More information about the Kernelnewbies mailing list