diff -ur mule-1.1/Makefile mule-1.1-NetBSD/Makefile --- mule-1.1/Makefile Sun Jul 26 18:46:23 1998 +++ mule-1.1-NetBSD/Makefile Sun Jul 26 18:47:45 1998 @@ -28,7 +28,7 @@ # but there was no explanation of why, so it seems better to keep this stable. LIBDIR= /usr/local/mule BINDIR= /usr/local/bin -MANDIR= /usr/man/man1 +MANDIR= /usr/local/man/man1 # Flags passed down to subdirectory makefiles. MFLAGS= diff -ur mule-1.1/etc/emacsclient.c mule-1.1-NetBSD/etc/emacsclient.c --- mule-1.1/etc/emacsclient.c Fri May 28 22:55:09 1993 +++ mule-1.1-NetBSD/etc/emacsclient.c Sun Jul 26 18:47:45 1998 @@ -60,7 +60,7 @@ #include extern int sys_nerr; -extern char *sys_errlist[]; +extern const char *const sys_errlist[]; extern int errno; main (argc, argv) diff -ur mule-1.1/etc/env.c mule-1.1-NetBSD/etc/env.c --- mule-1.1/etc/env.c Wed Apr 15 21:36:21 1992 +++ mule-1.1-NetBSD/etc/env.c Sun Jul 26 18:47:45 1998 @@ -198,7 +198,7 @@ else { extern int errno, sys_nerr; - extern char *sys_errlist[]; + extern const char *const sys_errlist[]; environ = nenv; (void) execvp (*argv, argv); diff -ur mule-1.1/etc/movemail.c mule-1.1-NetBSD/etc/movemail.c --- mule-1.1/etc/movemail.c Tue May 25 22:42:31 1993 +++ mule-1.1-NetBSD/etc/movemail.c Sun Jul 26 18:47:45 1998 @@ -320,7 +320,7 @@ char *name; { extern int errno, sys_nerr; - extern char *sys_errlist[]; + extern const char *const sys_errlist[]; char *s; if (errno < sys_nerr) @@ -334,7 +334,7 @@ char *name; { extern int errno, sys_nerr; - extern char *sys_errlist[]; + extern const char *const sys_errlist[]; char *s; if (errno < sys_nerr) @@ -704,7 +704,7 @@ get_errmsg () { extern int errno, sys_nerr; - extern char *sys_errlist[]; + extern const char *const sys_errlist[]; char *s; if (errno < sys_nerr) diff -ur mule-1.1/src/doc.c mule-1.1-NetBSD/src/doc.c --- mule-1.1/src/doc.c Wed Jun 2 09:33:25 1993 +++ mule-1.1-NetBSD/src/doc.c Sun Jul 26 19:07:59 1998 @@ -27,6 +27,10 @@ #include "lisp.h" #include "buffer.h" +#include +#include +#include +#include #include #include /* Must be after sys/types.h for USG and BSD4_1*/ /* 92.10.21 by M.Higashida */ diff -ur mule-1.1/src/fileio.c mule-1.1-NetBSD/src/fileio.c --- mule-1.1/src/fileio.c Sun Jul 26 18:46:24 1998 +++ mule-1.1-NetBSD/src/fileio.c Sun Jul 26 19:07:44 1998 @@ -78,6 +78,8 @@ #include "config.h" #include +#include +#include #ifdef hpux /* needed by */ #include @@ -103,7 +105,7 @@ #ifndef vax11c extern int errno; -extern char *sys_errlist[]; +extern const char *const sys_errlist[]; extern int sys_nerr; #endif @@ -1917,7 +1919,7 @@ /* VAXCRTL adds implied carriage control to certain record types. */ if (st.st_fab_rfm == FAB$C_FIX && (st.st_fab_rat & (FAB$M_FTN | FAB$M_CR) != 0)) - st.st_size += st.st_size / st.st_fab_mrs; + st.st_size += st.st_size / (off_t)st.st_fab_mrs; #endif /* Supposedly happens on VMS. */ @@ -1927,8 +1929,8 @@ register Lisp_Object temp; /* Make sure point-max won't overflow after this insertion. */ - XSET (temp, Lisp_Int, st.st_size + Z); - if (st.st_size + Z != XINT (temp)) + XSET (temp, Lisp_Int, (long)st.st_size + Z); + if ((long)st.st_size + Z != XINT (temp)) error ("maximum buffer size exceeded"); } @@ -1936,8 +1938,8 @@ prepare_to_modify_buffer (); move_gap (point); - if (GAP_SIZE < st.st_size) - make_gap (st.st_size - GAP_SIZE); + if (GAP_SIZE < (long)st.st_size) + make_gap ((long)st.st_size - GAP_SIZE); /* 91.10.16 by S.Hirano, 92.11.1 by M.Higashida */ #ifdef FILE_TRANSLATION_MODE @@ -1950,7 +1952,7 @@ #ifdef WIN32 /* 93.2.25 by M.Higashida */ #undef try /* is reserved word for structured exception handler */ #endif - int try = st.st_size - done; + int try = (long)st.st_size - done; int this; register Lisp_Object temp; /* 92.6.14 by K.Handa */ diff -ur mule-1.1/src/fns.c mule-1.1-NetBSD/src/fns.c --- mule-1.1/src/fns.c Sun Jul 26 18:46:24 1998 +++ mule-1.1-NetBSD/src/fns.c Sun Jul 26 19:15:30 1998 @@ -25,6 +25,9 @@ Patch for NeXT is updated. */ #include "config.h" +#include +#include +#include #ifdef LOAD_AVE_TYPE #ifdef BSD @@ -96,9 +99,6 @@ (arg) Lisp_Object arg; { - extern long random (); - extern srandom (); - extern long time (); if (EQ (arg, Qt)) srandom (getpid () + time (0)); @@ -1315,7 +1315,7 @@ /* * Seek to the correct address */ - lseek (channel, (long) nl[0].n_value, 0); + lseek (channel, nl[0].n_value, 0); if (read (channel, load_ave, sizeof load_ave) != sizeof(load_ave)) { diff -ur mule-1.1/src/lisp.h mule-1.1-NetBSD/src/lisp.h --- mule-1.1/src/lisp.h Sun Jul 26 18:46:24 1998 +++ mule-1.1-NetBSD/src/lisp.h Sun Jul 26 18:56:06 1998 @@ -36,6 +36,7 @@ It's usually `int', but some platforms needs `long'. In such case, LONG_LISP_OBJECT should be defined within m-*.h. */ +#include #ifndef Lisp_Object_Int #ifdef LONG_LISP_OBJECT #define Lisp_Object_Int long @@ -179,7 +180,7 @@ #ifndef NO_UNION_TYPE -#ifndef BIG_ENDIAN +#if BYTE_ORDER == BIG_ENDIAN /* Definition of Lisp_Object for little-endian machines. */ diff -ur mule-1.1/src/process.c mule-1.1-NetBSD/src/process.c --- mule-1.1/src/process.c Sun Jul 26 18:46:25 1998 +++ mule-1.1-NetBSD/src/process.c Sun Jul 26 19:09:42 1998 @@ -75,6 +75,7 @@ /* This must precede sys/signal.h on certain machines. */ #include +#include #include #include "config.h" @@ -272,10 +273,10 @@ extern errno; extern sys_nerr; -extern char *sys_errlist[]; +extern const char *const sys_errlist[]; #if !defined(BSD4_1) && !defined(WIN32) /* 93.2.17 by M.Higashida */ -extern char *sys_siglist[]; +extern const char *const sys_siglist[]; #else char *sys_siglist[] = { @@ -1828,7 +1829,7 @@ while (1) { - int value = connect (s, &address, sizeof address); + int value = connect (s, (const struct sockaddr *)&address, sizeof address); /* Continue if successeful. */ if (value != -1) break; @@ -2074,7 +2075,7 @@ if (time_limit) { #ifdef HAVE_TIMEVAL - gettimeofday (&end_time, &garbage); + gettimeofday (&end_time, (struct timezone *)&garbage); end_time.tv_sec += time_limit; #else /* not HAVE_TIMEVAL */ time (&end_time); @@ -2149,7 +2150,7 @@ else if (time_limit) { #ifdef HAVE_TIMEVAL - gettimeofday (&timeout, &garbage); + gettimeofday (&timeout, (struct timezone *)&garbage); /* In effect, timeout = end_time - timeout. Break if result would be negative. */ @@ -2895,7 +2896,11 @@ on other kinds of USG systems, not just on the IRIS. This should be tried in Emacs 19. */ #ifdef SIGNALS_VIA_CHARACTERS - struct termio t; +#if defined (TIOCGETA) && !defined (TCGETA) +#define TCGETA TIOCGETA +#endif + + struct termios t; switch (signo) { case SIGINT: @@ -2921,7 +2926,11 @@ #else ioctl (XFASTINT (p->infd), TCGETA, &t); #endif +#if defined (VSWTCH) send_process (proc, &t.c_cc[VSWTCH], 1); +#else + send_process (proc, &t.c_cc[VSUSP], 1); +#endif return Qnil; #endif } @@ -3189,7 +3198,7 @@ do { errno = 0; - pid = wait3 (&w, WNOHANG | WUNTRACED, 0); + pid = wait3 ((int *)&w, WNOHANG | WUNTRACED, 0); } while (pid <= 0 && errno == EINTR); @@ -3265,7 +3274,7 @@ if (WIFEXITED (w)) synch_process_retcode = WRETCODE (w); else if (WIFSIGNALED (w)) - synch_process_death = sys_siglist[WTERMSIG (w)]; + synch_process_death = (char *)sys_siglist[WTERMSIG (w)]; } /* On some systems, we must return right away. diff -ur mule-1.1/src/s-netbsd.h mule-1.1-NetBSD/src/s-netbsd.h --- mule-1.1/src/s-netbsd.h Fri Mar 4 20:42:40 1994 +++ mule-1.1-NetBSD/src/s-netbsd.h Sun Jul 26 18:59:52 1998 @@ -1,14 +1,67 @@ -/* Definitions file for GNU emacs running on NETBSD. */ +/* Definitions file for GNU emacs running on NetBSD. */ -/* 94.2.23 written for Mule Ver.1.1 by Masuda +#include "s-bsd4-4.h" -#include "s-386bsd.h" +/* + * Define symbols to identify the version of Unix this is. + * BSD and BSD4_3 are defined in s-bsd4-3.h. There are some + * differences between 386BSD and BSD 4.3 so we need an extra + * symbol to identify it (the J stands for Jolitz). + */ + +#undef SYSTEM_TYPE +#define SYSTEM_TYPE "netbsd" + +/* Under NetBSD the file containing the kernel's symbol + table is named /netbsd. */ #undef KERNEL_FILE #define KERNEL_FILE "/netbsd" -#define A_TEXT_OFFSET(x) (sizeof(struct exec)) +/* The symbol in the kernel where the load average is found + is named _averunnable. */ + +#undef LDAV_SYMBOL +#define LDAV_SYMBOL "_averunnable" + +#define SIGNALS_VIA_CHARACTERS + +#define A_TEXT_OFFSET(x) (sizeof (struct exec)) #define A_TEXT_SEEK(hdr) (N_TXTOFF(hdr) + A_TEXT_OFFSET(hdr)) -#define LIBS_SYSTEM -lutil -lgcc -#define LIB_STANDARD -lc -lgcc +/* NetBSD uses GNU C. */ + +#define C_COMPILER gcc + +/* NetBSD stores the termcap database in /usr/share/misc rather than + /etc. We use the system termcap library to avoid putting a #ifdef + in termcap.c or forcing the user to use the TERMCAP environment + variable. */ + +#define LIBS_TERMCAP -ltermcap + +/* NetBSD is nominally a POSIX.1 OS and has setsid. */ + +#ifndef HAVE_SETSID +#define HAVE_SETSID +#endif /* HAVE_SETSID */ + +#ifndef HAVE_CLOCK +#define HAVE_CLOCK +#endif + +#define LIBS_DEBUG +#define LIBS_SYSTEM -lutil -lcrypt + +#define HAVE_GETLOADAVG + +#define NEED_ERRNO +#define NEED_TERMIOS +#define signal(sig, func) (signal (sig, (void (*) (int)) (func))) + +/* For mem-limits.h. */ +#define BSD4_2 + +#undef LD_SWITCH_SYSTEM +#define LD_SWITCH_SYSTEM -static -L/usr/lib -L/usr/X11R6/lib +#define C_SWITCH_SYSTEM -I/usr/X11R6/include diff -ur mule-1.1/src/sysdep.c mule-1.1-NetBSD/src/sysdep.c --- mule-1.1/src/sysdep.c Mon Jul 26 14:55:35 1993 +++ mule-1.1-NetBSD/src/sysdep.c Sun Jul 26 18:47:46 1998 @@ -103,7 +103,7 @@ #endif extern int errno; #ifndef VMS -extern char *sys_errlist[]; +extern const char *const sys_errlist[]; #endif #ifdef VMS diff -ur mule-1.1/src/unexec.c mule-1.1-NetBSD/src/unexec.c --- mule-1.1/src/unexec.c Mon Jun 21 09:17:54 1993 +++ mule-1.1-NetBSD/src/unexec.c Sun Jul 26 19:12:46 1998 @@ -176,6 +176,7 @@ #ifndef CANNOT_UNEXEC /* most of rest of file */ +#include /* 91.10.16 by S.Hirano */ #ifdef MSDOS # ifdef GO32 @@ -197,9 +198,9 @@ #ifndef makedev /* Try to detect types.h already loaded */ #include #endif -#include #include #include +#include extern char *start_of_text (); /* Start of text */ extern char *start_of_data (); /* Start of initialized data */ @@ -753,14 +754,14 @@ if (!strcmp (scntemp.s_name, ".text")) { - lseek (new, (long) text_scnptr, 0); + lseek (new, text_scnptr, 0); ptr = (char *) f_ohdr.text_start; end = ptr + f_ohdr.tsize; write_segment (new, ptr, end); } else if (!strcmp (scntemp.s_name, ".data")) { - lseek (new, (long) data_scnptr, 0); + lseek (new, data_scnptr, 0); ptr = (char *) f_ohdr.data_start; end = ptr + f_ohdr.dsize; write_segment (new, ptr, end); @@ -771,7 +772,7 @@ { char page[BUFSIZ]; int size, n; - long old_a_out_ptr = lseek (a_out, 0, 1); + off_t old_a_out_ptr = lseek (a_out, 0, 1); lseek (a_out, scntemp.s_scnptr, 0); for (size = scntemp.s_size; size > 0; size -= sizeof (page)) @@ -786,12 +787,12 @@ #else /* COFF, but not USG_SHARED_LIBRARIES */ - lseek (new, (long) text_scnptr, 0); + lseek (new, text_scnptr, 0); ptr = (char *) f_ohdr.text_start; end = ptr + f_ohdr.tsize; write_segment (new, ptr, end); - lseek (new, (long) data_scnptr, 0); + lseek (new, data_scnptr, 0); ptr = (char *) f_ohdr.data_start; end = ptr + f_ohdr.dsize; write_segment (new, ptr, end); @@ -809,16 +810,16 @@ the extra A_TEXT_OFFSET bytes, only the actual bytes of code. */ #ifdef A_TEXT_SEEK - lseek (new, (long) A_TEXT_SEEK (hdr), 0); + lseek (new, A_TEXT_SEEK (hdr), 0); #else #ifdef A_TEXT_OFFSET /* Note that on the Sequent machine A_TEXT_OFFSET != sizeof (hdr) and sizeof (hdr) is the correct amount to add here. */ /* In version 19, eliminate this case and use A_TEXT_SEEK whenever N_TXTOFF is not right. */ - lseek (new, (long) N_TXTOFF (hdr) + sizeof (hdr), 0); + lseek (new, N_TXTOFF (hdr) + sizeof (hdr), 0); #else - lseek (new, (long) N_TXTOFF (hdr), 0); + lseek (new, N_TXTOFF (hdr), 0); #endif /* no A_TEXT_OFFSET */ #endif /* no A_TEXT_SEEK */ diff -ur mule-1.1/src/x11term.c mule-1.1-NetBSD/src/x11term.c --- mule-1.1/src/x11term.c Thu Feb 24 10:15:25 1994 +++ mule-1.1-NetBSD/src/x11term.c Sun Jul 26 18:47:46 1998 @@ -2661,7 +2661,7 @@ #endif dup2 (ConnectionNumber(XXdisplay), 0); -#ifndef SYSV_STREAMS +#ifdef SYSV_STREAMS /* Streams somehow keeps track of which descriptor number is being used to talk to X. So it is not safe to substitute descriptor 0. But it is safe to make descriptor 0 a copy of it. */ --- /dev/null Sun Jul 26 13:57:23 1998 +++ mule-1.1-NetBSD/src/m-netbsd_i386.h Sun Jul 26 18:47:46 1998 @@ -0,0 +1,101 @@ +/* m- file for NetBSD/i386. + Copyright (C) 1987 Free Software Foundation, Inc. + +This file is part of GNU Emacs. + +GNU Emacs is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 1, or (at your option) +any later version. + +GNU Emacs is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Emacs; see the file COPYING. If not, write to +the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ + + +/* The following three symbols give information on + the size of various data types. */ + +#define SHORTBITS 16 /* Number of bits in a short */ + +#define INTBITS 32 /* Number of bits in an int */ + +#define LONGBITS 32 /* Number of bits in a long */ + +/* i386 is not big-endian: lowest numbered byte is least significant. */ + +/* #undef BIG_ENDIAN */ + +/* Define NO_ARG_ARRAY if you cannot take the address of the first of a + * group of arguments and treat it as an array of the arguments. */ + +/* #define NO_ARG_ARRAY */ + +/* Define WORD_MACHINE if addresses and such have + * to be corrected before they can be used as byte counts. */ + +/* #define WORD_MACHINE */ + +/* Define how to take a char and sign-extend into an int. + On machines where char is signed, this is a no-op. */ + +#define SIGN_EXTEND_CHAR(c) (c) + +/* Now define a symbol for the cpu type, if your compiler + does not define it automatically: + Ones defined so far include vax, m68000, ns16000, pyramid, + orion, tahoe, APOLLO and many others */ + +#define INTEL386 + +/* Use type int rather than a union, to represent Lisp_Object */ + +#define NO_UNION_TYPE + +/* crt0.c, if it is used, should use the i386-bsd style of entry. + with no extra dummy args. On USG and XENIX, + NO_REMAP says this isn't used. */ + +#define START_FILES crt0.o /usr/lib/crt0.o +#define CRT0_DUMMIES bogus_fp, +#define NO_REMAP + +/* crt0.c should define a symbol `start' and do .globl with a dot. */ + +/* #define DOT_GLOBAL_START */ + +/* Data type of load average, as read out of kmem. */ +#define LOAD_AVE_TYPE unsigned long + +/* Convert that into an integer that is 100 for a load average of 1.0 */ +#define LOAD_AVE_CVT(x) ((int)(((double) (x)) * 100.0 / FSCALE)) + +/* Define CANNOT_DUMP on machines where unexec does not work. + Then the function dump-emacs will not be defined + and temacs will do (load "loadup") automatically unless told otherwise. */ + +/* #define CANNOT_DUMP */ + +/* Define VIRT_ADDR_VARIES if the virtual addresses of + pure and impure space as loaded can vary, and even their + relative order cannot be relied on. + + Otherwise Emacs assumes that text space precedes data space, + numerically. */ + +/* #define VIRT_ADDR_VARIES */ + +#define HAVE_ALLOCA + +/* If compiling with GCC, let GCC implement alloca. */ +#if defined(__GNUC__) && !defined(alloca) +#define alloca(n) __builtin_alloca(n) +#define HAVE_ALLOCA +#endif +#define C_DEBUG_SWITCH -O -g +#define C_OPTIMIZE_SWITCH -O --- /dev/null Sun Jul 26 13:57:23 1998 +++ mule-1.1-NetBSD/src/m-netbsd_sparc.h Sun Jul 26 18:47:46 1998 @@ -0,0 +1,90 @@ +/* m- file for Sun 4 SPARC. + Copyright (C) 1987 Free Software Foundation, Inc. + +This file is part of GNU Emacs. + +GNU Emacs is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 1, or (at your option) +any later version. + +GNU Emacs is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Emacs; see the file COPYING. If not, write to +the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ + + +/* The following three symbols give information on + the size of various data types. */ + +#define SHORTBITS 16 /* Number of bits in a short */ + +#define INTBITS 32 /* Number of bits in an int */ + +#define LONGBITS 32 /* Number of bits in a long */ + +/* SPARC has lowest-numbered byte as most significant */ + +/* Define NO_ARG_ARRAY if you cannot take the address of the first of a + * group of arguments and treat it as an array of the arguments. */ + +#define NO_ARG_ARRAY + +/* Define how to take a char and sign-extend into an int. + On machines where char is signed, this is a no-op. */ + +#define SIGN_EXTEND_CHAR(c) (c) + +/* Say this machine is a sparc */ + +#ifndef sparc +#define sparc +#endif + +#define START_FILES crt0.o /usr/lib/crt0.o +/* #define TEXT_START ({ extern void start __P((void)) asm ("start"); &start; }) */ +/* #define NO_REMAP */ + +/* Use type int rather than a union, to represent Lisp_Object */ + +#define NO_UNION_TYPE + +/* XINT must explicitly sign-extend */ + +#define EXPLICIT_SIGN_EXTEND + +/* Data type of load average, as read out of kmem. */ + +#define LOAD_AVE_TYPE unsigned long + +/* Convert that into an integer that is 100 for a load average of 1.0 */ + +#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) + +/* Define C_ALLOCA if this machine does not support a true alloca + and the one written in C should be used instead. + Define HAVE_ALLOCA to say that the system provides a properly + working alloca function and it should be used. + Define neither one if an assembler-language alloca + in the file alloca.s should be used. */ + +#define HAVE_ALLOCA + +/* If compiling with GCC, let GCC implement alloca. */ +#if defined(__GNUC__) && !defined(alloca) +#define alloca(n) __builtin_alloca(n) +#define HAVE_ALLOCA +#endif + + +/* Mask for address bits within a memory segment */ + +/* #define SEGSIZ 512 */ +/* #define SEGMENT_MASK (SEGSIZ - 1) */ + +#define C_DEBUG_SWITCH -O -g +#define C_OPTIMIZE_SWITCH -O --- /dev/null Sun Jul 26 13:57:23 1998 +++ mule-1.1-NetBSD/src/m-netbsd_sun3.h Sun Jul 26 18:47:46 1998 @@ -0,0 +1,89 @@ +/* m- file for Sun 68000's OPERATING SYSTEM version 3. + Note that "m-sun2.h" refers to the operating system version, not the + CPU model number. See the MACHINES file for details. + Copyright (C) 1985, 1986 Free Software Foundation, Inc. + +This file is part of GNU Emacs. + +GNU Emacs is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 1, or (at your option) +any later version. + +GNU Emacs is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Emacs; see the file COPYING. If not, write to +the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ + + +/* The following three symbols give information on + the size of various data types. */ + +#define SHORTBITS 16 /* Number of bits in a short */ + +#define INTBITS 32 /* Number of bits in an int */ + +#define LONGBITS 32 /* Number of bits in a long */ + +#define START_FILES crt0.o /usr/lib/crt0.o +#define CRT0_DUMMIES bogus_fp, + +/* Define how to take a char and sign-extend into an int. + On machines where char is signed, this is a no-op. */ + +#define SIGN_EXTEND_CHAR(c) (c) + +/* Say this machine is a 68000 */ + +#ifndef m68000 +#define m68000 +#endif + +#ifndef sun3 +#define sun3 +#endif + +/* Use type int rather than a union, to represent Lisp_Object */ + +#define NO_UNION_TYPE + +/* Sun can't write competent compilers */ +/* #define COMPILER_REGISTER_BUG */ + +/* XINT must explicitly sign-extend */ + +#define EXPLICIT_SIGN_EXTEND + +/* Data type of load average, as read out of kmem. */ + +#define LOAD_AVE_TYPE unsigned long + +/* Convert that into an integer that is 100 for a load average of 1.0 */ + +#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) + +/* Say that this is a Sun 2; must check for and maybe reinitialize + the "sky" board. */ + +/* Mask for address bits within a memory segment */ + +/* #define SEGMENT_MASK (SEGSIZ - 1) */ + +/* Arrange to link with sun windows, if requested. */ +/* For details on emacstool and sunfns, see etc/SUN-SUPPORT */ +/* These programs require Sun UNIX 4.2 Release 3.2 or greater */ + +#define HAVE_ALLOCA + +/* If compiling with GCC, let GCC implement alloca. */ +#if defined(__GNUC__) && !defined(alloca) +#define alloca(n) __builtin_alloca(n) +#define HAVE_ALLOCA +#endif +#define C_DEBUG_SWITCH -O -g +#define C_OPTIMIZE_SWITCH -O +