GNU Info

Info Node: (ld.info)Expression Section

(ld.info)Expression Section


Next: Builtin Functions Prev: Evaluation Up: Expressions
Enter node , (file) or (file)node

The Section of an Expression
----------------------------

   When the linker evaluates an expression, the result is either
absolute or relative to some section.  A relative expression is
expressed as a fixed offset from the base of a section.

   The position of the expression within the linker script determines
whether it is absolute or relative.  An expression which appears within
an output section definition is relative to the base of the output
section.  An expression which appears elsewhere will be absolute.

   A symbol set to a relative expression will be relocatable if you
request relocatable output using the `-r' option.  That means that a
further link operation may change the value of the symbol.  The symbol's
section will be the section of the relative expression.

   A symbol set to an absolute expression will retain the same value
through any further link operation.  The symbol will be absolute, and
will not have any particular associated section.

   You can use the builtin function `ABSOLUTE' to force an expression
to be absolute when it would otherwise be relative.  For example, to
create an absolute symbol set to the address of the end of the output
section `.data':
     SECTIONS
       {
         .data : { *(.data) _edata = ABSOLUTE(.); }
       }

If `ABSOLUTE' were not used, `_edata' would be relative to the `.data'
section.


automatically generated by info2www version 1.2.2.9