Kconfig (245137cdf0cd92077dad37868fe4859c90dada36) | Kconfig (887596095ec2a9ea39ffcf98f27bf2e77c5eb512) |
---|---|
1# SPDX-License-Identifier: GPL-2.0-only 2config DEFCONFIG_LIST 3 string 4 depends on !UML 5 option defconfig_list 6 default "/lib/modules/$(shell,uname -r)/.config" 7 default "/etc/kernel-config" 8 default "/boot/config-$(shell,uname -r)" --- 5 unchanged lines hidden (view full) --- 14 help 15 This is used in unclear ways: 16 17 - Re-run Kconfig when the compiler is updated 18 The 'default' property references the environment variable, 19 CC_VERSION_TEXT so it is recorded in include/config/auto.conf.cmd. 20 When the compiler is updated, Kconfig will be invoked. 21 | 1# SPDX-License-Identifier: GPL-2.0-only 2config DEFCONFIG_LIST 3 string 4 depends on !UML 5 option defconfig_list 6 default "/lib/modules/$(shell,uname -r)/.config" 7 default "/etc/kernel-config" 8 default "/boot/config-$(shell,uname -r)" --- 5 unchanged lines hidden (view full) --- 14 help 15 This is used in unclear ways: 16 17 - Re-run Kconfig when the compiler is updated 18 The 'default' property references the environment variable, 19 CC_VERSION_TEXT so it is recorded in include/config/auto.conf.cmd. 20 When the compiler is updated, Kconfig will be invoked. 21 |
22 - Ensure full rebuild when the compiler is updated | 22 - Ensure full rebuild when the compier is updated |
23 include/linux/kconfig.h contains this option in the comment line so 24 fixdep adds include/config/cc/version/text.h into the auto-generated 25 dependency. When the compiler is updated, syncconfig will touch it 26 and then every file will be rebuilt. 27 28config CC_IS_GCC | 23 include/linux/kconfig.h contains this option in the comment line so 24 fixdep adds include/config/cc/version/text.h into the auto-generated 25 dependency. When the compiler is updated, syncconfig will touch it 26 and then every file will be rebuilt. 27 28config CC_IS_GCC |
29 def_bool $(success,test "$(cc-name)" = GCC) | 29 def_bool $(success,echo "$(CC_VERSION_TEXT)" | grep -q gcc) |
30 31config GCC_VERSION 32 int | 30 31config GCC_VERSION 32 int |
33 default $(cc-version) if CC_IS_GCC | 33 default $(shell,$(srctree)/scripts/gcc-version.sh $(CC)) if CC_IS_GCC |
34 default 0 35 | 34 default 0 35 |
36config CC_IS_CLANG 37 def_bool $(success,test "$(cc-name)" = Clang) 38 39config CLANG_VERSION 40 int 41 default $(cc-version) if CC_IS_CLANG 42 default 0 43 44config LD_IS_BFD 45 def_bool $(success,test "$(ld-name)" = BFD) 46 | |
47config LD_VERSION 48 int | 36config LD_VERSION 37 int |
49 default $(ld-version) if LD_IS_BFD 50 default 0 | 38 default $(shell,$(LD) --version | $(srctree)/scripts/ld-version.sh) |
51 | 39 |
40config CC_IS_CLANG 41 def_bool $(success,echo "$(CC_VERSION_TEXT)" | grep -q clang) 42 |
|
52config LD_IS_LLD | 43config LD_IS_LLD |
53 def_bool $(success,test "$(ld-name)" = LLD) | 44 def_bool $(success,$(LD) -v | head -n 1 | grep -q LLD) |
54 | 45 |
46config CLANG_VERSION 47 int 48 default $(shell,$(srctree)/scripts/clang-version.sh $(CC)) 49 |
|
55config LLD_VERSION 56 int | 50config LLD_VERSION 51 int |
57 default $(ld-version) if LD_IS_LLD 58 default 0 | 52 default $(shell,$(srctree)/scripts/lld-version.sh $(LD)) |
59 60config CC_CAN_LINK 61 bool 62 default $(success,$(srctree)/scripts/cc-can-link.sh $(CC) $(CLANG_FLAGS) $(m64-flag)) if 64BIT 63 default $(success,$(srctree)/scripts/cc-can-link.sh $(CC) $(CLANG_FLAGS) $(m32-flag)) 64 65config CC_CAN_LINK_STATIC 66 bool --- 1127 unchanged lines hidden (view full) --- 1194 Allow user space to create what appear to be multiple instances 1195 of the network stack. 1196 1197endif # NAMESPACES 1198 1199config CHECKPOINT_RESTORE 1200 bool "Checkpoint/restore support" 1201 select PROC_CHILDREN | 53 54config CC_CAN_LINK 55 bool 56 default $(success,$(srctree)/scripts/cc-can-link.sh $(CC) $(CLANG_FLAGS) $(m64-flag)) if 64BIT 57 default $(success,$(srctree)/scripts/cc-can-link.sh $(CC) $(CLANG_FLAGS) $(m32-flag)) 58 59config CC_CAN_LINK_STATIC 60 bool --- 1127 unchanged lines hidden (view full) --- 1188 Allow user space to create what appear to be multiple instances 1189 of the network stack. 1190 1191endif # NAMESPACES 1192 1193config CHECKPOINT_RESTORE 1194 bool "Checkpoint/restore support" 1195 select PROC_CHILDREN |
1202 select KCMP | |
1203 default n 1204 help 1205 Enables additional kernel features in a sake of checkpoint/restore. 1206 In particular it adds auxiliary prctl codes to setup process text, 1207 data and heap segment sizes, and a few additional /proc filesystem 1208 entries. 1209 1210 If unsure, say N here. --- 493 unchanged lines hidden (view full) --- 1704 1705 If you are unsure how to answer this question, answer N. 1706 1707config BPF_SYSCALL 1708 bool "Enable bpf() system call" 1709 select BPF 1710 select IRQ_WORK 1711 select TASKS_TRACE_RCU | 1196 default n 1197 help 1198 Enables additional kernel features in a sake of checkpoint/restore. 1199 In particular it adds auxiliary prctl codes to setup process text, 1200 data and heap segment sizes, and a few additional /proc filesystem 1201 entries. 1202 1203 If unsure, say N here. --- 493 unchanged lines hidden (view full) --- 1697 1698 If you are unsure how to answer this question, answer N. 1699 1700config BPF_SYSCALL 1701 bool "Enable bpf() system call" 1702 select BPF 1703 select IRQ_WORK 1704 select TASKS_TRACE_RCU |
1705 select NET_SOCK_MSG if INET |
|
1712 default n 1713 help 1714 Enable the bpf() system call that allows to manipulate eBPF 1715 programs and maps via file descriptors. 1716 1717config ARCH_WANT_DEFAULT_BPF_JIT 1718 bool 1719 --- 18 unchanged lines hidden (view full) --- 1738 handle page faults in userland. 1739 1740config ARCH_HAS_MEMBARRIER_CALLBACKS 1741 bool 1742 1743config ARCH_HAS_MEMBARRIER_SYNC_CORE 1744 bool 1745 | 1706 default n 1707 help 1708 Enable the bpf() system call that allows to manipulate eBPF 1709 programs and maps via file descriptors. 1710 1711config ARCH_WANT_DEFAULT_BPF_JIT 1712 bool 1713 --- 18 unchanged lines hidden (view full) --- 1732 handle page faults in userland. 1733 1734config ARCH_HAS_MEMBARRIER_CALLBACKS 1735 bool 1736 1737config ARCH_HAS_MEMBARRIER_SYNC_CORE 1738 bool 1739 |
1746config KCMP 1747 bool "Enable kcmp() system call" if EXPERT 1748 help 1749 Enable the kernel resource comparison system call. It provides 1750 user-space with the ability to compare two processes to see if they 1751 share a common resource, such as a file descriptor or even virtual 1752 memory space. 1753 1754 If unsure, say N. 1755 | |
1756config RSEQ 1757 bool "Enable rseq() system call" if EXPERT 1758 default y 1759 depends on HAVE_RSEQ 1760 select MEMBARRIER 1761 help 1762 Enable the restartable sequences system call. It provides a 1763 user-space cache for the current CPU number value, which --- 98 unchanged lines hidden (view full) --- 1862 bool "Enable SLUB debugging support" if EXPERT 1863 depends on SLUB && SYSFS 1864 help 1865 SLUB has extensive debug support features. Disabling these can 1866 result in significant savings in code size. This also disables 1867 SLUB sysfs support. /sys/slab will not exist and there will be 1868 no support for cache validation etc. 1869 | 1740config RSEQ 1741 bool "Enable rseq() system call" if EXPERT 1742 default y 1743 depends on HAVE_RSEQ 1744 select MEMBARRIER 1745 help 1746 Enable the restartable sequences system call. It provides a 1747 user-space cache for the current CPU number value, which --- 98 unchanged lines hidden (view full) --- 1846 bool "Enable SLUB debugging support" if EXPERT 1847 depends on SLUB && SYSFS 1848 help 1849 SLUB has extensive debug support features. Disabling these can 1850 result in significant savings in code size. This also disables 1851 SLUB sysfs support. /sys/slab will not exist and there will be 1852 no support for cache validation etc. 1853 |
1854config SLUB_MEMCG_SYSFS_ON 1855 default n 1856 bool "Enable memcg SLUB sysfs support by default" if EXPERT 1857 depends on SLUB && SYSFS && MEMCG 1858 help 1859 SLUB creates a directory under /sys/kernel/slab for each 1860 allocation cache to host info and debug files. If memory 1861 cgroup is enabled, each cache can have per memory cgroup 1862 caches. SLUB can create the same sysfs directories for these 1863 caches under /sys/kernel/slab/CACHE/cgroup but it can lead 1864 to a very high number of debug files being created. This is 1865 controlled by slub_memcg_sysfs boot parameter and this 1866 config option determines the parameter's default value. 1867 |
|
1870config COMPAT_BRK 1871 bool "Disable heap randomization" 1872 default y 1873 help 1874 Randomizing heap placement makes heap exploits harder, but it 1875 also breaks ancient binaries (including anything libc5 based). 1876 This option changes the bootup default to heap randomization 1877 disabled, and can be overridden at runtime by setting --- 381 unchanged lines hidden (view full) --- 2259 namespace is required to import the namespace via MODULE_IMPORT_NS(). 2260 There is no technical reason to enforce correct namespace imports, 2261 but it creates consistency between symbols defining namespaces and 2262 users importing namespaces they make use of. This option relaxes this 2263 requirement and lifts the enforcement when loading a module. 2264 2265 If unsure, say N. 2266 | 1868config COMPAT_BRK 1869 bool "Disable heap randomization" 1870 default y 1871 help 1872 Randomizing heap placement makes heap exploits harder, but it 1873 also breaks ancient binaries (including anything libc5 based). 1874 This option changes the bootup default to heap randomization 1875 disabled, and can be overridden at runtime by setting --- 381 unchanged lines hidden (view full) --- 2257 namespace is required to import the namespace via MODULE_IMPORT_NS(). 2258 There is no technical reason to enforce correct namespace imports, 2259 but it creates consistency between symbols defining namespaces and 2260 users importing namespaces they make use of. This option relaxes this 2261 requirement and lifts the enforcement when loading a module. 2262 2263 If unsure, say N. 2264 |
2265config UNUSED_SYMBOLS 2266 bool "Enable unused/obsolete exported symbols" 2267 default y if X86 2268 help 2269 Unused but exported symbols make the kernel needlessly bigger. For 2270 that reason most of these unused exports will soon be removed. This 2271 option is provided temporarily to provide a transition period in case 2272 some external kernel module needs one of these symbols anyway. If you 2273 encounter such a case in your module, consider if you are actually 2274 using the right API. (rationale: since nobody in the kernel is using 2275 this in a module, there is a pretty good chance it's actually the 2276 wrong interface to use). If you really need the symbol, please send a 2277 mail to the linux kernel mailing list mentioning the symbol and why 2278 you really need it, and what the merge plan to the mainline kernel for 2279 your module is. 2280 |
|
2267config TRIM_UNUSED_KSYMS | 2281config TRIM_UNUSED_KSYMS |
2268 bool "Trim unused exported kernel symbols" if EXPERT 2269 depends on !COMPILE_TEST | 2282 bool "Trim unused exported kernel symbols" 2283 depends on !UNUSED_SYMBOLS |
2270 help 2271 The kernel and some modules make many symbols available for 2272 other modules to use via EXPORT_SYMBOL() and variants. Depending 2273 on the set of modules being selected in your kernel configuration, 2274 many of those exported symbols might never be used. 2275 2276 This option allows for unused exported symbols to be dropped from 2277 the build. In turn, this provides the compiler more opportunities 2278 (especially when using LTO) for optimizing the code and reducing 2279 binary size. This might have some security advantages as well. 2280 2281 If unsure, or if you need to build out-of-tree modules, say N. 2282 2283config UNUSED_KSYMS_WHITELIST 2284 string "Whitelist of symbols to keep in ksymtab" 2285 depends on TRIM_UNUSED_KSYMS | 2284 help 2285 The kernel and some modules make many symbols available for 2286 other modules to use via EXPORT_SYMBOL() and variants. Depending 2287 on the set of modules being selected in your kernel configuration, 2288 many of those exported symbols might never be used. 2289 2290 This option allows for unused exported symbols to be dropped from 2291 the build. In turn, this provides the compiler more opportunities 2292 (especially when using LTO) for optimizing the code and reducing 2293 binary size. This might have some security advantages as well. 2294 2295 If unsure, or if you need to build out-of-tree modules, say N. 2296 2297config UNUSED_KSYMS_WHITELIST 2298 string "Whitelist of symbols to keep in ksymtab" 2299 depends on TRIM_UNUSED_KSYMS |
2286 default "scripts/lto-used-symbollist.txt" if LTO_CLANG | |
2287 help 2288 By default, all unused exported symbols will be un-exported from the 2289 build when TRIM_UNUSED_KSYMS is selected. 2290 2291 UNUSED_KSYMS_WHITELIST allows to whitelist symbols that must be kept 2292 exported at all times, even in absence of in-tree users. The value to 2293 set here is the path to a text file containing the list of symbols, 2294 one per line. The path can be absolute, or relative to the kernel --- 51 unchanged lines hidden --- | 2300 help 2301 By default, all unused exported symbols will be un-exported from the 2302 build when TRIM_UNUSED_KSYMS is selected. 2303 2304 UNUSED_KSYMS_WHITELIST allows to whitelist symbols that must be kept 2305 exported at all times, even in absence of in-tree users. The value to 2306 set here is the path to a text file containing the list of symbols, 2307 one per line. The path can be absolute, or relative to the kernel --- 51 unchanged lines hidden --- |