diff options
author | Thomas Weißschuh <linux@weissschuh.net> | 2024-08-07 23:51:41 +0200 |
---|---|---|
committer | Thomas Weißschuh <linux@weissschuh.net> | 2024-08-12 22:21:00 +0200 |
commit | ef32e9b6a325d1d013b30d898b4dff94082902cd (patch) | |
tree | 723e5d6540621566c030ecc89312460c5909d456 /tools/include/nolibc/compiler.h | |
parent | 02a62b551cee585f7c2c93f54d1230d5714ff7d4 (diff) |
tools/nolibc: move entrypoint specifics to compiler.h
The specific attributes for the _start entrypoint are duplicated for
each architecture.
Deduplicate it into a dedicated #define into compiler.h.
For clang compatibility, the epilogue will also need to be adapted, so
move that one, too.
Acked-by: Willy Tarreau <w@1wt.eu>
Link: https://lore.kernel.org/r/20240807-nolibc-llvm-v2-5-c20f2f5fc7c2@weissschuh.net
Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
Diffstat (limited to 'tools/include/nolibc/compiler.h')
-rw-r--r-- | tools/include/nolibc/compiler.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/tools/include/nolibc/compiler.h b/tools/include/nolibc/compiler.h index 1730d0454a55..3a1d5b8d4fb9 100644 --- a/tools/include/nolibc/compiler.h +++ b/tools/include/nolibc/compiler.h @@ -12,6 +12,9 @@ # define __nolibc_has_attribute(attr) 0 #endif +#define __nolibc_entrypoint __attribute__((optimize("Os", "omit-frame-pointer"))) +#define __nolibc_entrypoint_epilogue() __builtin_unreachable() + #if defined(__SSP__) || defined(__SSP_STRONG__) || defined(__SSP_ALL__) || defined(__SSP_EXPLICIT__) #define _NOLIBC_STACKPROTECTOR |