Move "system type" macros from src/s to configure
[bpt/emacs.git] / src / s / gnu-linux.h
... / ...
CommitLineData
1/* This file is the configuration file for Linux-based GNU systems
2
3Copyright (C) 1985-1986, 1992, 1994, 1996, 1999, 2001-2012
4 Free Software Foundation, Inc.
5
6This file was put together by Michael K. Johnson and Rik Faith.
7
8This file is part of GNU Emacs.
9
10GNU Emacs is free software: you can redistribute it and/or modify
11it under the terms of the GNU General Public License as published by
12the Free Software Foundation, either version 3 of the License, or
13(at your option) any later version.
14
15GNU Emacs is distributed in the hope that it will be useful,
16but WITHOUT ANY WARRANTY; without even the implied warranty of
17MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18GNU General Public License for more details.
19
20You should have received a copy of the GNU General Public License
21along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
22
23#ifdef __ia64__
24#define GC_MARK_SECONDARY_STACK() \
25 do { \
26 extern void *__libc_ia64_register_backing_store_base; \
27 __builtin_ia64_flushrs (); \
28 mark_memory (__libc_ia64_register_backing_store_base, \
29 __builtin_ia64_bsp ()); \
30 } while (0)
31#endif
32
33/* Tell that garbage collector that setjmp is known to save all
34 registers relevant for conservative garbage collection in the jmp_buf.
35 Not all the architectures are tested, but there are Debian packages
36 for SCM and/or Guile on them, so the technique must work. See also
37 comments in alloc.c concerning setjmp and gcc. Fixme: it's
38 probably safe to just let the GCC conditional in AH_BOTTOM handle this.
39*/
40#if defined __i386__ || defined __sparc__ || defined __mc68000__ \
41 || defined __alpha__ || defined __mips__ || defined __s390__ \
42 || defined __arm__ || defined __powerpc__ || defined __amd64__ \
43 || defined __ia64__ || defined __sh__
44#define GC_SETJMP_WORKS 1
45#else
46#define GC_MARK_STACK GC_USE_GCPROS_AS_BEFORE
47#endif