summaryrefslogtreecommitdiffstats
path: root/dynl.c
diff options
context:
space:
mode:
Diffstat (limited to 'dynl.c')
-rw-r--r--dynl.c25
1 files changed, 15 insertions, 10 deletions
diff --git a/dynl.c b/dynl.c
index 3469199..d965840 100644
--- a/dynl.c
+++ b/dynl.c
@@ -15,26 +15,26 @@
* the Free Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111, USA.
*
* As a special exception, the Free Software Foundation gives permission
- * for additional uses of the text contained in its release of GUILE.
+ * for additional uses of the text contained in its release of SCM.
*
- * The exception is that, if you link the GUILE library with other files
+ * The exception is that, if you link the SCM library with other files
* to produce an executable, this does not by itself cause the
* resulting executable to be covered by the GNU General Public License.
* Your use of that executable is in no way restricted on account of
- * linking the GUILE library code into it.
+ * linking the SCM library code into it.
*
* This exception does not however invalidate any other reasons why
* the executable file might be covered by the GNU General Public License.
*
* This exception applies only to the code released by the
- * Free Software Foundation under the name GUILE. If you copy
+ * Free Software Foundation under the name SCM. If you copy
* code from other Free Software Foundation releases into a copy of
- * GUILE, as the General Public License permits, the exception does
+ * SCM, as the General Public License permits, the exception does
* not apply to the code that you add in this way. To avoid misleading
* anyone as to the status of such modified files, you must delete
* this exception notice from them.
*
- * If you write modifications of your own for GUILE, it is your choice
+ * If you write modifications of your own for SCM, it is your choice
* whether to permit this exception to apply to your modifications.
* If you do not wish that, delete this exception notice.
*/
@@ -352,10 +352,15 @@ void init_dynl()
# define SHL(obj) ((void*)CDR(obj))
-# ifdef SVR4 /* Solaris 2. */
-# define DLOPEN_MODE RTLD_LAZY
+# ifdef RTLD_GLOBAL
+# define DLOPEN_MODE (RTLD_NOW | RTLD_GLOBAL)
# else
-# define DLOPEN_MODE 1 /* Thats what it says in the man page. */
+# ifdef RTLD_LAZY /* This is here out of conservatism, not
+ because it's known to be right. */
+# define DLOPEN_MODE RTLD_LAZY
+# else
+# define DLOPEN_MODE 1 /* Thats what it says in the man page. */
+# endif
# endif
sizet frshl(ptr)
@@ -393,7 +398,7 @@ SCM l_dyn_link(fname)
DEFER_INTS;
handle = dlopen(CHARS(fname), DLOPEN_MODE);
if (NULL==handle) {
- if (verbose > 2) {
+ if (verbose > 1) {
char *dlr = dlerror();
ALLOW_INTS;
if (dlr) {