diff mbox series

um: add __weak for exported functions

Message ID 20230212203204.34cef454b288.I409a7567fcf846cd8f79e7788eb8c8869547463e@changeid
State Accepted
Headers show
Series um: add __weak for exported functions | expand

Commit Message

Johannes Berg Feb. 12, 2023, 7:32 p.m. UTC
From: Johannes Berg <johannes.berg@intel.com>

If the exported glibc functions don't exist, we get link
failures. Avoid that by adding __weak so they're allowed
to not exist.

Reported-by: Randy Dunlap <rdunlap@infradead.org>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
---
 arch/um/os-Linux/user_syms.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Randy Dunlap Feb. 12, 2023, 9:34 p.m. UTC | #1
On 2/12/23 11:32, Johannes Berg wrote:
> From: Johannes Berg <johannes.berg@intel.com>
> 
> If the exported glibc functions don't exist, we get link
> failures. Avoid that by adding __weak so they're allowed
> to not exist.
> 
> Reported-by: Randy Dunlap <rdunlap@infradead.org>
> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Acked-by: Randy Dunlap <rdunlap@infradead.org>
Tested-by: Randy Dunlap <rdunlap@infradead.org>

Thanks.

> ---
>  arch/um/os-Linux/user_syms.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/um/os-Linux/user_syms.c b/arch/um/os-Linux/user_syms.c
> index fd575ecbcaec..54722c7f884f 100644
> --- a/arch/um/os-Linux/user_syms.c
> +++ b/arch/um/os-Linux/user_syms.c
> @@ -39,7 +39,7 @@ EXPORT_SYMBOL(printf);
>   * good; so the versions of these symbols will always match
>   */
>  #define EXPORT_SYMBOL_PROTO(sym)       \
> -	int sym(void);                  \
> +	int sym(void) __weak; \
>  	EXPORT_SYMBOL(sym);
>  
>  extern void readdir64(void) __attribute__((weak));
diff mbox series

Patch

diff --git a/arch/um/os-Linux/user_syms.c b/arch/um/os-Linux/user_syms.c
index fd575ecbcaec..54722c7f884f 100644
--- a/arch/um/os-Linux/user_syms.c
+++ b/arch/um/os-Linux/user_syms.c
@@ -39,7 +39,7 @@  EXPORT_SYMBOL(printf);
  * good; so the versions of these symbols will always match
  */
 #define EXPORT_SYMBOL_PROTO(sym)       \
-	int sym(void);                  \
+	int sym(void) __weak; \
 	EXPORT_SYMBOL(sym);
 
 extern void readdir64(void) __attribute__((weak));