aboutsummaryrefslogtreecommitdiff
path: root/tools/include/nolibc/compiler.h
diff options
context:
space:
mode:
authorThomas Weißschuh <linux@weissschuh.net>2024-08-07 23:51:41 +0200
committerThomas Weißschuh <linux@weissschuh.net>2024-08-12 22:21:00 +0200
commitef32e9b6a325d1d013b30d898b4dff94082902cd (patch)
tree723e5d6540621566c030ecc89312460c5909d456 /tools/include/nolibc/compiler.h
parent02a62b551cee585f7c2c93f54d1230d5714ff7d4 (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.h3
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