aboutsummaryrefslogtreecommitdiffstats
path: root/main/musl/0015-treat-STB_WEAK-and-STB_GNU_UNIQUE-like-STB_GLOBAL-in.patch
diff options
context:
space:
mode:
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.patch40
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
-