Hello Im using a ld script for my ROM-project. Therfore i am defining some symbols and calculating load addresses. Here is an excerpt: SECTIONS { rom_off = 0x0; rom_map_start = 0xfff00000; ROM_legacy_start = rom_map_start + rom_off; . = 0xe0000; _text = .; .text : AT (rom_off) { ... But 0x0 + 0xfff00000 should be 0xfff00000, but why has ROM_legacy_start a different value ? Here the map file: 0x0000000000100000 rom_size = 0x100000 0x0000000000000000 rom_off = 0x0 0x00000000fff00000 rom_map_start = 0xfff00000 0x00000000fff1350f ROM_legacy_start = (rom_map_start + rom_off) 0x00000000000e0000 . = 0xe0000 0x00000000000e0000 _text = . .text 0x00000000000e0000 0x10a49 load address 0x000000000001350f im using "GNU ld version 2.15". Thanks in advance josef