From 8043aba13fe8180f973d821b784870729cb39738 Mon Sep 17 00:00:00 2001 From: sisungo Date: Sun, 22 Feb 2026 13:42:41 +0800 Subject: [PATCH] feat: rename `weak` in `features.h` to `__weak` The internal `features.h` defines macro `weak`, and it prevents us porting third-party code including the identifier. --- crt/crt1.c | 4 ++-- crt/rcrt1.c | 4 ++-- ldso/dynlink.c | 2 +- src/env/__init_tls.c | 2 +- src/env/__libc_start_main.c | 2 +- src/exit/exit.c | 2 +- src/include/features.h | 2 +- src/ldso/dl_iterate_phdr.c | 2 +- 8 files changed, 10 insertions(+), 10 deletions(-) diff --git a/crt/crt1.c b/crt/crt1.c index 10601215..8f290761 100644 --- a/crt/crt1.c +++ b/crt/crt1.c @@ -6,8 +6,8 @@ #include "crt_arch.h" int main(); -weak void _init(); -weak void _fini(); +__weak void _init(); +__weak void _fini(); int __libc_start_main(int (*)(), int, char **, void (*)(), void(*)(), void(*)()); diff --git a/crt/rcrt1.c b/crt/rcrt1.c index 901dff68..68dd3648 100644 --- a/crt/rcrt1.c +++ b/crt/rcrt1.c @@ -3,8 +3,8 @@ #include "../ldso/dlstart.c" int main(); -weak void _init(); -weak void _fini(); +__weak void _init(); +__weak void _fini(); int __libc_start_main(int (*)(), int, char **, void (*)(), void(*)(), void(*)()); diff --git a/ldso/dynlink.c b/ldso/dynlink.c index aa49c437..10607c1f 100644 --- a/ldso/dynlink.c +++ b/ldso/dynlink.c @@ -159,7 +159,7 @@ static struct fdpic_dummy_loadmap app_dummy_loadmap; struct debug *_dl_debug_addr = &debug; -extern weak hidden char __ehdr_start[]; +extern __weak hidden char __ehdr_start[]; extern hidden int __malloc_replaced; diff --git a/src/env/__init_tls.c b/src/env/__init_tls.c index a93141ed..66b26c3a 100644 --- a/src/env/__init_tls.c +++ b/src/env/__init_tls.c @@ -77,7 +77,7 @@ typedef Elf32_Phdr Phdr; typedef Elf64_Phdr Phdr; #endif -extern weak hidden const size_t _DYNAMIC[]; +extern __weak hidden const size_t _DYNAMIC[]; static void static_init_tls(size_t *aux) { diff --git a/src/env/__libc_start_main.c b/src/env/__libc_start_main.c index c5b277bd..09adcce3 100644 --- a/src/env/__libc_start_main.c +++ b/src/env/__libc_start_main.c @@ -10,7 +10,7 @@ static void dummy(void) {} weak_alias(dummy, _init); -extern weak hidden void (*const __init_array_start)(void), (*const __init_array_end)(void); +extern __weak hidden void (*const __init_array_start)(void), (*const __init_array_end)(void); static void dummy1(void *p) {} weak_alias(dummy1, __init_ssp); diff --git a/src/exit/exit.c b/src/exit/exit.c index 17b33cc6..9eb412f5 100644 --- a/src/exit/exit.c +++ b/src/exit/exit.c @@ -15,7 +15,7 @@ weak_alias(dummy, __funcs_on_exit); weak_alias(dummy, __stdio_exit); weak_alias(dummy, _fini); -extern weak hidden void (*const __fini_array_start)(void), (*const __fini_array_end)(void); +extern __weak hidden void (*const __fini_array_start)(void), (*const __fini_array_end)(void); static void libc_exit_fini(void) { diff --git a/src/include/features.h b/src/include/features.h index f17bd151..070a38f3 100644 --- a/src/include/features.h +++ b/src/include/features.h @@ -3,7 +3,7 @@ #include "../../include/features.h" -#define weak __attribute__((__weak__)) +#define __weak __attribute__((__weak__)) #define hidden __attribute__((__visibility__("hidden"))) #define weak_alias(old, new) \ extern __typeof(old) new __attribute__((__weak__, __alias__(#old))) diff --git a/src/ldso/dl_iterate_phdr.c b/src/ldso/dl_iterate_phdr.c index 9546dd36..92b4a964 100644 --- a/src/ldso/dl_iterate_phdr.c +++ b/src/ldso/dl_iterate_phdr.c @@ -5,7 +5,7 @@ #define AUX_CNT 38 -extern weak hidden const size_t _DYNAMIC[]; +extern __weak hidden const size_t _DYNAMIC[]; static int static_dl_iterate_phdr(int(*callback)(struct dl_phdr_info *info, size_t size, void *data), void *data) {