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-25 11:17:11.792383870 +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/target-cpu flags for 64bit cpus + include $(srctree)/arch/x86/Makefile_64.cpu + KBUILD_CFLAGS += -march=$(march) + KBUILD_RUSTFLAGS += -Ctarget-cpu=$(march) + +#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-25 11:27:58.249550213 +0200 @@ -0,0 +1,48 @@ +#cflags +march-$(CONFIG_X86_NATIVE_CPU) = native +march-$(CONFIG_CPU_GENERIC) = x86-64 +march-$(CONFIG_CPU_CORE2) = core2 +march-$(CONFIG_CPU_NEHALEM) = nehalem +march-$(CONFIG_CPU_WESTMERE) = westmere +march-$(CONFIG_CPU_SANDY) = sandybridge +march-$(CONFIG_CPU_IVY) = ivybridge +march-$(CONFIG_CPU_HASWELL) = haswell +march-$(CONFIG_CPU_BROADWELL) = broadwell +march-$(CONFIG_CPU_SKYLAKE) = skylake +march-$(CONFIG_CPU_CASCADELAKE) = cascadelake +march-$(CONFIG_CPU_CANNONLAKE) = cannonlake +march-$(CONFIG_CPU_COPPERLAKE) = cooperlake +march-$(CONFIG_CPU_ICELAKE_CLIENT) = icelake-client +march-$(CONFIG_CPU_ICELAKE_SERVER) = icelake-server +march-$(CONFIG_CPU_TIGERLAKE) = tigerlake +march-$(CONFIG_CPU_ROCKETLAKE) = rocketlake +march-$(CONFIG_CPU_ALDERLAKE) = alderlake +march-$(CONFIG_CPU_ARROWLAKE) = arrowlake +march-$(CONFIG_CPU_LUNARLAKE) = lunarlake +march-$(CONFIG_CPU_PANTHERLAKE) = pantherlake +march-$(CONFIG_CPU_SAPPHIRERAPIDS) = sapphirerapids +march-$(CONFIG_CPU_GRANITERAPIDS) = graniterapids +march-$(CONFIG_CPU_ATOM) = bonnell +march-$(CONFIG_CPU_SILVERMONT) = silvermont +march-$(CONFIG_CPU_GOLDMONT) = goldmont +march-$(CONFIG_CPU_TREMONT) = tremont +march-$(CONFIG_CPU_SIERRAFOREST) = sierraforest +march-$(CONFIG_CPU_GRANDRIDGE) = grandridge +march-$(CONFIG_CPU_K8) = k8 +march-$(CONFIG_CPU_K8SSE3) = k8-sse3 +march-$(CONFIG_CPU_BARCELONA) = amdfam10 +march-$(CONFIG_CPU_BDV1) = bdver1 +march-$(CONFIG_CPU_BDV2) = bdver2 +march-$(CONFIG_CPU_BDV3) = bdver3 +march-$(CONFIG_CPU_BDV4) = bdver4 +march-$(CONFIG_CPU_ZEN1) = znver1 +march-$(CONFIG_CPU_ZEN2) = znver2 +march-$(CONFIG_CPU_ZEN3) = znver3 +march-$(CONFIG_CPU_ZEN4) = znver4 +march-$(CONFIG_CPU_ZEN5) = znver5 +march-$(CONFIG_CPU_ZEN6) = znver6 +march-$(CONFIG_CPU_BTV1) = btver1 +march-$(CONFIG_CPU_BTV2) = btver2 +march-$(CONFIG_CPU_GEODE) = geode +march = $(march-y) +export march diff '--color=auto' -rupN linux-7.2.7/scripts/Makefile.package linux-7.2.7-patched/scripts/Makefile.package --- linux-7.2.7/scripts/Makefile.package 2026-09-21 15:09:00.000000000 +0200 +++ linux-7.2.7-patched/scripts/Makefile.package 2026-09-25 11:23:31.769009254 +0200 @@ -154,6 +154,7 @@ pacman-pkg: @ln -srf $(srctree)/scripts/package/PKGBUILD $(objtree)/PKGBUILD +BUILDDIR="$(realpath $(objtree))/pacman" \ CARCH="$(UTS_MACHINE)" \ + MARCH="$(march)" \ KBUILD_MAKEFLAGS="$(MAKEFLAGS)" \ KBUILD_REVISION="$(shell $(srctree)/scripts/build-version)" \ makepkg $(MAKEPKGOPTS) diff '--color=auto' -rupN linux-7.2.7/scripts/package/PKGBUILD linux-7.2.7-patched/scripts/package/PKGBUILD --- linux-7.2.7/scripts/package/PKGBUILD 2026-09-21 15:09:00.000000000 +0200 +++ linux-7.2.7-patched/scripts/package/PKGBUILD 2026-09-25 11:29:04.529589131 +0200 @@ -2,7 +2,7 @@ # Maintainer: Thomas Weißschuh # Contributor: Jan Alexander Steffens (heftig) -pkgbase=${PACMAN_PKGBASE:-linux-upstream} +pkgbase=${PACMAN_PKGBASE:-linux-${MARCH}} pkgname=("${pkgbase}") _extrapackages=${PACMAN_EXTRAPACKAGES-headers api-headers debug}