@@ -188,7 +188,7 @@ config X86
188188 select HAVE_CONTEXT_TRACKING if X86_64
189189 select HAVE_CONTEXT_TRACKING_OFFSTACK if HAVE_CONTEXT_TRACKING
190190 select HAVE_C_RECORDMCOUNT
191- select HAVE_OBJTOOL_MCOUNT if STACK_VALIDATION
191+ select HAVE_OBJTOOL_MCOUNT if HAVE_OBJTOOL
192192 select HAVE_BUILDTIME_MCOUNT_SORT
193193 select HAVE_DEBUG_KMEMLEAK
194194 select HAVE_DMA_CONTIGUOUS
@@ -231,6 +231,7 @@ config X86
231231 select HAVE_MOVE_PMD
232232 select HAVE_MOVE_PUD
233233 select HAVE_NMI
234+ select HAVE_OBJTOOL if X86_64
234235 select HAVE_OPTPROBES
235236 select HAVE_PCSPKR_PLATFORM
236237 select HAVE_PERF_EVENTS
@@ -239,17 +240,17 @@ config X86
239240 select HAVE_PCI
240241 select HAVE_PERF_REGS
241242 select HAVE_PERF_USER_STACK_DUMP
242- select MMU_GATHER_RCU_TABLE_FREE if PARAVIRT
243+ select MMU_GATHER_RCU_TABLE_FREE if PARAVIRT
243244 select HAVE_POSIX_CPU_TIMERS_TASK_WORK
244245 select HAVE_REGS_AND_STACK_ACCESS_API
245- select HAVE_RELIABLE_STACKTRACE if X86_64 && (UNWINDER_FRAME_POINTER || UNWINDER_ORC) && STACK_VALIDATION
246+ select HAVE_RELIABLE_STACKTRACE if UNWINDER_ORC || STACK_VALIDATION
246247 select HAVE_FUNCTION_ARG_ACCESS_API
247248 select HAVE_SETUP_PER_CPU_AREA
248249 select HAVE_SOFTIRQ_ON_OWN_STACK
249250 select HAVE_STACKPROTECTOR if CC_HAS_SANE_STACKPROTECTOR
250- select HAVE_STACK_VALIDATION if X86_64
251+ select HAVE_STACK_VALIDATION if HAVE_OBJTOOL
251252 select HAVE_STATIC_CALL
252- select HAVE_STATIC_CALL_INLINE if HAVE_STACK_VALIDATION
253+ select HAVE_STATIC_CALL_INLINE if HAVE_OBJTOOL
253254 select HAVE_PREEMPT_DYNAMIC_CALL
254255 select HAVE_RSEQ
255256 select HAVE_SYSCALL_TRACEPOINTS
@@ -268,7 +269,6 @@ config X86
268269 select RTC_MC146818_LIB
269270 select SPARSE_IRQ
270271 select SRCU
271- select STACK_VALIDATION if HAVE_STACK_VALIDATION && (HAVE_STATIC_CALL_INLINE || RETPOLINE)
272272 select SYSCTL_EXCEPTION_TRACE
273273 select THREAD_INFO_IN_TASK
274274 select TRACE_IRQFLAGS_SUPPORT
@@ -459,6 +459,7 @@ config GOLDFISH
459459
460460config RETPOLINE
461461 bool "Avoid speculative indirect branches in kernel"
462+ select OBJTOOL if HAVE_OBJTOOL
462463 default y
463464 help
464465 Compile kernel with the retpoline compiler options to guard against
@@ -472,6 +473,7 @@ config CC_HAS_SLS
472473config SLS
473474 bool "Mitigate Straight-Line-Speculation"
474475 depends on CC_HAS_SLS && X86_64
476+ select OBJTOOL if HAVE_OBJTOOL
475477 default n
476478 help
477479 Compile the kernel with straight-line-speculation options to guard
@@ -1819,6 +1821,7 @@ config ARCH_RANDOM
18191821config X86_SMAP
18201822 def_bool y
18211823 prompt "Supervisor Mode Access Prevention" if EXPERT
1824+ select OBJTOOL if HAVE_OBJTOOL
18221825 help
18231826 Supervisor Mode Access Prevention (SMAP) is a security
18241827 feature in newer Intel processors. There is a small
@@ -1855,9 +1858,10 @@ config CC_HAS_IBT
18551858config X86_KERNEL_IBT
18561859 prompt "Indirect Branch Tracking"
18571860 bool
1858- depends on X86_64 && CC_HAS_IBT && STACK_VALIDATION
1861+ depends on X86_64 && CC_HAS_IBT && HAVE_OBJTOOL
18591862 # https://github.com/llvm/llvm-project/commit/9d7001eba9c4cb311e03cd8cdc231f9e579f2d0f
18601863 depends on !LD_IS_LLD || LLD_VERSION >= 140000
1864+ select OBJTOOL
18611865 help
18621866 Build the kernel with support for Indirect Branch Tracking, a
18631867 hardware support course-grain forward-edge Control Flow Integrity
0 commit comments