This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perl 3.0 patch #44 patch #42, continued
[perl5.git] / config.H
CommitLineData
8d063cd8
LW
1/* config.h
2 * This file was produced by running the config.h.SH script, which
3 * gets its values from config.sh, which is generally produced by
4 * running Configure.
5 *
6 * Feel free to modify any of this as the need arises. Note, however,
7 * that running config.h.SH again will wipe out any changes you've made.
8 * For a more permanent change edit config.sh and rerun config.h.SH.
9 */
10
11
12/* EUNICE:
13 * This symbol, if defined, indicates that the program is being compiled
14 * under the EUNICE package under VMS. The program will need to handle
15 * things like files that don't go away the first time you unlink them,
16 * due to version numbering. It will also need to compensate for lack
17 * of a respectable link() command.
18 */
19/* VMS:
20 * This symbol, if defined, indicates that the program is running under
21 * VMS. It is currently only set in conjunction with the EUNICE symbol.
22 */
a687059c
LW
23/*#undef EUNICE /**/
24/*#undef VMS /**/
25
26/* BIN:
27 * This symbol holds the name of the directory in which the user wants
28 * to put publicly executable images for the package in question. It
29 * is most often a local directory such as /usr/local/bin.
30 */
31#define BIN "/usr/local/bin" /**/
32
33/* BYTEORDER:
34 * This symbol contains an encoding of the order of bytes in a long.
35 * Usual values (in octal) are 01234, 04321, 02143, 03412...
36 */
37#define BYTEORDER 01234 /**/
38
39/* CPPSTDIN:
40 * This symbol contains the first part of the string which will invoke
41 * the C preprocessor on the standard input and produce to standard
42 * output. Typical value of "cc -E" or "/lib/cpp".
43 */
44/* CPPMINUS:
45 * This symbol contains the second part of the string which will invoke
46 * the C preprocessor on the standard input and produce to standard
47 * output. This symbol will have the value "-" if CPPSTDIN needs a minus
48 * to specify standard input, otherwise the value is "".
49 */
50#define CPPSTDIN "/lib/cpp"
51#define CPPMINUS ""
52
53/* BCMP:
54 * This symbol, if defined, indicates that the bcmp routine is available
55 * to compare blocks of memory. If undefined, use memcmp. If that's
56 * not available, roll your own.
57 */
58#define BCMP /**/
59
60/* BCOPY:
61 * This symbol, if defined, indicates that the bcopy routine is available
62 * to copy blocks of memory. Otherwise you should probably use memcpy().
63 */
64#define BCOPY /**/
8d063cd8
LW
65
66/* CHARSPRINTF:
67 * This symbol is defined if this system declares "char *sprintf()" in
68 * stdio.h. The trend seems to be to declare it as "int sprintf()". It
69 * is up to the package author to declare sprintf correctly based on the
70 * symbol.
71 */
72#define CHARSPRINTF /**/
73
a687059c
LW
74/* CRYPT:
75 * This symbol, if defined, indicates that the crypt routine is available
76 * to encrypt passwords and the like.
77 */
78#define CRYPT /**/
79
80/* DOSUID:
81 * This symbol, if defined, indicates that the C program should
82 * check the script that it is executing for setuid/setgid bits, and
83 * attempt to emulate setuid/setgid on systems that have disabled
84 * setuid #! scripts because the kernel can't do it securely.
85 * It is up to the package designer to make sure that this emulation
86 * is done securely. Among other things, it should do an fstat on
87 * the script it just opened to make sure it really is a setuid/setgid
88 * script, it should make sure the arguments passed correspond exactly
89 * to the argument on the #! line, and it should not trust any
90 * subprocesses to which it must pass the filename rather than the
91 * file descriptor of the script to be executed.
92 */
93#define DOSUID /**/
94
95/* DUP2:
96 * This symbol, if defined, indicates that the dup2 routine is available
97 * to dup file descriptors. Otherwise you should use dup().
98 */
99#define DUP2 /**/
100
101/* FCHMOD:
102 * This symbol, if defined, indicates that the fchmod routine is available
103 * to change mode of opened files. If unavailable, use chmod().
104 */
105#define FCHMOD /**/
106
107/* FCHOWN:
108 * This symbol, if defined, indicates that the fchown routine is available
109 * to change ownership of opened files. If unavailable, use chown().
110 */
111#define FCHOWN /**/
112
113/* FCNTL:
114 * This symbol, if defined, indicates to the C program that it should
115 * include fcntl.h.
116 */
117#define FCNTL /**/
118
119/* FLOCK:
120 * This symbol, if defined, indicates that the flock() routine is
121 * available to do file locking.
122 */
123#define FLOCK /**/
124
125/* GETGROUPS:
126 * This symbol, if defined, indicates that the getgroups() routine is
127 * available to get the list of process groups. If unavailable, multiple
128 * groups are probably not supported.
129 */
130#define GETGROUPS /**/
131
132/* GETHOSTENT:
133 * This symbol, if defined, indicates that the gethostent() routine is
134 * available to lookup host names in some data base or other.
135 */
136#define GETHOSTENT /**/
137
138/* GETPGRP:
139 * This symbol, if defined, indicates that the getpgrp() routine is
140 * available to get the current process group.
141 */
142#define GETPGRP /**/
143
144/* GETPRIORITY:
145 * This symbol, if defined, indicates that the getpriority() routine is
146 * available to get a process's priority.
147 */
148#define GETPRIORITY /**/
149
150/* HTONS:
151 * This symbol, if defined, indicates that the htons routine (and friends)
152 * are available to do network order byte swapping.
153 */
154/* HTONL:
155 * This symbol, if defined, indicates that the htonl routine (and friends)
156 * are available to do network order byte swapping.
157 */
158/* NTOHS:
159 * This symbol, if defined, indicates that the ntohs routine (and friends)
160 * are available to do network order byte swapping.
161 */
162/* NTOHL:
163 * This symbol, if defined, indicates that the ntohl routine (and friends)
164 * are available to do network order byte swapping.
165 */
166#define HTONS /**/
167#define HTONL /**/
168#define NTOHS /**/
169#define NTOHL /**/
170
8d063cd8
LW
171/* index:
172 * This preprocessor symbol is defined, along with rindex, if the system
173 * uses the strchr and strrchr routines instead.
174 */
175/* rindex:
176 * This preprocessor symbol is defined, along with index, if the system
177 * uses the strchr and strrchr routines instead.
178 */
a687059c
LW
179/*#undef index strchr /* cultural */
180/*#undef rindex strrchr /* differences? */
181
182/* IOCTL:
183 * This symbol, if defined, indicates that sys/ioctl.h exists and should
184 * be included.
185 */
186#define IOCTL /**/
187
188/* KILLPG:
189 * This symbol, if defined, indicates that the killpg routine is available
190 * to kill process groups. If unavailable, you probably should use kill
191 * with a negative process number.
192 */
193#define KILLPG /**/
194
195/* MEMCMP:
196 * This symbol, if defined, indicates that the memcmp routine is available
197 * to compare blocks of memory. If undefined, roll your own.
198 */
199#define MEMCMP /**/
200
201/* MEMCPY:
202 * This symbol, if defined, indicates that the memcpy routine is available
203 * to copy blocks of memory. Otherwise you should probably use bcopy().
204 * If neither is defined, roll your own.
205 */
206#define MEMCPY /**/
207
208/* MKDIR:
209 * This symbol, if defined, indicates that the mkdir routine is available
210 * to create directories. Otherwise you should fork off a new process to
211 * exec /bin/mkdir.
212 */
213#define MKDIR /**/
214
215/* NDBM:
216 * This symbol, if defined, indicates that ndbm.h exists and should
217 * be included.
218 */
219#define NDBM /**/
220
221/* ODBM:
222 * This symbol, if defined, indicates that dbm.h exists and should
223 * be included.
224 */
225#define ODBM /**/
226
227/* READDIR:
228 * This symbol, if defined, indicates that the readdir routine is available
229 * from the C library to create directories.
230 */
231#define READDIR /**/
232
233/* RENAME:
234 * This symbol, if defined, indicates that the rename routine is available
235 * to rename files. Otherwise you should do the unlink(), link(), unlink()
236 * trick.
237 */
238#define RENAME /**/
239
240/* RMDIR:
241 * This symbol, if defined, indicates that the rmdir routine is available
242 * to remove directories. Otherwise you should fork off a new process to
243 * exec /bin/rmdir.
244 */
245#define RMDIR /**/
246
247/* SETEGID:
248 * This symbol, if defined, indicates that the setegid routine is available
249 * to change the effective gid of the current program.
250 */
251#define SETEGID /**/
252
253/* SETEUID:
254 * This symbol, if defined, indicates that the seteuid routine is available
255 * to change the effective uid of the current program.
256 */
257#define SETEUID /**/
258
259/* SETPGRP:
260 * This symbol, if defined, indicates that the setpgrp() routine is
261 * available to set the current process group.
262 */
263#define SETPGRP /**/
264
265/* SETPRIORITY:
266 * This symbol, if defined, indicates that the setpriority() routine is
267 * available to set a process's priority.
268 */
269#define SETPRIORITY /**/
270
271/* SETREGID:
272 * This symbol, if defined, indicates that the setregid routine is available
273 * to change the real and effective gid of the current program.
274 */
275#define SETREGID /**/
276
277/* SETREUID:
278 * This symbol, if defined, indicates that the setreuid routine is available
279 * to change the real and effective uid of the current program.
280 */
281#define SETREUID /**/
282
283/* SETRGID:
284 * This symbol, if defined, indicates that the setrgid routine is available
285 * to change the real gid of the current program.
286 */
287#define SETRGID /**/
288
289/* SETRUID:
290 * This symbol, if defined, indicates that the setruid routine is available
291 * to change the real uid of the current program.
292 */
293#define SETRUID /**/
294
295/* SOCKET:
296 * This symbol, if defined, indicates that the BSD socket interface is
297 * supported.
298 */
299/* SOCKETPAIR:
300 * This symbol, if defined, indicates that the BSD socketpair call is
301 * supported.
302 */
303/* OLDSOCKET:
304 * This symbol, if defined, indicates that the 4.1c BSD socket interface
305 * is supported instead of the 4.2/4.3 BSD socket interface.
306 */
307#define SOCKET /**/
308
309#define SOCKETPAIR /**/
310
311/*#undef OLDSOCKET /**/
312
313/* STATBLOCKS:
314 * This symbol is defined if this system has a stat structure declaring
315 * st_blksize and st_blocks.
316 */
317#define STATBLOCKS /**/
318
319/* STDSTDIO:
320 * This symbol is defined if this system has a FILE structure declaring
321 * _ptr and _cnt in stdio.h.
322 */
323#define STDSTDIO /**/
8d063cd8
LW
324
325/* STRUCTCOPY:
326 * This symbol, if defined, indicates that this C compiler knows how
327 * to copy structures. If undefined, you'll need to use a block copy
328 * routine of some sort instead.
329 */
330#define STRUCTCOPY /**/
331
a687059c
LW
332/* SYMLINK:
333 * This symbol, if defined, indicates that the symlink routine is available
334 * to create symbolic links.
335 */
336#define SYMLINK /**/
337
338/* SYSCALL:
339 * This symbol, if defined, indicates that the syscall routine is available
340 * to call arbitrary system calls. If undefined, that's tough.
341 */
342#define SYSCALL /**/
343
344/* TMINSYS:
345 * This symbol is defined if this system declares "struct tm" in
346 * in <sys/time.h> rather than <time.h>. We can't just say
347 * -I/usr/include/sys because some systems have both time files, and
348 * the -I trick gets the wrong one.
349 */
350/* I_SYSTIME:
351 * This symbol is defined if this system has the file <sys/time.h>.
352 */
353/*#undef TMINSYS /**/
354#define I_SYSTIME /**/
355
356/* VARARGS:
357 * This symbol, if defined, indicates to the C program that it should
358 * include varargs.h.
359 */
360#define VARARGS /**/
361
8d063cd8
LW
362/* vfork:
363 * This symbol, if defined, remaps the vfork routine to fork if the
364 * vfork() routine isn't supported here.
365 */
a687059c
LW
366/*#undef vfork fork /**/
367
368/* VOIDSIG:
369 * This symbol is defined if this system declares "void (*signal())()" in
370 * signal.h. The old way was to declare it as "int (*signal())()". It
371 * is up to the package author to declare things correctly based on the
372 * symbol.
373 */
374/*#undef VOIDSIG /**/
375
376/* VPRINTF:
377 * This symbol, if defined, indicates that the vprintf routine is available
378 * to printf with a pointer to an argument list. If unavailable, you
379 * may need to write your own, probably in terms of _doprnt().
380 */
381/* CHARVSPRINTF:
382 * This symbol is defined if this system has vsprintf() returning type
383 * (char*). The trend seems to be to declare it as "int vsprintf()". It
384 * is up to the package author to declare vsprintf correctly based on the
385 * symbol.
386 */
387/*#undef VPRINTF /**/
388/*#undef CHARVSPRINTF /**/
389
390/* GIDTYPE:
391 * This symbol has a value like gid_t, int, ushort, or whatever type is
392 * used to declare group ids in the kernel.
393 */
394#define GIDTYPE gid_t /**/
395
396/* I_DIRENT:
397 * This symbol, if defined, indicates to the C program that it should
398 * include dirent.h.
399 */
400/* DIRNAMLEN:
401 * This symbol, if defined, indicates to the C program that the length
402 * of directory entry names is provided by a d_namlen field. Otherwise
403 * you need to do strlen() on the d_name field.
404 */
405/*#undef I_DIRENT /**/
406#define DIRNAMLEN /**/
407
408/* I_FCNTL:
409 * This symbol, if defined, indicates to the C program that it should
410 * include fcntl.h.
411 */
412#define I_FCNTL /**/
413
414/* I_GRP:
415 * This symbol, if defined, indicates to the C program that it should
416 * include grp.h.
417 */
418#define I_GRP /**/
419
420/* I_PWD:
421 * This symbol, if defined, indicates to the C program that it should
422 * include pwd.h.
423 */
424/* PWQUOTA:
425 * This symbol, if defined, indicates to the C program that struct passwd
426 * contains pw_quota.
427 */
428/* PWAGE:
429 * This symbol, if defined, indicates to the C program that struct passwd
430 * contains pw_age.
431 */
432#define I_PWD /**/
433#define PWQUOTA /**/
434/*#undef PWAGE /**/
435
436/* I_SYSDIR:
437 * This symbol, if defined, indicates to the C program that it should
438 * include sys/dir.h.
439 */
440#define I_SYSDIR /**/
441
442/* I_SYSIOCTL:
443 * This symbol, if defined, indicates that sys/ioctl.h exists and should
444 * be included.
445 */
446#define I_SYSIOCTL /**/
447
448/* I_VARARGS:
449 * This symbol, if defined, indicates to the C program that it should
450 * include varargs.h.
451 */
452#define I_VARARGS /**/
453
454/* INTSIZE:
455 * This symbol contains the size of an int, so that the C preprocessor
456 * can make decisions based on it.
457 */
458#define INTSIZE 4 /**/
459
460/* RANDBITS:
461 * This symbol contains the number of bits of random number the rand()
462 * function produces. Usual values are 15, 16, and 31.
463 */
464#define RANDBITS 31 /**/
465
466/* SIG_NAME:
467 * This symbol contains an list of signal names in order.
468 */
469#define SIG_NAME "ZERO","HUP","INT","QUIT","ILL","TRAP","IOT","EMT","FPE","KILL","BUS","SEGV","SYS","PIPE","ALRM","TERM","URG","STOP","TSTP","CONT","CHLD","TTIN","TTOU","IO","XCPU","XFSZ","VTALRM","PROF","WINCH","USR1","USR2" /**/
470
471/* STDCHAR:
472 * This symbol is defined to be the type of char used in stdio.h.
473 * It has the values "unsigned char" or "char".
474 */
475#define STDCHAR char /**/
476
477/* UIDTYPE:
478 * This symbol has a value like uid_t, int, ushort, or whatever type is
479 * used to declare user ids in the kernel.
480 */
481#define UIDTYPE uid_t /**/
8d063cd8
LW
482
483/* VOIDFLAGS:
484 * This symbol indicates how much support of the void type is given by this
485 * compiler. What various bits mean:
486 *
487 * 1 = supports declaration of void
488 * 2 = supports arrays of pointers to functions returning void
489 * 4 = supports comparisons between pointers to void functions and
490 * addresses of void functions
491 *
492 * The package designer should define VOIDUSED to indicate the requirements
493 * of the package. This can be done either by #defining VOIDUSED before
494 * including config.h, or by defining defvoidused in Myinit.U. If the
a687059c 495 * latter approach is taken, only those flags will be tested. If the
8d063cd8
LW
496 * level of void support necessary is not present, defines void to int.
497 */
498#ifndef VOIDUSED
499#define VOIDUSED 7
500#endif
501#define VOIDFLAGS 7
502#if (VOIDFLAGS & VOIDUSED) != VOIDUSED
503#define void int /* is void to be avoided? */
504#define M_VOID /* Xenix strikes again */
505#endif
506
a687059c
LW
507/* PRIVLIB:
508 * This symbol contains the name of the private library for this package.
509 * The library is private in the sense that it needn't be in anyone's
510 * execution path, but it should be accessible by the world. The program
511 * should be prepared to do ~ expansion.
512 */
513#define PRIVLIB "/usr/local/lib/perl" /**/
514