1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* 3 * This is the infamous ld script for the 64 b 4 * library 5 */ 6 7 #include <asm/page.h> 8 #include <asm/vdso.h> 9 10 OUTPUT_FORMAT("elf32-s390", "elf32-s390", "elf 11 OUTPUT_ARCH(s390:31-bit) 12 13 SECTIONS 14 { 15 PROVIDE(_vdso_data = . - __VVAR_PAGES 16 #ifdef CONFIG_TIME_NS 17 PROVIDE(_timens_data = _vdso_data + PA 18 #endif 19 . = VDSO_LBASE + SIZEOF_HEADERS; 20 21 .hash : { *(.hash) } 22 .gnu.hash : { *(.gnu.hash) } 23 .dynsym : { *(.dynsym) } 24 .dynstr : { *(.dynstr) } 25 .gnu.version : { *(.gnu.version) } 26 .gnu.version_d : { *(.gnu.version_d) 27 .gnu.version_r : { *(.gnu.version_r) 28 29 .note : { *(.note.*) } 30 31 . = ALIGN(16); 32 .text : { 33 *(.text .stub .text.* .gnu.lin 34 } :text 35 PROVIDE(__etext = .); 36 PROVIDE(_etext = .); 37 PROVIDE(etext = .); 38 39 /* 40 * Other stuff is appended to the text 41 */ 42 .rodata : { *(.rodata .rodata. 43 .rodata1 : { *(.rodata1) } 44 45 .dynamic : { *(.dynamic) } 46 47 .eh_frame_hdr : { *(.eh_frame_hdr) } 48 .eh_frame : { KEEP (*(.eh_frame) 49 .gcc_except_table : { *(.gcc_except_ta 50 51 .rela.dyn ALIGN(8) : { *(.rela.dyn) } 52 .got ALIGN(8) : { *(.got .toc) } 53 .got.plt ALIGN(8) : { *(.got.plt) } 54 55 _end = .; 56 PROVIDE(end = .); 57 58 /* 59 * Stabs debugging sections are here t 60 */ 61 .stab 0 : { *(.stab) } 62 .stabstr 0 : { *(.stabstr) } 63 .stab.excl 0 : { *(.stab.excl) } 64 .stab.exclstr 0 : { *(.stab.exclstr) 65 .stab.index 0 : { *(.stab.index) } 66 .stab.indexstr 0 : { *(.stab.indexstr) 67 .comment 0 : { *(.comment) } 68 69 /* 70 * DWARF debug sections. 71 * Symbols in the DWARF debugging sect 72 * beginning of the section so we begi 73 */ 74 /* DWARF 1 */ 75 .debug 0 : { *(.debug) } 76 .line 0 : { *(.line) } 77 /* GNU DWARF 1 extensions */ 78 .debug_srcinfo 0 : { *(.debug_srcinfo 79 .debug_sfnames 0 : { *(.debug_sfnames 80 /* DWARF 1.1 and DWARF 2 */ 81 .debug_aranges 0 : { *(.debug_aranges 82 .debug_pubnames 0 : { *(.debug_pubname 83 /* DWARF 2 */ 84 .debug_info 0 : { *(.debug_info .g 85 .debug_abbrev 0 : { *(.debug_abbrev) 86 .debug_line 0 : { *(.debug_line) } 87 .debug_frame 0 : { *(.debug_frame) 88 .debug_str 0 : { *(.debug_str) } 89 .debug_loc 0 : { *(.debug_loc) } 90 .debug_macinfo 0 : { *(.debug_macinfo 91 /* SGI/MIPS DWARF 2 extensions */ 92 .debug_weaknames 0 : { *(.debug_weakna 93 .debug_funcnames 0 : { *(.debug_funcna 94 .debug_typenames 0 : { *(.debug_typena 95 .debug_varnames 0 : { *(.debug_varnam 96 /* DWARF 3 */ 97 .debug_pubtypes 0 : { *(.debug_pubtype 98 .debug_ranges 0 : { *(.debug_ranges) 99 .gnu.attributes 0 : { KEEP (*(.gnu.att 100 101 /DISCARD/ : { 102 *(.note.GNU-stack) 103 *(.branch_lt) 104 *(.data .data.* .gnu.linkonce. 105 *(.bss .sbss .dynbss .dynsbss) 106 } 107 } 108 109 /* 110 * Very old versions of ld do not recognize th 111 */ 112 #define PT_GNU_EH_FRAME 0x6474e550 113 114 /* 115 * We must supply the ELF program headers expl 116 * PT_LOAD segment, and set the flags explicit 117 */ 118 PHDRS 119 { 120 text PT_LOAD FILEHDR PHDRS 121 dynamic PT_DYNAMIC FLAGS(4); 122 note PT_NOTE FLAGS(4); 123 eh_frame_hdr PT_GNU_EH_FRAME; 124 } 125 126 /* 127 * This controls what symbols we export from t 128 */ 129 VERSION 130 { 131 VDSO_VERSION_STRING { 132 global: 133 /* 134 * Has to be there for the ker 135 */ 136 __kernel_compat_restart_syscal 137 __kernel_compat_rt_sigreturn; 138 __kernel_compat_sigreturn; 139 local: *; 140 }; 141 }
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.