1. RE: Can't open dll's
Robert Craig wrote:
> 1. I add the RTLD_GLOBAL flag when I call C's dlopen()
> on Linux. I can do this for the next release. If you can't
> Rob Craig
> Rapid Deployment Software
> http://www.RapidEuphoria.com
From: Robert Craig <rds at RapidEuphoria.com>
Subject: Re: Can't open dll's
by inmta006.topica.com with SMTP; 23 Apr 2001 00:49:16 -0000
(InterMail vM.4.01.03.16 201-229-121-116-20010115) with SMTP
id <20010423004837.SPJO6402.tomts13-srv.bellnexxia.net@w98>
for <EUforum at topica.com>; Sun, 22 Apr 2001 20:48:37 -0400
charset="iso-8859-1"
Irv Mullins writes:
> After much investigation, I found out that all the *.so files
> which Euphoria couldn't load - about 140 out of 300 -
> have "undefined symbols" in them: I found this out
> by running ldd -d on them:
I tried a few experiments, and it looks like
you can probably open most of these,
provided:
1. I add the RTLD_GLOBAL flag when I call C's dlopen()
on Linux. I can do this for the next release. If you can't wait,
you can read the Linux man page for dlopen() and try to wrap
the dlopen() function yourself. You should call it as:
lib = dlopen(dll_name, RTLD_LAZY | RTLD_GLOBAL);
RTLD_GLOBAL makes symbols from one .so available to
subsequently-loaded .so's.
2. You would have to manually pre-open any .so's that the main .so
requires that aren't opened automatically.
Regards,
Rob Craig
Rapid Deployment Software
http://www.RapidEuphoria.com
Rob:
If you look at the message
Date: Sat, 2 Dec 2000 19:31:26 -0500
When I sent you my dsearch program for Linux that opened .so
files and searched for routines; I asked at that time
about the RTLD_GLOBAL and other flags and you said my
problems were not caused by the interpeter ?
Bernie