diff '--color=auto' -rupN linux-7.2.7/arch/x86/Kconfig.cpu linux-7.2.7-patched/arch/x86/Kconfig.cpu --- linux-7.2.7/arch/x86/Kconfig.cpu 2026-09-21 15:09:00.000000000 +0200 +++ linux-7.2.7-patched/arch/x86/Kconfig.cpu 2026-09-24 20:31:44.997137799 +0200 @@ -204,8 +204,16 @@ config CC_HAS_MARCH_NATIVE # usage warnings that only appear wth '-march=native'. depends on CC_IS_GCC || CLANG_VERSION >= 190100 +choice + prompt "x86-64 Processor family" + depends on X86_64 + default CPU_GENERIC + help + This is the processor type of your CPU. This information is + used for optimizing purposes. + config X86_NATIVE_CPU - bool "Build and optimize for local/native CPU" + bool "local/native" depends on X86_64 depends on CC_HAS_MARCH_NATIVE help @@ -216,7 +224,243 @@ config X86_NATIVE_CPU Note that such a kernel might not work optimally on a different x86 machine. - If unsure, say N. +config CPU_GENERIC + bool "Generic" + depends on X86_64 + +config CPU_CORE2 + bool "Core 2" + depends on X86_64 + help + Intel Core 2 CPU with 64-bit extensions, MMX, SSE, SSE2, SSE3, + SSSE3, CX16, SAHF and FXSR instruction set support. + +config CPU_NEHALEM + bool "Intel Core i5/i7 1st gen (Nehalem)" + depends on X86_64 + help + Intel Nehalem CPU with 64-bit extensions, MMX, SSE, SSE2, SSE3, + SSSE3, SSE4.1, SSE4.2, POPCNT, CX16, SAHF and FXSR instruction + set support. + +config CPU_WESTMERE + bool "Intel Core i3/i5/i7 1st gen (Westmere)" + depends on X86_64 + help + Intel Westmere CPU with 64-bit extensions, MMX, SSE, SSE2, SSE3, + SSSE3, SSE4.1, SSE4.2, POPCNT, CX16, SAHF, FXSR and PCLMUL + instruction set support. + +config CPU_SANDY + bool "Intel Core i3/i5/i7 2nd gen (Sandybridge)" + depends on X86_64 + help + Intel Sandy Bridge CPU with 64-bit extensions, MMX, SSE, SSE2, + SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, CX16, SAHF, FXSR, AVX, XSAVE + and PCLMUL instruction set support. + +config CPU_IVY + bool "Intel Core i3/i5/i7 3rd gen (Ivybridge)" + depends on X86_64 + help + Intel Ivy Bridge CPU with 64-bit extensions, MMX, SSE, SSE2, SSE3, + SSSE3, SSE4.1, SSE4.2, POPCNT, CX16, SAHF, FXSR, AVX, XSAVE, + PCLMUL, FSGSBASE, RDRND and F16C instruction set support. + +config CPU_HASWELL + bool "Intel Core i3/i5/i7 4th gen (Haswell)" + depends on X86_64 + help + Intel Haswell CPU with 64-bit extensions, MMX, SSE, SSE2, SSE3, + SSSE3, SSE4.1, SSE4.2, POPCNT, CX16, SAHF, FXSR, AVX, XSAVE, PCLMUL, + FSGSBASE, RDRND, F16C, AVX2, BMI, BMI2, LZCNT, FMA, MOVBE and HLE + instruction set support. + +config CPU_BROADWELL + bool "Intel Core i3/i5/i7 5th gen (Broadwell)" + depends on X86_64 + help + Intel Broadwell CPU with 64-bit extensions, MMX, SSE, SSE2, SSE3, + SSSE3, SSE4.1, SSE4.2, POPCNT, CX16, SAHF, FXSR, AVX, XSAVE, PCLMUL, + FSGSBASE, RDRND, F16C, AVX2, BMI, BMI2, LZCNT, FMA, MOVBE, HLE, + RDSEED, ADCX and PREFETCHW instruction set support. + +config CPU_SKYLAKE + bool "Intel Core i3/i5/i7 6th gen (Skylake)" + depends on X86_64 + help + Intel Skylake CPU with 64-bit extensions, MMX, SSE, SSE2, SSE3, + SSSE3, SSE4.1, SSE4.2, POPCNT, CX16, SAHF, FXSR, AVX, XSAVE, PCLMUL, + FSGSBASE, RDRND, F16C, AVX2, BMI, BMI2, LZCNT, FMA, MOVBE, HLE, RDSEED, + ADCX, PREFETCHW, AES, CLFLUSHOPT, XSAVEC, XSAVES and SGX instruction + set support. + +config CPU_CASCADELAKE + bool "Intel Xeon Scalable 2nd gen (Cascadelake)" + depends on X86_64 + help + Intel Cascade Lake CPU with 64-bit extensions, MMX, SSE, SSE2, SSE3, + SSSE3, SSE4.1, SSE4.2, POPCNT, CX16, SAHF, FXSR, AVX, XSAVE, PCLMUL, + FSGSBASE, RDRND, F16C, AVX2, BMI, BMI2, LZCNT, FMA, MOVBE, HLE, RDSEED, + ADCX, PREFETCHW, AES, CLFLUSHOPT, XSAVEC, XSAVES, SGX, AVX512F, CLWB, + AVX512VL, AVX512BW, AVX512DQ, AVX512CD and AVX512VNNI instruction set + support. + +config CPU_CANNONLAKE + bool "Intel Core 'Cannon Lake'" + depends on X86_64 + help + Intel Cannon Lake Server CPU with 64-bit extensions, MMX, SSE, SSE2, + SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, CX16, SAHF, FXSR, AVX, XSAVE, PCLMUL, + FSGSBASE, RDRND, F16C, AVX2, BMI, BMI2, LZCNT, FMA, MOVBE, HLE, RDSEED, + ADCX, PREFETCHW, AES, CLFLUSHOPT, XSAVEC, XSAVES, SGX, AVX512F, AVX512VL, + AVX512BW, AVX512DQ, AVX512CD, PKU, AVX512VBMI, AVX512IFMA and SHA + instruction set support. + +config CPU_COPPERLAKE + bool "Intel Xeon Scalable 3rd gen (Copperlake)" + depends on X86_64 + + +config CPU_ICELAKE_CLIENT + bool "Intel Core mobile 10th gen (Icelake)" + depends on X86_64 + + +config CPU_ICELAKE_SERVER + bool "Intel Xeon Scalable 3rd gen (Icelake-SP)" + depends on X86_64 + + +config CPU_TIGERLAKE + bool "Intel Core mobile 11th gen (Tigerlake)" + depends on X86_64 + + +config CPU_ROCKETLAKE + bool "Intel Core desktop 11th gen (Rocketlake)" + depends on X86_64 + + +config CPU_ALDERLAKE + bool "Intel Core 12th/13th/14th gen (Alder/Raptor/Meteor Lake)" + depends on X86_64 + + +config CPU_ARROWLAKE + bool "Intel Core Ultra 200 (Arrowlake)" + depends on X86_64 + + +config CPU_LUNARLAKE + bool "Intel Core Ultra 200V (Lunarlake)" + depends on X86_64 + + +config CPU_PANTHERLAKE + bool "Intel Core Ultra (Pantherlake/Wildcatlake)" + depends on X86_64 + + +config CPU_SAPPHIRERAPIDS + bool "Intel Xeon Scalable 4th/5th gen (Sapphire/Emerald Rapids)" + depends on X86_64 + + +config CPU_GRANITERAPIDS + bool "Intel Xeon 6 (Graniterapids)" + depends on X86_64 + + +config CPU_ATOM + bool "Intel Atom (Bonnell)" + depends on X86_64 + +config CPU_SILVERMONT + bool "Intel Atom (Silvermont)" + depends on X86_64 + +config CPU_GOLDMONT + bool "Intel Atom (Goldmont)" + depends on X86_64 + +config CPU_TREMONT + bool "Intel Atom (Tremont)" + depends on X86_64 + +config CPU_SIERRAFOREST + bool "Intel Atom (Sierraforest)" + depends on X86_64 + +config CPU_GRANDRIDGE + bool "Intel Atom (Grandridge)" + depends on X86_64 + +config CPU_K8 + bool "AMD K8/Opteron/Athlon64/Athlon FX" + depends on X86_64 + +config CPU_K8SSE3 + bool "AMD K8/Opteron/Athlon64 with SSE3" + depends on X86_64 + +config CPU_BARCELONA + bool "AMD Opteron/Phenom (Barcelona)" + depends on X86_64 + +config CPU_BDV1 + bool "AMD Bulldozer FX" + depends on X86_64 + +config CPU_BDV2 + bool "AMD Piledriver" + depends on X86_64 + +config CPU_BDV3 + bool "AMD Steamroller" + depends on X86_64 + +config CPU_BDV4 + bool "AMD Excavator" + depends on X86_64 + +config CPU_ZEN1 + bool "AMD Ryzen/EPYC (Zen 1)" + depends on X86_64 + +config CPU_ZEN2 + bool "AMD Ryzen/EPYC (Zen 2)" + depends on X86_64 + +config CPU_ZEN3 + bool "AMD Ryzen/EPYC (Zen 3)" + depends on X86_64 + +config CPU_ZEN4 + bool "AMD Ryzen/EPYC (Zen 4)" + depends on X86_64 + +config CPU_ZEN5 + bool "AMD Ryzen/EPYC (Zen 5)" + depends on X86_64 + +config CPU_ZEN6 + bool "AMD Ryzen/EPYC (Zen 6)" + depends on X86_64 + +config CPU_BTV1 + bool "AMD Bobcat" + depends on X86_64 + +config CPU_BTV2 + bool "AMD Jaguar" + depends on X86_64 + +config CPU_GEODE + bool "AMD Geode" + depends on X86_64 + +endchoice config X86_GENERIC bool "Generic x86 support" diff '--color=auto' -rupN linux-7.2.7/arch/x86/Makefile linux-7.2.7-patched/arch/x86/Makefile --- linux-7.2.7/arch/x86/Makefile 2026-09-21 15:09:00.000000000 +0200 +++ linux-7.2.7-patched/arch/x86/Makefile 2026-09-24 20:06:16.998188971 +0200 @@ -159,13 +159,19 @@ else # Use -mskip-rax-setup if supported. KBUILD_CFLAGS += -mskip-rax-setup -ifdef CONFIG_X86_NATIVE_CPU - KBUILD_CFLAGS += -march=native - KBUILD_RUSTFLAGS += -Ctarget-cpu=native -else - KBUILD_CFLAGS += -march=x86-64 -mtune=generic - KBUILD_RUSTFLAGS += -Ctarget-cpu=x86-64 -Ztune-cpu=generic -endif + #include march/mtune flags for 64bit cpus + include $(srctree)/arch/x86/Makefile_64.cpu + KBUILD_CFLAGS += $(cflags-y) + KBUILD_RUSTFLAGS += $(rustflags-y) + +#remove default way of doing this +#ifdef CONFIG_X86_NATIVE_CPU +# KBUILD_CFLAGS += -march=native +# KBUILD_RUSTFLAGS += -Ctarget-cpu=native +#else +# KBUILD_CFLAGS += -march=x86-64 -mtune=generic +# KBUILD_RUSTFLAGS += -Ctarget-cpu=x86-64 -Ztune-cpu=generic +#endif KBUILD_CFLAGS += -mno-red-zone KBUILD_CFLAGS += -mcmodel=kernel diff '--color=auto' -rupN linux-7.2.7/arch/x86/Makefile_64.cpu linux-7.2.7-patched/arch/x86/Makefile_64.cpu --- linux-7.2.7/arch/x86/Makefile_64.cpu 1970-01-01 01:00:00.000000000 +0100 +++ linux-7.2.7-patched/arch/x86/Makefile_64.cpu 2026-09-24 20:11:31.130268502 +0200 @@ -0,0 +1,93 @@ +#cflags +cflags-$(CONFIG_X86_NATIVE_CPU) += -march=native +cflags-$(CONFIG_CPU_GENERIC) += -march=x86-64 +cflags-$(CONFIG_CPU_CORE2) += -march=core2 +cflags-$(CONFIG_CPU_NEHALEM) += -march=nehalem +cflags-$(CONFIG_CPU_WESTMERE) += -march=westmere +cflags-$(CONFIG_CPU_SANDY) += -march=sandybridge +cflags-$(CONFIG_CPU_IVY) += -march=ivybridge +cflags-$(CONFIG_CPU_HASWELL) += -march=haswell +cflags-$(CONFIG_CPU_BROADWELL) += -march=broadwell +cflags-$(CONFIG_CPU_SKYLAKE) += -march=skylake +cflags-$(CONFIG_CPU_CASCADELAKE) += -march=cascadelake +cflags-$(CONFIG_CPU_CANNONLAKE) += -march=cannonlake +cflags-$(CONFIG_CPU_COPPERLAKE) += -march=cooperlake +cflags-$(CONFIG_CPU_ICELAKE_CLIENT) += -march=icelake-client +cflags-$(CONFIG_CPU_ICELAKE_SERVER) += -march=icelake-server +cflags-$(CONFIG_CPU_TIGERLAKE) += -march=tigerlake +cflags-$(CONFIG_CPU_ROCKETLAKE) += -march=rocketlake +cflags-$(CONFIG_CPU_ALDERLAKE) += -march=alderlake +cflags-$(CONFIG_CPU_ARROWLAKE) += -march=arrowlake +cflags-$(CONFIG_CPU_LUNARLAKE) += -march=lunarlake +cflags-$(CONFIG_CPU_PANTHERLAKE) += -march=pantherlake +cflags-$(CONFIG_CPU_SAPPHIRERAPIDS) += -march=sapphirerapids +cflags-$(CONFIG_CPU_GRANITERAPIDS) += -march=graniterapids +cflags-$(CONFIG_CPU_ATOM) += -march=bonnell +cflags-$(CONFIG_CPU_SILVERMONT) += -march=silvermont +cflags-$(CONFIG_CPU_GOLDMONT) += -march=goldmont +cflags-$(CONFIG_CPU_TREMONT) += -march=tremont +cflags-$(CONFIG_CPU_SIERRAFOREST) += -march=sierraforest +cflags-$(CONFIG_CPU_GRANDRIDGE) += -march=grandridge +cflags-$(CONFIG_CPU_K8) += -march=k8 +cflags-$(CONFIG_CPU_K8SSE3) += -march=k8-sse3 +cflags-$(CONFIG_CPU_BARCELONA) += -march=amdfam10 +cflags-$(CONFIG_CPU_BDV1) += -march=bdver1 +cflags-$(CONFIG_CPU_BDV2) += -march=bdver2 +cflags-$(CONFIG_CPU_BDV3) += -march=bdver3 +cflags-$(CONFIG_CPU_BDV4) += -march=bdver4 +cflags-$(CONFIG_CPU_ZEN1) += -march=znver1 +cflags-$(CONFIG_CPU_ZEN2) += -march=znver2 +cflags-$(CONFIG_CPU_ZEN3) += -march=znver3 +cflags-$(CONFIG_CPU_ZEN4) += -march=znver4 +cflags-$(CONFIG_CPU_ZEN5) += -march=znver5 +cflags-$(CONFIG_CPU_ZEN6) += -march=znver6 +cflags-$(CONFIG_CPU_BTV1) += -march=btver1 +cflags-$(CONFIG_CPU_BTV2) += -march=btver2 +cflags-$(CONFIG_CPU_GEODE) += -march=geode + +#rustflags +rustflags-$(CONFIG_X86_NATIVE_CPU) += -Ctarget-cpu=native -Ztune-cpu=native +rustflags-$(CONFIG_CPU_GENERIC) += -Ctarget-cpu=x86-64 -Ztune-cpu=x86-64 +rustflags-$(CONFIG_CPU_CORE2) += -Ctarget-cpu=core2 -Ztune-cpu=core2 +rustflags-$(CONFIG_CPU_NEHALEM) += -Ctarget-cpu=nehalem -Ztune-cpu=nehalem +rustflags-$(CONFIG_CPU_WESTMERE) += -Ctarget-cpu=westmere -Ztune-cpu=westmere +rustflags-$(CONFIG_CPU_SANDY) += -Ctarget-cpu=sandybridge -Ztune-cpu=sandybridge +rustflags-$(CONFIG_CPU_IVY) += -Ctarget-cpu=ivybridge -Ztune-cpu=ivybridge +rustflags-$(CONFIG_CPU_HASWELL) += -Ctarget-cpu=haswell -Ztune-cpu=haswell +rustflags-$(CONFIG_CPU_BROADWELL) += -Ctarget-cpu=broadwell -Ztune-cpu=broadwell +rustflags-$(CONFIG_CPU_SKYLAKE) += -Ctarget-cpu=skylake -Ztune-cpu=skylake +rustflags-$(CONFIG_CPU_CASCADELAKE) += -Ctarget-cpu=cascadelake -Ztune-cpu=cascadelake +rustflags-$(CONFIG_CPU_CANNONLAKE) += -Ctarget-cpu=cannonlake -Ztune-cpu=cannonlake +rustflags-$(CONFIG_CPU_COPPERLAKE) += -Ctarget-cpu=cooperlake -Ztune-cpu=cooperlake +rustflags-$(CONFIG_CPU_ICELAKE_CLIENT) += -Ctarget-cpu=icelake-client -Ztune-cpu=icelake-client +rustflags-$(CONFIG_CPU_ICELAKE_SERVER) += -Ctarget-cpu=icelake-server -Ztune-cpu=icelake-server +rustflags-$(CONFIG_CPU_TIGERLAKE) += -Ctarget-cpu=tigerlake -Ztune-cpu=tigerlake +rustflags-$(CONFIG_CPU_ROCKETLAKE) += -Ctarget-cpu=rocketlake -Ztune-cpu=rocketlake +rustflags-$(CONFIG_CPU_ALDERLAKE) += -Ctarget-cpu=alderlake -Ztune-cpu=alderlake +rustflags-$(CONFIG_CPU_ARROWLAKE) += -Ctarget-cpu=arrowlake -Ztune-cpu=arrowlake +rustflags-$(CONFIG_CPU_LUNARLAKE) += -Ctarget-cpu=lunarlake -Ztune-cpu=lunarlake +rustflags-$(CONFIG_CPU_PANTHERLAKE) += -Ctarget-cpu=pantherlake -Ztune-cpu=pantherlake +rustflags-$(CONFIG_CPU_SAPPHIRERAPIDS) += -Ctarget-cpu=sapphirerapids -Ztune-cpu=sapphirerapids +rustflags-$(CONFIG_CPU_GRANITERAPIDS) += -Ctarget-cpu=graniterapids -Ztune-cpu=graniterapids +rustflags-$(CONFIG_CPU_ATOM) += -Ctarget-cpu=bonnell -Ztune-cpu=bonnell +rustflags-$(CONFIG_CPU_SILVERMONT) += -Ctarget-cpu=silvermont -Ztune-cpu=silvermont +rustflags-$(CONFIG_CPU_GOLDMONT) += -Ctarget-cpu=goldmont -Ztune-cpu=goldmont +rustflags-$(CONFIG_CPU_TREMONT) += -Ctarget-cpu=tremont -Ztune-cpu=tremont +rustflags-$(CONFIG_CPU_SIERRAFOREST) += -Ctarget-cpu=sierraforest -Ztune-cpu=sierraforest +rustflags-$(CONFIG_CPU_GRANDRIDGE) += -Ctarget-cpu=grandridge -Ztune-cpu=grandridge +rustflags-$(CONFIG_CPU_K8) += -Ctarget-cpu=k8 -Ztune-cpu=k8 +rustflags-$(CONFIG_CPU_K8SSE3) += -Ctarget-cpu=k8-sse3 -Ztune-cpu=k8-sse3 +rustflags-$(CONFIG_CPU_BARCELONA) += -Ctarget-cpu=amdfam10 -Ztune-cpu=amdfam10 +rustflags-$(CONFIG_CPU_BDV1) += -Ctarget-cpu=bdver1 -Ztune-cpu=bdver1 +rustflags-$(CONFIG_CPU_BDV2) += -Ctarget-cpu=bdver2 -Ztune-cpu=bdver2 +rustflags-$(CONFIG_CPU_BDV3) += -Ctarget-cpu=bdver3 -Ztune-cpu=bdver3 +rustflags-$(CONFIG_CPU_BDV4) += -Ctarget-cpu=bdver4 -Ztune-cpu=bdver4 +rustflags-$(CONFIG_CPU_ZEN1) += -Ctarget-cpu=znver1 -Ztune-cpu=znver1 +rustflags-$(CONFIG_CPU_ZEN2) += -Ctarget-cpu=znver2 -Ztune-cpu=znver2 +rustflags-$(CONFIG_CPU_ZEN3) += -Ctarget-cpu=znver3 -Ztune-cpu=znver3 +rustflags-$(CONFIG_CPU_ZEN4) += -Ctarget-cpu=znver4 -Ztune-cpu=znver4 +rustflags-$(CONFIG_CPU_ZEN5) += -Ctarget-cpu=znver5 -Ztune-cpu=znver5 +rustflags-$(CONFIG_CPU_ZEN6) += -Ctarget-cpu=znver5 -Ztune-cpu=znver5 +rustflags-$(CONFIG_CPU_BTV1) += -Ctarget-cpu=btver1 -Ztune-cpu=btver1 +rustflags-$(CONFIG_CPU_BTV2) += -Ctarget-cpu=btver2 -Ztune-cpu=btver2 +rustflags-$(CONFIG_CPU_GEODE) += -Ctarget-cpu=geode -Ztune-cpu=geode