old-cross-binutils/ld/testsuite/ld-scripts/memory.t

46 lines
1.2 KiB
Perl
Raw Normal View History

MEMORY
{
R_TEXTMEM (ARX) : ORIGIN = 0x100, LENGTH = 32K
R_DATAMEM (AW) : org = 0x1000, l = (64 * 1024)
}
REGION_ALIAS ("A_TEXTMEM", R_TEXTMEM);
REGION_ALIAS ("A_DATAMEM", R_DATAMEM);
REGION_ALIAS ("TEXTMEM", A_TEXTMEM);
REGION_ALIAS ("DATAMEM", A_DATAMEM);
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);
}