win32 build fixes
[p5sagit/p5-mst-13.2.git] / win32 / config_H.gc
CommitLineData
a835ef8a 1/*
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 *
924b3ec4 10 * $Id: Config_h.U,v 3.0.1.5 1997/02/28 14:57:43 ram Exp $
a835ef8a 11 */
12
924b3ec4 13/*
14 * Package name : perl5
07ba5892 15 * Source directory :
924b3ec4 16 * Configuration time: undef
17 * Configured by : gsar
18 * Target system :
a835ef8a 19 */
20
21#ifndef _config_h_
22#define _config_h_
23
924b3ec4 24/* LOC_SED:
25 * This symbol holds the complete pathname to the sed program.
a835ef8a 26 */
924b3ec4 27#define LOC_SED "" /**/
a835ef8a 28
29/* BIN:
30 * This symbol holds the path of the bin directory where the package will
31 * be installed. Program must be prepared to deal with ~name substitution.
32 */
33/* BIN_EXP:
34 * This symbol is the filename expanded version of the BIN symbol, for
35 * programs that do not want to deal with that at run-time.
36 */
ba7a42cf 37#define BIN "c:\\perl\\5.00557\\bin\\MSWin32-x86" /**/
38#define BIN_EXP "c:\\perl\\5.00557\\bin\\MSWin32-x86" /**/
a835ef8a 39
a835ef8a 40/* HAS_ALARM:
41 * This symbol, if defined, indicates that the alarm routine is
42 * available.
43 */
44/*#define HAS_ALARM /**/
45
46/* HASATTRIBUTE:
47 * This symbol indicates the C compiler can check for function attributes,
48 * such as printf formats. This is normally only supported by GNU cc.
49 */
50#define HASATTRIBUTE /**/
51#ifndef HASATTRIBUTE
52#define __attribute__(_arg_)
53#endif
54
55/* HAS_BCMP:
56 * This symbol is defined if the bcmp() routine is available to
57 * compare blocks of memory.
58 */
59/*#define HAS_BCMP /**/
60
61/* HAS_BCOPY:
62 * This symbol is defined if the bcopy() routine is available to
63 * copy blocks of memory.
64 */
65/*#define HAS_BCOPY /**/
66
67/* HAS_BZERO:
68 * This symbol is defined if the bzero() routine is available to
69 * set a memory block to 0.
70 */
71/*#define HAS_BZERO /**/
72
a835ef8a 73/* HAS_CHOWN:
74 * This symbol, if defined, indicates that the chown routine is
75 * available.
76 */
77/*#define HAS_CHOWN /**/
78
79/* HAS_CHROOT:
80 * This symbol, if defined, indicates that the chroot routine is
81 * available.
82 */
83/*#define HAS_CHROOT /**/
84
85/* HAS_CHSIZE:
86 * This symbol, if defined, indicates that the chsize routine is available
87 * to truncate files. You might need a -lx to get this routine.
88 */
89#define HAS_CHSIZE /**/
90
a835ef8a 91/* HASCONST:
92 * This symbol, if defined, indicates that this C compiler knows about
93 * the const type. There is no need to actually test for that symbol
94 * within your programs. The mere use of the "const" keyword will
95 * trigger the necessary tests.
96 */
97#define HASCONST /**/
98#ifndef HASCONST
99#define const
100#endif
101
102/* HAS_CRYPT:
103 * This symbol, if defined, indicates that the crypt routine is available
104 * to encrypt passwords and the like.
105 */
106/*#define HAS_CRYPT /**/
107
108/* HAS_CUSERID:
109 * This symbol, if defined, indicates that the cuserid routine is
110 * available to get character login names.
111 */
112/*#define HAS_CUSERID /**/
113
114/* HAS_DBL_DIG:
115 * This symbol, if defined, indicates that this system's <float.h>
116 * or <limits.h> defines the symbol DBL_DIG, which is the number
117 * of significant digits in a double precision number. If this
118 * symbol is not defined, a guess of 15 is usually pretty good.
119 */
120#define HAS_DBL_DIG /**/
121
122/* HAS_DIFFTIME:
123 * This symbol, if defined, indicates that the difftime routine is
124 * available.
125 */
126#define HAS_DIFFTIME /**/
127
128/* HAS_DLERROR:
129 * This symbol, if defined, indicates that the dlerror routine is
130 * available to return a string describing the last error that
131 * occurred from a call to dlopen(), dlclose() or dlsym().
132 */
133#define HAS_DLERROR /**/
134
924b3ec4 135/* SETUID_SCRIPTS_ARE_SECURE_NOW:
136 * This symbol, if defined, indicates that the bug that prevents
137 * setuid scripts from being secure is not present in this kernel.
138 */
139/* DOSUID:
140 * This symbol, if defined, indicates that the C program should
141 * check the script that it is executing for setuid/setgid bits, and
142 * attempt to emulate setuid/setgid on systems that have disabled
143 * setuid #! scripts because the kernel can't do it securely.
144 * It is up to the package designer to make sure that this emulation
145 * is done securely. Among other things, it should do an fstat on
146 * the script it just opened to make sure it really is a setuid/setgid
147 * script, it should make sure the arguments passed correspond exactly
148 * to the argument on the #! line, and it should not trust any
149 * subprocesses to which it must pass the filename rather than the
150 * file descriptor of the script to be executed.
151 */
152/*#define SETUID_SCRIPTS_ARE_SECURE_NOW /**/
153/*#define DOSUID /**/
154
a835ef8a 155/* HAS_DUP2:
156 * This symbol, if defined, indicates that the dup2 routine is
157 * available to duplicate file descriptors.
158 */
159#define HAS_DUP2 /**/
160
161/* HAS_FCHMOD:
162 * This symbol, if defined, indicates that the fchmod routine is available
163 * to change mode of opened files. If unavailable, use chmod().
164 */
165/*#define HAS_FCHMOD /**/
166
167/* HAS_FCHOWN:
168 * This symbol, if defined, indicates that the fchown routine is available
169 * to change ownership of opened files. If unavailable, use chown().
170 */
171/*#define HAS_FCHOWN /**/
172
173/* HAS_FCNTL:
174 * This symbol, if defined, indicates to the C program that
175 * the fcntl() function exists.
176 */
177/*#define HAS_FCNTL /**/
178
179/* HAS_FGETPOS:
180 * This symbol, if defined, indicates that the fgetpos routine is
181 * available to get the file position indicator, similar to ftell().
182 */
183#define HAS_FGETPOS /**/
184
185/* FLEXFILENAMES:
186 * This symbol, if defined, indicates that the system supports filenames
187 * longer than 14 characters.
188 */
189#define FLEXFILENAMES /**/
190
191/* HAS_FLOCK:
192 * This symbol, if defined, indicates that the flock routine is
193 * available to do file locking.
194 */
195#define HAS_FLOCK /**/
196
197/* HAS_FORK:
198 * This symbol, if defined, indicates that the fork routine is
199 * available.
200 */
201/*#define HAS_FORK /**/
202
203/* HAS_FSETPOS:
204 * This symbol, if defined, indicates that the fsetpos routine is
205 * available to set the file position indicator, similar to fseek().
206 */
207#define HAS_FSETPOS /**/
208
209/* HAS_GETTIMEOFDAY:
210 * This symbol, if defined, indicates that the gettimeofday() system
211 * call is available for a sub-second accuracy clock. Usually, the file
212 * <sys/resource.h> needs to be included (see I_SYS_RESOURCE).
213 * The type "Timeval" should be used to refer to "struct timeval".
214 */
215/*#define HAS_GETTIMEOFDAY /**/
216#ifdef HAS_GETTIMEOFDAY
217#define Timeval struct timeval /* Structure used by gettimeofday() */
218#endif
219
220/* HAS_GETGROUPS:
221 * This symbol, if defined, indicates that the getgroups() routine is
222 * available to get the list of process groups. If unavailable, multiple
223 * groups are probably not supported.
224 */
a835ef8a 225/*#define HAS_GETGROUPS /**/
a835ef8a 226
a835ef8a 227/* HAS_GETLOGIN:
228 * This symbol, if defined, indicates that the getlogin routine is
229 * available to get the login name.
230 */
e34ffe5a 231#define HAS_GETLOGIN /**/
a835ef8a 232
924b3ec4 233/* HAS_GETPGID:
234 * This symbol, if defined, indicates to the C program that
235 * the getpgid(pid) function is available to get the
236 * process group id.
237 */
238/*#define HAS_GETPGID /**/
239
240/* HAS_GETPGRP:
241 * This symbol, if defined, indicates that the getpgrp routine is
242 * available to get the current process group.
243 */
244/* USE_BSD_GETPGRP:
245 * This symbol, if defined, indicates that getpgrp needs one
246 * arguments whereas USG one needs none.
247 */
248/*#define HAS_GETPGRP /**/
249/*#define USE_BSD_GETPGRP /**/
250
a835ef8a 251/* HAS_GETPGRP2:
252 * This symbol, if defined, indicates that the getpgrp2() (as in DG/UX)
253 * routine is available to get the current process group.
254 */
255/*#define HAS_GETPGRP2 /**/
256
257/* HAS_GETPPID:
258 * This symbol, if defined, indicates that the getppid routine is
259 * available to get the parent process ID.
260 */
261/*#define HAS_GETPPID /**/
262
263/* HAS_GETPRIORITY:
264 * This symbol, if defined, indicates that the getpriority routine is
265 * available to get a process's priority.
266 */
267/*#define HAS_GETPRIORITY /**/
268
924b3ec4 269/* HAS_INET_ATON:
270 * This symbol, if defined, indicates to the C program that the
271 * inet_aton() function is available to parse IP address "dotted-quad"
272 * strings.
a835ef8a 273 */
924b3ec4 274/*#define HAS_INET_ATON /**/
a835ef8a 275
276/* HAS_KILLPG:
277 * This symbol, if defined, indicates that the killpg routine is available
278 * to kill process groups. If unavailable, you probably should use kill
279 * with a negative process number.
280 */
281/*#define HAS_KILLPG /**/
282
283/* HAS_LINK:
284 * This symbol, if defined, indicates that the link routine is
285 * available to create hard links.
286 */
287/*#define HAS_LINK /**/
288
289/* HAS_LOCALECONV:
290 * This symbol, if defined, indicates that the localeconv routine is
291 * available for numeric and monetary formatting conventions.
292 */
293#define HAS_LOCALECONV /**/
294
295/* HAS_LOCKF:
296 * This symbol, if defined, indicates that the lockf routine is
297 * available to do file locking.
298 */
299/*#define HAS_LOCKF /**/
300
301/* HAS_LSTAT:
302 * This symbol, if defined, indicates that the lstat routine is
303 * available to do file stats on symbolic links.
304 */
305/*#define HAS_LSTAT /**/
306
307/* HAS_MBLEN:
308 * This symbol, if defined, indicates that the mblen routine is available
309 * to find the number of bytes in a multibye character.
310 */
311#define HAS_MBLEN /**/
312
313/* HAS_MBSTOWCS:
314 * This symbol, if defined, indicates that the mbstowcs routine is
315 * available to covert a multibyte string into a wide character string.
316 */
317#define HAS_MBSTOWCS /**/
318
319/* HAS_MBTOWC:
320 * This symbol, if defined, indicates that the mbtowc routine is available
321 * to covert a multibyte to a wide character.
322 */
323#define HAS_MBTOWC /**/
324
325/* HAS_MEMCMP:
326 * This symbol, if defined, indicates that the memcmp routine is available
327 * to compare blocks of memory.
328 */
329#define HAS_MEMCMP /**/
330
331/* HAS_MEMCPY:
332 * This symbol, if defined, indicates that the memcpy routine is available
333 * to copy blocks of memory.
334 */
335#define HAS_MEMCPY /**/
336
337/* HAS_MEMMOVE:
338 * This symbol, if defined, indicates that the memmove routine is available
339 * to copy potentially overlapping blocks of memory. This should be used
340 * only when HAS_SAFE_BCOPY is not defined. If neither is there, roll your
341 * own version.
342 */
343#define HAS_MEMMOVE /**/
344
345/* HAS_MEMSET:
346 * This symbol, if defined, indicates that the memset routine is available
347 * to set blocks of memory.
348 */
349#define HAS_MEMSET /**/
350
351/* HAS_MKDIR:
352 * This symbol, if defined, indicates that the mkdir routine is available
353 * to create directories. Otherwise you should fork off a new process to
354 * exec /bin/mkdir.
355 */
356#define HAS_MKDIR /**/
357
358/* HAS_MKFIFO:
359 * This symbol, if defined, indicates that the mkfifo routine is
360 * available to create FIFOs. Otherwise, mknod should be able to
361 * do it for you. However, if mkfifo is there, mknod might require
362 * super-user privileges which mkfifo will not.
363 */
364/*#define HAS_MKFIFO /**/
365
366/* HAS_MKTIME:
367 * This symbol, if defined, indicates that the mktime routine is
368 * available.
369 */
370#define HAS_MKTIME /**/
371
c4d53692 372/* HAS_MSYNC:
373 * This symbol, if defined, indicates that the msync system call is
374 * available to synchronize a mapped file.
375 */
376/*#define HAS_MSYNC /**/
377
378/* HAS_MUNMAP:
379 * This symbol, if defined, indicates that the munmap system call is
380 * available to unmap a region, usually mapped by mmap().
381 */
382/*#define HAS_MUNMAP /**/
383
a835ef8a 384/* HAS_NICE:
385 * This symbol, if defined, indicates that the nice routine is
386 * available.
387 */
388/*#define HAS_NICE /**/
389
a835ef8a 390/* HAS_PATHCONF:
391 * This symbol, if defined, indicates that pathconf() is available
392 * to determine file-system related limits and options associated
393 * with a given filename.
394 */
395/* HAS_FPATHCONF:
396 * This symbol, if defined, indicates that pathconf() is available
397 * to determine file-system related limits and options associated
398 * with a given open file descriptor.
399 */
400/*#define HAS_PATHCONF /**/
401/*#define HAS_FPATHCONF /**/
402
403/* HAS_PAUSE:
404 * This symbol, if defined, indicates that the pause routine is
405 * available to suspend a process until a signal is received.
406 */
407#define HAS_PAUSE /**/
408
409/* HAS_PIPE:
410 * This symbol, if defined, indicates that the pipe routine is
411 * available to create an inter-process channel.
412 */
413#define HAS_PIPE /**/
414
415/* HAS_POLL:
416 * This symbol, if defined, indicates that the poll routine is
924b3ec4 417 * available to poll active file descriptors. You may safely
418 * include <poll.h> when this symbol is defined.
a835ef8a 419 */
420/*#define HAS_POLL /**/
421
422/* HAS_READDIR:
423 * This symbol, if defined, indicates that the readdir routine is
424 * available to read directory entries. You may have to include
425 * <dirent.h>. See I_DIRENT.
426 */
427#define HAS_READDIR /**/
428
429/* HAS_SEEKDIR:
430 * This symbol, if defined, indicates that the seekdir routine is
431 * available. You may have to include <dirent.h>. See I_DIRENT.
432 */
433#define HAS_SEEKDIR /**/
434
435/* HAS_TELLDIR:
436 * This symbol, if defined, indicates that the telldir routine is
437 * available. You may have to include <dirent.h>. See I_DIRENT.
438 */
439#define HAS_TELLDIR /**/
440
441/* HAS_REWINDDIR:
442 * This symbol, if defined, indicates that the rewinddir routine is
443 * available. You may have to include <dirent.h>. See I_DIRENT.
444 */
445#define HAS_REWINDDIR /**/
446
447/* HAS_READLINK:
448 * This symbol, if defined, indicates that the readlink routine is
449 * available to read the value of a symbolic link.
450 */
451/*#define HAS_READLINK /**/
452
453/* HAS_RENAME:
454 * This symbol, if defined, indicates that the rename routine is available
455 * to rename files. Otherwise you should do the unlink(), link(), unlink()
456 * trick.
457 */
458#define HAS_RENAME /**/
459
460/* HAS_RMDIR:
461 * This symbol, if defined, indicates that the rmdir routine is
462 * available to remove directories. Otherwise you should fork off a
463 * new process to exec /bin/rmdir.
464 */
465#define HAS_RMDIR /**/
466
a835ef8a 467/* HAS_SELECT:
468 * This symbol, if defined, indicates that the select routine is
469 * available to select active file descriptors. If the timeout field
470 * is used, <sys/time.h> may need to be included.
471 */
472#define HAS_SELECT /**/
473
a835ef8a 474/* HAS_SETEGID:
475 * This symbol, if defined, indicates that the setegid routine is available
476 * to change the effective gid of the current program.
477 */
478/*#define HAS_SETEGID /**/
479
480/* HAS_SETEUID:
481 * This symbol, if defined, indicates that the seteuid routine is available
482 * to change the effective uid of the current program.
483 */
484/*#define HAS_SETEUID /**/
485
486/* HAS_SETLINEBUF:
487 * This symbol, if defined, indicates that the setlinebuf routine is
488 * available to change stderr or stdout from block-buffered or unbuffered
489 * to a line-buffered mode.
490 */
491/*#define HAS_SETLINEBUF /**/
492
493/* HAS_SETLOCALE:
494 * This symbol, if defined, indicates that the setlocale routine is
495 * available to handle locale-specific ctype implementations.
496 */
497#define HAS_SETLOCALE /**/
498
924b3ec4 499/* HAS_SETPGID:
500 * This symbol, if defined, indicates that the setpgid(pid, gpid)
501 * routine is available to set process group ID.
502 */
503/*#define HAS_SETPGID /**/
504
505/* HAS_SETPGRP:
506 * This symbol, if defined, indicates that the setpgrp routine is
507 * available to set the current process group.
508 */
509/* USE_BSD_SETPGRP:
510 * This symbol, if defined, indicates that setpgrp needs two
511 * arguments whereas USG one needs none. See also HAS_SETPGID
512 * for a POSIX interface.
513 */
514/*#define HAS_SETPGRP /**/
515/*#define USE_BSD_SETPGRP /**/
516
a835ef8a 517/* HAS_SETPGRP2:
518 * This symbol, if defined, indicates that the setpgrp2() (as in DG/UX)
519 * routine is available to set the current process group.
520 */
521/*#define HAS_SETPGRP2 /**/
522
523/* HAS_SETPRIORITY:
524 * This symbol, if defined, indicates that the setpriority routine is
525 * available to set a process's priority.
526 */
527/*#define HAS_SETPRIORITY /**/
528
529/* HAS_SETREGID:
530 * This symbol, if defined, indicates that the setregid routine is
531 * available to change the real and effective gid of the current
532 * process.
533 */
534/* HAS_SETRESGID:
535 * This symbol, if defined, indicates that the setresgid routine is
536 * available to change the real, effective and saved gid of the current
537 * process.
538 */
539/*#define HAS_SETREGID /**/
540/*#define HAS_SETRESGID /**/
541
542/* HAS_SETREUID:
543 * This symbol, if defined, indicates that the setreuid routine is
544 * available to change the real and effective uid of the current
545 * process.
546 */
547/* HAS_SETRESUID:
548 * This symbol, if defined, indicates that the setresuid routine is
549 * available to change the real, effective and saved uid of the current
550 * process.
551 */
552/*#define HAS_SETREUID /**/
553/*#define HAS_SETRESUID /**/
554
555/* HAS_SETRGID:
556 * This symbol, if defined, indicates that the setrgid routine is available
557 * to change the real gid of the current program.
558 */
559/*#define HAS_SETRGID /**/
560
561/* HAS_SETRUID:
562 * This symbol, if defined, indicates that the setruid routine is available
563 * to change the real uid of the current program.
564 */
565/*#define HAS_SETRUID /**/
566
567/* HAS_SETSID:
568 * This symbol, if defined, indicates that the setsid routine is
569 * available to set the process group ID.
570 */
571/*#define HAS_SETSID /**/
572
a835ef8a 573/* Shmat_t:
574 * This symbol holds the return type of the shmat() system call.
575 * Usually set to 'void *' or 'char *'.
576 */
577/* HAS_SHMAT_PROTOTYPE:
578 * This symbol, if defined, indicates that the sys/shm.h includes
579 * a prototype for shmat(). Otherwise, it is up to the program to
20ce7b12 580 * guess one. Shmat_t shmat (int, Shmat_t, int) is a good guess,
a835ef8a 581 * but not always right so it should be emitted by the program only
582 * when HAS_SHMAT_PROTOTYPE is not defined to avoid conflicting defs.
583 */
584#define Shmat_t void * /**/
585/*#define HAS_SHMAT_PROTOTYPE /**/
586
924b3ec4 587/* HAS_STRCHR:
588 * This symbol is defined to indicate that the strchr()/strrchr()
589 * functions are available for string searching. If not, try the
590 * index()/rindex() pair.
a835ef8a 591 */
924b3ec4 592/* HAS_INDEX:
593 * This symbol is defined to indicate that the index()/rindex()
594 * functions are available for string searching.
a835ef8a 595 */
924b3ec4 596#define HAS_STRCHR /**/
597/*#define HAS_INDEX /**/
598
599/* HAS_STRCOLL:
600 * This symbol, if defined, indicates that the strcoll routine is
601 * available to compare strings using collating information.
a835ef8a 602 */
924b3ec4 603#define HAS_STRCOLL /**/
604
605/* USE_STRUCT_COPY:
606 * This symbol, if defined, indicates that this C compiler knows how
607 * to copy structures. If undefined, you'll need to use a block copy
608 * routine of some sort instead.
a835ef8a 609 */
924b3ec4 610#define USE_STRUCT_COPY /**/
a835ef8a 611
a835ef8a 612/* HAS_STRTOD:
613 * This symbol, if defined, indicates that the strtod routine is
614 * available to provide better numeric string conversion than atof().
615 */
616#define HAS_STRTOD /**/
617
618/* HAS_STRTOL:
619 * This symbol, if defined, indicates that the strtol routine is available
620 * to provide better numeric string conversion than atoi() and friends.
621 */
622#define HAS_STRTOL /**/
623
624/* HAS_STRTOUL:
625 * This symbol, if defined, indicates that the strtoul routine is
626 * available to provide conversion of strings to unsigned long.
627 */
628#define HAS_STRTOUL /**/
629
630/* HAS_STRXFRM:
631 * This symbol, if defined, indicates that the strxfrm() routine is
632 * available to transform strings.
633 */
634#define HAS_STRXFRM /**/
635
636/* HAS_SYMLINK:
637 * This symbol, if defined, indicates that the symlink routine is available
638 * to create symbolic links.
639 */
640/*#define HAS_SYMLINK /**/
641
642/* HAS_SYSCALL:
643 * This symbol, if defined, indicates that the syscall routine is
644 * available to call arbitrary system calls. If undefined, that's tough.
645 */
646/*#define HAS_SYSCALL /**/
647
648/* HAS_SYSCONF:
649 * This symbol, if defined, indicates that sysconf() is available
650 * to determine system related limits and options.
651 */
652/*#define HAS_SYSCONF /**/
653
654/* HAS_SYSTEM:
655 * This symbol, if defined, indicates that the system routine is
656 * available to issue a shell command.
657 */
658#define HAS_SYSTEM /**/
659
660/* HAS_TCGETPGRP:
661 * This symbol, if defined, indicates that the tcgetpgrp routine is
662 * available to get foreground process group ID.
663 */
664/*#define HAS_TCGETPGRP /**/
665
666/* HAS_TCSETPGRP:
667 * This symbol, if defined, indicates that the tcsetpgrp routine is
668 * available to set foreground process group ID.
669 */
670/*#define HAS_TCSETPGRP /**/
671
a835ef8a 672/* HAS_TRUNCATE:
673 * This symbol, if defined, indicates that the truncate routine is
674 * available to truncate files.
675 */
676/*#define HAS_TRUNCATE /**/
677
678/* HAS_TZNAME:
679 * This symbol, if defined, indicates that the tzname[] array is
680 * available to access timezone names.
681 */
62520c91 682/*#define HAS_TZNAME /**/
a835ef8a 683
684/* HAS_UMASK:
685 * This symbol, if defined, indicates that the umask routine is
686 * available to set and get the value of the file creation mask.
687 */
688#define HAS_UMASK /**/
689
a835ef8a 690/* HASVOLATILE:
691 * This symbol, if defined, indicates that this C compiler knows about
692 * the volatile declaration.
693 */
694#define HASVOLATILE /**/
695#ifndef HASVOLATILE
696#define volatile
697#endif
698
a835ef8a 699/* HAS_WAIT4:
700 * This symbol, if defined, indicates that wait4() exists.
701 */
702/*#define HAS_WAIT4 /**/
703
704/* HAS_WAITPID:
705 * This symbol, if defined, indicates that the waitpid routine is
706 * available to wait for child process.
707 */
f55ee38a 708#define HAS_WAITPID /**/
a835ef8a 709
710/* HAS_WCSTOMBS:
711 * This symbol, if defined, indicates that the wcstombs routine is
712 * available to convert wide character strings to multibyte strings.
713 */
714#define HAS_WCSTOMBS /**/
715
716/* HAS_WCTOMB:
717 * This symbol, if defined, indicates that the wctomb routine is available
718 * to covert a wide character to a multibyte.
719 */
720#define HAS_WCTOMB /**/
721
28e8609d 722/* I_ARPA_INET:
327c3667 723 * This symbol, if defined, indicates to the C program that it should
724 * include <arpa/inet.h> to get inet_addr and friends declarations.
28e8609d 725 */
327c3667 726#define I_ARPA_INET /**/
28e8609d 727
924b3ec4 728/* I_DBM:
729 * This symbol, if defined, indicates that <dbm.h> exists and should
730 * be included.
a835ef8a 731 */
924b3ec4 732/* I_RPCSVC_DBM:
733 * This symbol, if defined, indicates that <rpcsvc/dbm.h> exists and
734 * should be included.
a835ef8a 735 */
924b3ec4 736/*#define I_DBM /**/
737#define I_RPCSVC_DBM /**/
a835ef8a 738
739/* I_DIRENT:
740 * This symbol, if defined, indicates to the C program that it should
741 * include <dirent.h>. Using this symbol also triggers the definition
742 * of the Direntry_t define which ends up being 'struct dirent' or
743 * 'struct direct' depending on the availability of <dirent.h>.
744 */
745/* DIRNAMLEN:
746 * This symbol, if defined, indicates to the C program that the length
747 * of directory entry names is provided by a d_namlen field. Otherwise
748 * you need to do strlen() on the d_name field.
749 */
750/* Direntry_t:
751 * This symbol is set to 'struct direct' or 'struct dirent' depending on
752 * whether dirent is available or not. You should use this pseudo type to
753 * portably declare your directory entries.
754 */
755#define I_DIRENT /**/
756#define DIRNAMLEN /**/
757#define Direntry_t struct direct
758
759/* I_DLFCN:
760 * This symbol, if defined, indicates that <dlfcn.h> exists and should
761 * be included.
762 */
763#define I_DLFCN /**/
764
765/* I_FCNTL:
766 * This manifest constant tells the C program to include <fcntl.h>.
767 */
768#define I_FCNTL /**/
769
770/* I_FLOAT:
771 * This symbol, if defined, indicates to the C program that it should
772 * include <float.h> to get definition of symbols like DBL_MAX or
773 * DBL_MIN, i.e. machine dependent floating point values.
774 */
775#define I_FLOAT /**/
776
a835ef8a 777/* I_LIMITS:
778 * This symbol, if defined, indicates to the C program that it should
779 * include <limits.h> to get definition of symbols like WORD_BIT or
780 * LONG_MAX, i.e. machine dependant limitations.
781 */
782#define I_LIMITS /**/
783
924b3ec4 784/* I_LOCALE:
785 * This symbol, if defined, indicates to the C program that it should
786 * include <locale.h>.
787 */
788#define I_LOCALE /**/
789
a835ef8a 790/* I_MATH:
791 * This symbol, if defined, indicates to the C program that it should
792 * include <math.h>.
793 */
794#define I_MATH /**/
795
796/* I_MEMORY:
797 * This symbol, if defined, indicates to the C program that it should
798 * include <memory.h>.
799 */
800/*#define I_MEMORY /**/
801
802/* I_NDBM:
803 * This symbol, if defined, indicates that <ndbm.h> exists and should
804 * be included.
805 */
806/*#define I_NDBM /**/
807
808/* I_NET_ERRNO:
809 * This symbol, if defined, indicates that <net/errno.h> exists and
810 * should be included.
811 */
812/*#define I_NET_ERRNO /**/
813
814/* I_NETINET_IN:
815 * This symbol, if defined, indicates to the C program that it should
816 * include <netinet/in.h>. Otherwise, you may try <sys/in.h>.
817 */
818/*#define I_NETINET_IN /**/
819
924b3ec4 820/* I_SFIO:
821 * This symbol, if defined, indicates to the C program that it should
822 * include <sfio.h>.
823 */
824/*#define I_SFIO /**/
825
a835ef8a 826/* I_STDDEF:
827 * This symbol, if defined, indicates that <stddef.h> exists and should
828 * be included.
829 */
830#define I_STDDEF /**/
831
832/* I_STDLIB:
833 * This symbol, if defined, indicates that <stdlib.h> exists and should
834 * be included.
835 */
836#define I_STDLIB /**/
837
838/* I_STRING:
839 * This symbol, if defined, indicates to the C program that it should
840 * include <string.h> (USG systems) instead of <strings.h> (BSD systems).
841 */
842#define I_STRING /**/
843
844/* I_SYS_DIR:
845 * This symbol, if defined, indicates to the C program that it should
846 * include <sys/dir.h>.
847 */
848/*#define I_SYS_DIR /**/
849
850/* I_SYS_FILE:
851 * This symbol, if defined, indicates to the C program that it should
852 * include <sys/file.h> to get definition of R_OK and friends.
853 */
854/*#define I_SYS_FILE /**/
855
856/* I_SYS_IOCTL:
857 * This symbol, if defined, indicates that <sys/ioctl.h> exists and should
858 * be included. Otherwise, include <sgtty.h> or <termio.h>.
859 */
860/*#define I_SYS_IOCTL /**/
861
862/* I_SYS_NDIR:
863 * This symbol, if defined, indicates to the C program that it should
864 * include <sys/ndir.h>.
865 */
866/*#define I_SYS_NDIR /**/
867
868/* I_SYS_PARAM:
869 * This symbol, if defined, indicates to the C program that it should
870 * include <sys/param.h>.
871 */
872/*#define I_SYS_PARAM /**/
873
874/* I_SYS_RESOURCE:
875 * This symbol, if defined, indicates to the C program that it should
876 * include <sys/resource.h>.
877 */
878/*#define I_SYS_RESOURCE /**/
879
880/* I_SYS_SELECT:
881 * This symbol, if defined, indicates to the C program that it should
882 * include <sys/select.h> in order to get definition of struct timeval.
883 */
884/*#define I_SYS_SELECT /**/
885
924b3ec4 886/* I_SYS_STAT:
887 * This symbol, if defined, indicates to the C program that it should
888 * include <sys/stat.h>.
889 */
890#define I_SYS_STAT /**/
891
a835ef8a 892/* I_SYS_TIMES:
893 * This symbol, if defined, indicates to the C program that it should
894 * include <sys/times.h>.
895 */
896/*#define I_SYS_TIMES /**/
897
be44fb0e 898/* I_SYS_TYPES:
899 * This symbol, if defined, indicates to the C program that it should
900 * include <sys/types.h>.
901 */
902#define I_SYS_TYPES /**/
903
a835ef8a 904/* I_SYS_UN:
905 * This symbol, if defined, indicates to the C program that it should
906 * include <sys/un.h> to get UNIX domain socket definitions.
907 */
908/*#define I_SYS_UN /**/
909
910/* I_SYS_WAIT:
911 * This symbol, if defined, indicates to the C program that it should
912 * include <sys/wait.h>.
913 */
914/*#define I_SYS_WAIT /**/
915
916/* I_TERMIO:
917 * This symbol, if defined, indicates that the program should include
918 * <termio.h> rather than <sgtty.h>. There are also differences in
919 * the ioctl() calls that depend on the value of this symbol.
920 */
921/* I_TERMIOS:
922 * This symbol, if defined, indicates that the program should include
923 * the POSIX termios.h rather than sgtty.h or termio.h.
924 * There are also differences in the ioctl() calls that depend on the
925 * value of this symbol.
926 */
927/* I_SGTTY:
928 * This symbol, if defined, indicates that the program should include
929 * <sgtty.h> rather than <termio.h>. There are also differences in
930 * the ioctl() calls that depend on the value of this symbol.
931 */
932/*#define I_TERMIO /**/
933/*#define I_TERMIOS /**/
934/*#define I_SGTTY /**/
935
a835ef8a 936/* I_UNISTD:
937 * This symbol, if defined, indicates to the C program that it should
938 * include <unistd.h>.
939 */
940/*#define I_UNISTD /**/
941
942/* I_UTIME:
943 * This symbol, if defined, indicates to the C program that it should
944 * include <utime.h>.
945 */
946#define I_UTIME /**/
947
924b3ec4 948/* I_VALUES:
949 * This symbol, if defined, indicates to the C program that it should
950 * include <values.h> to get definition of symbols like MINFLOAT or
951 * MAXLONG, i.e. machine dependant limitations. Probably, you
952 * should use <limits.h> instead, if it is available.
953 */
954/*#define I_VALUES /**/
955
a835ef8a 956/* I_STDARG:
957 * This symbol, if defined, indicates that <stdarg.h> exists and should
958 * be included.
959 */
960/* I_VARARGS:
961 * This symbol, if defined, indicates to the C program that it should
962 * include <varargs.h>.
963 */
964#define I_STDARG /**/
965/*#define I_VARARGS /**/
966
967/* I_VFORK:
968 * This symbol, if defined, indicates to the C program that it should
969 * include vfork.h.
970 */
971/*#define I_VFORK /**/
972
a835ef8a 973/* CAN_PROTOTYPE:
974 * If defined, this macro indicates that the C compiler can handle
975 * function prototypes.
976 */
977/* _:
978 * This macro is used to declare function parameters for folks who want
979 * to make declarations with prototypes using a different style than
980 * the above macros. Use double parentheses. For example:
981 *
982 * int main _((int argc, char *argv[]));
983 */
984#define CAN_PROTOTYPE /**/
985#ifdef CAN_PROTOTYPE
986#define _(args) args
987#else
988#define _(args) ()
989#endif
990
924b3ec4 991/* SH_PATH:
992 * This symbol contains the full pathname to the shell used on this
993 * on this system to execute Bourne shell scripts. Usually, this will be
994 * /bin/sh, though it's possible that some systems will have /bin/ksh,
995 * /bin/pdksh, /bin/ash, /bin/bash, or even something such as
996 * D:/bin/sh.exe.
a835ef8a 997 */
924b3ec4 998#define SH_PATH "cmd /x /c" /**/
a835ef8a 999
a835ef8a 1000/* STDCHAR:
1001 * This symbol is defined to be the type of char used in stdio.h.
1002 * It has the values "unsigned char" or "char".
1003 */
1004#define STDCHAR char /**/
1005
327c3667 1006/* HAS_ACCESSX:
1007 * This symbol, if defined, indicates that the accessx routine is
1008 * available to do extended access checks.
1009 */
1010/*#define HAS_ACCESSX /**/
1011
1012/* HAS_EACCESS:
1013 * This symbol, if defined, indicates that the eaccess routine is
1014 * available to do extended access checks.
1015 */
1016/*#define HAS_EACCESS /**/
1017
1018/* I_SYS_ACCESS:
1019 * This symbol, if defined, indicates to the C program that it should
104f9d64 1020 * include <sys/access.h>.
327c3667 1021 */
1022/*#define I_SYS_ACCESS /**/
1023
1024/* I_SYS_SECURITY:
1025 * This symbol, if defined, indicates to the C program that it should
1026 * include <sys/security.h>.
1027 */
1028/*#define I_SYS_SECURITY /**/
1029
9423c6fc 1030/* CROSSCOMPILE:
1031 * This symbol, if defined, signifies that we our
1032 * build process is a cross-compilation.
1033 */
1034/*#define CROSSCOMPILE /**/
1035
1036/* INTSIZE:
1037 * This symbol contains the value of sizeof(int) so that the C
1038 * preprocessor can make decisions based on it.
1039 */
1040/* LONGSIZE:
1041 * This symbol contains the value of sizeof(long) so that the C
1042 * preprocessor can make decisions based on it.
1043 */
1044/* SHORTSIZE:
1045 * This symbol contains the value of sizeof(short) so that the C
1046 * preprocessor can make decisions based on it.
1047 */
1048#define INTSIZE 4 /**/
1049#define LONGSIZE 4 /**/
1050#define SHORTSIZE 2 /**/
1051
1052/* MULTIARCH:
1053 * This symbol, if defined, signifies that the build
1054 * process will produce some binary files that are going to be
1055 * used in a cross-platform environment. This is the case for
1056 * example with the NeXT "fat" binaries that contain executables
1057 * for several CPUs.
1058 */
1059/*#define MULTIARCH /**/
1060
924b3ec4 1061/* MEM_ALIGNBYTES:
9423c6fc 1062 * This symbol contains the number of bytes required to align a
1063 * double. Usual values are 2, 4 and 8. The default is eight,
1064 * for safety.
a835ef8a 1065 */
9423c6fc 1066#if defined(CROSSCOMPILE) || defined(MULTIARCH)
1067# define MEM_ALIGNBYTES 8
1068#else
1069#define MEM_ALIGNBYTES 8
1070#endif
a835ef8a 1071
1072/* BYTEORDER:
1073 * This symbol holds the hexadecimal constant defined in byteorder,
1074 * i.e. 0x1234 or 0x4321, etc...
9423c6fc 1075 * If the compiler supports cross-compiling or multiple-architecture
1076 * binaries (eg. on NeXT systems), use compiler-defined macros to
1077 * determine the byte order.
a835ef8a 1078 * On NeXT 3.2 (and greater), you can build "Fat" Multiple Architecture
1079 * Binaries (MAB) on either big endian or little endian machines.
1080 * The endian-ness is available at compile-time. This only matters
1081 * for perl, where the config.h can be generated and installed on
1082 * one system, and used by a different architecture to build an
1083 * extension. Older versions of NeXT that might not have
1084 * defined either *_ENDIAN__ were all on Motorola 680x0 series,
1085 * so the default case (for NeXT) is big endian to catch them.
1086 * This might matter for NeXT 3.0.
1087 */
9423c6fc 1088#if defined(CROSSCOMPILE) || defined(MULTIARCH)
1089# ifdef __LITTLE_ENDIAN__
1090# if LONGSIZE == 4
1091# define BYTEORDER 0x1234
1092# else
1093# if LONGSIZE == 8
1094# define BYTEORDER 0x12345678
1095# endif
1096# endif
1097# else
1098# ifdef __BIG_ENDIAN__
1099# if LONGSIZE == 4
1100# define BYTEORDER 0x4321
1101# else
1102# if LONGSIZE == 8
1103# define BYTEORDER 0x87654321
1104# endif
1105# endif
1106# endif
1107# endif
1108# if !defined(BYTEORDER) && (defined(NeXT) || defined(__NeXT__))
1109# define BYTEORDER 0x4321
1110# endif
1111#else
a835ef8a 1112#define BYTEORDER 0x1234 /* large digits for MSB */
a835ef8a 1113#endif /* NeXT */
1114
924b3ec4 1115/* CASTI32:
1116 * This symbol is defined if the C compiler can cast negative
1117 * or large floating point numbers to 32-bit ints.
a835ef8a 1118 */
924b3ec4 1119#define CASTI32 /**/
a835ef8a 1120
924b3ec4 1121/* CASTNEGFLOAT:
1122 * This symbol is defined if the C compiler can cast negative
1123 * numbers to unsigned longs, ints and shorts.
a835ef8a 1124 */
924b3ec4 1125/* CASTFLAGS:
1126 * This symbol contains flags that say what difficulties the compiler
1127 * has casting odd floating values to unsigned long:
1128 * 0 = ok
1129 * 1 = couldn't cast < 0
1130 * 2 = couldn't cast >= 0x80000000
1131 * 4 = couldn't cast in argument expression list
a835ef8a 1132 */
924b3ec4 1133#define CASTNEGFLOAT /**/
1134#define CASTFLAGS 0 /**/
1135
1136/* VOID_CLOSEDIR:
1137 * This symbol, if defined, indicates that the closedir() routine
1138 * does not return a value.
a835ef8a 1139 */
924b3ec4 1140/*#define VOID_CLOSEDIR /**/
a835ef8a 1141
c4d53692 1142/* HAS_FD_SET:
1143 * This symbol, when defined, indicates presence of the fd_set typedef
1144 * in <sys/types.h>
1145 */
1146#define HAS_FD_SET /**/
1147
a835ef8a 1148/* Gconvert:
1149 * This preprocessor macro is defined to convert a floating point
1150 * number to a string without a trailing decimal point. This
1151 * emulates the behavior of sprintf("%g"), but is sometimes much more
1152 * efficient. If gconvert() is not available, but gcvt() drops the
1153 * trailing decimal point, then gcvt() is used. If all else fails,
1154 * a macro using sprintf("%g") is used. Arguments for the Gconvert
1155 * macro are: value, number of digits, whether trailing zeros should
1156 * be retained, and the output buffer.
1157 * Possible values are:
1158 * d_Gconvert='gconvert((x),(n),(t),(b))'
1159 * d_Gconvert='gcvt((x),(n),(b))'
1160 * d_Gconvert='sprintf((b),"%.*g",(n),(x))'
1161 * The last two assume trailing zeros should not be kept.
1162 */
1163#define Gconvert(x,n,t,b) sprintf((b),"%.*g",(n),(x))
1164
924b3ec4 1165/* HAS_GNULIBC:
a835ef8a 1166 * This symbol, if defined, indicates to the C program that
924b3ec4 1167 * the GNU C library is being used.
a835ef8a 1168 */
924b3ec4 1169/*#define HAS_GNULIBC /**/
1170/* HAS_ISASCII:
1171 * This manifest constant lets the C program know that isascii
1172 * is available.
a835ef8a 1173 */
924b3ec4 1174#define HAS_ISASCII /**/
a835ef8a 1175
be44fb0e 1176/* HAS_LCHOWN:
1177 * This symbol, if defined, indicates that the lchown routine is
1178 * available to operate on a symbolic link (instead of following the
1179 * link).
1180 */
1181/*#define HAS_LCHOWN /**/
1182
924b3ec4 1183/* HAS_OPEN3:
1184 * This manifest constant lets the C program know that the three
1185 * argument form of open(2) is available.
a835ef8a 1186 */
924b3ec4 1187/*#define HAS_OPEN3 /**/
a835ef8a 1188
924b3ec4 1189/* HAS_SAFE_BCOPY:
1190 * This symbol, if defined, indicates that the bcopy routine is available
1191 * to copy potentially overlapping memory blocks. Otherwise you should
1192 * probably use memmove() or memcpy(). If neither is defined, roll your
1193 * own version.
a835ef8a 1194 */
924b3ec4 1195/*#define HAS_SAFE_BCOPY /**/
a835ef8a 1196
924b3ec4 1197/* HAS_SAFE_MEMCPY:
1198 * This symbol, if defined, indicates that the memcpy routine is available
1199 * to copy potentially overlapping memory blocks. Otherwise you should
1200 * probably use memmove() or memcpy(). If neither is defined, roll your
1201 * own version.
a835ef8a 1202 */
924b3ec4 1203/*#define HAS_SAFE_MEMCPY /**/
a835ef8a 1204
924b3ec4 1205/* HAS_SANE_MEMCMP:
1206 * This symbol, if defined, indicates that the memcmp routine is available
1207 * and can be used to compare relative magnitudes of chars with their high
1208 * bits set. If it is not defined, roll your own version.
a835ef8a 1209 */
924b3ec4 1210#define HAS_SANE_MEMCMP /**/
a835ef8a 1211
924b3ec4 1212/* HAS_SIGACTION:
1213 * This symbol, if defined, indicates that Vr4's sigaction() routine
1214 * is available.
fea7140c 1215 */
924b3ec4 1216/*#define HAS_SIGACTION /**/
fea7140c 1217
c4d53692 1218/* HAS_SIGSETJMP:
1219 * This variable indicates to the C program that the sigsetjmp()
1220 * routine is available to save the calling process's registers
1221 * and stack environment for later use by siglongjmp(), and
1222 * to optionally save the process's signal mask. See
1223 * Sigjmp_buf, Sigsetjmp, and Siglongjmp.
1224 */
a835ef8a 1225/* Sigjmp_buf:
1226 * This is the buffer type to be used with Sigsetjmp and Siglongjmp.
1227 */
1228/* Sigsetjmp:
1229 * This macro is used in the same way as sigsetjmp(), but will invoke
1230 * traditional setjmp() if sigsetjmp isn't available.
1231 * See HAS_SIGSETJMP.
1232 */
1233/* Siglongjmp:
1234 * This macro is used in the same way as siglongjmp(), but will invoke
1235 * traditional longjmp() if siglongjmp isn't available.
1236 * See HAS_SIGSETJMP.
1237 */
1238/*#define HAS_SIGSETJMP /**/
1239#ifdef HAS_SIGSETJMP
1240#define Sigjmp_buf sigjmp_buf
1241#define Sigsetjmp(buf,save_mask) sigsetjmp((buf),(save_mask))
1242#define Siglongjmp(buf,retval) siglongjmp((buf),(retval))
1243#else
1244#define Sigjmp_buf jmp_buf
1245#define Sigsetjmp(buf,save_mask) setjmp((buf))
1246#define Siglongjmp(buf,retval) longjmp((buf),(retval))
1247#endif
1248
924b3ec4 1249/* USE_STDIO_PTR:
1250 * This symbol is defined if the _ptr and _cnt fields (or similar)
1251 * of the stdio FILE structure can be used to access the stdio buffer
1252 * for a file handle. If this is defined, then the FILE_ptr(fp)
1253 * and FILE_cnt(fp) macros will also be defined and should be used
1254 * to access these fields.
a835ef8a 1255 */
924b3ec4 1256/* FILE_ptr:
1257 * This macro is used to access the _ptr field (or equivalent) of the
1258 * FILE structure pointed to by its argument. This macro will always be
1259 * defined if USE_STDIO_PTR is defined.
1260 */
1261/* STDIO_PTR_LVALUE:
1262 * This symbol is defined if the FILE_ptr macro can be used as an
1263 * lvalue.
1264 */
1265/* FILE_cnt:
1266 * This macro is used to access the _cnt field (or equivalent) of the
1267 * FILE structure pointed to by its argument. This macro will always be
1268 * defined if USE_STDIO_PTR is defined.
1269 */
1270/* STDIO_CNT_LVALUE:
1271 * This symbol is defined if the FILE_cnt macro can be used as an
1272 * lvalue.
1273 */
1274/*#define USE_STDIO_PTR /**/
1275#ifdef USE_STDIO_PTR
1276#define FILE_ptr(fp) ((fp)->_ptr)
1277#define STDIO_PTR_LVALUE /**/
1278#define FILE_cnt(fp) ((fp)->_cnt)
1279#define STDIO_CNT_LVALUE /**/
1280#endif
a835ef8a 1281
924b3ec4 1282/* USE_STDIO_BASE:
1283 * This symbol is defined if the _base field (or similar) of the
1284 * stdio FILE structure can be used to access the stdio buffer for
1285 * a file handle. If this is defined, then the FILE_base(fp) macro
1286 * will also be defined and should be used to access this field.
1287 * Also, the FILE_bufsiz(fp) macro will be defined and should be used
1288 * to determine the number of bytes in the buffer. USE_STDIO_BASE
1289 * will never be defined unless USE_STDIO_PTR is.
a835ef8a 1290 */
924b3ec4 1291/* FILE_base:
1292 * This macro is used to access the _base field (or equivalent) of the
1293 * FILE structure pointed to by its argument. This macro will always be
1294 * defined if USE_STDIO_BASE is defined.
a835ef8a 1295 */
924b3ec4 1296/* FILE_bufsiz:
1297 * This macro is used to determine the number of bytes in the I/O
1298 * buffer pointed to by _base field (or equivalent) of the FILE
1299 * structure pointed to its argument. This macro will always be defined
1300 * if USE_STDIO_BASE is defined.
1301 */
1302/*#define USE_STDIO_BASE /**/
1303#ifdef USE_STDIO_BASE
1304#define FILE_base(fp) ((fp)->_base)
1305#define FILE_bufsiz(fp) ((fp)->_cnt + (fp)->_ptr - (fp)->_base)
1306#endif
a835ef8a 1307
924b3ec4 1308/* HAS_VPRINTF:
1309 * This symbol, if defined, indicates that the vprintf routine is available
1310 * to printf with a pointer to an argument list. If unavailable, you
1311 * may need to write your own, probably in terms of _doprnt().
a835ef8a 1312 */
924b3ec4 1313/* USE_CHAR_VSPRINTF:
1314 * This symbol is defined if this system has vsprintf() returning type
1315 * (char*). The trend seems to be to declare it as "int vsprintf()". It
1316 * is up to the package author to declare vsprintf correctly based on the
1317 * symbol.
1318 */
1319#define HAS_VPRINTF /**/
1320/*#define USE_CHAR_VSPRINTF /**/
a835ef8a 1321
07ba5892 1322/* DOUBLESIZE:
1323 * This symbol contains the size of a double, so that the C preprocessor
1324 * can make decisions based on it.
1325 */
1326#define DOUBLESIZE 8 /**/
1327
924b3ec4 1328/* I_TIME:
a835ef8a 1329 * This symbol, if defined, indicates to the C program that it should
924b3ec4 1330 * include <time.h>.
a835ef8a 1331 */
924b3ec4 1332/* I_SYS_TIME:
a835ef8a 1333 * This symbol, if defined, indicates to the C program that it should
924b3ec4 1334 * include <sys/time.h>.
a835ef8a 1335 */
924b3ec4 1336/* I_SYS_TIME_KERNEL:
a835ef8a 1337 * This symbol, if defined, indicates to the C program that it should
924b3ec4 1338 * include <sys/time.h> with KERNEL defined.
a835ef8a 1339 */
924b3ec4 1340#define I_TIME /**/
1341/*#define I_SYS_TIME /**/
1342/*#define I_SYS_TIME_KERNEL /**/
a835ef8a 1343
924b3ec4 1344/* VAL_O_NONBLOCK:
1345 * This symbol is to be used during open() or fcntl(F_SETFL) to turn on
1346 * non-blocking I/O for the file descriptor. Note that there is no way
1347 * back, i.e. you cannot turn it blocking again this way. If you wish to
1348 * alternatively switch between blocking and non-blocking, use the
1349 * ioctl(FIOSNBIO) call instead, but that is not supported by all devices.
a835ef8a 1350 */
924b3ec4 1351/* VAL_EAGAIN:
1352 * This symbol holds the errno error code set by read() when no data was
1353 * present on the non-blocking file descriptor.
1354 */
1355/* RD_NODATA:
1356 * This symbol holds the return code from read() when no data is present
1357 * on the non-blocking file descriptor. Be careful! If EOF_NONBLOCK is
1358 * not defined, then you can't distinguish between no data and EOF by
1359 * issuing a read(). You'll have to find another way to tell for sure!
1360 */
1361/* EOF_NONBLOCK:
1362 * This symbol, if defined, indicates to the C program that a read() on
1363 * a non-blocking file descriptor will return 0 on EOF, and not the value
1364 * held in RD_NODATA (-1 usually, in that case!).
1365 */
1366#define VAL_O_NONBLOCK O_NONBLOCK
1367#define VAL_EAGAIN EAGAIN
1368#define RD_NODATA -1
1369#define EOF_NONBLOCK
1370
07ba5892 1371/* PTRSIZE:
1372 * This symbol contains the size of a pointer, so that the C preprocessor
1373 * can make decisions based on it. It will be sizeof(void *) if
1374 * the compiler supports (void *); otherwise it will be
1375 * sizeof(char *).
1376 */
1377#define PTRSIZE 4 /**/
1378
104f9d64 1379/* Drand01:
1380 * This macro is to be used to generate uniformly distributed
1381 * random numbers over the range [0., 1.[. You may have to supply
1382 * an 'extern double drand48();' in your program since SunOS 4.1.3
1383 * doesn't provide you with anything relevant in it's headers.
1384 * See HAS_DRAND48_PROTO.
1385 */
1386/* Rand_seed_t:
1387 * This symbol defines the type of the argument of the
1388 * random seed function.
1389 */
1390/* seedDrand01:
1391 * This symbol defines the macro to be used in seeding the
1392 * random number generator (see Drand01).
1393 */
924b3ec4 1394/* RANDBITS:
104f9d64 1395 * This symbol indicates how many bits are produced by the
1396 * function used to generate normalized random numbers.
1397 * Values include 15, 16, 31, and 48.
924b3ec4 1398 */
ce9935e0 1399#define Drand01() (rand()/(double)((unsigned)1<<RANDBITS)) /**/
104f9d64 1400#define Rand_seed_t unsigned /**/
1401#define seedDrand01(x) srand((Rand_seed_t)x) /**/
1402#define RANDBITS 15 /**/
924b3ec4 1403
1404/* SSize_t:
1405 * This symbol holds the type used by functions that return
1406 * a count of bytes or an error condition. It must be a signed type.
1407 * It is usually ssize_t, but may be long or int, etc.
1408 * It may be necessary to include <sys/types.h> or <unistd.h>
1409 * to get any typedef'ed information.
1410 * We will pick a type such that sizeof(SSize_t) == sizeof(Size_t).
1411 */
1412#define SSize_t int /* signed count of bytes */
a835ef8a 1413
327c3667 1414/* EBCDIC:
1415 * This symbol, if defined, indicates that this system uses
1416 * EBCDIC encoding.
1417 */
1418/*#define EBCDIC /**/
1419
924b3ec4 1420/* OSNAME:
1421 * This symbol contains the name of the operating system, as determined
1422 * by Configure. You shouldn't rely on it too much; the specific
1423 * feature tests from Configure are generally more reliable.
1424 */
1425#define OSNAME "MSWin32" /**/
1426
924b3ec4 1427/* CAT2:
1428 * This macro catenates 2 tokens together.
1429 */
1430/* STRINGIFY:
1431 * This macro surrounds its token with double quotes.
1432 */
1433#if 42 == 1
1434#define CAT2(a,b)a/**/b
1435#define STRINGIFY(a)"a"
1436 /* If you can get stringification with catify, tell me how! */
1437#endif
1438#if 42 == 42
1439#define CAT2(a,b)a ## b
1440#define StGiFy(a)# a
1441#define STRINGIFY(a)StGiFy(a)
1442#endif
1443#if 42 != 1 && 42 != 42
1444#include "Bletch: How does this C preprocessor catenate tokens?"
1445#endif
1446
104f9d64 1447/* CPPSTDIN:
1448 * This symbol contains the first part of the string which will invoke
1449 * the C preprocessor on the standard input and produce to standard
1450 * output. Typical value of "cc -E" or "/lib/cpp", but it can also
1451 * call a wrapper. See CPPRUN.
1452 */
1453/* CPPMINUS:
1454 * This symbol contains the second part of the string which will invoke
1455 * the C preprocessor on the standard input and produce to standard
1456 * output. This symbol will have the value "-" if CPPSTDIN needs a minus
1457 * to specify standard input, otherwise the value is "".
1458 */
c4d53692 1459/* CPPRUN:
1460 * This symbol contains the string which will invoke a C preprocessor on
1461 * the standard input and produce to standard output. It needs to end
1462 * with CPPLAST, after all other preprocessor flags have been specified.
1463 * The main difference with CPPSTDIN is that this program will never be a
1464 * pointer to a shell wrapper, i.e. it will be empty if no preprocessor is
1465 * available directly to the user. Note that it may well be different from
1466 * the preprocessor used to compile the C program.
1467 */
104f9d64 1468#define CPPSTDIN "gcc -E"
1469#define CPPMINUS "-"
c4d53692 1470#define CPPRUN "gcc -E"
104f9d64 1471
327c3667 1472/* HAS_ACCESS:
1473 * This manifest constant lets the C program know that the access()
1474 * system call is available to check for accessibility using real UID/GID.
1475 * (always present on UNIX.)
1476 */
1477#define HAS_ACCESS /**/
1478
c4d53692 1479/* HAS_CSH:
1480 * This symbol, if defined, indicates that the C-shell exists.
1481 */
924b3ec4 1482/* CSH:
0cd52aa3 1483 * This symbol, if defined, contains the full pathname of csh.
a835ef8a 1484 */
0cd52aa3 1485/*#define HAS_CSH /**/
1486#ifdef HAS_CSH
1487#define CSH "" /**/
1488#endif
1489
327c3667 1490/* HAS_ENDGRENT:
1491 * This symbol, if defined, indicates that the getgrent routine is
1492 * available for finalizing sequential access of the group database.
1493 */
1494/*#define HAS_ENDGRENT /**/
1495
0cd52aa3 1496/* HAS_ENDHOSTENT:
1497 * This symbol, if defined, indicates that the endhostent() routine is
1498 * available to close whatever was being used for host queries.
1499 */
1500/*#define HAS_ENDHOSTENT /**/
1501
1502/* HAS_ENDNETENT:
1503 * This symbol, if defined, indicates that the endnetent() routine is
1504 * available to close whatever was being used for network queries.
1505 */
1506/*#define HAS_ENDNETENT /**/
1507
1508/* HAS_ENDPROTOENT:
1509 * This symbol, if defined, indicates that the endprotoent() routine is
1510 * available to close whatever was being used for protocol queries.
1511 */
1512/*#define HAS_ENDPROTOENT /**/
1513
327c3667 1514/* HAS_ENDPWENT:
1515 * This symbol, if defined, indicates that the getgrent routine is
1516 * available for finalizing sequential access of the passwd database.
1517 */
1518/*#define HAS_ENDPWENT /**/
1519
0cd52aa3 1520/* HAS_ENDSERVENT:
1521 * This symbol, if defined, indicates that the endservent() routine is
1522 * available to close whatever was being used for service queries.
1523 */
1524/*#define HAS_ENDSERVENT /**/
924b3ec4 1525
327c3667 1526/* HAS_GETGRENT:
1527 * This symbol, if defined, indicates that the getgrent routine is
1528 * available for sequential access of the group database.
1529 */
1530/*#define HAS_GETGRENT /**/
1531
07ba5892 1532/* HAS_GETHOSTBYADDR:
1533 * This symbol, if defined, indicates that the gethostbyaddr() routine is
1534 * available to look up hosts by their IP addresses.
1535 */
1536#define HAS_GETHOSTBYADDR /**/
1537
1538/* HAS_GETHOSTBYNAME:
1539 * This symbol, if defined, indicates that the gethostbyname() routine is
1540 * available to look up host names in some data base or other.
1541 */
1542#define HAS_GETHOSTBYNAME /**/
1543
1544/* HAS_GETHOSTENT:
1545 * This symbol, if defined, indicates that the gethostent() routine is
1546 * available to look up host names in some data base or another.
1547 */
1548/*#define HAS_GETHOSTENT /**/
1549
9423c6fc 1550/* HAS_GETHOSTNAME:
1551 * This symbol, if defined, indicates that the C program may use the
1552 * gethostname() routine to derive the host name. See also HAS_UNAME
1553 * and PHOSTNAME.
1554 */
1555/* HAS_UNAME:
1556 * This symbol, if defined, indicates that the C program may use the
1557 * uname() routine to derive the host name. See also HAS_GETHOSTNAME
1558 * and PHOSTNAME.
1559 */
1560/* PHOSTNAME:
1561 * This symbol, if defined, indicates the command to feed to the
1562 * popen() routine to derive the host name. See also HAS_GETHOSTNAME
1563 * and HAS_UNAME. Note that the command uses a fully qualified path,
1564 * so that it is safe even if used by a process with super-user
1565 * privileges.
1566 */
1567#define HAS_GETHOSTNAME /**/
1568#define HAS_UNAME /**/
1569#undef HAS_PHOSTNAME
1570#ifdef HAS_PHOSTNAME
1571#define PHOSTNAME "" /* How to get the host name */
1572#endif
1573
07ba5892 1574/* HAS_GETNETBYADDR:
1575 * This symbol, if defined, indicates that the getnetbyaddr() routine is
1576 * available to look up networks by their IP addresses.
1577 */
1578/*#define HAS_GETNETBYADDR /**/
1579
1580/* HAS_GETNETBYNAME:
1581 * This symbol, if defined, indicates that the getnetbyname() routine is
1582 * available to look up networks by their names.
1583 */
1584/*#define HAS_GETNETBYNAME /**/
1585
0cd52aa3 1586/* HAS_GETNETENT:
1587 * This symbol, if defined, indicates that the getnetent() routine is
1588 * available to look up network names in some data base or another.
1589 */
1590/*#define HAS_GETNETENT /**/
1591
1592/* HAS_GETPROTOENT:
1593 * This symbol, if defined, indicates that the getprotoent() routine is
1594 * available to look up protocols in some data base or another.
1595 */
1596/*#define HAS_GETPROTOENT /**/
1597
07ba5892 1598/* HAS_GETPROTOBYNAME:
1599 * This symbol, if defined, indicates that the getprotobyname()
1600 * routine is available to look up protocols by their name.
1601 */
1602/* HAS_GETPROTOBYNUMBER:
1603 * This symbol, if defined, indicates that the getprotobynumber()
1604 * routine is available to look up protocols by their number.
1605 */
1606#define HAS_GETPROTOBYNAME /**/
1607#define HAS_GETPROTOBYNUMBER /**/
1608
327c3667 1609/* HAS_GETPWENT:
1610 * This symbol, if defined, indicates that the getpwent routine is
1611 * available for sequential access of the passwd database.
1612 * If this is not available, the older getpw() function may be available.
1613 */
1614/*#define HAS_GETPWENT /**/
1615
0cd52aa3 1616/* HAS_GETSERVENT:
1617 * This symbol, if defined, indicates that the getservent() routine is
1618 * available to look up network services in some data base or another.
1619 */
1620/*#define HAS_GETSERVENT /**/
1621
07ba5892 1622/* HAS_GETSERVBYNAME:
1623 * This symbol, if defined, indicates that the getservbyname()
1624 * routine is available to look up services by their name.
1625 */
1626/* HAS_GETSERVBYPORT:
1627 * This symbol, if defined, indicates that the getservbyport()
1628 * routine is available to look up services by their port.
1629 */
1630#define HAS_GETSERVBYNAME /**/
1631#define HAS_GETSERVBYPORT /**/
1632
327c3667 1633/* HAS_HTONL:
1634 * This symbol, if defined, indicates that the htonl() routine (and
1635 * friends htons() ntohl() ntohs()) are available to do network
1636 * order byte swapping.
1637 */
1638/* HAS_HTONS:
1639 * This symbol, if defined, indicates that the htons() routine (and
1640 * friends htonl() ntohl() ntohs()) are available to do network
1641 * order byte swapping.
1642 */
1643/* HAS_NTOHL:
1644 * This symbol, if defined, indicates that the ntohl() routine (and
1645 * friends htonl() htons() ntohs()) are available to do network
1646 * order byte swapping.
1647 */
1648/* HAS_NTOHS:
1649 * This symbol, if defined, indicates that the ntohs() routine (and
1650 * friends htonl() htons() ntohl()) are available to do network
1651 * order byte swapping.
1652 */
1653#define HAS_HTONL /**/
1654#define HAS_HTONS /**/
1655#define HAS_NTOHL /**/
1656#define HAS_NTOHS /**/
1657
0cd52aa3 1658/* HAS_LONG_DOUBLE:
1659 * This symbol will be defined if the C compiler supports long
1660 * doubles.
1661 */
1662/* LONG_DOUBLESIZE:
1663 * This symbol contains the size of a long double, so that the
1664 * C preprocessor can make decisions based on it. It is only
1665 * defined if the system supports long doubles.
1666 */
1667#define HAS_LONG_DOUBLE /**/
1668#ifdef HAS_LONG_DOUBLE
1669#define LONG_DOUBLESIZE 12 /**/
1670#endif
1671
bdaec6b3 1672/* HAS_LONG_LONG:
327c3667 1673 * This symbol will be defined if the C compiler supports long long.
bdaec6b3 1674 */
1675/* LONGLONGSIZE:
1676 * This symbol contains the size of a long long, so that the
1677 * C preprocessor can make decisions based on it. It is only
1678 * defined if the system supports long long.
1679 */
1680/*#define HAS_LONG_LONG /**/
1681#ifdef HAS_LONG_LONG
1682#define LONGLONGSIZE 8 /**/
1683#endif
1684
9423c6fc 1685/* HAS_MEMCHR:
1686 * This symbol, if defined, indicates that the memchr routine is available
1687 * to locate characters within a C string.
1688 */
1689/*#define HAS_MEMCHR /**/
1690
c4d53692 1691/* HAS_MMAP:
1692 * This symbol, if defined, indicates that the mmap system call is
1693 * available to map a file into memory.
1694 */
1695/* Mmap_t:
1696 * This symbol holds the return type of the mmap() system call
1697 * (and simultaneously the type of the first argument).
1698 * Usually set to 'void *' or 'cadd_t'.
1699 */
1700/*#define HAS_MMAP /**/
1701#define Mmap_t void * /**/
1702
327c3667 1703/* HAS_MSG:
1704 * This symbol, if defined, indicates that the entire msg*(2) library is
1705 * supported (IPC mechanism based on message queues).
1706 */
1707/*#define HAS_MSG /**/
1708
1709/* HAS_SEM:
1710 * This symbol, if defined, indicates that the entire sem*(2) library is
1711 * supported.
1712 */
1713/*#define HAS_SEM /**/
1714
1715/* HAS_SETGRENT:
1716 * This symbol, if defined, indicates that the setgrent routine is
1717 * available for initializing sequential access of the group database.
1718 */
1719/*#define HAS_SETGRENT /**/
1720
924b3ec4 1721/* HAS_SETGROUPS:
1722 * This symbol, if defined, indicates that the setgroups() routine is
1723 * available to set the list of process groups. If unavailable, multiple
1724 * groups are probably not supported.
a835ef8a 1725 */
924b3ec4 1726/*#define HAS_SETGROUPS /**/
1727
07ba5892 1728/* HAS_SETHOSTENT:
1729 * This symbol, if defined, indicates that the sethostent() routine is
1730 * available.
1731 */
1732/*#define HAS_SETHOSTENT /**/
1733
0cd52aa3 1734/* HAS_SETNETENT:
1735 * This symbol, if defined, indicates that the setnetent() routine is
1736 * available.
1737 */
1738/*#define HAS_SETNETENT /**/
1739
1740/* HAS_SETPROTOENT:
1741 * This symbol, if defined, indicates that the setprotoent() routine is
1742 * available.
1743 */
1744/*#define HAS_SETPROTOENT /**/
1745
327c3667 1746/* HAS_SETPWENT:
1747 * This symbol, if defined, indicates that the setpwent routine is
1748 * available for initializing sequential access of the passwd database.
1749 */
1750/*#define HAS_SETPWENT /**/
1751
0cd52aa3 1752/* HAS_SETSERVENT:
1753 * This symbol, if defined, indicates that the setservent() routine is
1754 * available.
1755 */
1756/*#define HAS_SETSERVENT /**/
1757
1758/* HAS_SETVBUF:
1759 * This symbol, if defined, indicates that the setvbuf routine is
1760 * available to change buffering on an open stdio stream.
1761 * to a line-buffered mode.
1762 */
1763#define HAS_SETVBUF /**/
1764
327c3667 1765/* HAS_SHM:
1766 * This symbol, if defined, indicates that the entire shm*(2) library is
1767 * supported.
1768 */
1769/*#define HAS_SHM /**/
1770
bdaec6b3 1771/* HAS_SOCKET:
1772 * This symbol, if defined, indicates that the BSD socket interface is
1773 * supported.
1774 */
1775/* HAS_SOCKETPAIR:
1776 * This symbol, if defined, indicates that the BSD socketpair() call is
1777 * supported.
1778 */
c4d53692 1779/* HAS_MSG_CTRUNC:
1780 * This symbol, if defined, indicates that the MSG_CTRUNC is supported.
1781 * Checking just with #ifdef might not be enough because this symbol
1782 * has been known to be an enum.
1783 */
1784/* HAS_MSG_DONTROUTE:
1785 * This symbol, if defined, indicates that the MSG_DONTROUTE is supported.
1786 * Checking just with #ifdef might not be enough because this symbol
1787 * has been known to be an enum.
1788 */
1789/* HAS_MSG_OOB:
1790 * This symbol, if defined, indicates that the MSG_OOB is supported.
1791 * Checking just with #ifdef might not be enough because this symbol
1792 * has been known to be an enum.
1793 */
1794/* HAS_MSG_PEEK:
1795 * This symbol, if defined, indicates that the MSG_PEEK is supported.
1796 * Checking just with #ifdef might not be enough because this symbol
1797 * has been known to be an enum.
1798 */
1799/* HAS_MSG_PROXY:
1800 * This symbol, if defined, indicates that the MSG_PROXY is supported.
1801 * Checking just with #ifdef might not be enough because this symbol
1802 * has been known to be an enum.
1803 */
1804/* HAS_SCM_RIGHTS:
1805 * This symbol, if defined, indicates that the SCM_RIGHTS is supported.
1806 * Checking just with #ifdef might not be enough because this symbol
1807 * has been known to be an enum.
1808 */
1809/* HAS_SENDMSG:
1810 * This symbol, if defined, indicates that the sendmsg is supported
1811 * to send messages between sockets. You will also need struct
1812 * iovec from <sys/uio.h>, HAS_STRUCT_IOVEC and I_SYSUIO.
1813 */
1814/* HAS_RECVMSG:
1815 * This symbol, if defined, indicates that the recvmsg is supported
1816 * to send messages between sockets. You will also need struct
1817 * iovec from <sys/uio.h>, HAS_STRUCT_IOVEC and I_SYSUIO.
1818 */
1819/* HAS_STRUCT_MSGHDR:
1820 * This symbol, if defined, indicates that the struct msghdr
1821 * (BSD 4.3 or 4.4) is supported. You will also need struct
1822 * iovec from <sys/uio.h>, HAS_STRUCT_IOVEC and I_SYSUIO.
1823 */
1824/* HAS_STRUCT_CMSGHDR:
1825 * This symbol, if defined, indicates that the struct cmsghdr
1826 * (BSD 4.4) is supported. You will also need struct
1827 * iovec from <sys/uio.h>, HAS_STRUCT_IOVEC and I_SYSUIO.
1828 */
1829#define HAS_SOCKET /**/
1830/*#define HAS_SOCKETPAIR /**/
1831/*#define HAS_MSG_CTRUNC /**/
1832/*#define HAS_MSG_DONTROUTE /**/
1833/*#define HAS_MSG_OOB /**/
1834/*#define HAS_MSG_PEEK /**/
1835/*#define HAS_MSG_PROXY /**/
1836/*#define HAS_SCM_RIGHTS /**/
1837/*#define HAS_SENDMSG /**/
1838/*#define HAS_RECVMSG /**/
1839/*#define HAS_STRUCT_MSGHDR /**/
1840/*#define HAS_STRUCT_CMSGHDR /**/
bdaec6b3 1841
327c3667 1842/* USE_STAT_BLOCKS:
1843 * This symbol is defined if this system has a stat structure declaring
1844 * st_blksize and st_blocks.
1845 */
104f9d64 1846/*#define USE_STAT_BLOCKS /**/
327c3667 1847
1848/* HAS_STRERROR:
1849 * This symbol, if defined, indicates that the strerror routine is
1850 * available to translate error numbers to strings. See the writeup
1851 * of Strerror() in this file before you try to define your own.
1852 */
1853/* HAS_SYS_ERRLIST:
1854 * This symbol, if defined, indicates that the sys_errlist array is
1855 * available to translate error numbers to strings. The extern int
1856 * sys_nerr gives the size of that table.
1857 */
1858/* Strerror:
1859 * This preprocessor symbol is defined as a macro if strerror() is
1860 * not available to translate error numbers to strings but sys_errlist[]
1861 * array is there.
1862 */
1863#define HAS_STRERROR /**/
1864#define HAS_SYS_ERRLIST /**/
1865#define Strerror(e) strerror(e)
1866
be44fb0e 1867/* HAS_UNION_SEMUN:
1868 * This symbol, if defined, indicates that the union semun is
1869 * defined by including <sys/sem.h>. If not, the user code
1870 * probably needs to define it as:
1871 * union semun {
1872 * int val;
1873 * struct semid_ds *buf;
1874 * unsigned short *array;
1875 * }
1876 */
1877/* USE_SEMCTL_SEMUN:
1878 * This symbol, if defined, indicates that union semun is
1879 * used for semctl IPC_STAT.
1880 */
1881/* USE_SEMCTL_SEMID_DS:
1882 * This symbol, if defined, indicates that struct semid_ds * is
1883 * used for semctl IPC_STAT.
1884 */
1885#define HAS_UNION_SEMUN /**/
1886/*#define USE_SEMCTL_SEMUN /**/
1887/*#define USE_SEMCTL_SEMID_DS /**/
1888
9423c6fc 1889/* HAS_VFORK:
1890 * This symbol, if defined, indicates that vfork() exists.
1891 */
1892/*#define HAS_VFORK /**/
1893
924b3ec4 1894/* Signal_t:
1895 * This symbol's value is either "void" or "int", corresponding to the
1896 * appropriate return type of a signal handler. Thus, you can declare
1897 * a signal handler using "Signal_t (*handler)()", and define the
1898 * handler using "Signal_t handler(sig)".
1899 */
1900#define Signal_t void /* Signal handler's return type */
1901
1902/* Groups_t:
1903 * This symbol holds the type used for the second argument to
1904 * getgroups() and setgropus(). Usually, this is the same as
1905 * gidtype (gid_t) , but sometimes it isn't.
1906 * It can be int, ushort, uid_t, etc...
1907 * It may be necessary to include <sys/types.h> to get any
1908 * typedef'ed information. This is only required if you have
1909 * getgroups() or setgropus()..
1910 */
1911#if defined(HAS_GETGROUPS) || defined(HAS_SETGROUPS)
1912#define Groups_t gid_t /* Type for 2nd arg to [sg]etgroups() */
1913#endif
1914
327c3667 1915/* I_GRP:
1916 * This symbol, if defined, indicates to the C program that it should
1917 * include <grp.h>.
1918 */
1919/* GRPASSWD:
1920 * This symbol, if defined, indicates to the C program that struct group
1921 * in <grp.h> contains gr_passwd.
1922 */
1923/*#define I_GRP /**/
1924/*#define GRPASSWD /**/
1925
924b3ec4 1926/* I_NETDB:
1927 * This symbol, if defined, indicates that <netdb.h> exists and
1928 * should be included.
1929 */
1930/*#define I_NETDB /**/
a835ef8a 1931
62520c91 1932/* I_PWD:
1933 * This symbol, if defined, indicates to the C program that it should
1934 * include <pwd.h>.
1935 */
1936/* PWQUOTA:
1937 * This symbol, if defined, indicates to the C program that struct passwd
1938 * contains pw_quota.
1939 */
1940/* PWAGE:
1941 * This symbol, if defined, indicates to the C program that struct passwd
1942 * contains pw_age.
1943 */
1944/* PWCHANGE:
1945 * This symbol, if defined, indicates to the C program that struct passwd
1946 * contains pw_change.
1947 */
1948/* PWCLASS:
1949 * This symbol, if defined, indicates to the C program that struct passwd
1950 * contains pw_class.
1951 */
1952/* PWEXPIRE:
1953 * This symbol, if defined, indicates to the C program that struct passwd
1954 * contains pw_expire.
1955 */
1956/* PWCOMMENT:
1957 * This symbol, if defined, indicates to the C program that struct passwd
1958 * contains pw_comment.
1959 */
1960/* PWGECOS:
1961 * This symbol, if defined, indicates to the C program that struct passwd
1962 * contains pw_gecos.
1963 */
28e8609d 1964/* PWPASSWD:
1965 * This symbol, if defined, indicates to the C program that struct passwd
1966 * contains pw_passwd.
1967 */
62520c91 1968/*#define I_PWD /**/
1969/*#define PWQUOTA /**/
1970/*#define PWAGE /**/
1971/*#define PWCHANGE /**/
1972/*#define PWCLASS /**/
1973/*#define PWEXPIRE /**/
1974/*#define PWCOMMENT /**/
1975/*#define PWGECOS /**/
28e8609d 1976/*#define PWPASSWD /**/
62520c91 1977
c4d53692 1978/* I_SYSUIO:
1979 * This symbol, if defined, indicates that <sys/uio.h> exists and
1980 * should be included.
1981 */
1982/*#define I_SYSUIO /**/
1983
9036c72f 1984/* Free_t:
1985 * This variable contains the return type of free(). It is usually
1986 * void, but occasionally int.
a835ef8a 1987 */
9036c72f 1988/* Malloc_t:
1989 * This symbol is the type of pointer returned by malloc and realloc.
1990 */
1991#define Malloc_t void * /**/
1992#define Free_t void /**/
1993
1994/* MYMALLOC:
1995 * This symbol, if defined, indicates that we're using our own malloc.
a835ef8a 1996 */
9036c72f 1997/*#define MYMALLOC /**/
a835ef8a 1998
62520c91 1999/* SIG_NAME:
2000 * This symbol contains a list of signal names in order of
2001 * signal number. This is intended
2002 * to be used as a static array initialization, like this:
2003 * char *sig_name[] = { SIG_NAME };
2004 * The signals in the list are separated with commas, and each signal
2005 * is surrounded by double quotes. There is no leading SIG in the signal
2006 * name, i.e. SIGQUIT is known as "QUIT".
2007 * Gaps in the signal numbers (up to NSIG) are filled in with NUMnn,
2008 * etc., where nn is the actual signal number (e.g. NUM37).
2009 * The signal number for sig_name[i] is stored in sig_num[i].
2010 * The last element is 0 to terminate the list with a NULL. This
2011 * corresponds to the 0 at the end of the sig_num list.
2012 */
2013/* SIG_NUM:
2014 * This symbol contains a list of signal numbers, in the same order as the
2015 * SIG_NAME list. It is suitable for static array initialization, as in:
2016 * int sig_num[] = { SIG_NUM };
2017 * The signals in the list are separated with commas, and the indices
2018 * within that list and the SIG_NAME list match, so it's easy to compute
2019 * the signal name from a number or vice versa at the price of a small
2020 * dynamic linear lookup.
2021 * Duplicates are allowed, but are moved to the end of the list.
2022 * The signal number corresponding to sig_name[i] is sig_number[i].
2023 * if (i < NSIG) then sig_number[i] == i.
2024 * The last element is 0, corresponding to the 0 at the end of
2025 * the sig_name list.
2026 */
46124e9e 2027#define SIG_NAME "ZERO", "NUM01", "INT", "QUIT", "ILL", "NUM05", "NUM06", "NUM07", "FPE", "KILL", "NUM10", "SEGV", "NUM12", "PIPE", "ALRM", "TERM", "NUM16", "NUM17", "NUM18", "NUM19", "CHLD", "BREAK", "ABRT", "STOP", "NUM24", "CONT", "CLD", 0 /**/
22c35a8c 2028#define SIG_NUM 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 20, 0 /**/
62520c91 2029
9036c72f 2030/* VOIDFLAGS:
2031 * This symbol indicates how much support of the void type is given by this
2032 * compiler. What various bits mean:
2033 *
2034 * 1 = supports declaration of void
2035 * 2 = supports arrays of pointers to functions returning void
2036 * 4 = supports comparisons between pointers to void functions and
2037 * addresses of void functions
2038 * 8 = suports declaration of generic void pointers
2039 *
2040 * The package designer should define VOIDUSED to indicate the requirements
2041 * of the package. This can be done either by #defining VOIDUSED before
2042 * including config.h, or by defining defvoidused in Myinit.U. If the
2043 * latter approach is taken, only those flags will be tested. If the
2044 * level of void support necessary is not present, defines void to int.
a835ef8a 2045 */
9036c72f 2046#ifndef VOIDUSED
2047#define VOIDUSED 15
2048#endif
2049#define VOIDFLAGS 15
2050#if (VOIDFLAGS & VOIDUSED) != VOIDUSED
2051#define void int /* is void to be avoided? */
2052#define M_VOID /* Xenix strikes again */
2053#endif
a835ef8a 2054
9036c72f 2055/* ARCHLIB:
2056 * This variable, if defined, holds the name of the directory in
2057 * which the user wants to put architecture-dependent public
2058 * library files for perl5. It is most often a local directory
2059 * such as /usr/local/lib. Programs using this variable must be
2060 * prepared to deal with filename expansion. If ARCHLIB is the
2061 * same as PRIVLIB, it is not defined, since presumably the
2062 * program already searches PRIVLIB.
a835ef8a 2063 */
9036c72f 2064/* ARCHLIB_EXP:
2065 * This symbol contains the ~name expanded version of ARCHLIB, to be used
a835ef8a 2066 * in programs that are not prepared to deal with ~ expansion at run-time.
2067 */
ba7a42cf 2068#define ARCHLIB "c:\\perl\\5.00557\\lib\\MSWin32-x86" /**/
9036c72f 2069/*#define ARCHLIB_EXP "" /**/
a835ef8a 2070
924b3ec4 2071/* DLSYM_NEEDS_UNDERSCORE:
2072 * This symbol, if defined, indicates that we need to prepend an
2073 * underscore to the symbol name before calling dlsym(). This only
2074 * makes sense if you *have* dlsym, which we will presume is the
2075 * case if you're using dl_dlopen.xs.
2076 */
2077/*#define DLSYM_NEEDS_UNDERSCORE /**/
2078
327c3667 2079/* HAS_FSEEKO:
2080 * This symbol, if defined, indicates that the fseeko routine is
2081 * available to fseek beyond 32 bits (useful for ILP32 hosts).
2082 */
2083/*#define HAS_FSEEKO /**/
2084
2085/* HAS_FTELLO:
2086 * This symbol, if defined, indicates that the ftello routine is
2087 * available to ftell from beyond 32 bits (useful for ILP32 hosts).
2088 */
2089/*#define HAS_FTELLO /**/
2090
9423c6fc 2091/* HAS_GETMNTENT:
2092 * This symbol, if defined, indicates that the getmntent routine is
2093 * available to iterate through mounted file systems.
2094 */
2095/*#define HAS_GETMNTENT /**/
2096
2097/* HAS_HASMNTOPT:
2098 * This symbol, if defined, indicates that the hasmntopt routine is
2099 * available to query the mount options of file systems.
2100 */
2101/*#define HAS_HASMNTOPT /**/
2102
c4d53692 2103/* HAS_MADVISE:
2104 * This symbol, if defined, indicates that the madvise system call is
2105 * available to map a file into memory.
2106 */
2107/*#define HAS_MADVISE /**/
2108
2109/* HAS_MPROTECT:
2110 * This symbol, if defined, indicates that the mprotect system call is
2111 * available to modify the access protection of a memory mapped file.
2112 */
2113/*#define HAS_MPROTECT /**/
2114
2115/* HAS_READV:
2116 * This symbol, if defined, indicates that the readv routine is
2117 * available to do gather reads. You will also need <sys/uio.h>
2118 * and there I_SYSUIO.
2119 */
2120/*#define HAS_READV /**/
2121
924b3ec4 2122/* USE_SFIO:
2123 * This symbol, if defined, indicates that sfio should
2124 * be used.
2125 */
2126/*#define USE_SFIO /**/
2127
c4d53692 2128/* HAS_FSTATFS:
2129 * This symbol, if defined, indicates that the fstatfs routine is
9423c6fc 2130 * available to stat filesystems of file descriptors.
c4d53692 2131 */
2132/* HAS_STRUCT_STATFS_FLAGS:
2133 * This symbol, if defined, indicates that the struct statfs
2134 * does have the f_flags member containing the mount flags of
2135 * the filesystem holding the file.
9423c6fc 2136 * This kind of struct statfs is coming from sys/mount.h (BSD),
2137 * not from sys/statfs.h (SYSV).
c4d53692 2138 */
2139/*#define HAS_FSTATFS /**/
2140/*#define HAS_STRUCT_STATFS_FLAGS /**/
2141
2142/* HAS_FSTATVFS:
2143 * This symbol, if defined, indicates that the fstatvfs routine is
9423c6fc 2144 * available to stat filesystems of file descriptors.
c4d53692 2145 */
2146/*#define HAS_FSTATVFS /**/
2147
2148/* HAS_TELLDIR_PROTO:
2149 * This symbol, if defined, indicates that the system provides
2150 * a prototype for the telldir() function. Otherwise, it is up
2151 * to the program to supply one. A good guess is
20ce7b12 2152 * extern long telldir (DIR*);
c4d53692 2153 */
2154#define HAS_TELLDIR_PROTO /**/
2155
2156/* HAS_WRITEV:
2157 * This symbol, if defined, indicates that the writev routine is
2158 * available to do scatter writes.
2159 */
2160/*#define HAS_WRITEV /**/
2161
327c3667 2162/* HAS_DBMINIT64:
2163 * This symbol, if defined, indicates that the dbminit64 routine is
2164 * available to open dbm files larger than 2 gigabytes.
2165 */
2166/* HAS_DBMCLOSE64:
2167 * This symbol, if defined, indicates that the dbmclose64 routine is
2168 * available to close dbm files larger than 2 gigabytes.
2169 */
2170/* HAS_FETCH64:
2171 * This symbol, if defined, indicates that the fetch64 routine is
2172 * available to fetch from dbm files larger than 2 gigabytes.
2173 */
2174/* HAS_STORE64:
2175 * This symbol, if defined, indicates that the store64 routine is
2176 * available to store to dbm files larger than 2 gigabytes.
2177 */
2178/* HAS_DELETE64:
2179 * This symbol, if defined, indicates that the delete64 routine is
2180 * available to delete from dbm files larger than 2 gigabytes.
2181 */
2182/* HAS_FIRSTKEY64:
2183 * This symbol, if defined, indicates that the firstkey64 routine is
2184 * available to firstkey in dbm files larger than 2 gigabytes.
2185 */
2186/* HAS_NEXTKEY64:
2187 * This symbol, if defined, indicates that the nextkey64 routine is
2188 * available to nextkey in dbm files larger than 2 gigabytes.
2189 */
2190/*#define HAS_DBMINIT64 /**/
2191/*#define HAS_DBMCLOSE64 /**/
2192/*#define HAS_FETCH64 /**/
2193/*#define HAS_STORE64 /**/
2194/*#define HAS_DELETE64 /**/
2195/*#define HAS_FIRSTKEY64 /**/
2196/*#define HAS_NEXTKEY64 /**/
2197
924b3ec4 2198/* USE_DYNAMIC_LOADING:
2199 * This symbol, if defined, indicates that dynamic loading of
2200 * some sort is available.
2201 */
2202#define USE_DYNAMIC_LOADING /**/
2203
9423c6fc 2204/* FFLUSH_NULL:
2205 * This symbol, if defined, tells that fflush(NULL) does flush
2206 * all pending stdio output.
2207 */
2208/* FFLUSH_ALL:
2209 * This symbol, if defined, tells that to flush
2210 * all pending stdio output one must loop through all
2211 * the stdio file handles stored in an array and fflush them.
2212 * Note that if fflushNULL is defined, fflushall will not
2213 * even be probed for and will be left undefined.
2214 */
2215#define FFLUSH_NULL /**/
2216/*#define FFLUSH_ALL /**/
2217
924b3ec4 2218/* DB_Prefix_t:
2219 * This symbol contains the type of the prefix structure element
2220 * in the <db.h> header file. In older versions of DB, it was
2221 * int, while in newer ones it is u_int32_t.
2222 */
2223/* DB_Hash_t:
2224 * This symbol contains the type of the prefix structure element
2225 * in the <db.h> header file. In older versions of DB, it was
2226 * int, while in newer ones it is size_t.
2227 */
2228#define DB_Hash_t int /**/
2229#define DB_Prefix_t int /**/
2230
327c3667 2231/* I_INTTYPES:
2232 * This symbol, if defined, indicates to the C program that it should
2233 * include <inttypes.h>.
2234 */
2235/* HAS_INT64_T:
2236 * This symbol will defined if the C compiler supports int64_t.
2237 * Usually the <inttypes.h> needs to be included, but sometimes
2238 * <sys/types.h> is enough.
2239 */
2240/*#define I_INTTYPES /**/
2241/*#define HAS_INT64_T /**/
2242
c4d53692 2243/* I_MNTENT:
2244 * This symbol, if defined, indicates that <mntent.h> exists and
2245 * should be included.
2246 */
2247/*#define I_MNTENT /**/
2248
9423c6fc 2249/* I_NETINET_TCP:
2250 * This symbol, if defined, indicates to the C program that it should
2251 * include <netinet/tcp.h>.
2252 */
2253/*#define I_NETINET_TCP /**/
2254
c4d53692 2255/* I_POLL:
2256 * This symbol, if defined, indicates that <poll.h> exists and
2257 * should be included.
2258 */
2259/*#define I_POLL /**/
2260
2261/* I_SYS_MMAN:
2262 * This symbol, if defined, indicates that <sys/mman.h> exists and
2263 * should be included.
2264 */
2265/*#define I_SYS_MMAN /**/
2266
2267/* I_SYS_MOUNT:
2268 * This symbol, if defined, indicates that <sys/mount.h> exists and
2269 * should be included.
2270 */
2271/*#define I_SYS_MOUNT /**/
2272
2273/* I_SYS_STATVFS:
2274 * This symbol, if defined, indicates that <sys/statvfs.h> exists and
2275 * should be included.
2276 */
2277/*#define I_SYS_STATVFS /**/
2278
2279/* INSTALL_USR_BIN_PERL:
2280 * This symbol, if defined, indicates that Perl is to be installed
2281 * also as /usr/bin/perl.
2282 */
2283/*#define INSTALL_USR_BIN_PERL /**/
2284
327c3667 2285/* HAS_FSTAT64:
2286 * This symbol, if defined, indicates that the fstat64 routine is
2287 * available to stat files (fds) larger than 2 gigabytes.
2288 */
2289/* HAS_FTRUNCATE64:
2290 * This symbol, if defined, indicates that the ftruncate64 routine is
2291 * available to tell files larger than 2 gigabytes.
2292 */
2293/* HAS_LSEEK64:
2294 * This symbol, if defined, indicates that the lseek64 routine is
2295 * available to seek files larger than 2 gigabytes.
2296 */
2297/* HAS_LSTAT64:
2298 * This symbol, if defined, indicates that the lstat64 routine is
2299 * available to stat files (symlinks) larger than 2 gigabytes.
2300 */
2301/* HAS_OPEN64:
2302 * This symbol, if defined, indicates that the open64 routine is
2303 * available to open files larger than 2 gigabytes.
2304 */
2305/* HAS_OPENDIR64:
2306 * This symbol, if defined, indicates that the opendir64 routine is
2307 * available to opendir files larger than 2 gigabytes.
2308 */
2309/* HAS_READDIR64:
2310 * This symbol, if defined, indicates that the readdir64 routine is
2311 * available to readdir files larger than 2 gigabytes.
2312 */
2313/* HAS_SEEKDIR64:
2314 * This symbol, if defined, indicates that the seekdir64 routine is
2315 * available to seekdir files larger than 2 gigabytes.
2316 */
2317/* HAS_STAT64:
104f9d64 2318 * This symbol, if defined, indicates that the stat64 routine is
327c3667 2319 * available to stat files larger than 2 gigabytes.
2320 */
2321/* HAS_TELLDIR64:
2322 * This symbol, if defined, indicates that the telldir64 routine is
2323 * available to telldir files larger than 2 gigabytes.
2324 */
2325/* HAS_TRUNCATE64:
2326 * This symbol, if defined, indicates that the truncate64 routine is
2327 * available to truncate files larger than 2 gigabytes.
2328 */
2329/* HAS_OFF64_T:
2330 * This symbol will be defined if the C compiler supports off64_t.
2331 */
2332/* HAS_STRUCT_DIRENT64:
2333 * This symbol will be defined if the C compiler supports struct dirent64.
2334 */
2335/*#define HAS_FSTAT64 /**/
2336/*#define HAS_FTRUNCATE64 /**/
2337/*#define HAS_LSEEK64 /**/
2338/*#define HAS_LSTAT64 /**/
2339/*#define HAS_OPEN64 /**/
2340/*#define HAS_OPENDIR64 /**/
2341/*#define HAS_READDIR64 /**/
2342/*#define HAS_SEEKDIR64 /**/
2343/*#define HAS_STAT64 /**/
2344/*#define HAS_TELLDIR64 /**/
2345/*#define HAS_TRUNCATE64 /**/
2346/*#define HAS_OFF64_T /**/
2347/*#define HAS_STRUCT_DIRENT64 /**/
2348
9036c72f 2349/* PRIVLIB:
2350 * This symbol contains the name of the private library for this package.
2351 * The library is private in the sense that it needn't be in anyone's
2352 * execution path, but it should be accessible by the world. The program
2353 * should be prepared to do ~ expansion.
2354 */
2355/* PRIVLIB_EXP:
2356 * This symbol contains the ~name expanded version of PRIVLIB, to be used
2357 * in programs that are not prepared to deal with ~ expansion at run-time.
2358 */
ba7a42cf 2359#define PRIVLIB "c:\\perl\\5.00557\\lib" /**/
4f63d024 2360#define PRIVLIB_EXP (win32_get_privlib(aTHX_ "5.00557")) /**/
9036c72f 2361
327c3667 2362/* SELECT_MIN_BITS:
2363 * This symbol holds the minimum number of bits operated by select.
2364 * That is, if you do select(n, ...), how many bits at least will be
2365 * cleared in the masks if some activity is detected. Usually this
2366 * is either n or 32*ceil(n/32), especially many little-endians do
2367 * the latter. This is only useful if you have select(), naturally.
2368 */
2369#define SELECT_MIN_BITS 32 /**/
2370
9036c72f 2371/* SITEARCH:
2372 * This symbol contains the name of the private library for this package.
2373 * The library is private in the sense that it needn't be in anyone's
2374 * execution path, but it should be accessible by the world. The program
2375 * should be prepared to do ~ expansion.
2376 * The standard distribution will put nothing in this directory.
2377 * Individual sites may place their own extensions and modules in
2378 * this directory.
2379 */
2380/* SITEARCH_EXP:
2381 * This symbol contains the ~name expanded version of SITEARCH, to be used
2382 * in programs that are not prepared to deal with ~ expansion at run-time.
2383 */
ba7a42cf 2384#define SITEARCH "c:\\perl\\site\\5.00557\\lib\\MSWin32-x86" /**/
9036c72f 2385/*#define SITEARCH_EXP "" /**/
2386
2387/* SITELIB:
2388 * This symbol contains the name of the private library for this package.
2389 * The library is private in the sense that it needn't be in anyone's
2390 * execution path, but it should be accessible by the world. The program
2391 * should be prepared to do ~ expansion.
2392 * The standard distribution will put nothing in this directory.
2393 * Individual sites may place their own extensions and modules in
2394 * this directory.
2395 */
2396/* SITELIB_EXP:
2397 * This symbol contains the ~name expanded version of SITELIB, to be used
2398 * in programs that are not prepared to deal with ~ expansion at run-time.
2399 */
ba7a42cf 2400#define SITELIB "c:\\perl\\site\\5.00557\\lib" /**/
4f63d024 2401#define SITELIB_EXP (win32_get_sitelib(aTHX_ "5.00557")) /**/
9036c72f 2402
a835ef8a 2403/* STARTPERL:
2404 * This variable contains the string to put in front of a perl
2405 * script to make sure (one hopes) that it runs with perl and not
2406 * some shell.
2407 */
2408#define STARTPERL "#!perl" /**/
2409
327c3667 2410/* HAS_FGETPOS64:
2411 * This symbol, if defined, indicates that the fgetpos64 routine is
2412 * available to getpos files larger than 2 gigabytes.
2413 */
2414/* HAS_FOPEN64:
2415 * This symbol, if defined, indicates that the fopen64 routine is
2416 * available to open files larger than 2 gigabytes.
2417 */
2418/* HAS_FREOPEN64:
2419 * This symbol, if defined, indicates that the freopen64 routine is
2420 * available to reopen files larger than 2 gigabytes.
2421 */
2422/* HAS_FSEEK64:
2423 * This symbol, if defined, indicates that the fseek64 routine is
2424 * available to seek files larger than 2 gigabytes.
2425 */
2426/* HAS_FSEEKO64:
2427 * This symbol, if defined, indicates that the fseeko64 routine is
2428 * available to seek files larger than 2 gigabytes.
2429 */
2430/* HAS_FSETPOS64:
2431 * This symbol, if defined, indicates that the fsetpos64 routine is
2432 * available to setpos files larger than 2 gigabytes.
2433 */
2434/* HAS_FTELL64:
2435 * This symbol, if defined, indicates that the ftell64 routine is
2436 * available to tell files larger than 2 gigabytes.
2437 */
2438/* HAS_FTELLO64:
2439 * This symbol, if defined, indicates that the ftello64 routine is
2440 * available to tell files larger than 2 gigabytes.
2441 */
2442/* HAS_TMPFILE64:
2443 * This symbol, if defined, indicates that the tmpfile64 routine is
2444 * available to tmpfile files larger than 2 gigabytes.
2445 */
2446/*#define HAS_FGETPOS64 /**/
2447/*#define HAS_FOPEN64 /**/
2448/*#define HAS_FREOPEN64 /**/
2449/*#define HAS_FSEEK64 /**/
2450/*#define HAS_FSEEKO64 /**/
2451/*#define HAS_FSETPOS64 /**/
2452/*#define HAS_FTELL64 /**/
2453/*#define HAS_FTELLO64 /**/
2454/*#define HAS_TMPFILE64 /**/
2455
9423c6fc 2456/* HAS_STDIO_STREAM_ARRAY:
2457 * This symbol, if defined, tells that there is an array
2458 * holding the stdio streams.
2459 */
2460/* STDIO_STREAM_ARRAY:
2461 * This symbol tells the name of the array holding the stdio streams.
2462 * Usual values include _iob, __iob, and __sF.
2463 */
2464/*#define HAS_STDIO_STREAM_ARRAY /**/
2465#define STDIO_STREAM_ARRAY undef
2466
327c3667 2467/* USE_64_BITS:
104f9d64 2468 * This symbol, if defined, indicates that 64-bit interfaces should
2469 * be used when available. If not defined, the native default interfaces
327c3667 2470 * will be used (be they 32 or 64 bits).
2471 */
2472/*#define USE_64_BITS /**/
2473
c4d53692 2474/* MULTIPLICITY:
2475 * This symbol, if defined, indicates that Perl should
2476 * be built to use multiplicity.
2477 */
2478/*#define MULTIPLICITY /**/
2479
a835ef8a 2480/* USE_PERLIO:
2481 * This symbol, if defined, indicates that the PerlIO abstraction should
2482 * be used throughout. If not defined, stdio should be
2483 * used in a fully backward compatible manner.
2484 */
2485/*#define USE_PERLIO /**/
2486
104f9d64 2487/* HAS_DRAND48_PROTO:
2488 * This symbol, if defined, indicates that the system provides
2489 * a prototype for the drand48() function. Otherwise, it is up
2490 * to the program to supply one. A good guess is
20ce7b12 2491 * extern double drand48 (void);
104f9d64 2492 */
2493/*#define HAS_DRAND48_PROTO /**/
2494
bdaec6b3 2495/* HAS_GETHOST_PROTOS:
2496 * This symbol, if defined, indicates that <netdb.h> includes
2497 * prototypes for gethostent(), gethostbyname(), and
2498 * gethostbyaddr(). Otherwise, it is up to the program to guess
2499 * them. See netdbtype.U for probing for various Netdb_xxx_t types.
2500 */
2501#define HAS_GETHOST_PROTOS /**/
2502
2503/* HAS_GETNET_PROTOS:
2504 * This symbol, if defined, indicates that <netdb.h> includes
2505 * prototypes for getnetent(), getnetbyname(), and
2506 * getnetbyaddr(). Otherwise, it is up to the program to guess
2507 * them. See netdbtype.U for probing for various Netdb_xxx_t types.
2508 */
2509/*#define HAS_GETNET_PROTOS /**/
2510
2511/* HAS_GETPROTO_PROTOS:
2512 * This symbol, if defined, indicates that <netdb.h> includes
2513 * prototypes for getprotoent(), getprotobyname(), and
2514 * getprotobyaddr(). Otherwise, it is up to the program to guess
2515 * them. See netdbtype.U for probing for various Netdb_xxx_t types.
2516 */
2517#define HAS_GETPROTO_PROTOS /**/
2518
2519/* HAS_GETSERV_PROTOS:
2520 * This symbol, if defined, indicates that <netdb.h> includes
2521 * prototypes for getservent(), getservbyname(), and
2522 * getservbyaddr(). Otherwise, it is up to the program to guess
2523 * them. See netdbtype.U for probing for various Netdb_xxx_t types.
2524 */
2525#define HAS_GETSERV_PROTOS /**/
2526
924b3ec4 2527/* Netdb_host_t:
2528 * This symbol holds the type used for the 1st argument
2529 * to gethostbyaddr().
a835ef8a 2530 */
924b3ec4 2531/* Netdb_hlen_t:
2532 * This symbol holds the type used for the 2nd argument
2533 * to gethostbyaddr().
2534 */
2535/* Netdb_name_t:
2536 * This symbol holds the type used for the argument to
2537 * gethostbyname().
2538 */
2539/* Netdb_net_t:
2540 * This symbol holds the type used for the 1st argument to
2541 * getnetbyaddr().
2542 */
2543#define Netdb_host_t char * /**/
2544#define Netdb_hlen_t int /**/
2545#define Netdb_name_t char * /**/
2546#define Netdb_net_t long /**/
2547
2548/* Select_fd_set_t:
2549 * This symbol holds the type used for the 2nd, 3rd, and 4th
2550 * arguments to select. Usually, this is 'fd_set *', if HAS_FD_SET
2551 * is defined, and 'int *' otherwise. This is only useful if you
2552 * have select(), of course.
2553 */
2554#define Select_fd_set_t Perl_fd_set * /**/
2555
2556/* ARCHNAME:
2557 * This symbol holds a string representing the architecture name.
2558 * It may be used to construct an architecture-dependant pathname
2559 * where library files may be held under a private library, for
2560 * instance.
2561 */
2562#define ARCHNAME "MSWin32-x86" /**/
2563
c4d53692 2564/* OLD_PTHREAD_CREATE_JOINABLE:
2565 * This symbol, if defined, indicates how to create pthread
2566 * in joinable (aka undetached) state. NOTE: not defined
2567 * if pthread.h already has defined PTHREAD_CREATE_JOINABLE
2568 * (the new version of the constant).
2569 * If defined, known values are PTHREAD_CREATE_UNDETACHED
2570 * and __UNDETACHED.
2571 */
2572/*#define OLD_PTHREAD_CREATE_JOINABLE /**/
2573
924b3ec4 2574/* HAS_PTHREAD_YIELD:
2575 * This symbol, if defined, indicates that the pthread_yield
2576 * routine is available to yield the execution of the current
104f9d64 2577 * thread. sched_yield is preferable to pthread_yield.
2578 */
2579/* SCHED_YIELD:
2580 * This symbol defines the way to yield the execution of
2581 * the current thread. Known ways are sched_yield,
2582 * pthread_yield, and pthread_yield with NULL.
924b3ec4 2583 */
62520c91 2584/* HAS_SCHED_YIELD:
2585 * This symbol, if defined, indicates that the sched_yield
2586 * routine is available to yield the execution of the current
104f9d64 2587 * thread. sched_yield is preferable to pthread_yield.
62520c91 2588 */
924b3ec4 2589/*#define HAS_PTHREAD_YIELD /**/
104f9d64 2590#define SCHED_YIELD /**/
62520c91 2591/*#define HAS_SCHED_YIELD /**/
924b3ec4 2592
22c35a8c 2593/* I_MACH_CTHREADS:
2594 * This symbol, if defined, indicates to the C program that it should
2595 * include <mach/cthreads.h>.
924b3ec4 2596 */
22c35a8c 2597/*#define I_MACH_CTHREADS /**/
924b3ec4 2598
2599/* USE_THREADS:
2600 * This symbol, if defined, indicates that Perl should
2601 * be built to use threads.
2602 */
07ba5892 2603/* OLD_PTHREADS_API:
2604 * This symbol, if defined, indicates that Perl should
2605 * be built to use the old draft POSIX threads API.
2606 */
924b3ec4 2607/*#define USE_THREADS /**/
07ba5892 2608/*#define OLD_PTHREADS_API /**/
a835ef8a 2609
bdaec6b3 2610/* Time_t:
2611 * This symbol holds the type returned by time(). It can be long,
2612 * or time_t on BSD sites (in which case <sys/types.h> should be
2613 * included).
2614 */
2615#define Time_t time_t /* Time type */
2616
2617/* HAS_TIMES:
2618 * This symbol, if defined, indicates that the times() routine exists.
2619 * Note that this became obsolete on some systems (SUNOS), which now
2620 * use getrusage(). It may be necessary to include <sys/times.h>.
2621 */
2622#define HAS_TIMES /**/
2623
2624/* Fpos_t:
2625 * This symbol holds the type used to declare file positions in libc.
2626 * It can be fpos_t, long, uint, etc... It may be necessary to include
2627 * <sys/types.h> to get any typedef'ed information.
2628 */
2629#define Fpos_t fpos_t /* File position type */
2630
2631/* Gid_t:
2632 * This symbol holds the return type of getgid() and the type of
2633 * argument to setrgid() and related functions. Typically,
2634 * it is the type of group ids in the kernel. It can be int, ushort,
2635 * uid_t, etc... It may be necessary to include <sys/types.h> to get
2636 * any typedef'ed information.
2637 */
2638#define Gid_t gid_t /* Type for getgid(), etc... */
2639
2640/* Off_t:
2641 * This symbol holds the type used to declare offsets in the kernel.
2642 * It can be int, long, off_t, etc... It may be necessary to include
2643 * <sys/types.h> to get any typedef'ed information.
2644 */
104f9d64 2645/* LSEEKSIZE:
2646 * This symbol holds the number of bytes used by the Off_t.
2647 */
bdaec6b3 2648#define Off_t off_t /* <offset> type */
104f9d64 2649#define LSEEKSIZE 4 /* <offset> size */
bdaec6b3 2650
2651/* Mode_t:
2652 * This symbol holds the type used to declare file modes
2653 * for systems calls. It is usually mode_t, but may be
2654 * int or unsigned short. It may be necessary to include <sys/types.h>
2655 * to get any typedef'ed information.
2656 */
2657#define Mode_t mode_t /* file mode parameter for system calls */
2658
2659/* Pid_t:
2660 * This symbol holds the type used to declare process ids in the kernel.
2661 * It can be int, uint, pid_t, etc... It may be necessary to include
2662 * <sys/types.h> to get any typedef'ed information.
2663 */
2664#define Pid_t int /* PID type */
2665
2666/* Size_t:
2667 * This symbol holds the type used to declare length parameters
2668 * for string functions. It is usually size_t, but may be
2669 * unsigned long, int, etc. It may be necessary to include
2670 * <sys/types.h> to get any typedef'ed information.
2671 */
2672#define Size_t size_t /* length paramater for string functions */
2673
2674/* Uid_t:
2675 * This symbol holds the type used to declare user ids in the kernel.
2676 * It can be int, ushort, uid_t, etc... It may be necessary to include
2677 * <sys/types.h> to get any typedef'ed information.
2678 */
2679#define Uid_t uid_t /* UID type */
2680
a835ef8a 2681#endif