The ADDR function returns the address of the named section or memory segment.
ADDR (sectionName | segmentName | symbol)
In the example below, ADDR is used to assign the address of ROOT to the symbol __rootbasecode.
MEMORY{
ROOT (RWX) : ORIGIN = 0x8000, LENGTH = 0
}
SECTIONS{
.code :
{
__rootbasecode = ADDR(ROOT);
*(.text);
} > ROOT
}