Macros STACK_FRAME_NON_STANDARD and ANNOTATE_NOENDBR uses _ASM_PTR. It switch between .long and .quad based on 32bit or 64bit. However objtool doesn't work for 32bit, so _ASM_PTR makes no sense.
Considering that _ASM_PTR comes from asm.h, which is x86 specific head file, while objtool.h is generic. Replace _ASM_PTR with quad and remove asm.h reference. Signed-off-by: Chen Zhongjin <chenzhong...@huawei.com> --- include/linux/objtool.h | 6 ++---- tools/include/linux/objtool.h | 6 ++---- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/include/linux/objtool.h b/include/linux/objtool.h index 62c54ffbeeaa..d2413cb78037 100644 --- a/include/linux/objtool.h +++ b/include/linux/objtool.h @@ -45,8 +45,6 @@ struct unwind_hint { #ifdef CONFIG_OBJTOOL -#include <asm/asm.h> - #ifndef __ASSEMBLY__ #define UNWIND_HINT(sp_reg, sp_offset, type, end) \ @@ -87,7 +85,7 @@ struct unwind_hint { #define ANNOTATE_NOENDBR \ "986: \n\t" \ ".pushsection .discard.noendbr\n\t" \ - _ASM_PTR " 986b\n\t" \ + ".quad 986b\n\t" \ ".popsection\n\t" #define ASM_REACHABLE \ @@ -144,7 +142,7 @@ struct unwind_hint { .macro STACK_FRAME_NON_STANDARD func:req .pushsection .discard.func_stack_frame_non_standard, "aw" - _ASM_PTR \func + .quad \func .popsection .endm diff --git a/tools/include/linux/objtool.h b/tools/include/linux/objtool.h index 62c54ffbeeaa..d2413cb78037 100644 --- a/tools/include/linux/objtool.h +++ b/tools/include/linux/objtool.h @@ -45,8 +45,6 @@ struct unwind_hint { #ifdef CONFIG_OBJTOOL -#include <asm/asm.h> - #ifndef __ASSEMBLY__ #define UNWIND_HINT(sp_reg, sp_offset, type, end) \ @@ -87,7 +85,7 @@ struct unwind_hint { #define ANNOTATE_NOENDBR \ "986: \n\t" \ ".pushsection .discard.noendbr\n\t" \ - _ASM_PTR " 986b\n\t" \ + ".quad 986b\n\t" \ ".popsection\n\t" #define ASM_REACHABLE \ @@ -144,7 +142,7 @@ struct unwind_hint { .macro STACK_FRAME_NON_STANDARD func:req .pushsection .discard.func_stack_frame_non_standard, "aw" - _ASM_PTR \func + .quad \func .popsection .endm -- 2.17.1