Mercurial > emacs
annotate src/s/gnu-linux.h @ 108882:3ff97bad1c47
Move UNEXEC definition to autoconf.
* configure.in (unxec): Do not define and substitute.
(UNEXEC_OBJ): New output variable, replaces cpp UNEXEC.
* msdos/sed1v2.inp (UNEXEC_OBJ): Use UNEXEC_OBJ instead of unexec.
* src/s/usg5-4.h (UNEXEC): Remove, move to configure.in.
* src/s/sol2-10.h (UNEXEC):
* src/s/irix6-5.h (UNEXEC):
* src/s/hpux10-20.h (UNEXEC):
* src/s/gnu-linux.h (UNEXEC):
* src/s/darwin.h (UNEXEC):
* src/s/cygwin.h (UNEXEC):
* src/s/bsd-common.h (UNEXEC):
* src/s/aix4-2.h (UNEXEC):
* src/m/alpha.h (UNEXEC): Likewise.
* src/Makefile.in (UNEXEC_OBJ): Define using @UNEXEC_OBJ@.
author | Dan Nicolaescu <dann@ics.uci.edu> |
---|---|
date | Thu, 03 Jun 2010 15:16:02 -0700 |
parents | 4e8dcb0d6fe0 |
children | d86e65007470 |
rev | line source |
---|---|
15478 | 1 /* This file is the configuration file for Linux-based GNU systems |
108278
9c003610b6fc
Move LD_SWITCH_SYSTEM from cpp to configure.
Glenn Morris <rgm@gnu.org>
parents:
108274
diff
changeset
|
2 |
9c003610b6fc
Move LD_SWITCH_SYSTEM from cpp to configure.
Glenn Morris <rgm@gnu.org>
parents:
108274
diff
changeset
|
3 Copyright (C) 1985, 1986, 1992, 1994, 1996, 1999, 2001, 2002, 2003, 2004, |
9c003610b6fc
Move LD_SWITCH_SYSTEM from cpp to configure.
Glenn Morris <rgm@gnu.org>
parents:
108274
diff
changeset
|
4 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. |
2915 | 5 |
108511
f8e62c2bf3e9
Reformat some comments in src/s/*.h.
Glenn Morris <rgm@gnu.org>
parents:
108507
diff
changeset
|
6 This file was put together by Michael K. Johnson and Rik Faith. |
f8e62c2bf3e9
Reformat some comments in src/s/*.h.
Glenn Morris <rgm@gnu.org>
parents:
108507
diff
changeset
|
7 |
2915 | 8 This file is part of GNU Emacs. |
9 | |
94715
1f134b61867c
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
91723
diff
changeset
|
10 GNU Emacs is free software: you can redistribute it and/or modify |
2915 | 11 it under the terms of the GNU General Public License as published by |
94715
1f134b61867c
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
91723
diff
changeset
|
12 the Free Software Foundation, either version 3 of the License, or |
1f134b61867c
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
91723
diff
changeset
|
13 (at your option) any later version. |
2915 | 14 |
15 GNU Emacs is distributed in the hope that it will be useful, | |
16 but WITHOUT ANY WARRANTY; without even the implied warranty of | |
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
18 GNU General Public License for more details. | |
19 | |
20 You should have received a copy of the GNU General Public License | |
94715
1f134b61867c
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
91723
diff
changeset
|
21 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ |
2915 | 22 |
108511
f8e62c2bf3e9
Reformat some comments in src/s/*.h.
Glenn Morris <rgm@gnu.org>
parents:
108507
diff
changeset
|
23 /* Define symbols to identify the version of Unix this is. |
f8e62c2bf3e9
Reformat some comments in src/s/*.h.
Glenn Morris <rgm@gnu.org>
parents:
108507
diff
changeset
|
24 Define all the symbols that apply correctly. */ |
2915 | 25 #define USG |
41968 | 26 #define GNU_LINUX |
2915 | 27 |
28 /* SYSTEM_TYPE should indicate the kind of system you are using. | |
108511
f8e62c2bf3e9
Reformat some comments in src/s/*.h.
Glenn Morris <rgm@gnu.org>
parents:
108507
diff
changeset
|
29 It sets the Lisp variable system-type. */ |
15478 | 30 #define SYSTEM_TYPE "gnu/linux" /* All the best software is free. */ |
2915 | 31 |
14775
f4cc1bc9ec2c
(TERMINFO): Define, if HAVE_NCURSES.
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
32 #ifdef emacs |
14839
bc1d2478d392
Test HAVE_LINUX_VERSION_H, not HAVE_VERSION_H.
Richard M. Stallman <rms@gnu.org>
parents:
14824
diff
changeset
|
33 #ifdef HAVE_LINUX_VERSION_H |
14775
f4cc1bc9ec2c
(TERMINFO): Define, if HAVE_NCURSES.
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
34 #include <linux/version.h> |
2915 | 35 |
71477
eb1fe905e1f8
(SIGNALS_VIA_CHARACTERS): Define for Linux kernel
Kim F. Storm <storm@cua.dk>
parents:
68651
diff
changeset
|
36 #if LINUX_VERSION_CODE >= 0x20400 |
96595 | 37 /* 21 Jun 06: Eric Hanchrow <offby1@blarg.net> says this works. */ |
38 #define SIGNALS_VIA_CHARACTERS | |
71477
eb1fe905e1f8
(SIGNALS_VIA_CHARACTERS): Define for Linux kernel
Kim F. Storm <storm@cua.dk>
parents:
68651
diff
changeset
|
39 #endif /* LINUX_VERSION_CODE >= 0x20400 */ |
14839
bc1d2478d392
Test HAVE_LINUX_VERSION_H, not HAVE_VERSION_H.
Richard M. Stallman <rms@gnu.org>
parents:
14824
diff
changeset
|
40 #endif /* HAVE_LINUX_VERSION_H */ |
14824
f56bb68b6903
(LINUX_SIGIO_DOES_WORK): Define only if HAVE_VERSION_H.
Richard M. Stallman <rms@gnu.org>
parents:
14777
diff
changeset
|
41 #endif /* emacs */ |
2915 | 42 |
29032
659202362f2b
(UNIX98_PTYS) [HAVE_GRANDPT]: Define.
Gerd Moellmann <gerd@gnu.org>
parents:
28378
diff
changeset
|
43 #if defined HAVE_GRANTPT |
659202362f2b
(UNIX98_PTYS) [HAVE_GRANDPT]: Define.
Gerd Moellmann <gerd@gnu.org>
parents:
28378
diff
changeset
|
44 #define UNIX98_PTYS |
659202362f2b
(UNIX98_PTYS) [HAVE_GRANDPT]: Define.
Gerd Moellmann <gerd@gnu.org>
parents:
28378
diff
changeset
|
45 |
108511
f8e62c2bf3e9
Reformat some comments in src/s/*.h.
Glenn Morris <rgm@gnu.org>
parents:
108507
diff
changeset
|
46 /* Run only once. We need a `for'-loop because the code uses `continue'. */ |
29032
659202362f2b
(UNIX98_PTYS) [HAVE_GRANDPT]: Define.
Gerd Moellmann <gerd@gnu.org>
parents:
28378
diff
changeset
|
47 #define PTY_ITERATION for (i = 0; i < 1; i++) |
659202362f2b
(UNIX98_PTYS) [HAVE_GRANDPT]: Define.
Gerd Moellmann <gerd@gnu.org>
parents:
28378
diff
changeset
|
48 |
659202362f2b
(UNIX98_PTYS) [HAVE_GRANDPT]: Define.
Gerd Moellmann <gerd@gnu.org>
parents:
28378
diff
changeset
|
49 #ifdef HAVE_GETPT |
659202362f2b
(UNIX98_PTYS) [HAVE_GRANDPT]: Define.
Gerd Moellmann <gerd@gnu.org>
parents:
28378
diff
changeset
|
50 #define PTY_NAME_SPRINTF |
659202362f2b
(UNIX98_PTYS) [HAVE_GRANDPT]: Define.
Gerd Moellmann <gerd@gnu.org>
parents:
28378
diff
changeset
|
51 #define PTY_OPEN fd = getpt () |
659202362f2b
(UNIX98_PTYS) [HAVE_GRANDPT]: Define.
Gerd Moellmann <gerd@gnu.org>
parents:
28378
diff
changeset
|
52 #else /* not HAVE_GETPT */ |
659202362f2b
(UNIX98_PTYS) [HAVE_GRANDPT]: Define.
Gerd Moellmann <gerd@gnu.org>
parents:
28378
diff
changeset
|
53 #define PTY_NAME_SPRINTF strcpy (pty_name, "/dev/ptmx"); |
659202362f2b
(UNIX98_PTYS) [HAVE_GRANDPT]: Define.
Gerd Moellmann <gerd@gnu.org>
parents:
28378
diff
changeset
|
54 #endif /* not HAVE_GETPT */ |
659202362f2b
(UNIX98_PTYS) [HAVE_GRANDPT]: Define.
Gerd Moellmann <gerd@gnu.org>
parents:
28378
diff
changeset
|
55 |
659202362f2b
(UNIX98_PTYS) [HAVE_GRANDPT]: Define.
Gerd Moellmann <gerd@gnu.org>
parents:
28378
diff
changeset
|
56 /* Note that grantpt and unlockpt may fork. We must block SIGCHLD to |
659202362f2b
(UNIX98_PTYS) [HAVE_GRANDPT]: Define.
Gerd Moellmann <gerd@gnu.org>
parents:
28378
diff
changeset
|
57 prevent sigchld_handler from intercepting the child's death. */ |
659202362f2b
(UNIX98_PTYS) [HAVE_GRANDPT]: Define.
Gerd Moellmann <gerd@gnu.org>
parents:
28378
diff
changeset
|
58 #define PTY_TTY_NAME_SPRINTF \ |
659202362f2b
(UNIX98_PTYS) [HAVE_GRANDPT]: Define.
Gerd Moellmann <gerd@gnu.org>
parents:
28378
diff
changeset
|
59 { \ |
659202362f2b
(UNIX98_PTYS) [HAVE_GRANDPT]: Define.
Gerd Moellmann <gerd@gnu.org>
parents:
28378
diff
changeset
|
60 char *ptyname; \ |
659202362f2b
(UNIX98_PTYS) [HAVE_GRANDPT]: Define.
Gerd Moellmann <gerd@gnu.org>
parents:
28378
diff
changeset
|
61 \ |
659202362f2b
(UNIX98_PTYS) [HAVE_GRANDPT]: Define.
Gerd Moellmann <gerd@gnu.org>
parents:
28378
diff
changeset
|
62 sigblock (sigmask (SIGCHLD)); \ |
659202362f2b
(UNIX98_PTYS) [HAVE_GRANDPT]: Define.
Gerd Moellmann <gerd@gnu.org>
parents:
28378
diff
changeset
|
63 if (grantpt (fd) == -1 || unlockpt (fd) == -1 \ |
659202362f2b
(UNIX98_PTYS) [HAVE_GRANDPT]: Define.
Gerd Moellmann <gerd@gnu.org>
parents:
28378
diff
changeset
|
64 || !(ptyname = ptsname(fd))) \ |
659202362f2b
(UNIX98_PTYS) [HAVE_GRANDPT]: Define.
Gerd Moellmann <gerd@gnu.org>
parents:
28378
diff
changeset
|
65 { \ |
659202362f2b
(UNIX98_PTYS) [HAVE_GRANDPT]: Define.
Gerd Moellmann <gerd@gnu.org>
parents:
28378
diff
changeset
|
66 sigunblock (sigmask (SIGCHLD)); \ |
659202362f2b
(UNIX98_PTYS) [HAVE_GRANDPT]: Define.
Gerd Moellmann <gerd@gnu.org>
parents:
28378
diff
changeset
|
67 close (fd); \ |
659202362f2b
(UNIX98_PTYS) [HAVE_GRANDPT]: Define.
Gerd Moellmann <gerd@gnu.org>
parents:
28378
diff
changeset
|
68 return -1; \ |
659202362f2b
(UNIX98_PTYS) [HAVE_GRANDPT]: Define.
Gerd Moellmann <gerd@gnu.org>
parents:
28378
diff
changeset
|
69 } \ |
659202362f2b
(UNIX98_PTYS) [HAVE_GRANDPT]: Define.
Gerd Moellmann <gerd@gnu.org>
parents:
28378
diff
changeset
|
70 strncpy (pty_name, ptyname, sizeof (pty_name)); \ |
659202362f2b
(UNIX98_PTYS) [HAVE_GRANDPT]: Define.
Gerd Moellmann <gerd@gnu.org>
parents:
28378
diff
changeset
|
71 pty_name[sizeof (pty_name) - 1] = 0; \ |
659202362f2b
(UNIX98_PTYS) [HAVE_GRANDPT]: Define.
Gerd Moellmann <gerd@gnu.org>
parents:
28378
diff
changeset
|
72 sigunblock (sigmask (SIGCHLD)); \ |
659202362f2b
(UNIX98_PTYS) [HAVE_GRANDPT]: Define.
Gerd Moellmann <gerd@gnu.org>
parents:
28378
diff
changeset
|
73 } |
659202362f2b
(UNIX98_PTYS) [HAVE_GRANDPT]: Define.
Gerd Moellmann <gerd@gnu.org>
parents:
28378
diff
changeset
|
74 |
35150 | 75 #else /* not HAVE_GRANTPT */ |
29032
659202362f2b
(UNIX98_PTYS) [HAVE_GRANDPT]: Define.
Gerd Moellmann <gerd@gnu.org>
parents:
28378
diff
changeset
|
76 |
2915 | 77 /* Letter to use in finding device name of first pty, |
29032
659202362f2b
(UNIX98_PTYS) [HAVE_GRANDPT]: Define.
Gerd Moellmann <gerd@gnu.org>
parents:
28378
diff
changeset
|
78 if system supports pty's. 'p' means it is /dev/ptyp0 */ |
2915 | 79 #define FIRST_PTY_LETTER 'p' |
80 | |
96732
1e0b67e40d48
* systty.h: Remove code for Aix on 386, unsupported platform.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96643
diff
changeset
|
81 #endif /* not HAVE_GRANTPT */ |
26212
539733154e0a
[HAVE_DEV_PTMX]: Redefine FIRST_PTY_LETTER to 'z'.
Gerd Moellmann <gerd@gnu.org>
parents:
26090
diff
changeset
|
82 |
29032
659202362f2b
(UNIX98_PTYS) [HAVE_GRANDPT]: Define.
Gerd Moellmann <gerd@gnu.org>
parents:
28378
diff
changeset
|
83 /* Define HAVE_TERMIOS if the system provides POSIX-style |
659202362f2b
(UNIX98_PTYS) [HAVE_GRANDPT]: Define.
Gerd Moellmann <gerd@gnu.org>
parents:
28378
diff
changeset
|
84 functions and macros for terminal control. */ |
2915 | 85 #define HAVE_TERMIOS |
86 | |
108511
f8e62c2bf3e9
Reformat some comments in src/s/*.h.
Glenn Morris <rgm@gnu.org>
parents:
108507
diff
changeset
|
87 /* Define HAVE_PTYS if the system supports pty devices. */ |
2915 | 88 #define HAVE_PTYS |
89 | |
3014
a416873d97e5
* s/linux.h (HAVE_DUP2, HAVE_ALLOCA_H): Deleted.
Jim Blandy <jimb@redhat.com>
parents:
2989
diff
changeset
|
90 #define HAVE_SOCKETS |
2915 | 91 |
108511
f8e62c2bf3e9
Reformat some comments in src/s/*.h.
Glenn Morris <rgm@gnu.org>
parents:
108507
diff
changeset
|
92 /* Define this symbol if your system has the functions bcopy, etc. */ |
2915 | 93 #define BSTRING |
94 | |
100565
dcc7f5970d5c
Reorganize implementation of Flist_system_processes and
Dan Nicolaescu <dann@ics.uci.edu>
parents:
98455
diff
changeset
|
95 /* This is used in list_system_processes. */ |
97225
3866542dcfee
(HAVE_PROCFS, LISTPROC, PROCATTR): New defines.
Eli Zaretskii <eliz@gnu.org>
parents:
96985
diff
changeset
|
96 #define HAVE_PROCFS 1 |
3866542dcfee
(HAVE_PROCFS, LISTPROC, PROCATTR): New defines.
Eli Zaretskii <eliz@gnu.org>
parents:
96985
diff
changeset
|
97 |
2915 | 98 /* Define CLASH_DETECTION if you want lock files to be written |
99 so that Emacs can tell instantly when you try to modify | |
100 a file that someone else has modified in his Emacs. */ | |
7835
27ec793a0e99
(CLASH_DETECTION): Defined.
Richard M. Stallman <rms@gnu.org>
parents:
7703
diff
changeset
|
101 #define CLASH_DETECTION |
2915 | 102 |
103 /* Here, on a separate page, add any special hacks needed | |
104 to make Emacs work on this system. For example, | |
105 you might define certain system call names that don't | |
106 exist on your system, or that do different things on | |
107 your system and must be used only through an encapsulation | |
108 (Which you should place, by convention, in sysdep.c). */ | |
109 | |
108511
f8e62c2bf3e9
Reformat some comments in src/s/*.h.
Glenn Morris <rgm@gnu.org>
parents:
108507
diff
changeset
|
110 /* This is needed for dispnew.c:update_frame. */ |
5387
f99b0175322e
(PENDING_OUTPUT_COUNT): Two alternate definitions
Richard M. Stallman <rms@gnu.org>
parents:
5363
diff
changeset
|
111 #ifdef emacs |
8274
04eeb3ed2828
[emacs]: Include stdio.h.
Richard M. Stallman <rms@gnu.org>
parents:
7972
diff
changeset
|
112 #include <stdio.h> /* Get the definition of _IO_STDIO_H. */ |
11826
6197ce4cd509
Test _STDIO_USES_IOSTREAM as well as _IO_STDIO_H.
Karl Heuer <kwzh@gnu.org>
parents:
11549
diff
changeset
|
113 #if defined(_IO_STDIO_H) || defined(_STDIO_USES_IOSTREAM) |
108511
f8e62c2bf3e9
Reformat some comments in src/s/*.h.
Glenn Morris <rgm@gnu.org>
parents:
108507
diff
changeset
|
114 /* New C libio names. */ |
7555
85afced1519c
(GNU_LIBRARY_PENDING_OUTPUT_COUNT): Both definitions
Richard M. Stallman <rms@gnu.org>
parents:
7307
diff
changeset
|
115 #define GNU_LIBRARY_PENDING_OUTPUT_COUNT(FILE) \ |
5387
f99b0175322e
(PENDING_OUTPUT_COUNT): Two alternate definitions
Richard M. Stallman <rms@gnu.org>
parents:
5363
diff
changeset
|
116 ((FILE)->_IO_write_ptr - (FILE)->_IO_write_base) |
98455
876b289a899e
* gmalloc.c (__sbrk): Also define for uClibc.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
97225
diff
changeset
|
117 #elif defined (__UCLIBC__) |
108511
f8e62c2bf3e9
Reformat some comments in src/s/*.h.
Glenn Morris <rgm@gnu.org>
parents:
108507
diff
changeset
|
118 /* Using the uClibc library. */ |
98455
876b289a899e
* gmalloc.c (__sbrk): Also define for uClibc.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
97225
diff
changeset
|
119 #define GNU_LIBRARY_PENDING_OUTPUT_COUNT(FILE) \ |
876b289a899e
* gmalloc.c (__sbrk): Also define for uClibc.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
97225
diff
changeset
|
120 ((FILE)->__bufpos - (FILE)->__bufstart) |
876b289a899e
* gmalloc.c (__sbrk): Also define for uClibc.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
97225
diff
changeset
|
121 #else /* !_IO_STDIO_H && ! __UCLIBC__ */ |
108511
f8e62c2bf3e9
Reformat some comments in src/s/*.h.
Glenn Morris <rgm@gnu.org>
parents:
108507
diff
changeset
|
122 /* Old C++ iostream names. */ |
7555
85afced1519c
(GNU_LIBRARY_PENDING_OUTPUT_COUNT): Both definitions
Richard M. Stallman <rms@gnu.org>
parents:
7307
diff
changeset
|
123 #define GNU_LIBRARY_PENDING_OUTPUT_COUNT(FILE) \ |
5387
f99b0175322e
(PENDING_OUTPUT_COUNT): Two alternate definitions
Richard M. Stallman <rms@gnu.org>
parents:
5363
diff
changeset
|
124 ((FILE)->_pptr - (FILE)->_pbase) |
98455
876b289a899e
* gmalloc.c (__sbrk): Also define for uClibc.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
97225
diff
changeset
|
125 #endif /* !_IO_STDIO_H && ! __UCLIBC__ */ |
108640
0b7cdd98b42f
* s/gnu-linux.h: Combine two conditionals.
Glenn Morris <rgm@gnu.org>
parents:
108635
diff
changeset
|
126 |
0b7cdd98b42f
* s/gnu-linux.h: Combine two conditionals.
Glenn Morris <rgm@gnu.org>
parents:
108635
diff
changeset
|
127 #define INTERRUPT_INPUT |
5387
f99b0175322e
(PENDING_OUTPUT_COUNT): Two alternate definitions
Richard M. Stallman <rms@gnu.org>
parents:
5363
diff
changeset
|
128 #endif /* emacs */ |
2915 | 129 |
130 #define SYSV_SYSTEM_DIR /* use dirent.h */ | |
131 | |
4825 | 132 #define POSIX /* affects getpagesize.h and systty.h */ |
2915 | 133 |
12720
8033d2412068
(HAVE_XRMSETDATABASE): Define if not defined.
Richard M. Stallman <rms@gnu.org>
parents:
12314
diff
changeset
|
134 /* This is to work around mysterious gcc failures in some system versions. |
8033d2412068
(HAVE_XRMSETDATABASE): Define if not defined.
Richard M. Stallman <rms@gnu.org>
parents:
12314
diff
changeset
|
135 It is unlikely that Emacs changes will work around this problem; |
8033d2412068
(HAVE_XRMSETDATABASE): Define if not defined.
Richard M. Stallman <rms@gnu.org>
parents:
12314
diff
changeset
|
136 therefore, this should remain permanently. */ |
7703
2b7b11a5e1e6
(HAVE_XRMSETDATABASE): Define if not defined.
Richard M. Stallman <rms@gnu.org>
parents:
7632
diff
changeset
|
137 #ifndef HAVE_XRMSETDATABASE |
2b7b11a5e1e6
(HAVE_XRMSETDATABASE): Define if not defined.
Richard M. Stallman <rms@gnu.org>
parents:
7632
diff
changeset
|
138 #define HAVE_XRMSETDATABASE |
2b7b11a5e1e6
(HAVE_XRMSETDATABASE): Define if not defined.
Richard M. Stallman <rms@gnu.org>
parents:
7632
diff
changeset
|
139 #endif |
11549
bfb9b93ee7e9
(REGEXP_IN_LIBC): Defined.
Richard M. Stallman <rms@gnu.org>
parents:
11292
diff
changeset
|
140 |
25032 | 141 #define NARROWPROTO 1 |
142 | |
28378
65fca17fb602
(GC_SETJMP_WORKS): Define for i386, sparc, m68k, alpha.
Dave Love <fx@gnu.org>
parents:
27679
diff
changeset
|
143 /* Tell that garbage collector that setjmp is known to save all |
108511
f8e62c2bf3e9
Reformat some comments in src/s/*.h.
Glenn Morris <rgm@gnu.org>
parents:
108507
diff
changeset
|
144 registers relevant for conservative garbage collection in the jmp_buf. */ |
49413
8aaa2f3ae722
(GC_SETJMP_WORKS, GC_MARK_STACK): Define for more
Dave Love <fx@gnu.org>
parents:
43162
diff
changeset
|
145 /* Not all the architectures are tested, but there are Debian packages |
8aaa2f3ae722
(GC_SETJMP_WORKS, GC_MARK_STACK): Define for more
Dave Love <fx@gnu.org>
parents:
43162
diff
changeset
|
146 for SCM and/or Guile on them, so the technique must work. See also |
8aaa2f3ae722
(GC_SETJMP_WORKS, GC_MARK_STACK): Define for more
Dave Love <fx@gnu.org>
parents:
43162
diff
changeset
|
147 comments in alloc.c concerning setjmp and gcc. Fixme: it's |
8aaa2f3ae722
(GC_SETJMP_WORKS, GC_MARK_STACK): Define for more
Dave Love <fx@gnu.org>
parents:
43162
diff
changeset
|
148 probably safe to make this conditional just on GCC, except for ia64 |
8aaa2f3ae722
(GC_SETJMP_WORKS, GC_MARK_STACK): Define for more
Dave Love <fx@gnu.org>
parents:
43162
diff
changeset
|
149 register window-flushing. */ |
33654 | 150 /* Don't use #cpu here since in newest development versions of GCC, |
151 we must call cpp with -traditional, and that disables #cpu. */ | |
49413
8aaa2f3ae722
(GC_SETJMP_WORKS, GC_MARK_STACK): Define for more
Dave Love <fx@gnu.org>
parents:
43162
diff
changeset
|
152 #if defined __i386__ || defined __sparc__ || defined __mc68000__ \ |
8aaa2f3ae722
(GC_SETJMP_WORKS, GC_MARK_STACK): Define for more
Dave Love <fx@gnu.org>
parents:
43162
diff
changeset
|
153 || defined __alpha__ || defined __mips__ || defined __s390__ \ |
58594
f86ad7205885
Enable no-op gcpros on ia64.
Andreas Schwab <schwab@suse.de>
parents:
56501
diff
changeset
|
154 || defined __arm__ || defined __powerpc__ || defined __amd64__ \ |
103190
21a9a415c6d0
Make GCPROs and UNGCPRO no-ops also on SuperH.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
100951
diff
changeset
|
155 || defined __ia64__ || defined __sh__ |
28378
65fca17fb602
(GC_SETJMP_WORKS): Define for i386, sparc, m68k, alpha.
Dave Love <fx@gnu.org>
parents:
27679
diff
changeset
|
156 #define GC_SETJMP_WORKS 1 |
34470
286c73f656a1
(GC_MARK_STACK): Define as GC_MAKE_GCPROS_NOOPS.
Gerd Moellmann <gerd@gnu.org>
parents:
33654
diff
changeset
|
157 #define GC_MARK_STACK GC_MAKE_GCPROS_NOOPS |
43162
a62b272dc382
(GC_LISP_OBJECT_ALIGNMENT): Define to 2 for m68k.
Andreas Schwab <schwab@suse.de>
parents:
43071
diff
changeset
|
158 #ifdef __mc68000__ |
a62b272dc382
(GC_LISP_OBJECT_ALIGNMENT): Define to 2 for m68k.
Andreas Schwab <schwab@suse.de>
parents:
43071
diff
changeset
|
159 #define GC_LISP_OBJECT_ALIGNMENT 2 |
28378
65fca17fb602
(GC_SETJMP_WORKS): Define for i386, sparc, m68k, alpha.
Dave Love <fx@gnu.org>
parents:
27679
diff
changeset
|
160 #endif |
58594
f86ad7205885
Enable no-op gcpros on ia64.
Andreas Schwab <schwab@suse.de>
parents:
56501
diff
changeset
|
161 #ifdef __ia64__ |
f86ad7205885
Enable no-op gcpros on ia64.
Andreas Schwab <schwab@suse.de>
parents:
56501
diff
changeset
|
162 #define GC_MARK_SECONDARY_STACK() \ |
f86ad7205885
Enable no-op gcpros on ia64.
Andreas Schwab <schwab@suse.de>
parents:
56501
diff
changeset
|
163 do { \ |
f86ad7205885
Enable no-op gcpros on ia64.
Andreas Schwab <schwab@suse.de>
parents:
56501
diff
changeset
|
164 extern void *__libc_ia64_register_backing_store_base; \ |
f86ad7205885
Enable no-op gcpros on ia64.
Andreas Schwab <schwab@suse.de>
parents:
56501
diff
changeset
|
165 __builtin_ia64_flushrs (); \ |
f86ad7205885
Enable no-op gcpros on ia64.
Andreas Schwab <schwab@suse.de>
parents:
56501
diff
changeset
|
166 mark_memory (__libc_ia64_register_backing_store_base, \ |
74043
2bd7a6d6a83f
(GC_MARK_SECONDARY_STACK): Update call to
Andreas Schwab <schwab@suse.de>
parents:
73073
diff
changeset
|
167 __builtin_ia64_bsp (), 0); \ |
58594
f86ad7205885
Enable no-op gcpros on ia64.
Andreas Schwab <schwab@suse.de>
parents:
56501
diff
changeset
|
168 } while (0) |
f86ad7205885
Enable no-op gcpros on ia64.
Andreas Schwab <schwab@suse.de>
parents:
56501
diff
changeset
|
169 #endif |
43162
a62b272dc382
(GC_LISP_OBJECT_ALIGNMENT): Define to 2 for m68k.
Andreas Schwab <schwab@suse.de>
parents:
43071
diff
changeset
|
170 #endif |
52401 | 171 |
172 /* arch-tag: 6244ea2a-abd0-44ec-abec-ff3dcc9afea9 | |
173 (do not change this comment) */ |