Bug in dlfunc with RTLD_NEXT RTLD_SELF etc

Peter O'Gorman peter at pogma.com
Sat May 24 22:28:53 PDT 2003


Hi,
Sorry, I do not have a freebsd machine, so I can not use the send-pr 
program to send this.

dlfunc is implememted in libc/gen and simply calls dlsym, this works 
fine when doing normal lookups, but is broken for RTLD_{NEXT,SELF}.

http://www.pogma.com/fink/dltest.tar should demonstrate the problem ( I 
am not sure that this list takes attachments).

One solution would be to move dlfunc to libexec/rtld-elf (or whatever 
that is called), rename dlsym to something else (e.g. dlsym_real) make 
it static,change the __builtin_return(0) to __builtin_return(1), make a 
new dlsym function which calls dlsym_real (that way dlsym_real is 
always called with one level of indirection from both dlsym and dlfunc 
).

But, you guys can fix it however you please :)

I was just peeking at your source code looking for idea's for 
opendarwin.org's dlcompat project, Shantonu Sen - ssen at opendarwin 
dot org - kindly ran the test code for me on his freebsd 5.0 machine.

Thanks,
Peter



More information about the freebsd-bugs mailing list