tech-userlevel archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

dlopen fails from static binary


On netbsd-6, using dlopen in a static binary will return NULL without 
setting errno.

It seems wrong. Is dlopen really supposed ot fail when called from 
static binary? In that case errno should be set, but to what value?
Or perhaps we could support dlopen from static binary?

Example program:

$ cat test.c                                                                   
#include <stdio.h>
#include <dlfcn.h>
#include <errno.h>
#include <err.h>

        void *dlh;

        errno = 0xdeadbeef;
        dlh = dlopen("/usr/lib/security/", RTLD_NOW);
        if (dlh == NULL)
                err(1, "dlopen failed");

        printf("success (%p)\n", dlh);
        return 0;
$ cc -o test test.c && ./test
success (0xbbbea800)
$ cc -static -o test test.c && ./test
test: dlopen failed: Unknown error: 3735928559

Emmanuel Dreyfus

Home | Main Index | Thread Index | Old Index