I'm running Red Hat linux 5.0, and am unable to build scsh-5.0.1
The .configure works fine, but the build stops during the make.
The first error is a disagreement about how listen() should be declared:
% gcc -c -I./cig -I./scsh/regexp -DHAVE_CONFIG_H -I. -I. -g -O -o
scsh/network.o scsh/network.c
% scsh/network.c: In function `df_listen':
% scsh/network.c:60: conflicting types for `listen'
% /usr/include/sys/socket.h:169: previous declaration of `listen'
% make: *** [scsh/network.o] Error 1
which is easy to fix by removing the declaration:
*** network.c Wed Jun 24 15:41:58 1998
--- network.c.new Wed Jun 24 15:41:48 1998
***************
*** 57,63 ****
scheme_value df_listen(long nargs, scheme_value *args)
{
! extern int listen(int , int );
scheme_value ret1;
int r1;
--- 57,63 ----
scheme_value df_listen(long nargs, scheme_value *args)
{
! /* extern int listen(int , int ); */
scheme_value ret1;
int r1;
The second is both more difficult to fix and more pervasive. It's a
problem with the signal mask type, and the first place it shows up
is during compilation of scsh/sighandlers1.c:
% gcc -c -I./cig -I./scsh/regexp -DHAVE_CONFIG_H -I. -I. -g -O -o
scsh/sighandlers1.o scsh/sighandlers1.c
% scsh/sighandlers1.c: In function `set_procmask':
% scsh/sighandlers1.c:44: incompatible types in assignment
% scsh/sighandlers1.c:47: invalid operands to binary >>
% scsh/sighandlers1.c: In function `get_procmask':
% scsh/sighandlers1.c:58: invalid operands to binary >>
% scsh/sighandlers1.c:58: invalid operands to binary &
% make: *** [scsh/sighandlers1.o] Error 1
Here are the macros that won't compile, from sigset.h
/* Convert between a lo24/hi integer-pair bitset and a sigset_t value.
** These macros are OS-dependent, and must be defined per-OS.
*/
#define make_sigset(maskp, hi, lo) (*maskp=((hi)<<24)|(lo))
/* Not a procedure: */
#define split_sigset(mask, hip, lop) \
((*(hip)=(mask>>24)&0xff), \
(*(lop)=(mask&0xffffff)))
sigset.h is from scsh/linux, and, through the symlink, in scsh/machine
% ls -l scsh/machine
lrwxrwxrwx 1 src users 7 Jun 24 15:36 scsh/machine -> ./linux
At this point I decided to pass the buck. I believe this problem will also
show up a few files later, in
scsh/jcontrol1.c and
scsh/jcontrol2.c, since they also use the sigset_t type, and it doesn't seem
to cast well.
Thanks,
Bill Pippin
|