My intent is to place the text section at a specific location in memory (0x00100000).SECTIONS{    . = 0x00100000;    .text :    {           *(.text*)    }}    Although the linker does do this (note the 0x01000000 Addr field):$ readelf -S file.elf There are 12 section headers, starting at offset 0x104edc:Section Headers:  [Nr] Name              Type            Addr     Off    Size   ES Flg Lk Inf Al  [ 0]                   NULL            00000000 000000 000000 00      0   0  0  [ 1] .text             PROGBITS        00100000 100000 000e66 00  AX  0   0  4  [ 2] .eh_frame         PROGBITS        00100e68 100e68 000628 00   A  0   0  4...it also places ~1MB of zeros before the .text section in  the ELF file (note the .text section's offset is 1MB). Shown another way: $ hexdump -C file.elf00000000  7f 45 4c 46 01 01 01 00  00 00 00 00 00 00 00 00  |.ELF............|00000010  02 00 03 00 01 00 00 00  0c 00 10 00 34 00 00 00  |............4...|00000020  dc 4e 10 00 00 00 00 00  34 00 20 00 02 00 28 00  |.N......4. ...(.|00000030  0c 00 0b 00 01 00 00 00  00 00 00 00 00 00 00 00  |................|00000040  00 00 00 00 90 14 10 00  96 04 4f 00 07 00 00 00  |..........O.....|00000050  00 00 20 00 51 e5 74 64  00 00 00 00 00 00 00 00  |.. .Q.td........|00000060  00 00 00 00 00 00 00 00  00 00 00 00 07 00 00 00  |................|00000070  10 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|00000080  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|*00100000  02 b0 ad 1b 03 00 00 00  fb 4f 52 e4 8b 25 90 04  |.........OR..%..|00100010  4f 00 50 53 e8 88 00 00  00 fa f4 eb fc 55 89 e5  |O.PS.........U..|00100020  83 ec 10 c7 45 f8 00 80  0b 00 c7 45 fc 00 00 00  |....E......E....|00100030  00 eb 24 8b 45 fc 8d 14  00 8b 45 f8 01 d0 8b 4d  |..$.E.....E....M|How can this be prevented? Am I improperly using the location counter (dot notation) syntax?
GNU linker producing useless spacing between sections in ELF file
gnu;linker;elf