Fix aborts in GC under GC_CHECK_MARKED_OBJECTS
[emacs.git] / admin / CPP-DEFINES
blob487c1501bb9fbac8265f0179027d054daca9d47a
1 Here are some of the cpp macros used, together with some short explanation
2 of their use.  Feel free to add more macros and more categories.
3 Most of these are from config.in, so it's probably better to put the
4 explanations in that file.  Ideally, everything would be defined and
5 documented in config.in, and this file would not be necessary.
8 ** Distinguishing OSes **
10 AIX
11 _AIX
12 CYGWIN          Compiling the Cygwin port.
13 __CYGWIN__      Ditto
14 GNU_LINUX
15 HPUX
16 MSDOS           Compiling the MS-DOS port.
17 __MSDOS__       Ditto.
18 __DJGPP_MINOR__ Minor version number of the DJGPP library; used only in msdos.c and dosfns.c.
19 DOS_NT          Compiling for either the MS-DOS or native MS-Windows port.
20 WINDOWSNT       Compiling the native MS-Windows (W32) port.
21 __MINGW32__     Compiling the W32 port with the MinGW or MinGW-w64 ports of GCC.
22 _MSC_VER        Compiling the W32 port with the Microsoft C compiler.
23 MINGW_W64       Compiling the W32 port with the MinGW-w64 port of GCC.
24 DARWIN_OS       Compiling on macOS or pure Darwin (and using s/darwin.h).
25 SOLARIS2
26 USG
27 USG5_4
29 ** Distinguishing GUIs **
31 HAVE_NTGUI      Use the native W32 GUI for windows, frames, menus&scrollbars.
32 HAVE_NS         Use the NeXT/OpenStep/Cocoa UI under macOS or GNUstep.
33 NS_IMPL_GNUSTEP Compile support for GNUstep implementation of NS GUI API.
34 NS_IMPL_COCOA   Compile support for Cocoa (Apple) implementation of NS GUI API.
35 HAVE_X11        Compile support for the X11 GUI.
36 HAVE_X_WINDOWS  Compile support for X Window system
37   (It looks like, nowadays, if HAVE_X11 is set, HAVE_X_WINDOWS must
38    be, and vice versa.  At least, this is true for configure, and
39    msdos; not sure about nt.)
40 HAVE_X11R6
41 HAVE_X11R6_XIM
42 HAVE_X11XTR6
43 USE_LUCID       Use the Lucid toolkit for menus&scrollbars.  Requires HAVE_X11.
44 USE_MOTIF       Use the Motif toolkit for menus&scrollbars.  Requires HAVE_X11.
45 USE_GTK         Use the Gtk   toolkit for menus&scrollbars.  Requires HAVE_X11.
47 ** Frame types **
49 FRAME_TERMCAP_P A tty (character terminal) frame.
50 FRAME_X_P       A frame on X Window system.
51 FRAME_MSDOS_P   An MS-DOS frame (used only by the DOS port).
52 FRAME_W32_P     A frame using native MS-Windows GUI.
53 FRAME_WINDOW_P  A GUI frame (like X, w32, etc.)
55 ** Support for accessing other processes on the system **
57 HAVE_PROCFS     The /proc filesystem is supported.
59 ** Compile-time options **
61 REL_ALLOC       Compile in the relocatable memory allocator ralloc.c.
62 SYSTEM_MALLOC   Use the system library's malloc.
63 subprocesses    System can use subprocesses (for M-x shell for example).
64                 Defined by default, only MSDOS undefines it.
65 DEBUG_LISP_OBJECT_TYPE Define it in lisp.h enable compile time checks
66                        on Lisp_Object use.
68 ** System specific macros
69 FIRST_PTY_LETTER
70 HAVE_PTYS
71 INTERRUPT_INPUT
72 NARROWPROTO
73 SEPCHAR
74 SYSTEM_TYPE
76 ** Misc macros
77 USER_FULL_NAME   If defined, overrides the default pw->pw_gecos for
78 getting at the full user name.  Only MSDOS overrides the default.
80 ** Miscellaneous defines.  Some of these might not be used in the code
81 anymore, so they can be removed.
83 AMPERSAND_FULL_NAME
84 BROKEN_DATAGRAM_SOCKETS
85 BROKEN_FIONREAD
86 BROKEN_GET_CURRENT_DIR_NAME
87 BROKEN_PTY_READ_AFTER_EAGAIN
88 DEFAULT_SOUND_DEVICE
89 DEVICE_SEP
90 DIRECTORY_SEP
91 DONT_REOPEN_PTY
92 DOUG_LEA_MALLOC
93 EMACS_CONFIGURATION
94 EMACS_CONFIG_OPTIONS
95 EMACS_INT
96 EMACS_UINT
97 GC_MARK_SECONDARY_STACK
98 GC_MARK_STACK
99 GC_SETJMP_WORKS
100 GNU_MALLOC
101 HAVE_AIX_SMT_EXP
102 HAVE_ALARM
103 HAVE_ALLOCA
104 HAVE_ALLOCA_H
105 HAVE_ALSA
106 HAVE_ATTRIBUTE_ALIGNED
107 HAVE_BDFFONT
108 HAVE_BOXES
109 HAVE_C99_STRTOLD
110 HAVE_CFMAKERAW
111 HAVE_CFSETSPEED
112 HAVE_CLOCK_GETTIME
113 HAVE_CLOCK_SETTIME
114 HAVE_COFF_H
115 HAVE_COM_ERR_H
116 HAVE_COPYSIGN
117 HAVE_DBUS
118 HAVE_DBUS_TYPE_IS_VALID
119 HAVE_DBUS_VALIDATE_BUS_NAME
120 HAVE_DBUS_VALIDATE_INTERFACE
121 HAVE_DBUS_VALIDATE_MEMBER
122 HAVE_DBUS_VALIDATE_PATH
123 HAVE_DBUS_WATCH_GET_UNIX_FD
124 HAVE_DECL_GETENV
125 HAVE_DECL_LOCALTIME_R
126 HAVE_DECL_STRMODE
127 HAVE_DECL_STRTOIMAX
128 HAVE_DECL_STRTOLL
129 HAVE_DECL_STRTOULL
130 HAVE_DECL_STRTOUMAX
131 HAVE_DECL_SYS_SIGLIST
132 HAVE_DECL_TZNAME
133 HAVE_DECL___SYS_SIGLIST
134 HAVE_DIALOGS
135 HAVE_DIFFTIME
136 HAVE_DUP2
137 HAVE_ENDGRENT
138 HAVE_ENDPWENT
139 HAVE_ENVIRON_DECL
140 HAVE_EUIDACCESS
141 HAVE_FORK
142 HAVE_FREEIFADDRS
143 HAVE_FREETYPE
144 HAVE_FSEEKO
145 HAVE_FUTIMENS
146 HAVE_FUTIMES
147 HAVE_FUTIMESAT
148 HAVE_GAI_STRERROR
149 HAVE_GCONF
150 HAVE_GETDELIM
151 HAVE_GETGRENT
152 HAVE_GETHOSTNAME
153 HAVE_GETIFADDRS
154 HAVE_GETLINE
155 HAVE_GETLOADAVG
156 HAVE_GETOPT_H
157 HAVE_GETOPT_LONG_ONLY
158 HAVE_GETPAGESIZE
159 HAVE_GETPT
160 HAVE_GETPWENT
161 HAVE_GETRLIMIT
162 HAVE_GETRUSAGE
163 HAVE_GETSOCKNAME
164 HAVE_GETTIMEOFDAY
165 HAVE_GET_CURRENT_DIR_NAME
166 HAVE_GHOSTSCRIPT
167 HAVE_GIF
168 HAVE_GNUTLS
169 HAVE_GPM
170 HAVE_GRANTPT
171 HAVE_GSETTINGS
172 HAVE_GTK3
173 HAVE_GTK_ADJUSTMENT_GET_PAGE_SIZE
174 HAVE_GTK_DIALOG_GET_ACTION_AREA
175 HAVE_GTK_FILE_SELECTION_NEW
176 HAVE_GTK_MAIN
177 HAVE_GTK_MULTIDISPLAY
178 HAVE_GTK_ORIENTABLE_SET_ORIENTATION
179 HAVE_GTK_WIDGET_GET_MAPPED
180 HAVE_GTK_WIDGET_GET_SENSITIVE
181 HAVE_GTK_WIDGET_GET_WINDOW
182 HAVE_GTK_WIDGET_SET_HAS_WINDOW
183 HAVE_GTK_WINDOW_SET_HAS_RESIZE_GRIP
184 HAVE_G_TYPE_INIT
185 HAVE_IFADDRS_H
186 HAVE_IMAGEMAGICK
187 HAVE_INET_SOCKETS
188 HAVE_INTTYPES_H
189 HAVE_JPEG
190 HAVE_KERBEROSIV_KRB_H
191 HAVE_KERBEROS_KRB_H
192 HAVE_KRB5_ERROR_E_TEXT
193 HAVE_KRB5_ERROR_TEXT
194 HAVE_KRB5_H
195 HAVE_KRB_H
196 HAVE_LANGINFO_CODESET
197 HAVE_LIBDGC
198 HAVE_LIBKSTAT
199 HAVE_LIBLOCKFILE
200 HAVE_LIBMAIL
201 HAVE_LIBOTF
202 HAVE_LIBPERFSTAT
203 HAVE_LIBPNG_PNG_H
204 HAVE_LIBSELINUX
205 HAVE_LIBXML2
206 HAVE_LIBXMU
207 HAVE_LOCALTIME_R
208 HAVE_LOCAL_SOCKETS
209 HAVE_LONG_FILE_NAMES
210 HAVE_LONG_LONG_INT
211 HAVE_LRAND48
212 HAVE_LSTAT
213 HAVE_LUTIMES
214 HAVE_M17N_FLT
215 HAVE_MACHINE_SOUNDCARD_H
216 HAVE_MACH_MACH_H
217 HAVE_MAGICKEXPORTIMAGEPIXELS
218 HAVE_MAGICKMERGEIMAGELAYERS
219 HAVE_MAILLOCK_H
220 HAVE_MALLOC_MALLOC_H
221 HAVE_MATHERR
222 HAVE_MBSTATE_T
223 HAVE_MEMCMP
224 HAVE_MEMMOVE
225 HAVE_MEMORY_H
226 HAVE_MEMSET
227 HAVE_MENUS
228 HAVE_MKSTEMP
229 HAVE_MMAP
230 HAVE_MULTILINGUAL_MENU
231 HAVE_NANOTIME
232 HAVE_NET_IF_DL_H
233 HAVE_NET_IF_H
234 HAVE_NLIST_H
235 HAVE_OTF_GET_VARIATION_GLYPHS
236 HAVE_PERSONALITY_ADDR_NO_RANDOMIZE
237 HAVE_PNG
238 HAVE_PNG_H
239 HAVE_POSIX_MEMALIGN
240 HAVE_PROCFS
241 HAVE_PSELECT
242 HAVE_PSTAT_GETDYNAMIC
243 HAVE_PTHREAD
244 HAVE_PTHREAD_H
245 HAVE_PTHREAD_SIGMASK
246 HAVE_PTYS
247 HAVE_PTY_H
248 HAVE_PWD_H
249 HAVE_RANDOM
250 HAVE_READLINK
251 HAVE_READLINKAT
252 HAVE_RECVFROM
253 HAVE_RINT
254 HAVE_RSVG
255 HAVE_SELECT
256 HAVE_SENDTO
257 HAVE_SEQPACKET
258 HAVE_SETITIMER
259 HAVE_SETLOCALE
260 HAVE_SETRLIMIT
261 HAVE_SHARED_GAME_DIR
262 HAVE_SHUTDOWN
263 HAVE_SIGNED_${GLTYPE}
264 HAVE_SIGNED_SIG_ATOMIC_T
265 HAVE_SIGNED_WCHAR_T
266 HAVE_SIGNED_WINT_T
267 HAVE_SIGSET_T
268 HAVE_SNPRINTF
269 HAVE_SOCKETS
270 HAVE_SOUND
271 HAVE_SOUNDCARD_H
272 HAVE_STDINT_H
273 HAVE_STDIO_EXT_H
274 HAVE_STDLIB_H
275 HAVE_STLIB_H_1
276 HAVE_STRINGS_H
277 HAVE_STRING_H
278 HAVE_STRNCASECMP
279 HAVE_STRSIGNAL
280 HAVE_STRTOIMAX
281 HAVE_STRTOLL
282 HAVE_STRTOULL
283 HAVE_STRTOUMAX
284 HAVE_STRUCT_ERA_ENTRY
285 HAVE_STRUCT_IFREQ_IFR_ADDR
286 HAVE_STRUCT_IFREQ_IFR_ADDR_SA_LEN
287 HAVE_STRUCT_IFREQ_IFR_BROADADDR
288 HAVE_STRUCT_IFREQ_IFR_FLAGS
289 HAVE_STRUCT_IFREQ_IFR_HWADDR
290 HAVE_STRUCT_IFREQ_IFR_NETMASK
291 HAVE_STRUCT_NLIST_N_UN_N_NAME
292 HAVE_STRUCT_STAT_ST_ATIMENSEC
293 HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC
294 HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC
295 HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC
296 HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC
297 HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC
298 HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC
299 HAVE_STRUCT_TIMEZONE
300 HAVE_STRUCT_TM_TM_ZONE
301 HAVE_STRUCT_UTIMBUF
302 HAVE_ST_DM_MODE
303 HAVE_SYMLINK
304 HAVE_SYNC
305 HAVE_SYS_BITYPES_H
306 HAVE_SYS_INTTYPES_H
307 HAVE_SYS_LOADAVG_H
308 HAVE_SYS_PARAM_H
309 HAVE_SYS_RESOURCE_H
310 HAVE_SYS_SELECT_H
311 HAVE_SYS_SOCKET_H
312 HAVE_SYS_SOUNDCARD_H
313 HAVE_SYS_STAT_H
314 HAVE_SYS_SYSTEMINFO_H
315 HAVE_SYS_TIMEB_H
316 HAVE_SYS_TIME_H
317 HAVE_SYS_TYPES_H
318 HAVE_SYS_UN_H
319 HAVE_SYS_UTSNAME_H
320 HAVE_SYS_VLIMIT_H
321 HAVE_SYS_WAIT_H
322 HAVE_TCATTR
323 HAVE_TERM_H
324 HAVE_TIFF
325 HAVE_TIMEVAL
326 HAVE_TM_GMTOFF
327 HAVE_TM_ZONE
328 HAVE_TOUCHLOCK
329 HAVE_TZNAME
330 HAVE_TZSET
331 HAVE_UNSIGNED_LONG_LONG_INT
332 HAVE_UTIL_H
333 HAVE_UTIMENSAT
334 HAVE_UTIMES
335 HAVE_UTIME_H
336 HAVE_UTMP_H
337 HAVE_VFORK
338 HAVE_VFORK_H
339 HAVE_WCHAR_H
340 HAVE_WCHAR_T
341 HAVE_WINDOW_SYSTEM
342 HAVE_WINSOCK2_H
343 HAVE_WORKING_FORK
344 HAVE_WORKING_UTIMES
345 HAVE_WORKING_VFORK
346 HAVE_WS2TCPIP_H
347 HAVE_XAW3D
348 HAVE_XFT
349 HAVE_XIM
350 HAVE_XPM
351 HAVE_XRMSETDATABASE
352 HAVE_XSCREENNUMBEROFSCREEN
353 HAVE_XSCREENRESOURCESTRING
354 HAVE_X_I18N
355 HAVE_X_MENU
356 HAVE_X_SM
357 HAVE_X_WINDOWS
358 HAVE__BOOL
359 HAVE__FTIME
360 HAVE___BUILTIN_UNWIND_INIT
361 HAVE___EXECUTABLE_START
362 HAVE___FPENDING
363 INTERNAL_TERMINAL
364 IS_ANY_SEP
365 IS_DIRECTORY_SEP
366 MAIL_USE_FLOCK
367 MAIL_USE_LOCKF
368 MAIL_USE_POP
369 MAIL_USE_SYSTEM_LOCK
370 MAXPATHLEN
371 NLIST_STRUCT
372 NO_EDITRES
373 NSIG
374 NSIG_MINIMUM
375 NULL_DEVICE
376 PAGESIZE
377 PTY_ITERATION
378 PTY_NAME_SPRINTF
379 PTY_OPEN
380 PTY_TTY_NAME_SPRINTF
381 PURESIZE
382 RUN_TIME_REMAP
383 SETUP_SLAVE_PTY
384 SIGNALS_VIA_CHARACTERS
385 STDC_HEADERS
386 SYSTEM_PURESIZE_EXTRA
387 SYSTEM_MALLOC
388 TAB3
389 TABDLY
390 TERM
391 TIME_WITH_SYS_TIME
392 TIOCSIGSEND
393 TM_IN_SYS_TIME
394 UNIX98_PTYS
395 USE_TOOLKIT_SCROLL_BARS
396 USG_SUBTTY_WORKS
397 VALBITS
398 XOS_NEEDS_TIME_H
399 _FILE_OFFSET_BITS
400 _LP64
401 _longjmp
402 _setjmp
403 abort
404 alloca
405 close
406 emacs
407 free
408 gmtime
409 localtime
410 malloc
411 random
412 read
413 realloc
414 select
415 umask
416 vfork
419 src/sysdep.c:
420 write
422 src/syssignal.h:
423 signal
424 sigmask
425 sigsetmask
428 lib/dup2.c:
429 dup2
431 lib/signal.h:
432 signal
434 lib/stdio.h:
435 fdopen
436 fopen
437 fwrite
438 popen
439 rename
441 lib/stdlib.h:
442 calloc
443 srandom     (conf_post.h may undo)
445 lib/strftime.c:
446 tzname
447 tzset
449 lib/sys/stat.h:
450 mkdir
452 lib/unistd.h:
453 chown
455 dup2
456 ftruncate
457 isatty
458 link
459 lseek
460 pipe
461 rmdir
462 sleep
463 unlink
466 MS DOS stuff:
468 _NAIVE_DOS_REGS
471 MS stuff:
473 USE_CRT_DLL
475 ms-w32.h:
476 DebPrint
477 EMACSDEBUG
478 MUST_UNDEF__STDC__
480 _VARARGS_
481 _WINSOCKAPI_
482 _WINSOCK_H
484 access
485 calloc
486 chdir
487 chmod
488 chown
489 creat
490 ctime
492 dup2
493 execlp
494 execvp  (also emacsclient.c [WINDOWSNT])
495 fdopen
496 fileno
497 fopen
498 fsync
499 ftruncate
500 getdefdir
501 getdisk
502 getpid
503 isatty
504 kill
505 link
506 lseek
507 mkdir
508 mktemp
509 open
510 pclose
511 pipe
512 popen
513 rename
514 rmdir
515 signal
516 sleep
517 spawnve
518 strdup
519 stricmp
520 strnicmp
521 strupr
522 sys_nerr
523 tzname
524 tzset
525 umask
526 unlink
527 utimbuf
528 utime
529 wait  (also movemail.c [WINDOWSNT])
530 write
532 lib-src/ntlib:
533 access
534 chdir
535 chmod
536 creat
538 dup2
539 execlp
540 execvp
541 fdopen
542 fileno
543 fopen
544 getpid
545 index
546 isatty
547 lseek
548 mkdir
549 mktemp
550 open
551 pclose
552 pipe
553 popen
554 rmdir
555 rindex
556 sleep
557 umask
558 unlink
559 utime