History

x86,objtool: Move the ASM_REACHABLE annotation to objtool.h

Because we need a variant for .S files too.

Peter Zijlstra committed 4 years ago

Commit dca5da21 parent be007595 files · +34 −7Browse files

Showing the changes to tools/include/linux (1 of 5 files). Show all

Unified · Split

tools/include/linux/objtool.h+16−0
@@ -83,6 +83,12 @@ struct unwind_hint { · 82 unmodified lines
83 _ASM_PTR " 986b\n\t" \83 _ASM_PTR " 986b\n\t" \
84 ".popsection\n\t"84 ".popsection\n\t"
85 85
86#define ASM_REACHABLE \
87 "998:\n\t" \
88 ".pushsection .discard.reachable\n\t" \
89 ".long 998b - .\n\t" \
90 ".popsection\n\t"
91
86#else /* __ASSEMBLY__ */92#else /* __ASSEMBLY__ */
87 93
88/*94/*
@@ -142,6 +148,13 @@ struct unwind_hint { · 53 unmodified lines
142 .popsection148 .popsection
143.endm149.endm
144 150
151.macro REACHABLE
152.Lhere_\@:
153 .pushsection .discard.reachable
154 .long .Lhere_\@ - .
155 .popsection
156.endm
157
145#endif /* __ASSEMBLY__ */158#endif /* __ASSEMBLY__ */
146 159
147#else /* !CONFIG_STACK_VALIDATION */160#else /* !CONFIG_STACK_VALIDATION */
@@ -153,6 +166,7 @@ struct unwind_hint { · 5 unmodified lines
153#define STACK_FRAME_NON_STANDARD(func)166#define STACK_FRAME_NON_STANDARD(func)
154#define STACK_FRAME_NON_STANDARD_FP(func)167#define STACK_FRAME_NON_STANDARD_FP(func)
155#define ANNOTATE_NOENDBR168#define ANNOTATE_NOENDBR
169#define ASM_REACHABLE
156#else170#else
157#define ANNOTATE_INTRA_FUNCTION_CALL171#define ANNOTATE_INTRA_FUNCTION_CALL
158.macro UNWIND_HINT sp_reg:req sp_offset=0 type:req end=0172.macro UNWIND_HINT sp_reg:req sp_offset=0 type:req end=0
@@ -161,6 +175,8 @@ struct unwind_hint { · 2 unmodified lines
161.endm175.endm
162.macro ANNOTATE_NOENDBR176.macro ANNOTATE_NOENDBR
163.endm177.endm
178.macro REACHABLE
179.endm
164#endif180#endif
165 181
166#endif /* CONFIG_STACK_VALIDATION */182#endif /* CONFIG_STACK_VALIDATION */