1/* SPDX-License-Identifier: GPL-2.0-only */ 2/* 3 * This header exists to force full rebuild when the compiler is upgraded. 4 * 5 * When fixdep scans this, it will find this string "CONFIG_CC_VERSION_TEXT" 6 * and add dependency on include/config/CC_VERSION_TEXT, which is touched 7 * by Kconfig when the version string from the compiler changes. 8 */ 9/* SPDX-License-Identifier: GPL-2.0 */ 10/* 11 * Automatically generated file; DO NOT EDIT. 12 * Linux/arm64 5.16.0 Kernel Configuration 13 */ 14/* 15 * The use of "&&" / "||" is limited in certain expressions. 16 * The following enable to calculate "and" / "or" with macro expansion only. 17 */ 18/* 19 * Helper macros to use CONFIG_ options in C/CPP expressions. Note that 20 * these only work with boolean and tristate options. 21 */ 22/* 23 * Getting something that works in C and CPP for an arg that may or may 24 * not be defined is tricky. Here, if we have "#define CONFIG_BOOGER 1" 25 * we match on the placeholder define, insert the "0," for arg1 and generate 26 * the triplet (0, 1, 0). Then the last step cherry picks the 2nd arg (a one). 27 * When CONFIG_BOOGER is not defined, we generate a (... 1, 0) pair, and when 28 * the last step cherry picks the 2nd arg, we get a zero. 29 */ 30/* 31 * IS_BUILTIN(CONFIG_FOO) evaluates to 1 if CONFIG_FOO is set to 'y', 0 32 * otherwise. For boolean options, this is equivalent to 33 * IS_ENABLED(CONFIG_FOO). 34 */ 35/* 36 * IS_MODULE(CONFIG_FOO) evaluates to 1 if CONFIG_FOO is set to 'm', 0 37 * otherwise. CONFIG_FOO=m results in "#define CONFIG_FOO_MODULE 1" in 38 * autoconf.h. 39 */ 40/* 41 * IS_REACHABLE(CONFIG_FOO) evaluates to 1 if the currently compiled 42 * code can call a function defined in code compiled based on CONFIG_FOO. 43 * This is similar to IS_ENABLED(), but returns false when invoked from 44 * built-in code when CONFIG_FOO is set to 'm'. 45 */ 46/* 47 * IS_ENABLED(CONFIG_FOO) evaluates to 1 if CONFIG_FOO is set to 'y' or 'm', 48 * 0 otherwise. Note that CONFIG_FOO=y results in "#define CONFIG_FOO 1" in 49 * autoconf.h, while CONFIG_FOO=m results in "#define CONFIG_FOO_MODULE 1". 50 */ 51/* SPDX-License-Identifier: GPL-2.0-only */ 52/* 53 * GNU linker script for the VDSO library. 54* 55 * Copyright (C) 2012 ARM Limited 56 * 57 * Author: Will Deacon <will.deacon@arm.com> 58 * Heavily based on the vDSO linker scripts for other archs. 59 */ 60/* SPDX-License-Identifier: GPL-2.0 */ 61/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 62/* const.h: Macros for dealing with constants. */ 63/* Some constant macros are used in both assembler and 64 * C code. Therefore we cannot annotate them always with 65 * 'UL' and other type specifiers unilaterally. We 66 * use the following macros to deal with this. 67 * 68 * Similarly, _AT() will cast an expression with a type in C, but 69 * leave it unchanged in asm. 70 */ 71/* 72 * This returns a constant expression while determining if an argument is 73 * a constant expression, most importantly without evaluating the argument. 74 * Glory to Martin Uecker <Martin.Uecker@med.uni-goettingen.de> 75 */ 76/* SPDX-License-Identifier: GPL-2.0-only */ 77/* 78 * Based on arch/arm/include/asm/page.h 79 * 80 * Copyright (C) 1995-2003 Russell King 81 * Copyright (C) 2012 ARM Ltd. 82 */ 83/* SPDX-License-Identifier: GPL-2.0-only */ 84/* 85 * Based on arch/arm/include/asm/page.h 86 * 87 * Copyright (C) 1995-2003 Russell King 88 * Copyright (C) 2017 ARM Ltd. 89 */ 90/* PAGE_SHIFT determines the page size */ 91/* SPDX-License-Identifier: GPL-2.0 */ 92/* SPDX-License-Identifier: GPL-2.0-only */ 93/* 94 * Copyright (C) 2012 ARM Limited 95 */ 96/* 97 * Default link address for the vDSO. 98 * Since we randomise the VDSO mapping, there's little point in trying 99 * to prelink this. 100 */ 101OUTPUT_FORMAT("elf64-littleaarch64", "elf64-bigaarch64", "elf64-littleaarch64") 102OUTPUT_ARCH(aarch64) 103SECTIONS 104{ 105 PROVIDE(_vdso_data = . - 2 * (1 << 12)); 106 PROVIDE(_timens_data = _vdso_data + (1 << 12)); 107 . = 0x0 + SIZEOF_HEADERS; 108 .hash : { *(.hash) } :text 109 .gnu.hash : { *(.gnu.hash) } 110 .dynsym : { *(.dynsym) } 111 .dynstr : { *(.dynstr) } 112 .gnu.version : { *(.gnu.version) } 113 .gnu.version_d : { *(.gnu.version_d) } 114 .gnu.version_r : { *(.gnu.version_r) } 115 /* 116 * Discard .note.gnu.property sections which are unused and have 117 * different alignment requirement from vDSO note sections. 118 */ 119 /DISCARD/ : { 120 *(.note.GNU-stack .note.gnu.property) 121 } 122 .note : { *(.note.*) } :text :note 123 . = ALIGN(16); 124 .text : { *(.text*) } :text =0xd503201f 125 PROVIDE (__etext = .); 126 PROVIDE (_etext = .); 127 PROVIDE (etext = .); 128 .dynamic : { *(.dynamic) } :text :dynamic 129 .rodata : { *(.rodata*) } :text 130 _end = .; 131 PROVIDE(end = .); 132 /DISCARD/ : { 133 *(.data .data.* .gnu.linkonce.d.* .sdata*) 134 *(.bss .sbss .dynbss .dynsbss) 135 *(.eh_frame .eh_frame_hdr) 136 } 137} 138/* 139 * We must supply the ELF program headers explicitly to get just one 140 * PT_LOAD segment, and set the flags explicitly to make segments read-only. 141 */ 142PHDRS 143{ 144 text PT_LOAD FLAGS(5) FILEHDR PHDRS; /* PF_R|PF_X */ 145 dynamic PT_DYNAMIC FLAGS(4); /* PF_R */ 146 note PT_NOTE FLAGS(4); /* PF_R */ 147} 148/* 149 * This controls what symbols we export from the DSO. 150 */ 151VERSION 152{ 153 LINUX_2.6.39 { 154 global: 155 __kernel_rt_sigreturn; 156 __kernel_gettimeofday; 157 __kernel_clock_gettime; 158 __kernel_clock_getres; 159 local: *; 160 }; 161} 162/* 163 * Make the sigreturn code visible to the kernel. 164 */ 165VDSO_sigtramp = __kernel_rt_sigreturn; 166