X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/35fb32880c99aa7cd41b835dc17b8639b544dc69..c43fb4c32df6393a3e001151693b8ce28f860976:/src/s/gnu-linux.h diff --git a/src/s/gnu-linux.h b/src/s/gnu-linux.h index ae2eaa43c0..b4031bb1ca 100644 --- a/src/s/gnu-linux.h +++ b/src/s/gnu-linux.h @@ -1,6 +1,9 @@ /* This file is the configuration file for Linux-based GNU systems - Copyright (C) 1985, 1986, 1992, 1994, 1996, 1999, 2001, 2002, 2003, 2004, - 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. + +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. @@ -17,42 +20,16 @@ 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 . */ -/* This file was put together by Michael K. Johnson and Rik Faith. */ - - -/* - * Define symbols to identify the version of Unix this is. - * Define all the symbols that apply correctly. - */ - +/* Define symbols to identify the version of Unix this is. + Define all the symbols that apply correctly. */ #define USG #define GNU_LINUX -/* SYSTEM_TYPE should indicate the kind of system you are using. - It sets the Lisp variable system-type. */ - -#define SYSTEM_TYPE "gnu/linux" /* All the best software is free. */ - -#ifndef NOT_C_CODE -#ifdef emacs -#ifdef HAVE_LINUX_VERSION_H -#include - -#if LINUX_VERSION_CODE >= 0x20400 -/* 21 Jun 06: Eric Hanchrow says this works. */ -#define SIGNALS_VIA_CHARACTERS -#endif /* LINUX_VERSION_CODE >= 0x20400 */ -#endif /* HAVE_LINUX_VERSION_H */ -#endif /* emacs */ -#endif /* NOT_C_CODE */ - #if defined HAVE_GRANTPT #define UNIX98_PTYS -/* Run only once. We need a `for'-loop because the code uses - `continue'. */ - -#define PTY_ITERATION for (i = 0; i < 1; i++) +/* 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 @@ -63,7 +40,6 @@ along with GNU Emacs. If not, see . */ /* 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; \ @@ -76,8 +52,7 @@ along with GNU Emacs. If not, see . */ close (fd); \ return -1; \ } \ - strncpy (pty_name, ptyname, sizeof (pty_name)); \ - pty_name[sizeof (pty_name) - 1] = 0; \ + snprintf (pty_name, sizeof pty_name, "%s", ptyname); \ sigunblock (sigmask (SIGCHLD)); \ } @@ -85,60 +60,15 @@ along with GNU Emacs. If not, see . */ /* 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_TERMIOS if the system provides POSIX-style - functions and macros for terminal control. */ - -#define HAVE_TERMIOS - -/* Define HAVE_PTYS if the system supports pty devices. */ - +/* Define HAVE_PTYS if the system supports pty devices. */ #define HAVE_PTYS #define HAVE_SOCKETS -/* Define this symbol if your system has the functions bcopy, etc. */ - -#define BSTRING - -/* This is used in list_system_processes. */ -#define HAVE_PROCFS 1 - -/* define MAIL_USE_FLOCK if the mailer uses flock - to interlock access to /usr/spool/mail/$USER. - The alternative is that a lock file named - /usr/spool/mail/$USER.lock. */ - -/* On GNU/Linux systems, both methods are used by various mail - programs. I assume that most people are using newer mailers that - have heard of flock. Change this if you need to. */ -/* Debian contains a patch which says: ``On Debian/GNU/Linux systems, - configure gets the right answers, and that means *NOT* using flock. - Using flock is guaranteed to be the wrong thing. See Debian Policy - for details.'' and then uses `#ifdef DEBIAN'. Unfortunately the - Debian maintainer hasn't provided a clean fix for Emacs. - movemail.c will use `maillock' when MAILDIR, HAVE_LIBMAIL and - HAVE_MAILLOCK_H are defined, so the following appears to be the - correct logic. -- fx */ -/* We must check for HAVE_LIBLOCKFILE too, as movemail does. - liblockfile is a Free Software replacement for libmail, used on - Debian systems and elsewhere. -rfr */ - -#if !((defined (HAVE_LIBMAIL) || defined (HAVE_LIBLOCKFILE)) && \ - defined (HAVE_MAILLOCK_H)) -#define MAIL_USE_FLOCK -#endif - -/* 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 @@ -146,84 +76,7 @@ along with GNU Emacs. If not, see . */ your system and must be used only through an encapsulation (Which you should place, by convention, in sysdep.c). */ -/* This is needed for dispnew.c:update_frame */ - -#ifdef emacs -#include /* Get the definition of _IO_STDIO_H. */ -#if defined(_IO_STDIO_H) || defined(_STDIO_USES_IOSTREAM) -/* new C libio names */ -#define GNU_LIBRARY_PENDING_OUTPUT_COUNT(FILE) \ - ((FILE)->_IO_write_ptr - (FILE)->_IO_write_base) -#elif defined (__UCLIBC__) -/* using the uClibc library */ -#define GNU_LIBRARY_PENDING_OUTPUT_COUNT(FILE) \ - ((FILE)->__bufpos - (FILE)->__bufstart) -#else /* !_IO_STDIO_H && ! __UCLIBC__ */ -/* old C++ iostream names */ -#define GNU_LIBRARY_PENDING_OUTPUT_COUNT(FILE) \ - ((FILE)->_pptr - (FILE)->_pbase) -#endif /* !_IO_STDIO_H && ! __UCLIBC__ */ -#endif /* emacs */ - -/* Ask GCC where to find libgcc.a. */ -#define LIB_GCC `$(CC) $(C_SWITCH_X_SITE) -print-libgcc-file-name` - -#define START_FILES pre-crt0.o /usr/lib/crt1.o /usr/lib/crti.o - -/* Here is how to find X Windows. LD_SWITCH_X_SITE_AUX gives an -R option - says where to find X windows at run time. */ - -#ifdef __mips__ -#define LD_SWITCH_SYSTEM -G 0 LD_SWITCH_X_SITE_AUX -#else -#define LD_SWITCH_SYSTEM LD_SWITCH_X_SITE_AUX -#endif /* __mips__ */ - -/* Link temacs with -z nocombreloc so that unexec works right, whether or - not -z combreloc is the default. GNU ld ignores unknown -z KEYWORD - switches, so this also works with older versions that don't implement - -z combreloc. */ -#define LD_SWITCH_SYSTEM_TEMACS -z nocombreloc - -#ifdef emacs -#define INTERRUPT_INPUT -#endif - -#define SYSV_SYSTEM_DIR /* use dirent.h */ - #define POSIX /* affects getpagesize.h and systty.h */ -#define POSIX_SIGNALS - -/* Best not to include -lg, unless it is last on the command line */ -#define LIBS_DEBUG -#undef LIB_GCC -#define LIB_GCC -#define LIB_STANDARD -lgcc -lc -lgcc /usr/lib/crtn.o - -/* Don't use -g in test compiles in configure. - This is so we will use the same shared libs for that linking - that are used when linking temacs. */ -#ifdef THIS_IS_CONFIGURE -#define C_DEBUG_SWITCH -#endif - -/* alane@wozzle.linet.org says that -lipc is not a separate library, - since libc-4.4.1. So -lipc was deleted. */ -#define LIBS_SYSTEM -/* _BSD_SOURCE is redundant, at least in glibc2, since we define - _GNU_SOURCE. Left in in case it's relevant to libc5 systems and - anyone's still using Emacs on those. --fx 2002-12-14 */ -#define C_SWITCH_SYSTEM -D_BSD_SOURCE - -/* Paul Abrahams says this is needed. */ -#define LIB_MOTIF -lXm -lXpm - -#ifdef HAVE_LIBNCURSES -#define TERMINFO -#define LIBS_TERMCAP -lncurses -#endif - -#define UNEXEC unexelf.o /* This is to work around mysterious gcc failures in some system versions. It is unlikely that Emacs changes will work around this problem; @@ -232,21 +85,10 @@ along with GNU Emacs. If not, see . */ #define HAVE_XRMSETDATABASE #endif -/* Use BSD process groups, but use setpgid() instead of setpgrp() to - actually set a process group. */ -/* Interesting: only GNU/Linux defines this, but the BSDs do not... */ -#define BSD_PGRPS - #define NARROWPROTO 1 -/* Use mmap directly for allocating larger buffers. */ -#ifdef DOUG_LEA_MALLOC -#undef REL_ALLOC -#endif - /* Tell that garbage collector that setjmp is known to save all - registers relevant for conservative garbage collection in the - jmp_buf. */ + 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 @@ -254,26 +96,26 @@ along with GNU Emacs. If not, see . */ 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 -#define GC_MARK_STACK GC_MAKE_GCPROS_NOOPS -#ifdef __mc68000__ -#define GC_LISP_OBJECT_ALIGNMENT 2 -#endif #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 (), 0); \ + __builtin_ia64_bsp ()); \ } while (0) #endif +#else +#define GC_MARK_STACK GC_USE_GCPROS_AS_BEFORE #endif -/* arch-tag: 6244ea2a-abd0-44ec-abec-ff3dcc9afea9 - (do not change this comment) */ +#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