Hi,

I just upgraded to the 3.9 snapshot in FTP (this is on 386) and I find
that dlopen() does not work.

For example:

a.c:
extern int x;
int foo()
{
    x = 1;
}

b.c:
#include <dlfcn.h>
int x = 0;
int main()
{
    void *dl = dlopen("./liba.so", RTLD_LAZY|RTLD_GLOBAL);
    if(!dl)
        dlerror();
    return !dl;
}

And then:
$ gcc -shared -o liba.so a.c
$ gcc b.c
$ ./a.out
./a.out:./liba.so: undefined symbol 'x'

This also happens if I change RTLD_LAZY to RTLD_NOW or anything else.

Is this a known issue?  Did I do something wrong in the upgrade process?

Thanks,
Andrew

Reply via email to