MEMORY { region1 : ORIGIN = 0x1000, LENGTH = 0x1000 , region2 (r) : org = 0x2000, len = 300 region3 (wx) : o = 0x4000, l = 4 region4 (!r) : o = 0x6000 + 60, len = 0x30 * 0x6 } SECTIONS { .sec0 : { *(.sec0) } .sec1 ORIGIN (region1) : { *(.sec1) } AT> region2 fred = ORIGIN (region1) + LENGTH (region1); .sec2 : { *(.sec2) } > region3 AT> region4 .sec3 0x5000 : { *(.sec3) } .sec4 : { *(.sec4) } AT> region2 .sec5 : { LONG(0x5555) } > region2 /DISCARD/ : { *(*) } }