Move LIBS_SYSTEM from cpp to configure.
[bpt/emacs.git] / src / s / freebsd.h
CommitLineData
e3efab9c 1/* System description header for FreeBSD systems.
2f86b22b
GM
2
3Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
4 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
5 Free Software Foundation, Inc.
e3efab9c 6
d089407f
GM
7Author: Shawn M. Carey
8(according to authors.el)
9
e3efab9c
GM
10This file is part of GNU Emacs.
11
4b158629 12GNU Emacs is free software: you can redistribute it and/or modify
e3efab9c 13it under the terms of the GNU General Public License as published by
4b158629
GM
14the Free Software Foundation, either version 3 of the License, or
15(at your option) any later version.
e3efab9c
GM
16
17GNU Emacs is distributed in the hope that it will be useful,
18but WITHOUT ANY WARRANTY; without even the implied warranty of
19MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20GNU General Public License for more details.
21
22You should have received a copy of the GNU General Public License
4b158629 23along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
be210740 24
f2a77c3a
DN
25/* Get most of the stuff from bsd-common */
26#include "bsd-common.h"
c0096c73
RS
27
28/* For mem-limits.h. */
29#define BSD4_2
30
c0096c73
RS
31#define PENDING_OUTPUT_COUNT(FILE) ((FILE)->_p - (FILE)->_bf._base)
32
62bb752f
RS
33#undef LIB_GCC
34#define LIB_GCC
35
8fffa182 36#define HAVE_GETLOADAVG 1
d05c42e4 37#define DECLARE_GETPWUID_WITH_UID_T
c0096c73 38
c0096c73 39/* this silences a few compilation warnings */
6df54671 40#undef BSD_SYSTEM
69d87222 41#if __FreeBSD__ == 1
6df54671 42#define BSD_SYSTEM 199103
69d87222 43#elif __FreeBSD__ == 2
6df54671 44#define BSD_SYSTEM 199306
165e2d55 45#elif __FreeBSD__ >= 3
3e7562b1 46#define BSD_SYSTEM 199506
69d87222 47#endif
c0096c73 48
b68f1a63
RS
49/* Don't close pty in process.c to make it as controlling terminal.
50 It is already a controlling terminal of subprocess, because we did
51 ioctl TIOCSCTTY. */
52#define DONT_REOPEN_PTY
145eec6f 53
aace035e
GM
54/* Circumvent a bug in FreeBSD. In the following sequence of
55 writes/reads on a PTY, read(2) returns bogus data:
56
57 write(2) 1022 bytes
58 write(2) 954 bytes, get EAGAIN
59 read(2) 1024 bytes in process_read_output
60 read(2) 11 bytes in process_read_output
61
62 That is, read(2) returns more bytes than have ever been written
63 successfully. The 1033 bytes read are the 1022 bytes written
64 successfully after processing (for example with CRs added if the
65 terminal is set up that way which it is here). The same bytes will
66 be seen again in a later read(2), without the CRs. */
67
68#define BROKEN_PTY_READ_AFTER_EAGAIN 1
4b3fd719
GM
69
70/* Tell that garbage collector that setjmp is known to save all
71 registers relevant for conservative garbage collection in the
72 jmp_buf. */
73
74#define GC_SETJMP_WORKS 1
cbf5ca04 75
fc653ef2
GM
76/* Use the GC_MAKE_GCPROS_NOOPS (see lisp.h) method for marking the
77 stack. */
78
fc40e215 79#define GC_MARK_STACK GC_MAKE_GCPROS_NOOPS
fc653ef2 80
67cdbf16
GM
81/* Define USE_MMAP_FOR_BUFFERS to let Emacs use mmap(2) to allocate
82 buffer text. This overrides REL_ALLOC. */
fc653ef2 83
67cdbf16 84#define USE_MMAP_FOR_BUFFERS 1
76bb714a 85
ab5796a9
MB
86/* arch-tag: 426529ca-b7c4-448f-b10a-d4dcdc9c78eb
87 (do not change this comment) */