1 /* SPDX-License-Identifier: GPL-2.0-or-later * << 2 /* 1 /* 3 * Copyright (C) 2015 Imagination Technologies !! 2 * Linker script for 64-bit vDSO. 4 * Author: Alex Smith <alex.smith@imgtec.com> !! 3 * We #include the file to define the layout details. >> 4 * >> 5 * This file defines the version script giving the user-exported symbols in >> 6 * the DSO. 5 */ 7 */ 6 8 7 #include <asm/sgidefs.h> !! 9 #define BUILD_VDSO64 8 10 9 #if _MIPS_SIM == _MIPS_SIM_ABI64 !! 11 #include "vdso-layout.lds.S" 10 OUTPUT_FORMAT("elf64-tradlittlemips", "elf64-t << 11 #elif _MIPS_SIM == _MIPS_SIM_NABI32 << 12 OUTPUT_FORMAT("elf32-ntradlittlemips", "elf32- << 13 #else << 14 OUTPUT_FORMAT("elf32-tradlittlemips", "elf32-t << 15 #endif << 16 12 17 OUTPUT_ARCH(mips) !! 13 /* 18 !! 14 * This controls what userland symbols we export from the vDSO. 19 SECTIONS !! 15 */ 20 { !! 16 VERSION { 21 PROVIDE(_start = .); << 22 . = SIZEOF_HEADERS; << 23 << 24 /* << 25 * In order to retain compatibility wi << 26 * ABI flags section ourself. Newer as << 27 * generate .MIPS.abiflags sections so << 28 * and then manually define our own se << 29 * this section to have the correct na << 30 */ << 31 .mips_abiflags : { *(.mips_abiflags) << 32 << 33 .reginfo : { *(.reginfo) } << 34 << 35 .hash : { *(.hash) } << 36 .gnu.hash : { *(.gnu.hash) } << 37 .dynsym : { *(.dynsym) } << 38 .dynstr : { *(.dynstr) } << 39 .gnu.version : { *(.gnu.version) } << 40 .gnu.version_d : { *(.gnu.version_d) << 41 .gnu.version_r : { *(.gnu.version_r) << 42 << 43 .note : { *(.note.*) } << 44 << 45 .text : { *(.text*) } << 46 PROVIDE (__etext = .); << 47 PROVIDE (_etext = .); << 48 PROVIDE (etext = .); << 49 << 50 .eh_frame_hdr : { *(.eh_frame_hdr) } << 51 .eh_frame : { KEEP (*(.eh_frame) << 52 << 53 .dynamic : { *(.dynamic) } << 54 << 55 .rodata : { *(.rodata*) } << 56 << 57 _end = .; << 58 PROVIDE(end = .); << 59 << 60 /DISCARD/ : { << 61 *(.MIPS.abiflags) << 62 *(.gnu.attributes) << 63 *(.note.GNU-stack) << 64 *(.data .data.* .gnu.linkonce. << 65 *(.bss .sbss .dynbss .dynsbss) << 66 } << 67 } << 68 << 69 PHDRS << 70 { << 71 /* << 72 * Provide a PT_MIPS_ABIFLAGS header t << 73 * to. We can specify the header type << 74 * is needed later on. << 75 */ << 76 abiflags 0x70000003; << 77 << 78 /* << 79 * The ABI flags header must exist dir << 80 * so we must explicitly place the PT_ << 81 * stop the linker putting one in at t << 82 */ << 83 reginfo 0x70000000; << 84 << 85 text PT_LOAD FLAGS( << 86 dynamic PT_DYNAMIC FLAGS( << 87 note PT_NOTE FLAGS( << 88 eh_frame_hdr PT_GNU_EH_FRAME; << 89 } << 90 << 91 VERSION << 92 { << 93 LINUX_2.6 { 17 LINUX_2.6 { 94 #ifndef CONFIG_MIPS_DISABLE_VDSO << 95 global: 18 global: >> 19 clock_gettime; 96 __vdso_clock_gettime; 20 __vdso_clock_gettime; 97 #ifdef CONFIG_MIPS_CLOCK_VSYSCALL !! 21 gettimeofday; 98 __vdso_gettimeofday; 22 __vdso_gettimeofday; 99 #endif << 100 __vdso_clock_getres; << 101 #if _MIPS_SIM != _MIPS_SIM_ABI64 << 102 __vdso_clock_gettime64; << 103 #endif << 104 #endif << 105 local: *; 23 local: *; 106 }; 24 }; 107 } 25 }
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.