diff options
author | Rich Felker <dalias@aerifal.cx> | 2013-07-24 11:53:23 -0400 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2013-07-24 11:53:23 -0400 |
commit | e152ee9778846c1f233641b2d3562ccdb081c6a9 (patch) | |
tree | b46ccee0bb17126555cb082e3b7f09379723deed | |
parent | 17276be31692880e56c93132e5d85fa9dd6c003f (diff) | |
download | musl-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.c | 2 |
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) { |