Mercurial > hg > xemacs-beta
diff src/s/freebsd.h @ 0:376386a54a3c r19-14
Import from CVS: tag r19-14
author | cvs |
---|---|
date | Mon, 13 Aug 2007 08:45:50 +0200 |
parents | |
children | 4103f0995bd7 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/s/freebsd.h Mon Aug 13 08:45:50 2007 +0200 @@ -0,0 +1,99 @@ +/* Synched up with: FSF 19.31. */ + +/* s/ file for freebsd system. */ + +/* '__FreeBSD__' is defined by the preprocessor on FreeBSD-1.1 and up. + Earlier versions do not have shared libraries, so inhibit them. + You can inhibit them on newer systems if you wish + by defining NO_SHARED_LIBS. */ +#ifndef __FreeBSD__ +#define NO_SHARED_LIBS +#endif + +#if 0 /* This much, alone, seemed sufficient as of 19.23. + But it seems better to be independent of netbsd.h. */ +#include "netbsd.h" + +#undef LIB_GCC +#define LIB_GCC -lgcc +#undef NEED_ERRNO +#endif /* 0 */ + + +/* Get most of the stuff from bsd4.3 */ +#include "bsd4-3.h" + +/* For mem-limits.h. */ +#define BSD4_2 + +/* These aren't needed, since we have getloadavg. */ +#undef KERNEL_FILE +#undef LDAV_SYMBOL + +#define PENDING_OUTPUT_COUNT(FILE) ((FILE)->_p - (FILE)->_bf._base) + +#define LIBS_DEBUG +#define LIBS_SYSTEM -lutil +/* XEmacs change: */ +#ifdef HAVE_NCURSES +#define LIBS_TERMCAP -lncurses -ltermcap +#else +#define LIBS_TERMCAP -ltermcap +#endif +#define LIB_GCC -lgcc + +/* freebsd has POSIX-style pgrp behavior. */ +#define GETPGRP_NO_ARG + +#ifndef NO_SHARED_LIBS +#define LD_SWITCH_SYSTEM -e start -dc -dp +#define HAVE_TEXT_START /* No need to define `start_of_text'. */ +#define START_FILES pre-crt0.o /usr/lib/crt0.o +#define UNEXEC unexfreebsd.o +#define RUN_TIME_REMAP + +#ifndef N_TRELOFF +#define N_PAGSIZ(x) __LDPGSZ +#define N_BSSADDR(x) (N_ALIGN(x, N_DATADDR(x)+x.a_data)) +#define N_TRELOFF(x) N_RELOFF(x) +#endif +#else /* NO_SHARED_LIBS */ +#ifdef __FreeBSD__ /* shared libs are available, but the user prefers + not to use them. */ +#define LD_SWITCH_SYSTEM -Bstatic +#define A_TEXT_OFFSET(x) (sizeof (struct exec)) +#define A_TEXT_SEEK(hdr) (N_TXTOFF(hdr) + A_TEXT_OFFSET(hdr)) +#endif /* __FreeBSD__ */ +#endif /* NO_SHARED_LIBS */ + +#define HAVE_GETLOADAVG +#define NO_TERMIO +#define DECLARE_GETPWUID_WITH_UID_T + +/* freebsd uses OXTABS instead of the expected TAB3. */ +#define TABDLY OXTABS +#define TAB3 OXTABS + +/* this silences a few compilation warnings */ +#undef BSD +#if __FreeBSD__ == 1 +#define BSD 199103 +#elif __FreeBSD__ == 2 +#define BSD 199306 +#endif + +#undef HAVE_UNION_WAIT +/* #### XEmacs: Is this necessary? */ +#define WRETCODE(w) (_W_INT(w) >> 8) + +/* FreeBSD defines INT_MAX in /usr/include/limits.h. + Unless INT_MAX is already defined in lisp.h, XEmacs goes right + ahead and rolls its own. + We make sure that the system's definition is used throughout. */ +#ifdef emacs +#include <limits.h> +#endif + +/* Needed to avoid hanging when child process writes an error message + and exits -- enami tsugutomo <enami@ba2.so-net.or.jp>. */ +#define vfork fork