From 442db87f668b49d1b9c9f14d5b1534495e040a5b Mon Sep 17 00:00:00 2001 From: bdc Date: Thu, 15 Jul 1999 01:27:15 +0000 Subject: [PATCH] Linux fixes --- Makefile.in | 5 +++-- dynload.c | 2 +- scsh/linux/sigset.h | 12 ++++++------ scsh/network.c | 1 - scsh/network.scm | 1 + sysdep.h.in | 4 ++++ 6 files changed, 15 insertions(+), 10 deletions(-) diff --git a/Makefile.in b/Makefile.in index 0b9bcf6..0e425c3 100644 --- a/Makefile.in +++ b/Makefile.in @@ -328,7 +328,7 @@ install-misc: $(LIB)/rts $(LIB)/env $(LIB)/big $(LIB)/opt \ do $(INSTALL_DATA) $$f $(LIB)/doc/scsh-manual/; done $(INSTALL_DATA) $(srcdir)/rts/jar-defrecord.scm $(LIB)/rts/ # -p: Intermediate directories are created as necessary. -# -p not portable...it is POSIX 2, bit its not widely available -bri +# -p not portable...it is POSIX 2, but its not widely available -bri # just added install-dirs $(LIB)/rts: mkdir $(LIB)/rts @@ -716,6 +716,7 @@ install-scsh: scsh do $(INSTALL_DATA) $$f $(LIB)/scsh/; done clean-scsh: - $(RM) scsh/*.o scsh/regexp/*.o scsh/machine/*.o scsh/*.image + $(RM) scsh/*.o scsh/regexp/*.o scsh/rx/*.o scsh/machine/*.o + $(RM) scsh/*.image $(RM) $(LIBSCSH) scsh/scsh$(EXEEXT) scsh/scsh.vm -cd scsh/regexp; $(MAKE) clean diff --git a/dynload.c b/dynload.c index 40582d9..39107e9 100644 --- a/dynload.c +++ b/dynload.c @@ -36,7 +36,7 @@ #include #endif -#ifdef HAVE_LIBGEN_H +#if defined(HAVE_LIBGEN) && defined(HAVE_LIBGEN_H) #include /* if we have pathfind, get the file name with $LD_LIBRARY_PATH or $S48_EXTERN_PATH */ static char *shared_object_name(char *name) diff --git a/scsh/linux/sigset.h b/scsh/linux/sigset.h index f30fa8c..7f04c5b 100644 --- a/scsh/linux/sigset.h +++ b/scsh/linux/sigset.h @@ -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)) - -/* Not a procedure: */ -#define split_sigset(mask, hip, lop) \ - ((*(hip)=(mask>>24)&0xff), \ - (*(lop)=(mask&0xffffff))) +#define make_sigset(maskp, hi, lo) \ + ((maskp)->__val[0] = (unsigned long int) ((hi) << 24) | (lo)) + +#define split_sigset(mask, hip, lop)\ + ((*(hip) = ((mask).__val[0] >> 24) & 0xff),\ + (*(lop) = ((mask).__val[0] & 0xffffff))) diff --git a/scsh/network.c b/scsh/network.c index 2db09cb..529a788 100644 --- a/scsh/network.c +++ b/scsh/network.c @@ -57,7 +57,6 @@ scheme_value df_scheme_connect(long nargs, scheme_value *args) scheme_value df_listen(long nargs, scheme_value *args) { - extern int listen(int , int ); scheme_value ret1; int r1; diff --git a/scsh/network.scm b/scsh/network.scm index c4db688..2510293 100644 --- a/scsh/network.scm +++ b/scsh/network.scm @@ -238,6 +238,7 @@ (define-foreign %listen/errno (listen (integer sockfd) ; socket fdes (integer backlog)) ; backlog + no-declare ; for Linux (to-scheme integer errno_or_false)) (define-errno-syscall (%listen sockfd backlog) %listen/errno) diff --git a/sysdep.h.in b/sysdep.h.in index 39ddfc0..9c40f7e 100644 --- a/sysdep.h.in +++ b/sysdep.h.in @@ -63,6 +63,10 @@ with locating shared object files. */ #undef HAVE_LIBGEN_H +/* Define if you have library libgen. This has something to do + with locating shared object files. */ +#undef HAVE_LIBGEN + /* Define if you have the chroot() system call (quite inessential!). */ #undef HAVE_CHROOT