ii The GNU linker
3.6.8.1 Output Section Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.6.8.2 Output Section LMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.6.8.3 Forced Output Alignment . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.6.8.4 Forced Input Alignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.6.8.5 Output Section Constraint. . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.6.8.6 Output Section Region . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.6.8.7 Output Section Phdr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.6.8.8 Output Section Fill. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.6.9 Overlay Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
3.7 MEMORY Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.8 PHDRS Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
3.9 VERSION Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.10 Expressions in Linker Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
3.10.1 Constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
3.10.2 Symbolic Constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
3.10.3 Symbol Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
3.10.4 Orphan Sections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
3.10.5 The Location Counter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
3.10.6 Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
3.10.7 Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
3.10.8 The Section of an Expression . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
3.10.9 Builtin Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
3.11 Implicit Linker Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
4 Machine Dependent Features. . . . . . . . . . . . . . . . . 81
4.1 ld and the H8/300 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
4.2 ld and the Intel 960 Family . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
4.3 ld and the Motorola 68HC11 and 68HC12 families. . . . . . . . . . . . . 82
4.3.1 Linker Relaxation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
4.3.2 Trampoline Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
4.4 ld and the ARM family . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
4.5 ld and HPPA 32-bit ELF Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
4.6 ld and the Motorola 68K family. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
4.7 ld and the MIPS family. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
4.8 ld and MMIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
4.9 ld and MSP430 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
4.10 ld and PowerPC 32-bit ELF Support . . . . . . . . . . . . . . . . . . . . . . . . 87
4.11 ld and PowerPC64 64-bit ELF Support . . . . . . . . . . . . . . . . . . . . . . 88
4.12 ld and SPU ELF Support. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
4.13 ld’s Support for Various TI COFF Versions . . . . . . . . . . . . . . . . . . 91
4.14 ld and WIN32 (cygwin/mingw) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
4.15 ld and Xtensa Processors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
5 BFD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
5.1 How It Works: An Outline of BFD . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
5.1.1 Information Loss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
5.1.2 The BFD canonical object-file format. . . . . . . . . . . . . . . . . . . . 102