This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perl 3.0 patch #16 (combined patch)
[perl5.git] / config.H
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  */
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           /**/
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
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
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  */
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        /**/
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
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
362 /* vfork:
363  *      This symbol, if defined, remaps the vfork routine to fork if the
364  *      vfork() routine isn't supported here.
365  */
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           /**/
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
495  *      latter approach is taken, only those flags will be tested.  If the
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
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