1 /* 2 * Linker script for vDSO. This is an ELF sha 3 * its virtual address, and with only one read 4 * This script controls its layout. 5 */ 6 7 #if defined(BUILD_VDSO64) 8 # define SHDR_SIZE 64 9 #elif defined(BUILD_VDSO32) 10 # define SHDR_SIZE 40 11 #else 12 # error unknown VDSO target 13 #endif 14 15 #define NUM_FAKE_SHDRS 7 16 17 SECTIONS 18 { 19 /* 20 * User/kernel shared data is before t 21 * uglier than putting it after the vD 22 * non-allocatable things that dangle 23 * segment. Page size is 8192 for both 24 */ 25 26 vvar_start = . -8192; 27 vvar_data = vvar_start; 28 29 . = SIZEOF_HEADERS; 30 31 .hash : { *(.hash) } 32 .gnu.hash : { *(.gnu.hash) } 33 .dynsym : { *(.dynsym) } 34 .dynstr : { *(.dynstr) } 35 .gnu.version : { *(.gnu.version) } 36 .gnu.version_d : { *(.gnu.version_d) 37 .gnu.version_r : { *(.gnu.version_r) 38 39 .dynamic : { *(.dynamic) } 40 41 .rodata : { 42 *(.rodata*) 43 *(.data*) 44 *(.sdata*) 45 *(.got.plt) *(.got) 46 *(.gnu.linkonce.d.*) 47 *(.bss*) 48 *(.dynbss*) 49 *(.gnu.linkonce.b.*) 50 51 /* 52 * Ideally this would live in 53 * compatibility with x86-64. 54 */ 55 VDSO_FAKE_SECTION_TABLE_START 56 . = . + NUM_FAKE_SHDRS * SHDR_ 57 VDSO_FAKE_SECTION_TABLE_END = 58 } 59 60 .fake_shstrtab : { *(.fake_shstrtab) 61 62 63 .note : { *(.note.*) } 64 65 .eh_frame_hdr : { *(.eh_frame_hdr) } 66 .eh_frame : { KEEP (*(.eh_frame) 67 68 69 /* 70 * Text is well-separated from actual 71 * stuff that isn't used at runtime in 72 */ 73 74 .text : { *(.text*) } 75 76 /DISCARD/ : { 77 *(.discard) 78 *(.discard.*) 79 *(__bug_table) 80 } 81 } 82 83 /* 84 * Very old versions of ld do not recognize th 85 */ 86 #define PT_GNU_EH_FRAME 0x6474e550 87 88 /* 89 * We must supply the ELF program headers expl 90 * PT_LOAD segment, and set the flags explicit 91 */ 92 PHDRS 93 { 94 text PT_LOAD FLAGS( 95 dynamic PT_DYNAMIC FLAGS( 96 note PT_NOTE FLAGS( 97 eh_frame_hdr PT_GNU_EH_FRAME; 98 }
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.