Date: Fri, 4 Aug 1995 14:21:52 -0700 From: Jeffrey Hsu <hsu> To: questions@freebsd.org, tony@thing.sunquest.com Subject: Re: SML for FreeBSD (2.0.5) Message-ID: <199508042121.OAA06728@freefall.cdrom.com>
next in thread | raw e-mail | index | archive | help
That's an old FreeBSD 1.1 package, which still works if you can find
it somewhere. Else grab the standard SML 0.93 distribution from att
or princeton and apply these patches.
*** ./makeml Tue Feb 22 16:01:20 1994
--- ./makeml.0 Fri Sep 24 17:40:07 1993
***************
*** 215,228 ****
case $1 in
bsd) OPSYS=BSD ;;
bsd386) OPSYS=BSD; DEFS="$DEFS -DBSD386";;
- FreeBSD)
- CPP=/usr/bin/cpp
- OPSYS=BSD
- DEFS="$DEFS -DFreeBSD"
- ;;
mach) OPSYS=MACH; DEFS="$DEFS -DBSD";;
*)
! echo "$CMD must specify opsys arg for i386/i486 (bsd, bsd386, FreeBSD or mach)"
exit 1
;;
esac
--- 215,223 ----
case $1 in
bsd) OPSYS=BSD ;;
bsd386) OPSYS=BSD; DEFS="$DEFS -DBSD386";;
mach) OPSYS=MACH; DEFS="$DEFS -DBSD";;
*)
! echo "$CMD must specify opsys arg for i386/i486 (bsd, bsd386 or mach)"
exit 1
;;
esac
*** ./runtime/export.c Tue Feb 22 16:42:34 1994
--- ./runtime/export.c.0 Fri Sep 24 17:42:13 1993
***************
*** 178,188 ****
# if defined(NS32)
E.a_magic = NS32GMAGIC;
# else
! # if defined(FreeBSD)
! E.a_magic = QMAGIC;
! # else
! E.a_magic = ZMAGIC;
! # endif
# endif
#endif
#endif
--- 178,184 ----
# if defined(NS32)
E.a_magic = NS32GMAGIC;
# else
! E.a_magic = ZMAGIC;
# endif
#endif
#endif
***************
*** 257,263 ****
lseek(filid,N_DATADDR(E),0);
bulletproofWrite(filid,CEIL(ETEXT,getpagesize()),E.a_data);
#else
! #if defined(SPARC) && defined(MACH) || defined(BSD386) || defined(FreeBSD)
bulletproofWrite(filid,textstart+sizeof(E),E.a_text-sizeof(E));
#else
# if defined(DYNIX)
--- 253,259 ----
lseek(filid,N_DATADDR(E),0);
bulletproofWrite(filid,CEIL(ETEXT,getpagesize()),E.a_data);
#else
! #if defined(SPARC) && defined(MACH) || defined(BSD386)
bulletproofWrite(filid,textstart+sizeof(E),E.a_text-sizeof(E));
#else
# if defined(DYNIX)
*** ./runtime/cfuns.c Tue Sep 28 23:21:11 1993
--- ./runtime/cfuns.c.0 Sat Sep 25 12:41:52 1993
***************
*** 7,50 ****
#include "ml_os.h"
#ifdef THINK_C
! #include <unix.h>
! #include <fcntl.h>
! #include <errno.h>
! #include "MacOS.dep.h"
! #else
! #include <sys/socket.h>
! #include <sys/un.h>
! #include <netinet/in.h>
! #include <sys/stat.h>
! #include <sys/errno.h>
! #ifdef V9
! #include <sys/filio.h>
! #include <sys/ttyio.h>
! #else
! #include <sys/ioctl.h>
! #include <sys/file.h>
! #ifndef HPUX
! #include <sys/time.h>
! #endif
#endif
#ifndef HPUX
! #include <sys/param.h>
#endif
#if (defined(SPARC) && !defined(MACH))
! #ifdef SOLARIS
! #include <unistd.h>
! #include <sys/filio.h>
! #include <fcntl.h>
! #include <signal.h>
! extern sigset_t emptyMask;
! #else
! #include <vfork.h> /* tells sparc optimizer about vfork */
! #endif
#endif
#include <sys/wait.h>
! #endif THINK_C
#ifdef HPUX
! #include <sys/utsname.h>
#endif
#include "ml_state.h"
--- 7,50 ----
#include "ml_os.h"
#ifdef THINK_C
! #include <unix.h>
! #include <fcntl.h>
! #include <errno.h>
! #include "MacOS.dep.h"
! #else
! #include <sys/socket.h>
! #include <sys/un.h>
! #include <netinet/in.h>
! #include <sys/stat.h>
! #include <sys/errno.h>
! #ifdef V9
! #include <sys/filio.h>
! #include <sys/ttyio.h>
! #else
! #include <sys/ioctl.h>
! #include <sys/file.h>
! #ifndef HPUX
! #include <sys/time.h>
! #endif
#endif
#ifndef HPUX
! #include <sys/param.h>
#endif
#if (defined(SPARC) && !defined(MACH))
! #ifdef SOLARIS
! #include <unistd.h>
! #include <sys/filio.h>
! #include <fcntl.h>
! #include <signal.h>
! extern sigset_t emptyMask;
! #else
! #include <vfork.h> /* tells sparc optimizer about vfork */
! #endif
#endif
#include <sys/wait.h>
! #endif THINK_C
#ifdef HPUX
! #include <sys/utsname.h>
#endif
#include "ml_state.h"
***************
*** 257,263 ****
return (sz - pos);
}
! #endif /* THINK_C */
#define MAX_SYSCALL_ARGS 6
--- 257,263 ----
return (sz - pos);
}
! #endif
#define MAX_SYSCALL_ARGS 6
***************
*** 274,280 ****
raise_syserror (msp, "ml_syscall: Not implemented");
return;
}
! #else /* !AIX */
void ml_syscall (msp, arg)
MLState_ptr msp;
ML_val_t arg;
--- 274,280 ----
raise_syserror (msp, "ml_syscall: Not implemented");
return;
}
! #else
void ml_syscall (msp, arg)
MLState_ptr msp;
ML_val_t arg;
***************
*** 454,464 ****
len = strlen(path)+sizeof(sock.sun_len)+sizeof(sock.sun_family)+1;
sock.sun_len = len;
#else
- #ifndef FreeBSD
len = strlen(path)+sizeof(sock.sun_family);
- #else
- len = SUN_LEN(&sock);
- #endif
#endif
DO_SYSCALL (connect(fd, (struct sockaddr *)&sock, len), sts);
if (sts != -1) {
--- 454,460 ----
***************
*** 509,515 ****
struct sockaddr_in saddr;
int fd, s, i, sts;
! #if defined(SUNOS) || (defined(BSD) && defined(MIPS)) || defined(NeXT) || defined(AUX) || defined(HPPA) || defined (FreeBSD)
DO_SYSCALL (socket(PF_INET, SOCK_STREAM, 0), fd);
if (fd != -1) {
saddr.sin_family = AF_INET;
--- 505,511 ----
struct sockaddr_in saddr;
int fd, s, i, sts;
! #if defined(SUNOS) || (defined(BSD) && defined(MIPS)) || defined(NeXT) || defined(AUX) || defined(HPPA)
DO_SYSCALL (socket(PF_INET, SOCK_STREAM, 0), fd);
if (fd != -1) {
saddr.sin_family = AF_INET;
***************
*** 615,621 ****
/*
raise_ThinkC_error(msp);
*/
! #else /* !THINK_C */
fd_set rfds;
if (msp->inSigHandler || msp->maskSignals
--- 611,617 ----
/*
raise_ThinkC_error(msp);
*/
! #else
fd_set rfds;
if (msp->inSigHandler || msp->maskSignals
***************
*** 628,638 ****
#ifdef RISCos
/* problem with select and pipes */
sts = 0;
! #else /* !RISCos */
FD_ZERO(&rfds);
FD_SET(fd, &rfds);
sts = select(fd+1, &rfds, 0, 0, 0);
! #endif /* RISCos */
msp->ioWaitFlag = 0;
}
else {
--- 624,634 ----
#ifdef RISCos
/* problem with select and pipes */
sts = 0;
! #else
FD_ZERO(&rfds);
FD_SET(fd, &rfds);
sts = select(fd+1, &rfds, 0, 0, 0);
! #endif
msp->ioWaitFlag = 0;
}
else {
***************
*** 654,660 ****
}
RETURN(msp, ML_unit);
! #endif /* THINK_C */
} /* end of ml_wait_for_in. */
--- 650,656 ----
}
RETURN(msp, ML_unit);
! #endif
} /* end of ml_wait_for_in. */
***************
*** 1064,1070 ****
int sts;
if (OBJ_isBOXED(f))
! #if defined(SOLARIS) || defined(FreeBSD)
sts = truncate((char *)PTR_MLtoC(f), len);
#else
sts = truncate(PTR_MLtoC(f), len);
--- 1060,1066 ----
int sts;
if (OBJ_isBOXED(f))
! #ifdef SOLARIS
sts = truncate((char *)PTR_MLtoC(f), len);
#else
sts = truncate(PTR_MLtoC(f), len);
***************
*** 1601,1607 ****
raise_syserror (msp, 0);
else
RETURN(msp, INT_CtoML(sz));
! #else /* !THINK_C */
#ifdef SOLARIS
int fd = INT_MLtoC(arg);
off_t cnt;
--- 1597,1603 ----
raise_syserror (msp, 0);
else
RETURN(msp, INT_CtoML(sz));
! #else
#ifdef SOLARIS
int fd = INT_MLtoC(arg);
off_t cnt;
***************
*** 1630,1636 ****
}
else
raise_syserror (msp, 0);
! #else /* !SOLARIS */
int fd = INT_MLtoC(arg);
struct stat buf;
int pos;
--- 1626,1632 ----
}
else
raise_syserror (msp, 0);
! #else
int fd = INT_MLtoC(arg);
struct stat buf;
int pos;
***************
*** 1656,1663 ****
raise_syserror (msp, 0);
else
RETURN(msp, INT_CtoML(buf.st_size - pos));
! #endif /* SOLARIS */
! #endif /* THINK_C */
} /* end of ml_fionread */
--- 1652,1659 ----
raise_syserror (msp, 0);
else
RETURN(msp, INT_CtoML(buf.st_size - pos));
! #endif
! #endif
} /* end of ml_fionread */
*** ./runtime/signal.c Sat Feb 5 13:07:39 1994
--- ./runtime/signal.c.0 Tue Sep 28 16:51:53 1993
***************
*** 444,450 ****
{
MLState_ptr MLState = find_self();
! #if defined(BSD386)
/* Due to an OS bug, SIGBUS is generated by an INTO instruction */
if (sig == SIGBUS) {
sig = SIGFPE;
--- 444,450 ----
{
MLState_ptr MLState = find_self();
! #ifdef BSD386
/* Due to an OS bug, SIGBUS is generated by an INTO instruction */
if (sig == SIGBUS) {
sig = SIGFPE;
***************
*** 595,601 ****
set_fsr(); /* enable floating-point exceptions */
#endif
! #if defined(BSD386)
/* Due to OS bug, SIGBUS is generated by an INTO instruction. */
SETSIG(SIGBUS, trap_handler, SIGMASKALL);
#endif
--- 595,601 ----
set_fsr(); /* enable floating-point exceptions */
#endif
! #ifdef BSD386
/* Due to OS bug, SIGBUS is generated by an INTO instruction. */
SETSIG(SIGBUS, trap_handler, SIGMASKALL);
#endif
*** ./runtime/Makefile Sat Feb 5 13:08:23 1994
--- ./runtime/Makefile.0 Tue Sep 28 16:57:25 1993
***************
*** 69,75 ****
perv.o: ../../mo.c/perv.c
$(CC) $(CFLAGS) -c ../../mo.c/perv.c
!
clean:
rm -f *.o lint.out prim.s linkdata allmo.s run crc
--- 69,75 ----
perv.o: ../../mo.c/perv.c
$(CC) $(CFLAGS) -c ../../mo.c/perv.c
!
clean:
rm -f *.o lint.out prim.s linkdata allmo.s run crc
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199508042121.OAA06728>
