diff options
Diffstat (limited to 'main/musl/0015-treat-STB_WEAK-and-STB_GNU_UNIQUE-like-STB_GLOBAL-in.patch')
-rw-r--r-- | main/musl/0015-treat-STB_WEAK-and-STB_GNU_UNIQUE-like-STB_GLOBAL-in.patch | 40 |
1 files changed, 0 insertions, 40 deletions
diff --git a/main/musl/0015-treat-STB_WEAK-and-STB_GNU_UNIQUE-like-STB_GLOBAL-in.patch b/main/musl/0015-treat-STB_WEAK-and-STB_GNU_UNIQUE-like-STB_GLOBAL-in.patch deleted file mode 100644 index af8d843923..0000000000 --- a/main/musl/0015-treat-STB_WEAK-and-STB_GNU_UNIQUE-like-STB_GLOBAL-in.patch +++ /dev/null @@ -1,40 +0,0 @@ -From c9783e4d32e786c4b76bf77c6030111d9e79dbb7 Mon Sep 17 00:00:00 2001 -From: Szabolcs Nagy <nsz@port70.net> -Date: Sat, 3 Dec 2016 20:52:43 +0000 -Subject: [PATCH] treat STB_WEAK and STB_GNU_UNIQUE like STB_GLOBAL in find_sym - -A weak symbol definition is not special during dynamic linking, so -don't let a strong definition in a later module override it. -(glibc dynamic linker allows overriding weak definitions if -LD_DYNAMIC_WEAK is set, musl does not.) - -STB_GNU_UNIQUE means that the symbol is global, even if it is in a -module that's loaded with RTLD_LOCAL, and all references resolve to -the same definition. This semantics is only relevant for c++ plugin -systems and even there it's often not what the user wants (so it can -be turned off in g++ by -fno-gnu-unique when the c++ shared lib is -compiled). In musl just treat it like STB_GLOBAL. ---- - ldso/dynlink.c | 4 +--- - 1 file changed, 1 insertion(+), 3 deletions(-) - -diff --git a/ldso/dynlink.c b/ldso/dynlink.c -index a03f75e3..d00827a3 100644 ---- a/ldso/dynlink.c -+++ b/ldso/dynlink.c -@@ -286,11 +286,9 @@ static struct symdef find_sym(struct dso *dso, const char *s, int need_def) - continue; - if (!(1<<(sym->st_info&0xf) & OK_TYPES)) continue; - if (!(1<<(sym->st_info>>4) & OK_BINDS)) continue; -- -- if (def.sym && sym->st_info>>4 == STB_WEAK) continue; - def.sym = sym; - def.dso = dso; -- if (sym->st_info>>4 == STB_GLOBAL) break; -+ break; - } - return def; - } --- -2.11.1 - |