x86: select ARCH_WANT_FRAME_POINTERS again when UNWINDER_FRAME_POINTER=y
PATCH 1/1 x86: select ARCH_WANT_FRAME_POINTERS again when UNWINDER_FRAME_POINTER=y
It took me some time to understand the purpose of the tricky code at the end of arch/x86/Kconfig.debug.
Without it, the following would be shown:
WARNING: unmet direct dependencies detected for FRAME_POINTER
because commit 81d387190039 ("x86/kconfig: Consolidate unwinders into multiple choice selection") removed 'select ARCH_WANT_FRAME_POINTERS'.
The correct and more straightforward approach should have been to move it where 'select FRAME_POINTER' is located.
Several architectures properly handle the conditional selection of ARCH_WANT_FRAME_POINTERS. For example, 'config UNWINDER_FRAME_POINTER' in arch/arm/Kconfig.debug.
---
arch/x86/Kconfig.debug | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-)
arch/x86/Kconfig.debug +1 -4
@@ -248,6 +248,7 @@ config UNWINDER_ORC config UNWINDER_FRAME_POINTER bool "Frame pointer unwinder" + select ARCH_WANT_FRAME_POINTERS select FRAME_POINTER help This option enables the frame pointer unwinder for unwinding kernel
@@ -271,7 +272,3 @@ config UNWINDER_GUESS overhead. endchoice - -config FRAME_POINTER - depends on !UNWINDER_ORC && !UNWINDER_GUESS - bool
Signature · 1 line
2.40.1
Ping?
Quoted 47 lines · Masahiro Yamada
It took me some time to understand the purpose of the tricky code at the end of
arch/x86/Kconfig.debug.Without it, the following would be shown:
WARNING: unmet direct dependencies detected for
FRAME_POINTERbecause commit
81d387190039("x86/kconfig: Consolidate unwinders into multiple choice selection") removed 'selectARCH_WANT_FRAME_POINTERS'.The correct and more straightforward approach should have been to move it where 'select
FRAME_POINTER' is located.Several architectures properly handle the conditional selection of
ARCH_WANT_FRAME_POINTERS. For example, 'configUNWINDER_FRAME_POINTER' inarch/arm/Kconfig.debug.Signed-off-by Masahiro Yamada <[email protected]>---
arch/x86/Kconfig.debug | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-)arch/x86/Kconfig.debug +1
-5@@ -248,6 +248,7 @@ config UNWINDER_ORC config UNWINDER_FRAME_POINTER bool "Frame pointer unwinder" + select ARCH_WANT_FRAME_POINTERS select FRAME_POINTER help This option enables the frame pointer unwinder for unwinding kernel@@ -271,7 +272,3 @@ config UNWINDER_GUESS overhead. endchoice - -config FRAME_POINTER - depends on !UNWINDER_ORC && !UNWINDER_GUESS - bool --2.40.1
Signature · 2 lines
Best Regards Masahiro Yamada
Hi, x86 maintainers
Please check this.
And, please also note the current code is incorrect, and it may get broken with future Kconfig refactoring.
Quoted 44 lines · Masahiro Yamada
Ping?
Quoted 39 lines · Masahiro Yamada
It took me some time to understand the purpose of the tricky code at the end of
arch/x86/Kconfig.debug.Without it, the following would be shown:
WARNING: unmet direct dependencies detected for
FRAME_POINTERbecause commit
81d387190039("x86/kconfig: Consolidate unwinders into multiple choice selection") removed 'selectARCH_WANT_FRAME_POINTERS'.The correct and more straightforward approach should have been to move it where 'select
FRAME_POINTER' is located.Several architectures properly handle the conditional selection of
ARCH_WANT_FRAME_POINTERS. For example, 'configUNWINDER_FRAME_POINTER' inarch/arm/Kconfig.debug.Signed-off-by Masahiro Yamada <[email protected]>---
arch/x86/Kconfig.debug | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-)arch/x86/Kconfig.debug +1
-0@@ -248,6 +248,7 @@ config UNWINDER_ORC config UNWINDER_FRAME_POINTER bool "Frame pointer unwinder" + select ARCH_WANT_FRAME_POINTERS select FRAME_POINTER help This option enables the frame pointer unwinder for unwinding kernel@@ -271,7 +272,3 @@ config UNWINDER_GUESS overhead.
Quoted 13 lines
Quoted 8 lines
arch/x86/Kconfig.debug +0
-5endchoice - -config FRAME_POINTER - depends on !UNWINDER_ORC && !UNWINDER_GUESS - bool --2.40.1
--
Best Regards
Masahiro Yamada
--
Best Regards
Masahiro Yamada
Quoted 10 lines · Masahiro Yamada
It took me some time to understand the purpose of the tricky code at the end of
arch/x86/Kconfig.debug.Without it, the following would be shown:
WARNING: unmet direct dependencies detected for
FRAME_POINTERbecause commit
81d387190039("x86/kconfig: Consolidate unwinders into multiple choice selection") removed 'selectARCH_WANT_FRAME_POINTERS'.
Quoted 8 lines
The correct and more straightforward approach should have been to move it where 'select
FRAME_POINTER' is located.Several architectures properly handle the conditional selection of
ARCH_WANT_FRAME_POINTERS. For example, 'configUNWINDER_FRAME_POINTER' inarch/arm/Kconfig.debug.Signed-off-by Masahiro Yamada <[email protected]>
Looks good, thanks for fixing that!
Signature · 1 line
Josh
[tip: x86/urgent] x86/kconfig: Select ARCH_WANT_FRAME_POINTERS again when UNWINDER_FRAME_POINTER=y
In reply to Masahiro YamadaThe following commit has been merged into the x86/urgent branch of tip:
The following commit has been merged into the x86/urgent branch of tip:
Commit-ID: 66ee3636eddcc82ab82b539d08b85fb5ac1dff9b Gitweb: https://git.kernel.org/tip/66ee3636eddcc82ab82b539d08b85fb5ac1dff9b Author: Masahiro Yamada <[email protected]> AuthorDate: Sun, 04 Feb 2024 21:20:03 +09:00 Committer: Borislav Petkov (AMD) <[email protected]> CommitterDate: Mon, 20 May 2024 11:37:23 +02:00
x86/kconfig: Select ARCH_WANT_FRAME_POINTERS again when UNWINDER_FRAME_POINTER=y
It took me some time to understand the purpose of the tricky code at the end of arch/x86/Kconfig.debug.
Without it, the following would be shown:
WARNING: unmet direct dependencies detected for FRAME_POINTER
because
81d387190039 ("x86/kconfig: Consolidate unwinders into multiple choice selection")
removed 'select ARCH_WANT_FRAME_POINTERS'.
The correct and more straightforward approach should have been to move it where 'select FRAME_POINTER' is located.
Several architectures properly handle the conditional selection of ARCH_WANT_FRAME_POINTERS. For example, 'config UNWINDER_FRAME_POINTER' in arch/arm/Kconfig.debug.
--- arch/x86/Kconfig.debug | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-)
arch/x86/Kconfig.debug +1 -4
@@ -248,6 +248,7 @@ config UNWINDER_ORC config UNWINDER_FRAME_POINTER bool "Frame pointer unwinder" + select ARCH_WANT_FRAME_POINTERS select FRAME_POINTER help This option enables the frame pointer unwinder for unwinding kernel
@@ -271,7 +272,3 @@ config UNWINDER_GUESS overhead. endchoice - -config FRAME_POINTER - depends on !UNWINDER_ORC && !UNWINDER_GUESS - bool