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