The special linker variable dot `.
' always contains the
current output location counter. Since the .
always refers to a
location in an output section, it may only appear in an expression
within a SECTIONS
command. The .
symbol may appear
anywhere that an ordinary symbol is allowed in an expression.
Assigning a value to .
will cause the location counter to be
moved. This may be used to create holes in the output section. The
location counter may never be moved backwards.
SECTIONS { output : { file1(.text) . = . + 1000; file2(.text) . += 1000; file3(.text) } = 0x1234; }
In the previous example, the `.text
' section from `file1
' is
located at the beginning of the output section `output
'. It is
followed by a 1000 byte gap. Then the `.text
' section from
`file2
' appears, also with a 1000 byte gap following before the
`.text
' section from `file3
'. The notation `= 0x1234
'
specifies what data to write in the gaps (see Output Section Fill).
Note: .
actually refers to the byte offset from the start of the
current containing object. Normally this is the SECTIONS
statement, whoes start address is 0, hence .
can be used as an
absolute address. If .
is used inside a section description
however, it refers to the byte offset from the start of that section,
not an absolute address. Thus in a script like this:
SECTIONS { . = 0x100 .text: { *(.text) . = 0x200 } . = 0x500 .data: { *(.data) . += 0x600 } }
The `.text
' section will be assigned a starting address of 0x100
and a size of exactly 0x200 bytes, even if there is not enough data in
the `.text
' input sections to fill this area. (If there is too
much data, an error will be produced because this would be an attempt to
move .
backwards). The `.data
' section will start at 0x500
and it will have an extra 0x600 bytes worth of space after the end of
the values from the `.data
' input sections and before the end of
the `.data
' output section itself.
Packaging copyright © 1988-2000 OAR Corporation Context copyright by each document's author. See Free Software Foundation for information.