add RTLD_DEFAULT support
authorRich Felker <dalias@aerifal.cx>
Mon, 27 Jun 2011 01:50:01 +0000 (21:50 -0400)
committerRich Felker <dalias@aerifal.cx>
Mon, 27 Jun 2011 01:50:01 +0000 (21:50 -0400)
src/ldso/dynlink.c

index a23390e..1cab8d1 100644 (file)
@@ -541,7 +541,8 @@ static void *do_dlsym(struct dso *p, const char *s)
        size_t i;
        uint32_t h;
        Sym *sym;
-       if (p == head) return find_sym(head, s, 0);
+       if (p == head || p == RTLD_DEFAULT)
+               return find_sym(head, s, 0);
        h = hash(s);
        sym = lookup(s, h, p->syms, p->hashtab, p->strings);
        if (sym && sym->st_value && (1<<(sym->st_info&0xf) & OK_TYPES))