binutils-gdb/ld/testsuite/ld-scripts/memory.t

40 lines
1.0 KiB
Perl
Raw Normal View History

MEMORY
{
TEXTMEM (ARX) : ORIGIN = 0x100, LENGTH = 32K
DATAMEM (AW) : org = 0x1000, l = (64 * 1024)
}
SECTIONS
{
. = 0;
.text :
{
/* The value returned by the ORIGIN operator is a constant.
However it is being assigned to a symbol declared within
a section. Therefore the symbol is section-relative and
its value will include the offset of that section from
the start of memory. ie the declaration:
text_start = ORIGIN (TEXTMEM);
here will result in text_start having a value of 0x200.
Hence we need to subtract the absolute value of the
location counter at this point in order to give text_start
a value that is truely absolute, and which coincidentally
will allow the tests in script.exp to work. */
text_start = ORIGIN(TEXTMEM) - ABSOLUTE (.);
*(.text)
*(.pr)
text_end = .;
} > TEXTMEM
data_start = ORIGIN (DATAMEM);
.data :
{
*(.data)
*(.rw)
data_end = .;
} >DATAMEM
fred = ORIGIN(DATAMEM) + LENGTH(DATAMEM);
}