./configure$B$G5a$a$i$l$k$b$N(B

--disable-compiler
  $B%3%s%Q%$%i$r%5%]!<%H$7$J$$%7%9%F%`$r:n$k!%(B

 makecode??.c $B$J$I$O$$$i$J$$!%(B
 lispsys.l $B$O(B lispsys.main.o $B$G$O$J$/(B lispsys.main.l $B$r(B exfile $B$9$k!%(B
 lib/lispcomp $B0J2<$O(B make $B$7$J$$!%(B
 libutilisp.a $B$J$I$O$$$i$J$$!%(B

#define NO_COMPILER 1

--disable-dynamic-load
  disable-compiler$B$G(Benable$B$7$F$$$?$iJ86g$r8@$&(B

  libdl $B$J$I$O(B
  
#define NO_DYNAMIC_LOAD 1

--disable-mmap-stack-check
  mmap$B$,$J$$$N$K(B enable$B$7$F$$$?$iJ86g$r8@$&(B
  signal$B$,$J$$$N$K(B enable $B$7$F$$$?$iJ86g$r8@$&!%(B

#define NO_MMAP_STACK_CHECK 1

--disable-bignum

#define NO_BIGNUM 1

--disalbe-flonum

#define NO_FLONUM 1

.....

double$B$G$O$J$/(Bfloat$B$H$$$&$N$O$I$NDxEY<{MW$,$"$k$+(B?

$BJa$^$($k$@$1$G$J$/CM$,M_$7$$;~$O!$(Bsigaction$B$r;H$&(B?

#include <signal.h>
#include <sys/ucontext.h>

void segv_sigaction(int sig, siginfo_t *sip, void *dummy)
{
  ucontext_t *uap=(ucontext_t *)dummy;
  printf("segv_sigaction=%d,pc=0x%x?\n",sig,uap->uc_mcontext.gregs[EIP]);
  exit(1);
}
struct sigaction segvact;
int main(int ac, char **ag)
{
  segvact.sa_sigaction=segv_sigaction;
  sigaction(SIGSEGV,&segvact,NULL);
  *(int *)0=0;
  return 0;
}

Solaris for Intel $B$G$O(B PC$B$OJa$^$($i$l$?!%(B

Linux for Intel $B$G$O!$(Bsip, dummy $B6&$K(B 0 $B$J$N$G$J$9$9$Y$J$7(B?

Solaris for SPARC $B$G$O(B
 EIP -> REG_PC
$B$G(BOK

FreeBSD $B$G$O!$(B
 sigaction$B$G$b(B sa_handler $B$N$_(B
 $BCM$O(B?

mule$B$G$O!$(B

#ifdef POSIX_SIGNALS
  sigset_t procmask;
  sigset_t blocked;
  struct sigaction sigint_action;
  sigaddset (&blocked, SIGINT );  sigaction (SIGINT , 0, &sigint_action );
  sigprocmask (SIG_BLOCK, &blocked, &procmask);

sysdep.c$B$NCf$K(B


SPARC
USEBUSERR
USESEGV
$B$J$I$r@0M}$9$k(B

USEBUSERR
-> ALIGN_TYPE_CHECK

$B$=$l0J30$KITE,@Z$J(B USEBUSERR$B$NNc(B

#ifdef USEBUSERR
#define stack_overflow() value(UNBOUND)=0
#else
#define stack_overflow() sigill()
#endif

gcc$B$,%$%s%9%H!<%k$5$l$F$$$F$b(B cc $B$rA*$S$?$$;~$O(B?
env CC=cc ./configure

uild$B$r;XDj$;$:$K(Bhost$B$r;XDj$7$?>l9g!"(B host
$B$N%7%9%F%`%?%$%WL>$HF10l$K$J$j$^$9!#(B $B%/%m%9%3%s%Q%$%k$r9T$&>l9g!"%/%m%9%3%s(B
$B%Q%$%kMQ%D!<%k!"FC$K(BC$B%3%s%Q%$%i$N(B $BL>A0$r!"(Bconfigure$B$N%3%^%s%I%i%$%s$K;XDj$9(B
$B$kI,MW$,$"$j$^$9!#(B $B$?$H$($P0J2<$N$h$&$K(B: 

CC=m68k-coff-gcc configure --target=m68k-coff

AC_CHECK_SIZEOF(int)
$B$r;H$&I,MW$"$j!%(B

`--cache-file=/dev/null'$B$H$9$k$3$H$G!"(Bconfigure$B$N%G%P%C%0$N$?$a$K(B $B%-%c%C%7%e(B
$B$rL58z$K$G$-$^$9!#(B`config.status'$B$O(B`--rech

Solaris$B$G$O(B 
 ieee_handler $B$NBe$j$K(B sigfpe$B$r;H$&!%(B

       sigemptyset, sigfillset, sigaddset, sigdelset, sigismember
       - POSIX signal set operations.

SYNOPSIS
       #include <signal.h>

       int sigemptyset(sigset_t *set);

       int sigfillset(sigset_t *set);

       int sigaddset(sigset_t *set, int signum);

       int sigdelset(sigset_t *set, int signum);

       int sigismember(const sigset_t *set, int signum);

float $B$N(B10$B?JI=<($N(B portable$B$J<BAuK!$O(B?

ecvt$B$O(B Solaris, Linux
FreeBSD$B$K$O$J$+$C$?!%(B

frexp $B$r;H$&(B?

Solaris 2.X for SPARC$B$O!$$[$\40`z(B

----------------------------------------------------------------------
#include <signal.h>
#include <ucontext.h>
#include <sys/reg.h>

/* regno */
int getreg(ucontext_t *uap,int regno){
  int *sp=uap->uc_mcontext.gregs[SP];
  printf("regno=%d,sp=0x%x\n",regno,sp);
  if(16 <= regno && regno<=31){
    return sp[regno-16];
  } 
  else {
    return uap->uc_mcontext.gregs[regno-1+G1];
  }
}

void sigbus(int sig, siginfo_t *siginfo, ucontext_t *uap){
  char *regnames[]={"psr","pc","npc","y","g1","g2","g3","g4","g5","g6","g7","o0"
,"o1","o2","o3","o4","o5","o6","o7"};
  int pcreg,reg,o0,i;
  int *sp;
  pcreg=uap->uc_mcontext.gregs[PC];
  printf("segv_sigaction=%d,pc=0x%x?\n",sig,pcreg);
  reg=((*(int *)pcreg)>>14)&31;
  printf("pc=0x%x, *pc=0x%x, reg=0x%x,regval=0x%x\n",pcreg,*(int *)pcreg, reg,ge
treg(uap,reg));
  exit(1);
}

char buf[8];
char *cptr=&buf[3];
int main(int ac, char **ag){
  signal(SIGBUS,sigbus);
    *(int *)(cptr-2)=0;
}
----------------------------------------------------------------------

sysfnfix.s$B$O(BSun4$B$R$g$&$8$e$s(BC$B$N$P$0$N$,$l(B