arch/x86/Kconfig

Source file repositories/reference/linux-study-clean/arch/x86/Kconfig

File Facts

System
Linux kernel
Corpus path
arch/x86/Kconfig
Extension
[no extension]
Size
105649 bytes
Lines
3139
Domain
Architecture Layer
Bucket
arch/x86
Inferred role
Architecture Layer: build/configuration rule
Status
atlas-only

Why This File Exists

CPU and platform-specific kernel glue: boot entry, traps, syscall entry, interrupts, page tables, context switch, and low-level barriers.

Dependency Surface

Detected Declarations

Annotated Snippet

# SPDX-License-Identifier: GPL-2.0
# Select 32 or 64 bit
config 64BIT
	bool "64-bit kernel" if "$(ARCH)" = "x86"
	default "$(ARCH)" != "i386"
	help
	  Say yes to build a 64-bit kernel - formerly known as x86_64
	  Say no to build a 32-bit kernel - formerly known as i386

config X86_32
	def_bool y
	depends on !64BIT
	# Options that are inherently 32-bit kernel only:
	select ARCH_WANT_IPC_PARSE_VERSION
	select CLKSRC_I8253
	select CLONE_BACKWARDS
	select HAVE_DEBUG_STACKOVERFLOW
	select KMAP_LOCAL
	select MODULES_USE_ELF_REL
	select OLD_SIGACTION
	select ARCH_SPLIT_ARG64

config X86_64
	def_bool y
	depends on 64BIT
	# Options that are inherently 64-bit kernel only:
	select ARCH_HAS_GIGANTIC_PAGE
	select ARCH_SUPPORTS_MSEAL_SYSTEM_MAPPINGS
	select ARCH_SUPPORTS_INT128 if CC_HAS_INT128
	select ARCH_SUPPORTS_PER_VMA_LOCK
	select ARCH_SUPPORTS_HUGE_PFNMAP if TRANSPARENT_HUGEPAGE
	select HAVE_ARCH_SOFT_DIRTY
	select MODULES_USE_ELF_RELA
	select NEED_DMA_MAP_STATE
	select SWIOTLB
	select ARCH_HAS_ELFCORE_COMPAT
	select ZONE_DMA32
	select EXECMEM if DYNAMIC_FTRACE
	select ACPI_MRRM if ACPI

config FORCE_DYNAMIC_FTRACE
	def_bool y
	depends on X86_32
	depends on FUNCTION_TRACER
	select DYNAMIC_FTRACE
	help
	  We keep the static function tracing (!DYNAMIC_FTRACE) around
	  in order to test the non static function tracing in the
	  generic code, as other architectures still use it. But we
	  only need to keep it around for x86_64. No need to keep it
	  for x86_32. For x86_32, force DYNAMIC_FTRACE.
#
# Arch settings
#
# ( Note that options that are marked 'if X86_64' could in principle be
#   ported to 32-bit as well. )
#
config X86
	def_bool y
	#
	# Note: keep this list sorted alphabetically
	#
	select ACPI_LEGACY_TABLES_LOOKUP	if ACPI
	select ACPI_SYSTEM_POWER_STATES_SUPPORT	if ACPI
	select ACPI_HOTPLUG_CPU			if ACPI_PROCESSOR && HOTPLUG_CPU
	select ARCH_32BIT_OFF_T			if X86_32
	select ARCH_CLOCKSOURCE_INIT
	select ARCH_CONFIGURES_CPU_MITIGATIONS
	select ARCH_CORRECT_STACKTRACE_ON_KRETPROBE
	select ARCH_ENABLE_HUGEPAGE_MIGRATION if X86_64 && HUGETLB_PAGE && MIGRATION

Annotation

Implementation Notes