www.delorie.com/gnu/docs/binutils/ld_16.html   search  
 
Buy GNU books!


Untitled Document

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.5.1 Simple Assignments

You may assign to a symbol using any of the C assignment operators:

symbol = expression ;
symbol += expression ;
symbol -= expression ;
symbol *= expression ;
symbol /= expression ;
symbol <<= expression ;
symbol >>= expression ;
symbol &= expression ;
symbol |= expression ;

The first case will define symbol to the value of expression. In the other cases, symbol must already be defined, and the value will be adjusted accordingly.

The special symbol name `.' indicates the location counter. You may only use this within a SECTIONS command.

The semicolon after expression is required.

Expressions are defined below; see 3.10 Expressions in Linker Scripts.

You may write symbol assignments as commands in their own right, or as statements within a SECTIONS command, or as part of an output section description in a SECTIONS command.

The section of the symbol will be set from the section of the expression; for more information, see 3.10.6 The Section of an Expression.

Here is an example showing the three different places that symbol assignments may be used:

 
floating_point = 0;
SECTIONS
{
  .text :
    {
      *(.text)
      _etext = .;
    }
  _bdata = (. + 3) & ~ 3;
  .data : { *(.data) }
}
In this example, the symbol `floating_point' will be defined as zero. The symbol `_etext' will be defined as the address following the last `.text' input section. The symbol `_bdata' will be defined as the address following the `.text' output section aligned upward to a 4 byte boundary.


  webmaster   donations   bookstore     delorie software   privacy  
  Copyright 2003   by The Free Software Foundation     Updated Jun 2003