version 1.233, 2008/08/09 14:17:51
|
version 1.234, 2008/08/16 17:54:23
|
Line 2399 r = fp[u];
|
Line 2399 r = fp[u];
|
\g syslib |
\g syslib |
|
|
open-lib ( c_addr1 u1 -- u2 ) gforth open_lib |
open-lib ( c_addr1 u1 -- u2 ) gforth open_lib |
#if 1 |
#ifdef HAVE_LIBLTDL |
u2 = (UCell)lt_dlopen(tilde_cstr(c_addr1, u1, 1)); |
u2 = (UCell)lt_dlopen(tilde_cstr(c_addr1, u1, 1)); |
#elif defined(HAVE_LIBDL) || defined(HAVE_DLOPEN) |
#elif defined(HAVE_LIBDL) || defined(HAVE_DLOPEN) |
#ifndef RTLD_GLOBAL |
#ifndef RTLD_GLOBAL |
Line 2416 u2 = 0;
|
Line 2416 u2 = 0;
|
#endif |
#endif |
|
|
lib-sym ( c_addr1 u1 u2 -- u3 ) gforth lib_sym |
lib-sym ( c_addr1 u1 u2 -- u3 ) gforth lib_sym |
#if 1 |
#ifdef HAVE_LIBLTDL |
u3 = (UCell) lt_dlsym((lt_dlhandle)u2, cstr(c_addr1, u1, 1)); |
u3 = (UCell) lt_dlsym((lt_dlhandle)u2, cstr(c_addr1, u1, 1)); |
#elif defined(HAVE_LIBDL) || defined(HAVE_DLOPEN) |
#elif defined(HAVE_LIBDL) || defined(HAVE_DLOPEN) |
u3 = (UCell) dlsym((void*)u2,cstr(c_addr1, u1, 1)); |
u3 = (UCell) dlsym((void*)u2,cstr(c_addr1, u1, 1)); |
Line 2460 l! ( w c_addr -- ) gforth l_store
|
Line 2460 l! ( w c_addr -- ) gforth l_store
|
|
|
lib-error ( -- c_addr u ) gforth lib_error |
lib-error ( -- c_addr u ) gforth lib_error |
""Error message for last failed @code{open-lib} or @code{lib-sym}."" |
""Error message for last failed @code{open-lib} or @code{lib-sym}."" |
|
#ifdef HAVE_LIBLTDL |
c_addr = (Char *)lt_dlerror(); |
c_addr = (Char *)lt_dlerror(); |
u = (c_addr == NULL) ? 0 : strlen((char *)c_addr); |
u = (c_addr == NULL) ? 0 : strlen((char *)c_addr); |
|
#else |
|
c_addr = "libltdl is not configured"; |
|
u = strlen(c_addr); |
|
#endif |
|
|
\+ |
\+ |
\g peephole |
\g peephole |