Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Compiler Attributes: naked can be shared

The naked attribute is supported by at least gcc >= 4.6 (for ARM,
which is the only current user), gcc >= 8 (for x86), clang >= 3.1
and icc >= 13. See https://godbolt.org/z/350Dyc

Therefore, move it out of compiler-gcc.h so that the definition
is shared by all compilers.

This also fixes Clang support for ARM32 --- 815f0ddb346c
("include/linux/compiler*.h: make compiler-*.h mutually exclusive").

Fixes: 815f0ddb346c ("include/linux/compiler*.h: make compiler-*.h mutually exclusive")
Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Cc: Eli Friedman <efriedma@codeaurora.org>
Cc: Christopher Li <sparse@chrisli.org>
Cc: Kees Cook <keescook@chromium.org>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: Joe Perches <joe@perches.com>
Cc: Dominique Martinet <asmadeus@codewreck.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: linux-sparse@vger.kernel.org
Suggested-by: Arnd Bergmann <arnd@arndb.de>
Tested-by: Stefan Agner <stefan@agner.ch>
Reviewed-by: Stefan Agner <stefan@agner.ch>
Reviewed-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
Signed-off-by: Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Miguel Ojeda and committed by
Greg Kroah-Hartman
ae596de1 d124b44f

+8 -8
-8
include/linux/compiler-gcc.h
··· 79 79 #define __noretpoline __attribute__((indirect_branch("keep"))) 80 80 #endif 81 81 82 - /* 83 - * it doesn't make sense on ARM (currently the only user of __naked) 84 - * to trace naked functions because then mcount is called without 85 - * stack and frame pointer being set up and there is no chance to 86 - * restore the lr register to the value before mcount was called. 87 - */ 88 - #define __naked __attribute__((naked)) notrace 89 - 90 82 #define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__) 91 83 92 84 #define __optimize(level) __attribute__((__optimize__(level)))
+8
include/linux/compiler_types.h
··· 226 226 #define notrace __attribute__((no_instrument_function)) 227 227 #endif 228 228 229 + /* 230 + * it doesn't make sense on ARM (currently the only user of __naked) 231 + * to trace naked functions because then mcount is called without 232 + * stack and frame pointer being set up and there is no chance to 233 + * restore the lr register to the value before mcount was called. 234 + */ 235 + #define __naked __attribute__((naked)) notrace 236 + 229 237 #define __compiler_offsetof(a, b) __builtin_offsetof(a, b) 230 238 231 239 /*