From: Thomas Weißschuh Date: Wed, 8 Apr 2026 21:03:56 +0000 (+0200) Subject: tools/nolibc: create __nolibc_no_sanitize_ubsan X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=08ab9580726edcc12019d2097b56b88de1142ca7;p=thirdparty%2Fkernel%2Flinux.git tools/nolibc: create __nolibc_no_sanitize_ubsan The logic to disable UBSAN will become a bit more complicated. Move it out into compiler.h, so crt.h stays readable. Signed-off-by: Thomas Weißschuh Link: https://patch.msgid.link/20260408-nolibc-gcc-15-v1-1-330d0c40f894@weissschuh.net --- diff --git a/tools/include/nolibc/compiler.h b/tools/include/nolibc/compiler.h index 1c410a62c5289..b1239344d894a 100644 --- a/tools/include/nolibc/compiler.h +++ b/tools/include/nolibc/compiler.h @@ -80,4 +80,10 @@ /* Make the optimizer believe the variable can be manipulated arbitrarily. */ #define _NOLIBC_OPTIMIZER_HIDE_VAR(var) __asm__ ("" : "+r" (var)) +#if __nolibc_has_feature(undefined_behavior_sanitizer) +# define __nolibc_no_sanitize_undefined __attribute__((no_sanitize("function"))) +#else +# define __nolibc_no_sanitize_undefined +#endif + #endif /* _NOLIBC_COMPILER_H */ diff --git a/tools/include/nolibc/crt.h b/tools/include/nolibc/crt.h index 5bb492555f13d..d8ce91fd2e3b1 100644 --- a/tools/include/nolibc/crt.h +++ b/tools/include/nolibc/crt.h @@ -47,10 +47,7 @@ char *__nolibc_program_invocation_short_name(char *long_name) #endif /* NOLIBC_IGNORE_ERRNO */ void _start_c(long *sp); -__attribute__((weak,used)) -#if __nolibc_has_feature(undefined_behavior_sanitizer) - __attribute__((no_sanitize("function"))) -#endif +__attribute__((weak,used)) __nolibc_no_sanitize_undefined void _start_c(long *sp) { long argc;