scsh-users
[Top] [All Lists]

SCSH v0.51 vs Redhat Linux 5.0

To: scsh-bugs@martigny.ai.mit.edu
Subject: SCSH v0.51 vs Redhat Linux 5.0
From: "Kenneth R. Westerback" <root@tcn.net>
Date: Sun, 8 Feb 1998 20:34:59 -0500 (EST)
The ideal of gzip, tar, cd, ./configure, make is not realized when
installing on Redhat Linux 5.0 for Intel.

The first problem was in the file scsh/network.c where an external
declaration for listen() stated the second parameter was an int when in
fact (in this environment) it is an unsigned int.  Hence the patch:

--- network.c.orig      Sat Feb  7 19:10:17 1998
+++ network.c   Sat Feb  7 19:10:51 1998
@@ -57,7 +57,7 @@
 
 scheme_value df_listen(long nargs, scheme_value *args)
 {
-    extern int listen(int , int );
+    extern int listen(int , unsigned int );
     scheme_value ret1;
     int r1;
 
The second problem was in the file scsh/machine/sigset.h where the
assumption is made that sigset_t is an integer, which it is not.  Hence
the patch:

--- sigset.h.orig       Sat Feb  7 19:17:29 1998
+++ sigset.h    Sat Feb  7 20:04:12 1998
@@ -2,9 +2,9 @@
 ** These macros are OS-dependent, and must be defined per-OS.
 */
 
-#define make_sigset(maskp, hi, lo) (*maskp=((hi)<<24)|(lo))
+#define make_sigset(maskp, hi, lo) ((*maskp).__val[ 0 ]=((hi)<<24)|(lo))
 
 /* Not a procedure: */
 #define split_sigset(mask, hip, lop) \
-       ((*(hip)=(mask>>24)&0xff), \
-        (*(lop)=(mask&0xffffff)))
+       ((*(hip)=((mask.__val[ 0 ])>>24)&0xff), \
+        (*(lop)=((mask.__val[ 0 ])&0xffffff)))

The third and final problem was with the file dynload.c.  Here the problem
was not in the c code but apparently somewhere in the configuration
process.  Even though the file libgen.h is present on the system it does
not in this environment imply the presence of pathfind. Being completely
at sea with regard to autoconf, etc. I just #undef'ed the define that
causes the inclusion of code depending on pathfind. The patch:

--- dynload.c.orig      Sat Feb  7 20:05:28 1998
+++ dynload.c   Sat Feb  7 20:23:11 1998
@@ -36,6 +36,7 @@
 #include <dlfcn.h>
 #endif
 
+#undef HAVE_LIBGEN_H
 #ifdef HAVE_LIBGEN_H
 #include <libgen.h>
 /* if we have pathfind, get the file name with $LD_LIBRARY_PATH or 
$S48_EXTERN_PATH */


With these patches scsh compiles and seems to run on Redhat Linux 5.0.
But, before I do extensive playing with it I would like some feedback on
the appropriateness of these patches. Especially the second one having 
to do with storing/retrieving signals. Does anyone else have any
experience using scsh on recent Linux systems?

---- Ken

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