Commit | Line | Data |
---|---|---|
e3efab9c | 1 | /* System description header for FreeBSD systems. |
2f86b22b GM |
2 | |
3 | Copyright (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 |
7 | Author: Shawn M. Carey |
8 | (according to authors.el) | |
9 | ||
e3efab9c GM |
10 | This file is part of GNU Emacs. |
11 | ||
4b158629 | 12 | GNU Emacs is free software: you can redistribute it and/or modify |
e3efab9c | 13 | it under the terms of the GNU General Public License as published by |
4b158629 GM |
14 | the Free Software Foundation, either version 3 of the License, or |
15 | (at your option) any later version. | |
e3efab9c GM |
16 | |
17 | GNU Emacs is distributed in the hope that it will be useful, | |
18 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
19 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
20 | GNU General Public License for more details. | |
21 | ||
22 | You should have received a copy of the GNU General Public License | |
4b158629 | 23 | along 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) */ |