2035 lines · 64.3 KB · Text
RawDownload
# SPDX-License-Identifier: GPL-2.0-onlyconfig CC_VERSION_TEXT	string	default "$(CC_VERSION_TEXT)"	help	  This is used in unclear ways: 	  - Re-run Kconfig when the compiler is updated	    The 'default' property references the environment variable,	    CC_VERSION_TEXT so it is recorded in include/config/auto.conf.cmd.	    When the compiler is updated, Kconfig will be invoked. 	  - Ensure full rebuild when the compiler is updated	    include/linux/compiler-version.h contains this option in the comment	    line so fixdep adds include/config/CC_VERSION_TEXT into the	    auto-generated dependency. When the compiler is updated, syncconfig	    will touch it and then every file will be rebuilt. config CC_IS_GCC	def_bool $(success,test "$(cc-name)" = GCC) config GCC_VERSION	int	default $(cc-version) if CC_IS_GCC	default 0 config CC_IS_CLANG	def_bool $(success,test "$(cc-name)" = Clang) config CLANG_VERSION	int	default $(cc-version) if CC_IS_CLANG	default 0 config AS_IS_GNU	def_bool $(success,test "$(as-name)" = GNU) config AS_IS_LLVM	def_bool $(success,test "$(as-name)" = LLVM) config AS_VERSION	int	# Use clang version if this is the integrated assembler	default CLANG_VERSION if AS_IS_LLVM	default $(as-version) config LD_IS_BFD	def_bool $(success,test "$(ld-name)" = BFD) config LD_VERSION	int	default $(ld-version) if LD_IS_BFD	default 0 config LD_IS_LLD	def_bool $(success,test "$(ld-name)" = LLD) config LLD_VERSION	int	default $(ld-version) if LD_IS_LLD	default 0 config RUST_IS_AVAILABLE	def_bool $(success,$(srctree)/scripts/rust_is_available.sh)	help	  This shows whether a suitable Rust toolchain is available (found). 	  Please see Documentation/rust/quick-start.rst for instructions on how	  to satisfy the build requirements of Rust support. 	  In particular, the Makefile target 'rustavailable' is useful to check	  why the Rust toolchain is not being detected. config CC_CAN_LINK	bool	default $(success,$(srctree)/scripts/cc-can-link.sh $(CC) $(CLANG_FLAGS) $(USERCFLAGS) $(USERLDFLAGS) $(m64-flag)) if 64BIT	default $(success,$(srctree)/scripts/cc-can-link.sh $(CC) $(CLANG_FLAGS) $(USERCFLAGS) $(USERLDFLAGS) $(m32-flag)) config CC_CAN_LINK_STATIC	bool	default $(success,$(srctree)/scripts/cc-can-link.sh $(CC) $(CLANG_FLAGS) $(USERCFLAGS) $(USERLDFLAGS) $(m64-flag) -static) if 64BIT	default $(success,$(srctree)/scripts/cc-can-link.sh $(CC) $(CLANG_FLAGS) $(USERCFLAGS) $(USERLDFLAGS) $(m32-flag) -static) config CC_HAS_ASM_GOTO_OUTPUT	def_bool $(success,echo 'int foo(int x) { asm goto ("": "=r"(x) ::: bar); return x; bar: return 0; }' | $(CC) -x c - -c -o /dev/null) config CC_HAS_ASM_GOTO_TIED_OUTPUT	depends on CC_HAS_ASM_GOTO_OUTPUT	# Detect buggy gcc and clang, fixed in gcc-11 clang-14.	def_bool $(success,echo 'int foo(int *x) { asm goto (".long (%l[bar]) - .": "+m"(*x) ::: bar); return *x; bar: return 0; }' | $CC -x c - -c -o /dev/null) config TOOLS_SUPPORT_RELR	def_bool $(success,env "CC=$(CC)" "LD=$(LD)" "NM=$(NM)" "OBJCOPY=$(OBJCOPY)" $(srctree)/scripts/tools-support-relr.sh) config CC_HAS_ASM_INLINE	def_bool $(success,echo 'void foo(void) { asm inline (""); }' | $(CC) -x c - -c -o /dev/null) config CC_HAS_NO_PROFILE_FN_ATTR	def_bool $(success,echo '__attribute__((no_profile_instrument_function)) int x();' | $(CC) -x c - -c -o /dev/null -Werror) config PAHOLE_VERSION	int	default $(shell,$(srctree)/scripts/pahole-version.sh $(PAHOLE)) config CONSTRUCTORS	bool config IRQ_WORK	bool config BUILDTIME_TABLE_SORT	bool config THREAD_INFO_IN_TASK	bool	help	  Select this to move thread_info off the stack into task_struct.  To	  make this work, an arch will need to remove all thread_info fields	  except flags and fix any runtime bugs. 	  One subtle change that will be needed is to use try_get_task_stack()	  and put_task_stack() in save_thread_stack_tsk() and get_wchan(). menu "General setup" config BROKEN	bool config BROKEN_ON_SMP	bool	depends on BROKEN || !SMP	default y config INIT_ENV_ARG_LIMIT	int	default 32 if !UML	default 128 if UML	help	  Maximum of each of the number of arguments and environment	  variables passed to init from the kernel command line. config COMPILE_TEST	bool "Compile also drivers which will not load"	depends on HAS_IOMEM	help	  Some drivers can be compiled on a different platform than they are	  intended to be run on. Despite they cannot be loaded there (or even	  when they load they cannot be used due to missing HW support),	  developers still, opposing to distributors, might want to build such	  drivers to compile-test them. 	  If you are a developer and want to build everything available, say Y	  here. If you are a user/distributor, say N here to exclude useless	  drivers to be distributed. config WERROR	bool "Compile the kernel with warnings as errors"	default COMPILE_TEST	help	  A kernel build should not cause any compiler warnings, and this	  enables the '-Werror' (for C) and '-Dwarnings' (for Rust) flags	  to enforce that rule by default. Certain warnings from other tools	  such as the linker may be upgraded to errors with this option as	  well. 	  However, if you have a new (or very old) compiler or linker with odd	  and unusual warnings, or you have some architecture with problems,	  you may need to disable this config option in order to	  successfully build the kernel. 	  If in doubt, say Y. config UAPI_HEADER_TEST	bool "Compile test UAPI headers"	depends on HEADERS_INSTALL && CC_CAN_LINK	help	  Compile test headers exported to user-space to ensure they are	  self-contained, i.e. compilable as standalone units. 	  If you are a developer or tester and want to ensure the exported	  headers are self-contained, say Y here. Otherwise, choose N. config LOCALVERSION	string "Local version - append to kernel release"	help	  Append an extra string to the end of your kernel version.	  This will show up when you type uname, for example.	  The string you set here will be appended after the contents of	  any files with a filename matching localversion* in your	  object and source tree, in that order.  Your total string can	  be a maximum of 64 characters. config LOCALVERSION_AUTO	bool "Automatically append version information to the version string"	default y	depends on !COMPILE_TEST	help	  This will try to automatically determine if the current tree is a	  release tree by looking for git tags that belong to the current	  top of tree revision. 	  A string of the format -gxxxxxxxx will be added to the localversion	  if a git-based tree is found.  The string generated by this will be	  appended after any matching localversion* files, and after the value	  set in CONFIG_LOCALVERSION. 	  (The actual string used here is the first 12 characters produced	  by running the command: 	    $ git rev-parse --verify HEAD 	  which is done within the script "scripts/setlocalversion".) config BUILD_SALT	string "Build ID Salt"	default ""	help	  The build ID is used to link binaries and their debug info. Setting	  this option will use the value in the calculation of the build id.	  This is mostly useful for distributions which want to ensure the	  build is unique between builds. It's safe to leave the default. config HAVE_KERNEL_GZIP	bool config HAVE_KERNEL_BZIP2	bool config HAVE_KERNEL_LZMA	bool config HAVE_KERNEL_XZ	bool config HAVE_KERNEL_LZO	bool config HAVE_KERNEL_LZ4	bool config HAVE_KERNEL_ZSTD	bool config HAVE_KERNEL_UNCOMPRESSED	bool choice	prompt "Kernel compression mode"	default KERNEL_GZIP	depends on HAVE_KERNEL_GZIP || HAVE_KERNEL_BZIP2 || HAVE_KERNEL_LZMA || HAVE_KERNEL_XZ || HAVE_KERNEL_LZO || HAVE_KERNEL_LZ4 || HAVE_KERNEL_ZSTD || HAVE_KERNEL_UNCOMPRESSED	help	  The linux kernel is a kind of self-extracting executable.	  Several compression algorithms are available, which differ	  in efficiency, compression and decompression speed.	  Compression speed is only relevant when building a kernel.	  Decompression speed is relevant at each boot. 	  If you have any problems with bzip2 or lzma compressed	  kernels, mail me (Alain Knaff) <alain@knaff.lu>. (An older	  version of this functionality (bzip2 only), for 2.4, was	  supplied by Christian Ludwig) 	  High compression options are mostly useful for users, who	  are low on disk space (embedded systems), but for whom ram	  size matters less. 	  If in doubt, select 'gzip' config KERNEL_GZIP	bool "Gzip"	depends on HAVE_KERNEL_GZIP	help	  The old and tried gzip compression. It provides a good balance	  between compression ratio and decompression speed. config KERNEL_BZIP2	bool "Bzip2"	depends on HAVE_KERNEL_BZIP2	help	  Its compression ratio and speed is intermediate.	  Decompression speed is slowest among the choices.  The kernel	  size is about 10% smaller with bzip2, in comparison to gzip.	  Bzip2 uses a large amount of memory. For modern kernels you	  will need at least 8MB RAM or more for booting. config KERNEL_LZMA	bool "LZMA"	depends on HAVE_KERNEL_LZMA	help	  This compression algorithm's ratio is best.  Decompression speed	  is between gzip and bzip2.  Compression is slowest.	  The kernel size is about 33% smaller with LZMA in comparison to gzip. config KERNEL_XZ	bool "XZ"	depends on HAVE_KERNEL_XZ	help	  XZ uses the LZMA2 algorithm and instruction set specific	  BCJ filters which can improve compression ratio of executable	  code. The size of the kernel is about 30% smaller with XZ in	  comparison to gzip. On architectures for which there is a BCJ	  filter (i386, x86_64, ARM, IA-64, PowerPC, and SPARC), XZ	  will create a few percent smaller kernel than plain LZMA. 	  The speed is about the same as with LZMA: The decompression	  speed of XZ is better than that of bzip2 but worse than gzip	  and LZO. Compression is slow. config KERNEL_LZO	bool "LZO"	depends on HAVE_KERNEL_LZO	help	  Its compression ratio is the poorest among the choices. The kernel	  size is about 10% bigger than gzip; however its speed	  (both compression and decompression) is the fastest. config KERNEL_LZ4	bool "LZ4"	depends on HAVE_KERNEL_LZ4	help	  LZ4 is an LZ77-type compressor with a fixed, byte-oriented encoding.	  A preliminary version of LZ4 de/compression tool is available at	  <https://code.google.com/p/lz4/>. 	  Its compression ratio is worse than LZO. The size of the kernel	  is about 8% bigger than LZO. But the decompression speed is	  faster than LZO. config KERNEL_ZSTD	bool "ZSTD"	depends on HAVE_KERNEL_ZSTD	help	  ZSTD is a compression algorithm targeting intermediate compression	  with fast decompression speed. It will compress better than GZIP and	  decompress around the same speed as LZO, but slower than LZ4. You	  will need at least 192 KB RAM or more for booting. The zstd command	  line tool is required for compression. config KERNEL_UNCOMPRESSED	bool "None"	depends on HAVE_KERNEL_UNCOMPRESSED	help	  Produce uncompressed kernel image. This option is usually not what	  you want. It is useful for debugging the kernel in slow simulation	  environments, where decompressing and moving the kernel is awfully	  slow. This option allows early boot code to skip the decompressor	  and jump right at uncompressed kernel image. endchoice config DEFAULT_INIT	string "Default init path"	default ""	help	  This option determines the default init for the system if no init=	  option is passed on the kernel command line. If the requested path is	  not present, we will still then move on to attempting further	  locations (e.g. /sbin/init, etc). If this is empty, we will just use	  the fallback list when init= is not passed. config DEFAULT_HOSTNAME	string "Default hostname"	default "(none)"	help	  This option determines the default system hostname before userspace	  calls sethostname(2). The kernel traditionally uses "(none)" here,	  but you may wish to use a different default here to make a minimal	  system more usable with less configuration. config SYSVIPC	bool "System V IPC"	help	  Inter Process Communication is a suite of library functions and	  system calls which let processes (running programs) synchronize and	  exchange information. It is generally considered to be a good thing,	  and some programs won't run unless you say Y here. In particular, if	  you want to run the DOS emulator dosemu under Linux (read the	  DOSEMU-HOWTO, available from <http://www.tldp.org/docs.html#howto>),	  you'll need to say Y here. 	  You can find documentation about IPC with "info ipc" and also in	  section 6.4 of the Linux Programmer's Guide, available from	  <http://www.tldp.org/guides.html>. config SYSVIPC_SYSCTL	bool	depends on SYSVIPC	depends on SYSCTL	default y config SYSVIPC_COMPAT	def_bool y	depends on COMPAT && SYSVIPC config POSIX_MQUEUE	bool "POSIX Message Queues"	depends on NET	help	  POSIX variant of message queues is a part of IPC. In POSIX message	  queues every message has a priority which decides about succession	  of receiving it by a process. If you want to compile and run	  programs written e.g. for Solaris with use of its POSIX message	  queues (functions mq_*) say Y here. 	  POSIX message queues are visible as a filesystem called 'mqueue'	  and can be mounted somewhere if you want to do filesystem	  operations on message queues. 	  If unsure, say Y. config POSIX_MQUEUE_SYSCTL	bool	depends on POSIX_MQUEUE	depends on SYSCTL	default y config WATCH_QUEUE	bool "General notification queue"	default n	help 	  This is a general notification queue for the kernel to pass events to	  userspace by splicing them into pipes.  It can be used in conjunction	  with watches for key/keyring change notifications and device	  notifications. 	  See Documentation/core-api/watch_queue.rst config CROSS_MEMORY_ATTACH	bool "Enable process_vm_readv/writev syscalls"	depends on MMU	default y	help	  Enabling this option adds the system calls process_vm_readv and	  process_vm_writev which allow a process with the correct privileges	  to directly read from or write to another process' address space.	  See the man page for more details. config USELIB	bool "uselib syscall (for libc5 and earlier)"	default ALPHA || M68K || SPARC	help	  This option enables the uselib syscall, a system call used in the	  dynamic linker from libc5 and earlier.  glibc does not use this	  system call.  If you intend to run programs built on libc5 or	  earlier, you may need to enable this syscall.  Current systems	  running glibc can safely disable this. config AUDIT	bool "Auditing support"	depends on NET	help	  Enable auditing infrastructure that can be used with another	  kernel subsystem, such as SELinux (which requires this for	  logging of avc messages output).  System call auditing is included	  on architectures which support it. config HAVE_ARCH_AUDITSYSCALL	bool config AUDITSYSCALL	def_bool y	depends on AUDIT && HAVE_ARCH_AUDITSYSCALL	select FSNOTIFY source "kernel/irq/Kconfig"source "kernel/time/Kconfig"source "kernel/bpf/Kconfig"source "kernel/Kconfig.preempt" menu "CPU/Task time and stats accounting" config VIRT_CPU_ACCOUNTING	bool choice	prompt "Cputime accounting"	default TICK_CPU_ACCOUNTING # Kind of a stub config for the pure tick based cputime accountingconfig TICK_CPU_ACCOUNTING	bool "Simple tick based cputime accounting"	depends on !S390 && !NO_HZ_FULL	help	  This is the basic tick based cputime accounting that maintains	  statistics about user, system and idle time spent on per jiffies	  granularity. 	  If unsure, say Y. config VIRT_CPU_ACCOUNTING_NATIVE	bool "Deterministic task and CPU time accounting"	depends on HAVE_VIRT_CPU_ACCOUNTING && !NO_HZ_FULL	select VIRT_CPU_ACCOUNTING	help	  Select this option to enable more accurate task and CPU time	  accounting.  This is done by reading a CPU counter on each	  kernel entry and exit and on transitions within the kernel	  between system, softirq and hardirq state, so there is a	  small performance impact.  In the case of s390 or IBM POWER > 5,

Lines 1–500 of 2035.