about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2013-07-24 11:53:23 -0400
committerRich Felker <dalias@aerifal.cx>2013-07-24 11:53:23 -0400
commite152ee9778846c1f233641b2d3562ccdb081c6a9 (patch)
treeb46ccee0bb17126555cb082e3b7f09379723deed
parent17276be31692880e56c93132e5d85fa9dd6c003f (diff)
downloadmusl-e152ee9778846c1f233641b2d3562ccdb081c6a9.tar.gz
musl-e152ee9778846c1f233641b2d3562ccdb081c6a9.tar.xz
musl-e152ee9778846c1f233641b2d3562ccdb081c6a9.zip
support STB_GNU_UNIQUE symbol bindings in dynamic linker
these are needed for some C++ library binaries including most builds
of libstdc++. I'm not entirely clear on the rationale. this patch does
not implement any special semantics for them, but as far as I can
tell, no special treatment is needed in correctly-linked programs;
this binding seems to exist only for catching incorrectly-linked
programs.
-rw-r--r--src/ldso/dynlink.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/ldso/dynlink.c b/src/ldso/dynlink.c
index 98a18bba..f4c32ffe 100644
--- a/src/ldso/dynlink.c
+++ b/src/ldso/dynlink.c
@@ -190,7 +190,7 @@ static Sym *gnu_lookup(const char *s, uint32_t h1, struct dso *dso)
 }
 
 #define OK_TYPES (1<<STT_NOTYPE | 1<<STT_OBJECT | 1<<STT_FUNC | 1<<STT_COMMON | 1<<STT_TLS)
-#define OK_BINDS (1<<STB_GLOBAL | 1<<STB_WEAK)
+#define OK_BINDS (1<<STB_GLOBAL | 1<<STB_WEAK | 1<<STB_GNU_UNIQUE)
 
 static struct symdef find_sym(struct dso *dso, const char *s, int need_def)
 {