From: me2faster@... Date: 2005-05-13T05:20:30+09:00 Subject: Re: Unresolved symbols dlclose, dlopen, dlerror, dlsym Hi, Yes it does, and I can build those load files appropriately, but I need to first get access to the source that has the definitions of the dl* functions. Here's the 'mkmf.log': "/usr/bin/c89 -E -I/home/ruby-1.8.2 -I../../. -I. -g conftest.c -o conftest.i" ../lib/mkmf.rb:187: warning: Insecure world writable dir /home, mode 040777 #error int not needed ^ "/home/ruby-1.8.2/ext/dl/conftest.c", line 3: error(1007): #error directive: int not needed 1 error detected in the compilation of "conftest.c". c89: exited, returning 2. checked program was: /* begin */ #include "config.h" #if SIZEOF_INT == SIZEOF_LONG #error int not needed #endif /* end */ "/usr/bin/c89 -E -I/home/ruby-1.8.2 -I../../. -I. -g conftest.c -o conftest.i" ../lib/mkmf.rb:187: warning: Insecure world writable dir /home, mode 040777 checked program was: /* begin */ #include "config.h" #if SIZEOF_FLOAT == SIZEOF_DOUBLE #error float not needed #endif /* end */ "/usr/bin/c89 -E -I/home/ruby-1.8.2 -I../../. -I. -g conftest.c -o conftest.i" ../lib/mkmf.rb:187: warning: Insecure world writable dir /home, mode 040777 #error void* not needed ^ "/home/ruby-1.8.2/ext/dl/conftest.c", line 3: error(1007): #error directive: void* not needed 1 error detected in the compilation of "conftest.c". c89: exited, returning 2. checked program was: /* begin */ #include "config.h" #if SIZEOF_VOIDP == SIZEOF_INT || SIZEOF_VOIDP == SIZEOF_LONG #error void* not needed #endif /* end */ have_header: checking for windows.h... -------------------- no "/usr/bin/c89 -E -I/home/ruby-1.8.2 -I../../. -I. -g conftest.c -o conftest.i" ../lib/mkmf.rb:187: warning: Insecure world writable dir /home, mode 040777 #include ^ "/home/ruby-1.8.2/ext/dl/conftest.c", line 1: error(1003): could not open source file "windows.h" 1 catastrophic error detected in the compilation of "conftest.c". Compilation terminated. c89: exited, returning 4. checked program was: /* begin */ #include /* end */ -------------------- have_header: checking for dlfcn.h... -------------------- yes "/usr/bin/c89 -E -I/home/ruby-1.8.2 -I../../. -I. -g conftest.c -o conftest.i" ../lib/mkmf.rb:187: warning: Insecure world writable dir /home, mode 040777 checked program was: /* begin */ #include /* end */ -------------------- have_library: checking for main() in -ldl... -------------------- no "/usr/bin/c89 -o conftest -I/home/ruby-1.8.2 -I../../. -I. -g conftest.c -L'/home/ruby-1.8.2' -lruby-static -ldl " **** FATAL ERROR **** [1083] - linker halting: Cannot find dl, given in -l option. No output file created. 1 error reported. No warnings reported. No informational messages reported. 1 informational message suppressed. Elapsed Time: 00:00:00 c89: exited, returning 1. checked program was: /* begin */ /*top*/ int main() { return 0; } int t() { main(); return 0; } /* end */ "/usr/bin/c89 -o conftest -I/home/ruby-1.8.2 -I../../. -I. -g conftest.c -L'/home/ruby-1.8.2' -lruby-static -ldl " **** FATAL ERROR **** [1083] - linker halting: Cannot find dl, given in -l option. No output file created. 1 error reported. No warnings reported. No informational messages reported. 1 informational message suppressed. Elapsed Time: 00:00:00 c89: exited, returning 1. checked program was: /* begin */ /*top*/ int main() { return 0; } int t() { void ((*volatile p)()); p = (void ((*)()))main; return 0; } /* end */ -------------------- have_func: checking for dlopen()... -------------------- no "/usr/bin/c89 -o conftest -I/home/ruby-1.8.2 -I../../. -I. -g conftest.c -L'/home/ruby-1.8.2' -lruby-static " int t() { dlopen(); return 0; } ^ "/home/ruby-1.8.2/ext/dl/conftest.c", line 4: warning(304): function " dlopen" declared implicitly **** ERROR **** [1210]: conftest.o: In function `t': conftest.o(.text._142747656+0x12): unresolved reference to dlopen. No output file created. 1 error reported. No warnings reported. No informational messages reported. 12 informational messages suppressed. Elapsed Time: 00:00:00 c89: exited, returning 1. checked program was: /* begin */ /*top*/ int main() { return 0; } int t() { dlopen(); return 0; } /* end */ "/usr/bin/c89 -o conftest -I/home/ruby-1.8.2 -I../../. -I. -g conftest.c -L'/home/ruby-1.8.2' -lruby-static " int t() { void ((*volatile p)()); p = (void ((*)()))dlopen; return 0; } ^ "/home/ruby-1.8.2/ext/dl/conftest.c", line 5: error(114): identifier "dlopen" is undefined 1 error detected in the compilation of "conftest.c". c89: exited, returning 2. checked program was: /* begin */ /*top*/ int main() { return 0; } int t() { void ((*volatile p)()); p = (void ((*)()))dlopen; return 0; } /* end */ -------------------- have_func: checking for dlclose()... -------------------- no "/usr/bin/c89 -o conftest -I/home/ruby-1.8.2 -I../../. -I. -g conftest.c -L'/home/ruby-1.8.2' -lruby-static " int t() { dlclose(); return 0; } ^ "/home/ruby-1.8.2/ext/dl/conftest.c", line 4: warning(304): function " dlclose" declared implicitly **** ERROR **** [1210]: conftest.o: In function `t': conftest.o(.text._142747656+0x12): unresolved reference to dlclose. No output file created. 1 error reported. No warnings reported. No informational messages reported. 12 informational messages suppressed. Elapsed Time: 00:00:01 c89: exited, returning 1. checked program was: /* begin */ /*top*/ int main() { return 0; } int t() { dlclose(); return 0; } /* end */ "/usr/bin/c89 -o conftest -I/home/ruby-1.8.2 -I../../. -I. -g conftest.c -L'/home/ruby-1.8.2' -lruby-static " int t() { void ((*volatile p)()); p = (void ((*)()))dlclose; return 0; } ^ "/home/ruby-1.8.2/ext/dl/conftest.c", line 5: error(114): identifier "dlclose" is undefined 1 error detected in the compilation of "conftest.c". c89: exited, returning 2. checked program was: /* begin */ /*top*/ int main() { return 0; } int t() { void ((*volatile p)()); p = (void ((*)()))dlclose; return 0; } /* end */ -------------------- have_func: checking for dlsym()... -------------------- no "/usr/bin/c89 -o conftest -I/home/ruby-1.8.2 -I../../. -I. -g conftest.c -L'/home/ruby-1.8.2' -lruby-static " int t() { dlsym(); return 0; } ^ "/home/ruby-1.8.2/ext/dl/conftest.c", line 4: warning(304): function " dlsym" declared implicitly **** ERROR **** [1210]: conftest.o: In function `t': conftest.o(.text._142747656+0x12): unresolved reference to dlsym. No output file created. 1 error reported. No warnings reported. No informational messages reported. 12 informational messages suppressed. Elapsed Time: 00:00:01 c89: exited, returning 1. checked program was: /* begin */ /*top*/ int main() { return 0; } int t() { dlsym(); return 0; } /* end */ "/usr/bin/c89 -o conftest -I/home/ruby-1.8.2 -I../../. -I. -g conftest.c -L'/home/ruby-1.8.2' -lruby-static " int t() { void ((*volatile p)()); p = (void ((*)()))dlsym; return 0; } ^ "/home/ruby-1.8.2/ext/dl/conftest.c", line 5: error(114): identifier "dlsym" is undefined 1 error detected in the compilation of "conftest.c". c89: exited, returning 2. checked program was: /* begin */ /*top*/ int main() { return 0; } int t() { void ((*volatile p)()); p = (void ((*)()))dlsym; return 0; } /* end */ -------------------- have_func: checking for dlerror()... -------------------- no "/usr/bin/c89 -o conftest -I/home/ruby-1.8.2 -I../../. -I. -g conftest.c -L'/home/ruby-1.8.2' -lruby-static " int t() { dlerror(); return 0; } ^ "/home/ruby-1.8.2/ext/dl/conftest.c", line 4: warning(304): function " dlerror" declared implicitly **** ERROR **** [1210]: conftest.o: In function `t': conftest.o(.text._142747656+0x12): unresolved reference to dlerror. No output file created. 1 error reported. No warnings reported. No informational messages reported. 12 informational messages suppressed. Elapsed Time: 00:00:01 c89: exited, returning 1. checked program was: /* begin */ /*top*/ int main() { return 0; } int t() { dlerror(); return 0; } /* end */ "/usr/bin/c89 -o conftest -I/home/ruby-1.8.2 -I../../. -I. -g conftest.c -L'/home/ruby-1.8.2' -lruby-static " int t() { void ((*volatile p)()); p = (void ((*)()))dlerror; return 0; } ^ "/home/ruby-1.8.2/ext/dl/conftest.c", line 5: error(114): identifier "dlerror" is undefined 1 error detected in the compilation of "conftest.c". c89: exited, returning 2. checked program was: /* begin */ /*top*/ int main() { return 0; } int t() { void ((*volatile p)()); p = (void ((*)()))dlerror; return 0; } /* end */ -------------------- me2faster at excite dot com