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