From: Thomas Weißschuh Date: Mon, 12 Aug 2024 20:50:17 +0000 (+0200) Subject: tools/nolibc: crt: mark _start_c() as used X-Git-Tag: v6.12-rc1~172^2^2~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0021d6670d1a997549a39bf629da9940bf4068ed;p=thirdparty%2Flinux.git tools/nolibc: crt: mark _start_c() as used During LTO the reference from the asm startup code to the _start_c() function is not visible and _start_c() is removed. This will then lead to errors during linking. As _start_c() is indeed always used, mark it as such. Acked-by: Willy Tarreau Link: https://lore.kernel.org/r/20240812-nolibc-lto-v2-1-736af7bbefa8@weissschuh.net Signed-off-by: Thomas Weißschuh --- diff --git a/tools/include/nolibc/crt.h b/tools/include/nolibc/crt.h index ac291574f6c0f..bbcd5fd09806b 100644 --- a/tools/include/nolibc/crt.h +++ b/tools/include/nolibc/crt.h @@ -22,7 +22,7 @@ extern void (*const __init_array_end[])(int, char **, char**) __attribute__((wea extern void (*const __fini_array_start[])(void) __attribute__((weak)); extern void (*const __fini_array_end[])(void) __attribute__((weak)); -__attribute__((weak)) +__attribute__((weak,used)) void _start_c(long *sp) { long argc;