scsh-users
[Top] [All Lists]

dynload

To: shivers@ai.mit.edu
Subject: dynload
From: Alan Bawden <Alan@lcs.mit.edu>
Date: Fri, 4 Apr 1997 16:31:07 -0500
Cc: scsh@martigny.ai.mit.edu, scheme48-bugs@martigny.ai.mit.edu
Sender: Alan@lcs.mit.edu
   Date: 04 Apr 1997 15:44:48 -0500
   From: Olin Shivers <shivers@ai.mit.edu>
   I didn't change cig, but I did scan all the scsh C source. Outside of
   userinfo1.c, I found no errorful code, although I did armor-plate a few
   other occurrences here and there, as well.

Great!

I forget if I sent this patch to you already.  The way dlopen() reports an
error seems to have changed at some point, and FreeBSD now does it the way
the rest of the world does.  (It now returns 0 instead of -1.)  I wouldn't
be surprised to find that NetBSD now works this way as well.  I don't know
if it is worth doing the autoconfig work needed to make the old way
continue to work in the older Unix versions.

Hmmm...  This is actually a Scheme48 bug isn't it.  What's your policy on
that?  Do you want them to fix it first, or are you willing to include
Scheme48 fixes in scsh?

I've CC'd this message to scheme48-bugs because I don't rememebr if I've
reported this to them either...

--- scsh-0.4.4/dynload.c.orig   Sat Nov  4 16:10:51 1995
+++ scsh-0.4.4/dynload.c        Thu Jan  9 02:30:20 1997
@@ -29,7 +29,7 @@
 
 #include <stdlib.h>
 #include <unistd.h>
-#if defined(__NetBSD__) || defined(__FreeBSD__)
+#if defined(__NetBSD__)
 #include <nlist.h>
 #include <link.h>
 #else
@@ -96,7 +96,7 @@
     return -1;
   };
   newhandle=dlopen(pathname, S48_DLOPEN_MODE);
-#if defined(__NetBSD__) || defined(__FreeBSD__)
+#if defined(__NetBSD__)
   if (newhandle == -1) {
     fprintf(stderr, " dynamic_load of %s can't dlopen %s",
            sharedobjname, pathname);

<Prev in Thread] Current Thread [Next in Thread>