mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-08 12:40:49 -08:00
* configure.ac (GNU_LIBRARY_PENDING_OUTPUT_COUNT): Move here from src/s. * src/s/gnu.h, src/s/gnu-linux.h: Move GNU_LIBRARY_PENDING_OUTPUT_COUNT to configure.
141 lines
4.8 KiB
C
141 lines
4.8 KiB
C
/* This file is the configuration file for Linux-based GNU systems
|
||
|
||
Copyright (C) 1985-1986, 1992, 1994, 1996, 1999, 2001-2012
|
||
Free Software Foundation, Inc.
|
||
|
||
This file was put together by Michael K. Johnson and Rik Faith.
|
||
|
||
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 3 of the License, 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. If not, see <http://www.gnu.org/licenses/>. */
|
||
|
||
/* Define symbols to identify the version of Unix this is.
|
||
Define all the symbols that apply correctly. */
|
||
#define USG
|
||
#define GNU_LINUX
|
||
|
||
#ifdef emacs
|
||
#ifdef HAVE_LINUX_VERSION_H
|
||
#include <linux/version.h>
|
||
|
||
#if LINUX_VERSION_CODE >= 0x20400
|
||
/* 21 Jun 06: Eric Hanchrow <offby1@blarg.net> says this works. */
|
||
#define SIGNALS_VIA_CHARACTERS
|
||
#endif /* LINUX_VERSION_CODE >= 0x20400 */
|
||
#endif /* HAVE_LINUX_VERSION_H */
|
||
#endif /* emacs */
|
||
|
||
#if defined HAVE_GRANTPT
|
||
#define UNIX98_PTYS
|
||
|
||
/* Run only once. We need a `for'-loop because the code uses `continue'. */
|
||
#define PTY_ITERATION int i; for (i = 0; i < 1; i++)
|
||
|
||
#ifdef HAVE_GETPT
|
||
#define PTY_NAME_SPRINTF
|
||
#define PTY_OPEN fd = getpt ()
|
||
#else /* not HAVE_GETPT */
|
||
#define PTY_NAME_SPRINTF strcpy (pty_name, "/dev/ptmx");
|
||
#endif /* not HAVE_GETPT */
|
||
|
||
/* Note that grantpt and unlockpt may fork. We must block SIGCHLD to
|
||
prevent sigchld_handler from intercepting the child's death. */
|
||
#define PTY_TTY_NAME_SPRINTF \
|
||
{ \
|
||
char *ptyname; \
|
||
\
|
||
sigblock (sigmask (SIGCHLD)); \
|
||
if (grantpt (fd) == -1 || unlockpt (fd) == -1 \
|
||
|| !(ptyname = ptsname(fd))) \
|
||
{ \
|
||
sigunblock (sigmask (SIGCHLD)); \
|
||
close (fd); \
|
||
return -1; \
|
||
} \
|
||
snprintf (pty_name, sizeof pty_name, "%s", ptyname); \
|
||
sigunblock (sigmask (SIGCHLD)); \
|
||
}
|
||
|
||
#else /* not HAVE_GRANTPT */
|
||
|
||
/* Letter to use in finding device name of first pty,
|
||
if system supports pty's. 'p' means it is /dev/ptyp0 */
|
||
#define FIRST_PTY_LETTER 'p'
|
||
|
||
#endif /* not HAVE_GRANTPT */
|
||
|
||
/* Define HAVE_PTYS if the system supports pty devices. */
|
||
#define HAVE_PTYS
|
||
|
||
#define HAVE_SOCKETS
|
||
|
||
/* Define CLASH_DETECTION if you want lock files to be written
|
||
so that Emacs can tell instantly when you try to modify
|
||
a file that someone else has modified in his Emacs. */
|
||
#define CLASH_DETECTION
|
||
|
||
/* Here, on a separate page, add any special hacks needed
|
||
to make Emacs work on this system. For example,
|
||
you might define certain system call names that don't
|
||
exist on your system, or that do different things on
|
||
your system and must be used only through an encapsulation
|
||
(Which you should place, by convention, in sysdep.c). */
|
||
|
||
#ifdef emacs
|
||
#define INTERRUPT_INPUT
|
||
#endif
|
||
|
||
#define POSIX /* affects getpagesize.h and systty.h */
|
||
|
||
/* This is to work around mysterious gcc failures in some system versions.
|
||
It is unlikely that Emacs changes will work around this problem;
|
||
therefore, this should remain permanently. */
|
||
#ifndef HAVE_XRMSETDATABASE
|
||
#define HAVE_XRMSETDATABASE
|
||
#endif
|
||
|
||
#define NARROWPROTO 1
|
||
|
||
/* Tell that garbage collector that setjmp is known to save all
|
||
registers relevant for conservative garbage collection in the jmp_buf. */
|
||
/* Not all the architectures are tested, but there are Debian packages
|
||
for SCM and/or Guile on them, so the technique must work. See also
|
||
comments in alloc.c concerning setjmp and gcc. Fixme: it's
|
||
probably safe to make this conditional just on GCC, except for ia64
|
||
register window-flushing. */
|
||
/* Don't use #cpu here since in newest development versions of GCC,
|
||
we must call cpp with -traditional, and that disables #cpu. */
|
||
#if defined __i386__ || defined __sparc__ || defined __mc68000__ \
|
||
|| defined __alpha__ || defined __mips__ || defined __s390__ \
|
||
|| defined __arm__ || defined __powerpc__ || defined __amd64__ \
|
||
|| defined __ia64__ || defined __sh__
|
||
#define GC_SETJMP_WORKS 1
|
||
#ifdef __ia64__
|
||
#define GC_MARK_SECONDARY_STACK() \
|
||
do { \
|
||
extern void *__libc_ia64_register_backing_store_base; \
|
||
__builtin_ia64_flushrs (); \
|
||
mark_memory (__libc_ia64_register_backing_store_base, \
|
||
__builtin_ia64_bsp ()); \
|
||
} while (0)
|
||
#endif
|
||
#else
|
||
#define GC_MARK_STACK GC_USE_GCPROS_AS_BEFORE
|
||
#endif
|
||
|
||
#ifdef __i386__
|
||
/* libc-linux/sysdeps/linux/i386/ulimit.c says that due to shared library, */
|
||
/* we cannot get the maximum address for brk */
|
||
# define ULIMIT_BREAK_VALUE (32*1024*1024)
|
||
#endif
|