source: trunk/third/perl/config_h.SH @ 20075

Revision 20075, 135.2 KB checked in by zacheiss, 21 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r20074, which included commits to RCS files with non-trunk default branches.
Line 
1case "$CONFIG_SH" in
2'') CONFIG_SH=config.sh ;;
3esac
4case "$CONFIG_H" in
5'') CONFIG_H=config.h ;;
6esac
7case $PERL_CONFIG_SH in
8'')
9        if test -f $CONFIG_SH; then TOP=.;
10        elif test -f ../$CONFIG_SH; then TOP=..;
11        elif test -f ../../$CONFIG_SH; then TOP=../..;
12        elif test -f ../../../$CONFIG_SH; then TOP=../../..;
13        elif test -f ../../../../$CONFIG_SH; then TOP=../../../..;
14        else
15                echo "Can't find $CONFIG_SH."; exit 1
16        fi
17        . $TOP/$CONFIG_SH
18        ;;
19esac
20case "$0" in
21*/*) cd `expr X$0 : 'X\(.*\)/'` ;;
22esac
23echo "Extracting $CONFIG_H (with variable substitutions)"
24sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-def!#undef!'
25/*
26 * This file was produced by running the config_h.SH script, which
27 * gets its values from $CONFIG_SH, which is generally produced by
28 * running Configure.
29 *
30 * Feel free to modify any of this as the need arises.  Note, however,
31 * that running config_h.SH again will wipe out any changes you've made.
32 * For a more permanent change edit $CONFIG_SH and rerun config_h.SH.
33 *
34 * \$Id: config_h.SH,v 1.1.1.6 2004-02-09 19:09:10 zacheiss Exp $
35 */
36
37/*
38 * Package name      : $package
39 * Source directory  : $src
40 * Configuration time: $cf_time
41 * Configured by     : $cf_by
42 * Target system     : $myuname
43 */
44
45#ifndef _config_h_
46#define _config_h_
47
48/* LOC_SED:
49 *      This symbol holds the complete pathname to the sed program.
50 */
51#define LOC_SED         "$full_sed"     /**/
52
53/* HAS_ALARM:
54 *      This symbol, if defined, indicates that the alarm routine is
55 *      available.
56 */
57#$d_alarm HAS_ALARM             /**/
58
59/* HAS_BCMP:
60 *      This symbol is defined if the bcmp() routine is available to
61 *      compare blocks of memory.
62 */
63#$d_bcmp HAS_BCMP       /**/
64
65/* HAS_BCOPY:
66 *      This symbol is defined if the bcopy() routine is available to
67 *      copy blocks of memory.
68 */
69#$d_bcopy HAS_BCOPY     /**/
70
71/* HAS_BZERO:
72 *      This symbol is defined if the bzero() routine is available to
73 *      set a memory block to 0.
74 */
75#$d_bzero HAS_BZERO     /**/
76
77/* HAS_CHOWN:
78 *      This symbol, if defined, indicates that the chown routine is
79 *      available.
80 */
81#$d_chown HAS_CHOWN             /**/
82
83/* HAS_CHROOT:
84 *      This symbol, if defined, indicates that the chroot routine is
85 *      available.
86 */
87#$d_chroot HAS_CHROOT           /**/
88
89/* HAS_CHSIZE:
90 *      This symbol, if defined, indicates that the chsize routine is available
91 *      to truncate files.  You might need a -lx to get this routine.
92 */
93#$d_chsize      HAS_CHSIZE              /**/
94
95/* HASCONST:
96 *      This symbol, if defined, indicates that this C compiler knows about
97 *      the const type. There is no need to actually test for that symbol
98 *      within your programs. The mere use of the "const" keyword will
99 *      trigger the necessary tests.
100 */
101#$d_const HASCONST      /**/
102#ifndef HASCONST
103#define const
104#endif
105
106/* HAS_CUSERID:
107 *      This symbol, if defined, indicates that the cuserid routine is
108 *      available to get character login names.
109 */
110#$d_cuserid HAS_CUSERID         /**/
111
112/* HAS_DBL_DIG:
113 *      This symbol, if defined, indicates that this system's <float.h>
114 *      or <limits.h> defines the symbol DBL_DIG, which is the number
115 *      of significant digits in a double precision number.  If this
116 *      symbol is not defined, a guess of 15 is usually pretty good.
117 */
118#$d_dbl_dig HAS_DBL_DIG         /* */
119
120/* HAS_DIFFTIME:
121 *      This symbol, if defined, indicates that the difftime routine is
122 *      available.
123 */
124#$d_difftime HAS_DIFFTIME               /**/
125
126/* HAS_DLERROR:
127 *      This symbol, if defined, indicates that the dlerror routine is
128 *      available to return a string describing the last error that
129 *      occurred from a call to dlopen(), dlclose() or dlsym().
130 */
131#$d_dlerror HAS_DLERROR /**/
132
133/* HAS_DUP2:
134 *      This symbol, if defined, indicates that the dup2 routine is
135 *      available to duplicate file descriptors.
136 */
137#$d_dup2 HAS_DUP2       /**/
138
139/* HAS_FCHMOD:
140 *      This symbol, if defined, indicates that the fchmod routine is available
141 *      to change mode of opened files.  If unavailable, use chmod().
142 */
143#$d_fchmod HAS_FCHMOD           /**/
144
145/* HAS_FCHOWN:
146 *      This symbol, if defined, indicates that the fchown routine is available
147 *      to change ownership of opened files.  If unavailable, use chown().
148 */
149#$d_fchown HAS_FCHOWN           /**/
150
151/* HAS_FCNTL:
152 *      This symbol, if defined, indicates to the C program that
153 *      the fcntl() function exists.
154 */
155#$d_fcntl HAS_FCNTL             /**/
156
157/* HAS_FGETPOS:
158 *      This symbol, if defined, indicates that the fgetpos routine is
159 *      available to get the file position indicator, similar to ftell().
160 */
161#$d_fgetpos HAS_FGETPOS /**/
162
163/* HAS_FLOCK:
164 *      This symbol, if defined, indicates that the flock routine is
165 *      available to do file locking.
166 */
167#$d_flock HAS_FLOCK             /**/
168
169/* HAS_FORK:
170 *      This symbol, if defined, indicates that the fork routine is
171 *      available.
172 */
173#$d_fork HAS_FORK               /**/
174
175/* HAS_FSETPOS:
176 *      This symbol, if defined, indicates that the fsetpos routine is
177 *      available to set the file position indicator, similar to fseek().
178 */
179#$d_fsetpos HAS_FSETPOS /**/
180
181/* HAS_GETTIMEOFDAY:
182 *      This symbol, if defined, indicates that the gettimeofday() system
183 *      call is available for a sub-second accuracy clock. Usually, the file
184 *      <sys/resource.h> needs to be included (see I_SYS_RESOURCE).
185 *      The type "Timeval" should be used to refer to "struct timeval".
186 */
187#$d_gettimeod HAS_GETTIMEOFDAY  /**/
188#ifdef HAS_GETTIMEOFDAY
189#define Timeval struct timeval  /* Structure used by gettimeofday() */
190#endif
191
192/* HAS_GETGROUPS:
193 *      This symbol, if defined, indicates that the getgroups() routine is
194 *      available to get the list of process groups.  If unavailable, multiple
195 *      groups are probably not supported.
196 */
197#$d_getgrps HAS_GETGROUPS               /**/
198
199/* HAS_GETLOGIN:
200 *      This symbol, if defined, indicates that the getlogin routine is
201 *      available to get the login name.
202 */
203#$d_getlogin HAS_GETLOGIN               /**/
204
205/* HAS_GETPGID:
206 *      This symbol, if defined, indicates to the C program that
207 *      the getpgid(pid) function is available to get the
208 *      process group id.
209 */
210#$d_getpgid HAS_GETPGID         /**/
211
212/* HAS_GETPGRP2:
213 *      This symbol, if defined, indicates that the getpgrp2() (as in DG/UX)
214 *      routine is available to get the current process group.
215 */
216#$d_getpgrp2 HAS_GETPGRP2               /**/
217
218/* HAS_GETPPID:
219 *      This symbol, if defined, indicates that the getppid routine is
220 *      available to get the parent process ID.
221 */
222#$d_getppid HAS_GETPPID         /**/
223
224/* HAS_GETPRIORITY:
225 *      This symbol, if defined, indicates that the getpriority routine is
226 *      available to get a process's priority.
227 */
228#$d_getprior HAS_GETPRIORITY            /**/
229
230/* HAS_INET_ATON:
231 *      This symbol, if defined, indicates to the C program that the
232 *      inet_aton() function is available to parse IP address "dotted-quad"
233 *      strings.
234 */
235#$d_inetaton HAS_INET_ATON              /**/
236
237/* HAS_KILLPG:
238 *      This symbol, if defined, indicates that the killpg routine is available
239 *      to kill process groups.  If unavailable, you probably should use kill
240 *      with a negative process number.
241 */
242#$d_killpg HAS_KILLPG   /**/
243
244/* HAS_LINK:
245 *      This symbol, if defined, indicates that the link routine is
246 *      available to create hard links.
247 */
248#$d_link HAS_LINK       /**/
249
250/* HAS_LOCALECONV:
251 *      This symbol, if defined, indicates that the localeconv routine is
252 *      available for numeric and monetary formatting conventions.
253 */
254#$d_locconv HAS_LOCALECONV      /**/
255
256/* HAS_LOCKF:
257 *      This symbol, if defined, indicates that the lockf routine is
258 *      available to do file locking.
259 */
260#$d_lockf HAS_LOCKF             /**/
261
262/* HAS_LSTAT:
263 *      This symbol, if defined, indicates that the lstat routine is
264 *      available to do file stats on symbolic links.
265 */
266#$d_lstat HAS_LSTAT             /**/
267
268/* HAS_MBLEN:
269 *      This symbol, if defined, indicates that the mblen routine is available
270 *      to find the number of bytes in a multibye character.
271 */
272#$d_mblen HAS_MBLEN             /**/
273
274/* HAS_MBSTOWCS:
275 *      This symbol, if defined, indicates that the mbstowcs routine is
276 *      available to covert a multibyte string into a wide character string.
277 */
278#$d_mbstowcs    HAS_MBSTOWCS            /**/
279
280/* HAS_MBTOWC:
281 *      This symbol, if defined, indicates that the mbtowc routine is available
282 *      to covert a multibyte to a wide character.
283 */
284#$d_mbtowc HAS_MBTOWC           /**/
285
286/* HAS_MEMCMP:
287 *      This symbol, if defined, indicates that the memcmp routine is available
288 *      to compare blocks of memory.
289 */
290#$d_memcmp HAS_MEMCMP   /**/
291
292/* HAS_MEMCPY:
293 *      This symbol, if defined, indicates that the memcpy routine is available
294 *      to copy blocks of memory.
295 */
296#$d_memcpy HAS_MEMCPY   /**/
297
298/* HAS_MEMMOVE:
299 *      This symbol, if defined, indicates that the memmove routine is available
300 *      to copy potentially overlapping blocks of memory. This should be used
301 *      only when HAS_SAFE_BCOPY is not defined. If neither is there, roll your
302 *      own version.
303 */
304#$d_memmove HAS_MEMMOVE /**/
305
306/* HAS_MEMSET:
307 *      This symbol, if defined, indicates that the memset routine is available
308 *      to set blocks of memory.
309 */
310#$d_memset HAS_MEMSET   /**/
311
312/* HAS_MKDIR:
313 *      This symbol, if defined, indicates that the mkdir routine is available
314 *      to create directories.  Otherwise you should fork off a new process to
315 *      exec /bin/mkdir.
316 */
317#$d_mkdir HAS_MKDIR             /**/
318
319/* HAS_MKFIFO:
320 *      This symbol, if defined, indicates that the mkfifo routine is
321 *      available to create FIFOs. Otherwise, mknod should be able to
322 *      do it for you. However, if mkfifo is there, mknod might require
323 *      super-user privileges which mkfifo will not.
324 */
325#$d_mkfifo HAS_MKFIFO           /**/
326
327/* HAS_MKTIME:
328 *      This symbol, if defined, indicates that the mktime routine is
329 *      available.
330 */
331#$d_mktime HAS_MKTIME           /**/
332
333/* HAS_MSYNC:
334 *      This symbol, if defined, indicates that the msync system call is
335 *      available to synchronize a mapped file.
336 */
337#$d_msync HAS_MSYNC             /**/
338
339/* HAS_MUNMAP:
340 *      This symbol, if defined, indicates that the munmap system call is
341 *      available to unmap a region, usually mapped by mmap().
342 */
343#$d_munmap HAS_MUNMAP           /**/
344
345/* HAS_NICE:
346 *      This symbol, if defined, indicates that the nice routine is
347 *      available.
348 */
349#$d_nice HAS_NICE               /**/
350
351/* HAS_PATHCONF:
352 *      This symbol, if defined, indicates that pathconf() is available
353 *      to determine file-system related limits and options associated
354 *      with a given filename.
355 */
356/* HAS_FPATHCONF:
357 *      This symbol, if defined, indicates that pathconf() is available
358 *      to determine file-system related limits and options associated
359 *      with a given open file descriptor.
360 */
361#$d_pathconf HAS_PATHCONF               /**/
362#$d_fpathconf HAS_FPATHCONF             /**/
363
364/* HAS_PAUSE:
365 *      This symbol, if defined, indicates that the pause routine is
366 *      available to suspend a process until a signal is received.
367 */
368#$d_pause HAS_PAUSE             /**/
369
370/* HAS_PIPE:
371 *      This symbol, if defined, indicates that the pipe routine is
372 *      available to create an inter-process channel.
373 */
374#$d_pipe HAS_PIPE               /**/
375
376/* HAS_POLL:
377 *      This symbol, if defined, indicates that the poll routine is
378 *      available to poll active file descriptors. You may safely
379 *      include <poll.h> when this symbol is defined.
380 */
381#$d_poll HAS_POLL               /**/
382
383/* HAS_READDIR:
384 *      This symbol, if defined, indicates that the readdir routine is
385 *      available to read directory entries. You may have to include
386 *      <dirent.h>. See I_DIRENT.
387 */
388#$d_readdir HAS_READDIR         /**/
389
390/* HAS_SEEKDIR:
391 *      This symbol, if defined, indicates that the seekdir routine is
392 *      available. You may have to include <dirent.h>. See I_DIRENT.
393 */
394#$d_seekdir HAS_SEEKDIR         /**/
395
396/* HAS_TELLDIR:
397 *      This symbol, if defined, indicates that the telldir routine is
398 *      available. You may have to include <dirent.h>. See I_DIRENT.
399 */
400#$d_telldir HAS_TELLDIR         /**/
401
402/* HAS_REWINDDIR:
403 *      This symbol, if defined, indicates that the rewinddir routine is
404 *      available. You may have to include <dirent.h>. See I_DIRENT.
405 */
406#$d_rewinddir HAS_REWINDDIR             /**/
407
408/* HAS_READLINK:
409 *      This symbol, if defined, indicates that the readlink routine is
410 *      available to read the value of a symbolic link.
411 */
412#$d_readlink HAS_READLINK               /**/
413
414/* HAS_RENAME:
415 *      This symbol, if defined, indicates that the rename routine is available
416 *      to rename files.  Otherwise you should do the unlink(), link(), unlink()
417 *      trick.
418 */
419#$d_rename HAS_RENAME   /**/
420
421/* HAS_RMDIR:
422 *      This symbol, if defined, indicates that the rmdir routine is
423 *      available to remove directories. Otherwise you should fork off a
424 *      new process to exec /bin/rmdir.
425 */
426#$d_rmdir HAS_RMDIR             /**/
427
428/* HAS_SELECT:
429 *      This symbol, if defined, indicates that the select routine is
430 *      available to select active file descriptors. If the timeout field
431 *      is used, <sys/time.h> may need to be included.
432 */
433#$d_select HAS_SELECT   /**/
434
435/* HAS_SETEGID:
436 *      This symbol, if defined, indicates that the setegid routine is available
437 *      to change the effective gid of the current program.
438 */
439#$d_setegid HAS_SETEGID         /**/
440
441/* HAS_SETEUID:
442 *      This symbol, if defined, indicates that the seteuid routine is available
443 *      to change the effective uid of the current program.
444 */
445#$d_seteuid HAS_SETEUID         /**/
446
447/* HAS_SETLINEBUF:
448 *      This symbol, if defined, indicates that the setlinebuf routine is
449 *      available to change stderr or stdout from block-buffered or unbuffered
450 *      to a line-buffered mode.
451 */
452#$d_setlinebuf HAS_SETLINEBUF           /**/
453
454/* HAS_SETLOCALE:
455 *      This symbol, if defined, indicates that the setlocale routine is
456 *      available to handle locale-specific ctype implementations.
457 */
458#$d_setlocale HAS_SETLOCALE     /**/
459
460/* HAS_SETPGID:
461 *      This symbol, if defined, indicates that the setpgid(pid, gpid)
462 *      routine is available to set process group ID.
463 */
464#$d_setpgid HAS_SETPGID /**/
465
466/* HAS_SETPGRP2:
467 *      This symbol, if defined, indicates that the setpgrp2() (as in DG/UX)
468 *      routine is available to set the current process group.
469 */
470#$d_setpgrp2 HAS_SETPGRP2               /**/
471
472/* HAS_SETPRIORITY:
473 *      This symbol, if defined, indicates that the setpriority routine is
474 *      available to set a process's priority.
475 */
476#$d_setprior HAS_SETPRIORITY            /**/
477
478/* HAS_SETREGID:
479 *      This symbol, if defined, indicates that the setregid routine is
480 *      available to change the real and effective gid of the current
481 *      process.
482 */
483/* HAS_SETRESGID:
484 *      This symbol, if defined, indicates that the setresgid routine is
485 *      available to change the real, effective and saved gid of the current
486 *      process.
487 */
488#$d_setregid HAS_SETREGID               /**/
489#$d_setresgid HAS_SETRESGID             /**/
490
491/* HAS_SETREUID:
492 *      This symbol, if defined, indicates that the setreuid routine is
493 *      available to change the real and effective uid of the current
494 *      process.
495 */
496/* HAS_SETRESUID:
497 *      This symbol, if defined, indicates that the setresuid routine is
498 *      available to change the real, effective and saved uid of the current
499 *      process.
500 */
501#$d_setreuid HAS_SETREUID               /**/
502#$d_setresuid HAS_SETRESUID             /**/
503
504/* HAS_SETRGID:
505 *      This symbol, if defined, indicates that the setrgid routine is available
506 *      to change the real gid of the current program.
507 */
508#$d_setrgid HAS_SETRGID         /**/
509
510/* HAS_SETRUID:
511 *      This symbol, if defined, indicates that the setruid routine is available
512 *      to change the real uid of the current program.
513 */
514#$d_setruid HAS_SETRUID         /**/
515
516/* HAS_SETSID:
517 *      This symbol, if defined, indicates that the setsid routine is
518 *      available to set the process group ID.
519 */
520#$d_setsid HAS_SETSID   /**/
521
522/* HAS_STRCHR:
523 *      This symbol is defined to indicate that the strchr()/strrchr()
524 *      functions are available for string searching. If not, try the
525 *      index()/rindex() pair.
526 */
527/* HAS_INDEX:
528 *      This symbol is defined to indicate that the index()/rindex()
529 *      functions are available for string searching.
530 */
531#$d_strchr HAS_STRCHR   /**/
532#$d_index HAS_INDEX     /**/
533
534/* HAS_STRCOLL:
535 *      This symbol, if defined, indicates that the strcoll routine is
536 *      available to compare strings using collating information.
537 */
538#$d_strcoll HAS_STRCOLL /**/
539
540/* USE_STRUCT_COPY:
541 *      This symbol, if defined, indicates that this C compiler knows how
542 *      to copy structures.  If undefined, you'll need to use a block copy
543 *      routine of some sort instead.
544 */
545#$d_strctcpy    USE_STRUCT_COPY /**/
546
547/* HAS_STRTOD:
548 *      This symbol, if defined, indicates that the strtod routine is
549 *      available to provide better numeric string conversion than atof().
550 */
551#$d_strtod HAS_STRTOD   /**/
552
553/* HAS_STRTOL:
554 *      This symbol, if defined, indicates that the strtol routine is available
555 *      to provide better numeric string conversion than atoi() and friends.
556 */
557#$d_strtol HAS_STRTOL   /**/
558
559/* HAS_STRXFRM:
560 *      This symbol, if defined, indicates that the strxfrm() routine is
561 *      available to transform strings.
562 */
563#$d_strxfrm HAS_STRXFRM /**/
564
565/* HAS_SYMLINK:
566 *      This symbol, if defined, indicates that the symlink routine is available
567 *      to create symbolic links.
568 */
569#$d_symlink HAS_SYMLINK /**/
570
571/* HAS_SYSCALL:
572 *      This symbol, if defined, indicates that the syscall routine is
573 *      available to call arbitrary system calls. If undefined, that's tough.
574 */
575#$d_syscall HAS_SYSCALL /**/
576
577/* HAS_SYSCONF:
578 *      This symbol, if defined, indicates that sysconf() is available
579 *      to determine system related limits and options.
580 */
581#$d_sysconf HAS_SYSCONF /**/
582
583/* HAS_SYSTEM:
584 *      This symbol, if defined, indicates that the system routine is
585 *      available to issue a shell command.
586 */
587#$d_system HAS_SYSTEM   /**/
588
589/* HAS_TCGETPGRP:
590 *      This symbol, if defined, indicates that the tcgetpgrp routine is
591 *      available to get foreground process group ID.
592 */
593#$d_tcgetpgrp HAS_TCGETPGRP             /**/
594
595/* HAS_TCSETPGRP:
596 *      This symbol, if defined, indicates that the tcsetpgrp routine is
597 *      available to set foreground process group ID.
598 */
599#$d_tcsetpgrp HAS_TCSETPGRP             /**/
600
601/* HAS_TRUNCATE:
602 *      This symbol, if defined, indicates that the truncate routine is
603 *      available to truncate files.
604 */
605#$d_truncate HAS_TRUNCATE       /**/
606
607/* HAS_TZNAME:
608 *      This symbol, if defined, indicates that the tzname[] array is
609 *      available to access timezone names.
610 */
611#$d_tzname HAS_TZNAME           /**/
612
613/* HAS_UMASK:
614 *      This symbol, if defined, indicates that the umask routine is
615 *      available to set and get the value of the file creation mask.
616 */
617#$d_umask HAS_UMASK             /**/
618
619/* HAS_USLEEP:
620 *      This symbol, if defined, indicates that the usleep routine is
621 *      available to let the process sleep on a sub-second accuracy.
622 */
623#$d_usleep HAS_USLEEP           /**/
624
625/* HASVOLATILE:
626 *      This symbol, if defined, indicates that this C compiler knows about
627 *      the volatile declaration.
628 */
629#$d_volatile    HASVOLATILE     /**/
630#ifndef HASVOLATILE
631#define volatile
632#endif
633
634/* HAS_WAIT4:
635 *      This symbol, if defined, indicates that wait4() exists.
636 */
637#$d_wait4 HAS_WAIT4     /**/
638
639/* HAS_WAITPID:
640 *      This symbol, if defined, indicates that the waitpid routine is
641 *      available to wait for child process.
642 */
643#$d_waitpid HAS_WAITPID /**/
644
645/* HAS_WCSTOMBS:
646 *      This symbol, if defined, indicates that the wcstombs routine is
647 *      available to convert wide character strings to multibyte strings.
648 */
649#$d_wcstombs HAS_WCSTOMBS       /**/
650
651/* HAS_WCTOMB:
652 *      This symbol, if defined, indicates that the wctomb routine is available
653 *      to covert a wide character to a multibyte.
654 */
655#$d_wctomb HAS_WCTOMB           /**/
656
657/* I_ARPA_INET:
658 *      This symbol, if defined, indicates to the C program that it should
659 *      include <arpa/inet.h> to get inet_addr and friends declarations.
660 */
661#$i_arpainet    I_ARPA_INET             /**/
662
663/* I_DBM:
664 *      This symbol, if defined, indicates that <dbm.h> exists and should
665 *      be included.
666 */
667/* I_RPCSVC_DBM:
668 *      This symbol, if defined, indicates that <rpcsvc/dbm.h> exists and
669 *      should be included.
670 */
671#$i_dbm I_DBM   /**/
672#$i_rpcsvcdbm I_RPCSVC_DBM      /**/
673
674/* I_DIRENT:
675 *      This symbol, if defined, indicates to the C program that it should
676 *      include <dirent.h>. Using this symbol also triggers the definition
677 *      of the Direntry_t define which ends up being 'struct dirent' or
678 *      'struct direct' depending on the availability of <dirent.h>.
679 */
680/* DIRNAMLEN:
681 *      This symbol, if defined, indicates to the C program that the length
682 *      of directory entry names is provided by a d_namlen field.  Otherwise
683 *      you need to do strlen() on the d_name field.
684 */
685/* Direntry_t:
686 *      This symbol is set to 'struct direct' or 'struct dirent' depending on
687 *      whether dirent is available or not. You should use this pseudo type to
688 *      portably declare your directory entries.
689 */
690#$i_dirent I_DIRENT             /**/
691#$d_dirnamlen DIRNAMLEN /**/
692#define Direntry_t $direntrytype
693
694/* I_DLFCN:
695 *      This symbol, if defined, indicates that <dlfcn.h> exists and should
696 *      be included.
697 */
698#$i_dlfcn I_DLFCN               /**/
699
700/* I_FCNTL:
701 *      This manifest constant tells the C program to include <fcntl.h>.
702 */
703#$i_fcntl I_FCNTL       /**/
704
705/* I_FLOAT:
706 *      This symbol, if defined, indicates to the C program that it should
707 *      include <float.h> to get definition of symbols like DBL_MAX or
708 *      DBL_MIN, i.e. machine dependent floating point values.
709 */
710#$i_float I_FLOAT               /**/
711
712/* I_LIMITS:
713 *      This symbol, if defined, indicates to the C program that it should
714 *      include <limits.h> to get definition of symbols like WORD_BIT or
715 *      LONG_MAX, i.e. machine dependant limitations.
716 */
717#$i_limits I_LIMITS             /**/
718
719/* I_LOCALE:
720 *      This symbol, if defined, indicates to the C program that it should
721 *      include <locale.h>.
722 */
723#$i_locale      I_LOCALE                /**/
724
725/* I_MATH:
726 *      This symbol, if defined, indicates to the C program that it should
727 *      include <math.h>.
728 */
729#$i_math I_MATH         /**/
730
731/* I_MEMORY:
732 *      This symbol, if defined, indicates to the C program that it should
733 *      include <memory.h>.
734 */
735#$i_memory I_MEMORY             /**/
736
737/* I_NET_ERRNO:
738 *      This symbol, if defined, indicates that <net/errno.h> exists and
739 *      should be included.
740 */
741#$i_neterrno I_NET_ERRNO                /**/
742
743/* I_NETINET_IN:
744 *      This symbol, if defined, indicates to the C program that it should
745 *      include <netinet/in.h>. Otherwise, you may try <sys/in.h>.
746 */
747#$i_niin I_NETINET_IN   /**/
748
749/* I_SFIO:
750 *      This symbol, if defined, indicates to the C program that it should
751 *      include <sfio.h>.
752 */
753#$i_sfio        I_SFIO          /**/
754
755/* I_STDDEF:
756 *      This symbol, if defined, indicates that <stddef.h> exists and should
757 *      be included.
758 */
759#$i_stddef I_STDDEF     /**/
760
761/* I_STDLIB:
762 *      This symbol, if defined, indicates that <stdlib.h> exists and should
763 *      be included.
764 */
765#$i_stdlib I_STDLIB             /**/
766
767/* I_STRING:
768 *      This symbol, if defined, indicates to the C program that it should
769 *      include <string.h> (USG systems) instead of <strings.h> (BSD systems).
770 */
771#$i_string I_STRING             /**/
772
773/* I_SYS_DIR:
774 *      This symbol, if defined, indicates to the C program that it should
775 *      include <sys/dir.h>.
776 */
777#$i_sysdir I_SYS_DIR            /**/
778
779/* I_SYS_FILE:
780 *      This symbol, if defined, indicates to the C program that it should
781 *      include <sys/file.h> to get definition of R_OK and friends.
782 */
783#$i_sysfile I_SYS_FILE          /**/
784
785/* I_SYS_IOCTL:
786 *      This symbol, if defined, indicates that <sys/ioctl.h> exists and should
787 *      be included. Otherwise, include <sgtty.h> or <termio.h>.
788 */
789/* I_SYS_SOCKIO:
790 *      This symbol, if defined, indicates the <sys/sockio.h> should be included
791 *      to get socket ioctl options, like SIOCATMARK.
792 */
793#$i_sysioctl    I_SYS_IOCTL             /**/
794#$i_syssockio I_SYS_SOCKIO      /**/
795
796/* I_SYS_NDIR:
797 *      This symbol, if defined, indicates to the C program that it should
798 *      include <sys/ndir.h>.
799 */
800#$i_sysndir I_SYS_NDIR  /**/
801
802/* I_SYS_PARAM:
803 *      This symbol, if defined, indicates to the C program that it should
804 *      include <sys/param.h>.
805 */
806#$i_sysparam I_SYS_PARAM                /**/
807
808/* I_SYS_RESOURCE:
809 *      This symbol, if defined, indicates to the C program that it should
810 *      include <sys/resource.h>.
811 */
812#$i_sysresrc I_SYS_RESOURCE             /**/
813
814/* I_SYS_SELECT:
815 *      This symbol, if defined, indicates to the C program that it should
816 *      include <sys/select.h> in order to get definition of struct timeval.
817 */
818#$i_sysselct I_SYS_SELECT       /**/
819
820/* I_SYS_STAT:
821 *      This symbol, if defined, indicates to the C program that it should
822 *      include <sys/stat.h>.
823 */
824#$i_sysstat     I_SYS_STAT              /**/
825
826/* I_SYS_TIMES:
827 *      This symbol, if defined, indicates to the C program that it should
828 *      include <sys/times.h>.
829 */
830#$i_systimes    I_SYS_TIMES             /**/
831
832/* I_SYS_TYPES:
833 *      This symbol, if defined, indicates to the C program that it should
834 *      include <sys/types.h>.
835 */
836#$i_systypes    I_SYS_TYPES             /**/
837
838/* I_SYS_UN:
839 *      This symbol, if defined, indicates to the C program that it should
840 *      include <sys/un.h> to get UNIX domain socket definitions.
841 */
842#$i_sysun I_SYS_UN              /**/
843
844/* I_SYS_WAIT:
845 *      This symbol, if defined, indicates to the C program that it should
846 *      include <sys/wait.h>.
847 */
848#$i_syswait I_SYS_WAIT  /**/
849
850/* I_TERMIO:
851 *      This symbol, if defined, indicates that the program should include
852 *      <termio.h> rather than <sgtty.h>.  There are also differences in
853 *      the ioctl() calls that depend on the value of this symbol.
854 */
855/* I_TERMIOS:
856 *      This symbol, if defined, indicates that the program should include
857 *      the POSIX termios.h rather than sgtty.h or termio.h.
858 *      There are also differences in the ioctl() calls that depend on the
859 *      value of this symbol.
860 */
861/* I_SGTTY:
862 *      This symbol, if defined, indicates that the program should include
863 *      <sgtty.h> rather than <termio.h>.  There are also differences in
864 *      the ioctl() calls that depend on the value of this symbol.
865 */
866#$i_termio I_TERMIO             /**/
867#$i_termios I_TERMIOS           /**/
868#$i_sgtty I_SGTTY               /**/
869
870/* I_UNISTD:
871 *      This symbol, if defined, indicates to the C program that it should
872 *      include <unistd.h>.
873 */
874#$i_unistd I_UNISTD             /**/
875
876/* I_UTIME:
877 *      This symbol, if defined, indicates to the C program that it should
878 *      include <utime.h>.
879 */
880#$i_utime I_UTIME               /**/
881
882/* I_VALUES:
883 *      This symbol, if defined, indicates to the C program that it should
884 *      include <values.h> to get definition of symbols like MINFLOAT or
885 *      MAXLONG, i.e. machine dependant limitations.  Probably, you
886 *      should use <limits.h> instead, if it is available.
887 */
888#$i_values I_VALUES             /**/
889
890/* I_VFORK:
891 *      This symbol, if defined, indicates to the C program that it should
892 *      include vfork.h.
893 */
894#$i_vfork I_VFORK       /**/
895
896/* INTSIZE:
897 *      This symbol contains the value of sizeof(int) so that the C
898 *      preprocessor can make decisions based on it.
899 */
900/* LONGSIZE:
901 *      This symbol contains the value of sizeof(long) so that the C
902 *      preprocessor can make decisions based on it.
903 */
904/* SHORTSIZE:
905 *      This symbol contains the value of sizeof(short) so that the C
906 *      preprocessor can make decisions based on it.
907 */
908#define INTSIZE $intsize                /**/
909#define LONGSIZE $longsize              /**/
910#define SHORTSIZE $shortsize            /**/
911
912/* MULTIARCH:
913 *      This symbol, if defined, signifies that the build
914 *      process will produce some binary files that are going to be
915 *      used in a cross-platform environment.  This is the case for
916 *      example with the NeXT "fat" binaries that contain executables
917 *      for several CPUs.
918 */
919#$multiarch MULTIARCH           /**/
920
921/* HAS_QUAD:
922 *      This symbol, if defined, tells that there's a 64-bit integer type,
923 *      Quad_t, and its unsigned counterpar, Uquad_t. QUADKIND will be one
924 *      of QUAD_IS_INT, QUAD_IS_LONG, QUAD_IS_LONG_LONG, or QUAD_IS_INT64_T.
925 */
926#$d_quad HAS_QUAD       /**/
927#ifdef HAS_QUAD
928#   define Quad_t $quadtype     /**/
929#   define Uquad_t $uquadtype   /**/
930#   define QUADKIND $quadkind   /**/
931#   define QUAD_IS_INT  1
932#   define QUAD_IS_LONG 2
933#   define QUAD_IS_LONG_LONG    3
934#   define QUAD_IS_INT64_T      4
935#endif
936
937/* HAS_ACCESSX:
938 *      This symbol, if defined, indicates that the accessx routine is
939 *      available to do extended access checks.
940 */
941#$d_accessx HAS_ACCESSX         /**/
942
943/* HAS_EACCESS:
944 *      This symbol, if defined, indicates that the eaccess routine is
945 *      available to do extended access checks.
946 */
947#$d_eaccess HAS_EACCESS         /**/
948
949/* I_SYS_ACCESS:
950 *     This symbol, if defined, indicates to the C program that it should
951 *     include <sys/access.h>.
952 */
953#$i_sysaccess   I_SYS_ACCESS                /**/
954
955/* I_SYS_SECURITY:
956 *     This symbol, if defined, indicates to the C program that it should
957 *     include <sys/security.h>.
958 */
959#$i_syssecrt   I_SYS_SECURITY   /**/
960
961/* MEM_ALIGNBYTES:
962 *      This symbol contains the number of bytes required to align a
963 *      double, or a long double when applicable. Usual values are 2,
964 *      4 and 8. The default is eight, for safety.
965 */
966#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH)
967#  define MEM_ALIGNBYTES 8
968#else
969#define MEM_ALIGNBYTES $alignbytes
970#endif
971
972/* BYTEORDER:
973 *      This symbol holds the hexadecimal constant defined in byteorder,
974 *      in a UV, i.e. 0x1234 or 0x4321 or 0x12345678, etc...
975 *      If the compiler supports cross-compiling or multiple-architecture
976 *      binaries (eg. on NeXT systems), use compiler-defined macros to
977 *      determine the byte order.
978 *      On NeXT 3.2 (and greater), you can build "Fat" Multiple Architecture
979 *      Binaries (MAB) on either big endian or little endian machines.
980 *      The endian-ness is available at compile-time.  This only matters
981 *      for perl, where the config.h can be generated and installed on
982 *      one system, and used by a different architecture to build an
983 *      extension.  Older versions of NeXT that might not have
984 *      defined either *_ENDIAN__ were all on Motorola 680x0 series,
985 *      so the default case (for NeXT) is big endian to catch them.
986 *      This might matter for NeXT 3.0.
987 */
988#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH)
989#  ifdef __LITTLE_ENDIAN__
990#    if LONGSIZE == 4
991#      define BYTEORDER 0x1234
992#    else
993#      if LONGSIZE == 8
994#        define BYTEORDER 0x12345678
995#      endif
996#    endif
997#  else
998#    ifdef __BIG_ENDIAN__
999#      if LONGSIZE == 4
1000#        define BYTEORDER 0x4321
1001#      else
1002#        if LONGSIZE == 8
1003#          define BYTEORDER 0x87654321
1004#        endif
1005#      endif
1006#    endif
1007#  endif
1008#  if !defined(BYTEORDER) && (defined(NeXT) || defined(__NeXT__))
1009#    define BYTEORDER 0x4321
1010#  endif
1011#else
1012#define BYTEORDER 0x$byteorder  /* large digits for MSB */
1013#endif /* NeXT */
1014
1015/* CASTI32:
1016 *      This symbol is defined if the C compiler can cast negative
1017 *      or large floating point numbers to 32-bit ints.
1018 */
1019#$d_casti32     CASTI32         /**/
1020
1021/* CASTNEGFLOAT:
1022 *      This symbol is defined if the C compiler can cast negative
1023 *      numbers to unsigned longs, ints and shorts.
1024 */
1025/* CASTFLAGS:
1026 *      This symbol contains flags that say what difficulties the compiler
1027 *      has casting odd floating values to unsigned long:
1028 *              0 = ok
1029 *              1 = couldn't cast < 0
1030 *              2 = couldn't cast >= 0x80000000
1031 *              4 = couldn't cast in argument expression list
1032 */
1033#$d_castneg     CASTNEGFLOAT            /**/
1034#define CASTFLAGS $castflags            /**/
1035
1036/* VOID_CLOSEDIR:
1037 *      This symbol, if defined, indicates that the closedir() routine
1038 *      does not return a value.
1039 */
1040#$d_void_closedir VOID_CLOSEDIR         /**/
1041
1042/* HAS_FD_SET:
1043 *      This symbol, when defined, indicates presence of the fd_set typedef
1044 *      in <sys/types.h>
1045 */
1046#$d_fd_set HAS_FD_SET   /**/
1047
1048/* Gconvert:
1049 *      This preprocessor macro is defined to convert a floating point
1050 *      number to a string without a trailing decimal point.  This
1051 *      emulates the behavior of sprintf("%g"), but is sometimes much more
1052 *      efficient.  If gconvert() is not available, but gcvt() drops the
1053 *      trailing decimal point, then gcvt() is used.  If all else fails,
1054 *      a macro using sprintf("%g") is used. Arguments for the Gconvert
1055 *      macro are: value, number of digits, whether trailing zeros should
1056 *      be retained, and the output buffer.
1057 *      The usual values are:
1058 *              d_Gconvert='gconvert((x),(n),(t),(b))'
1059 *              d_Gconvert='gcvt((x),(n),(b))'
1060 *              d_Gconvert='sprintf((b),"%.*g",(n),(x))'
1061 *      The last two assume trailing zeros should not be kept.
1062 */
1063#define Gconvert(x,n,t,b) $d_Gconvert
1064
1065/* HAS_GETPAGESIZE:
1066 *      This symbol, if defined, indicates that the getpagesize system call
1067 *      is available to get system page size, which is the granularity of
1068 *      many memory management calls.
1069 */
1070#$d_getpagsz HAS_GETPAGESIZE            /**/
1071
1072/* HAS_GNULIBC:
1073 *      This symbol, if defined, indicates to the C program that
1074 *      the GNU C library is being used.  A better check is to use
1075 *      the __GLIBC__ and __GLIBC_MINOR__ symbols supplied with glibc.
1076 */
1077#$d_gnulibc HAS_GNULIBC         /**/
1078#if defined(HAS_GNULIBC) && !defined(_GNU_SOURCE)
1079#   define _GNU_SOURCE
1080#endif
1081/* HAS_ISASCII:
1082 *      This manifest constant lets the C program know that isascii
1083 *      is available.
1084 */
1085#$d_isascii HAS_ISASCII         /**/
1086
1087/* HAS_LCHOWN:
1088 *      This symbol, if defined, indicates that the lchown routine is
1089 *      available to operate on a symbolic link (instead of following the
1090 *      link).
1091 */
1092#$d_lchown HAS_LCHOWN           /**/
1093
1094/* HAS_OPEN3:
1095 *      This manifest constant lets the C program know that the three
1096 *      argument form of open(2) is available.
1097 */
1098#$d_open3 HAS_OPEN3             /**/
1099
1100/* HAS_SAFE_BCOPY:
1101 *      This symbol, if defined, indicates that the bcopy routine is available
1102 *      to copy potentially overlapping memory blocks. Normally, you should
1103 *      probably use memmove() or memcpy(). If neither is defined, roll your
1104 *      own version.
1105 */
1106#$d_safebcpy HAS_SAFE_BCOPY     /**/
1107
1108/* HAS_SAFE_MEMCPY:
1109 *      This symbol, if defined, indicates that the memcpy routine is available
1110 *      to copy potentially overlapping memory blocks.  If you need to
1111 *      copy overlapping memory blocks, you should check HAS_MEMMOVE and
1112 *      use memmove() instead, if available.
1113 */
1114#$d_safemcpy HAS_SAFE_MEMCPY    /**/
1115
1116/* HAS_SANE_MEMCMP:
1117 *      This symbol, if defined, indicates that the memcmp routine is available
1118 *      and can be used to compare relative magnitudes of chars with their high
1119 *      bits set.  If it is not defined, roll your own version.
1120 */
1121#$d_sanemcmp HAS_SANE_MEMCMP    /**/
1122
1123/* HAS_SIGACTION:
1124 *      This symbol, if defined, indicates that Vr4's sigaction() routine
1125 *      is available.
1126 */
1127#$d_sigaction HAS_SIGACTION     /**/
1128
1129/* HAS_SIGSETJMP:
1130 *      This variable indicates to the C program that the sigsetjmp()
1131 *      routine is available to save the calling process's registers
1132 *      and stack environment for later use by siglongjmp(), and
1133 *      to optionally save the process's signal mask.  See
1134 *      Sigjmp_buf, Sigsetjmp, and Siglongjmp.
1135 */
1136/* Sigjmp_buf:
1137 *      This is the buffer type to be used with Sigsetjmp and Siglongjmp.
1138 */
1139/* Sigsetjmp:
1140 *      This macro is used in the same way as sigsetjmp(), but will invoke
1141 *      traditional setjmp() if sigsetjmp isn't available.
1142 *      See HAS_SIGSETJMP.
1143 */
1144/* Siglongjmp:
1145 *      This macro is used in the same way as siglongjmp(), but will invoke
1146 *      traditional longjmp() if siglongjmp isn't available.
1147 *      See HAS_SIGSETJMP.
1148 */
1149#$d_sigsetjmp HAS_SIGSETJMP     /**/
1150#ifdef HAS_SIGSETJMP
1151#define Sigjmp_buf sigjmp_buf
1152#define Sigsetjmp(buf,save_mask) sigsetjmp((buf),(save_mask))
1153#define Siglongjmp(buf,retval) siglongjmp((buf),(retval))
1154#else
1155#define Sigjmp_buf jmp_buf
1156#define Sigsetjmp(buf,save_mask) setjmp((buf))
1157#define Siglongjmp(buf,retval) longjmp((buf),(retval))
1158#endif
1159
1160/* USE_STDIO_PTR:
1161 *      This symbol is defined if the _ptr and _cnt fields (or similar)
1162 *      of the stdio FILE structure can be used to access the stdio buffer
1163 *      for a file handle.  If this is defined, then the FILE_ptr(fp)
1164 *      and FILE_cnt(fp) macros will also be defined and should be used
1165 *      to access these fields.
1166 */
1167/* FILE_ptr:
1168 *      This macro is used to access the _ptr field (or equivalent) of the
1169 *      FILE structure pointed to by its argument. This macro will always be
1170 *      defined if USE_STDIO_PTR is defined.
1171 */
1172/* STDIO_PTR_LVALUE:
1173 *      This symbol is defined if the FILE_ptr macro can be used as an
1174 *      lvalue.
1175 */
1176/* FILE_cnt:
1177 *      This macro is used to access the _cnt field (or equivalent) of the
1178 *      FILE structure pointed to by its argument. This macro will always be
1179 *      defined if USE_STDIO_PTR is defined.
1180 */
1181/* STDIO_CNT_LVALUE:
1182 *      This symbol is defined if the FILE_cnt macro can be used as an
1183 *      lvalue.
1184 */
1185/* STDIO_PTR_LVAL_SETS_CNT:
1186 *      This symbol is defined if using the FILE_ptr macro as an lvalue
1187 *      to increase the pointer by n has the side effect of decreasing the
1188 *      value of File_cnt(fp) by n.
1189 */
1190/* STDIO_PTR_LVAL_NOCHANGE_CNT:
1191 *      This symbol is defined if using the FILE_ptr macro as an lvalue
1192 *      to increase the pointer by n leaves File_cnt(fp) unchanged.
1193 */
1194#$d_stdstdio USE_STDIO_PTR      /**/
1195#ifdef USE_STDIO_PTR
1196#define FILE_ptr(fp)    $stdio_ptr
1197#$d_stdio_ptr_lval STDIO_PTR_LVALUE             /**/
1198#define FILE_cnt(fp)    $stdio_cnt
1199#$d_stdio_cnt_lval STDIO_CNT_LVALUE             /**/
1200#$d_stdio_ptr_lval_sets_cnt STDIO_PTR_LVAL_SETS_CNT     /**/
1201#$d_stdio_ptr_lval_nochange_cnt STDIO_PTR_LVAL_NOCHANGE_CNT     /**/
1202#endif
1203
1204/* USE_STDIO_BASE:
1205 *      This symbol is defined if the _base field (or similar) of the
1206 *      stdio FILE structure can be used to access the stdio buffer for
1207 *      a file handle.  If this is defined, then the FILE_base(fp) macro
1208 *      will also be defined and should be used to access this field.
1209 *      Also, the FILE_bufsiz(fp) macro will be defined and should be used
1210 *      to determine the number of bytes in the buffer.  USE_STDIO_BASE
1211 *      will never be defined unless USE_STDIO_PTR is.
1212 */
1213/* FILE_base:
1214 *      This macro is used to access the _base field (or equivalent) of the
1215 *      FILE structure pointed to by its argument. This macro will always be
1216 *      defined if USE_STDIO_BASE is defined.
1217 */
1218/* FILE_bufsiz:
1219 *      This macro is used to determine the number of bytes in the I/O
1220 *      buffer pointed to by _base field (or equivalent) of the FILE
1221 *      structure pointed to its argument. This macro will always be defined
1222 *      if USE_STDIO_BASE is defined.
1223 */
1224#$d_stdiobase USE_STDIO_BASE    /**/
1225#ifdef USE_STDIO_BASE
1226#define FILE_base(fp)   $stdio_base
1227#define FILE_bufsiz(fp) $stdio_bufsiz
1228#endif
1229
1230/* HAS_VPRINTF:
1231 *      This symbol, if defined, indicates that the vprintf routine is available
1232 *      to printf with a pointer to an argument list.  If unavailable, you
1233 *      may need to write your own, probably in terms of _doprnt().
1234 */
1235/* USE_CHAR_VSPRINTF:
1236 *      This symbol is defined if this system has vsprintf() returning type
1237 *      (char*).  The trend seems to be to declare it as "int vsprintf()".  It
1238 *      is up to the package author to declare vsprintf correctly based on the
1239 *      symbol.
1240 */
1241#$d_vprintf HAS_VPRINTF /**/
1242#$d_charvspr USE_CHAR_VSPRINTF  /**/
1243
1244/* DOUBLESIZE:
1245 *      This symbol contains the size of a double, so that the C preprocessor
1246 *      can make decisions based on it.
1247 */
1248#define DOUBLESIZE $doublesize          /**/
1249
1250/* I_TIME:
1251 *      This symbol, if defined, indicates to the C program that it should
1252 *      include <time.h>.
1253 */
1254/* I_SYS_TIME:
1255 *      This symbol, if defined, indicates to the C program that it should
1256 *      include <sys/time.h>.
1257 */
1258/* I_SYS_TIME_KERNEL:
1259 *      This symbol, if defined, indicates to the C program that it should
1260 *      include <sys/time.h> with KERNEL defined.
1261 */
1262/* HAS_TM_TM_ZONE:
1263 *      This symbol, if defined, indicates to the C program that
1264 *      the struct tm has a tm_zone field.
1265 */
1266/* HAS_TM_TM_GMTOFF:
1267 *      This symbol, if defined, indicates to the C program that
1268 *      the struct tm has a tm_gmtoff field.
1269 */
1270#$i_time I_TIME         /**/
1271#$i_systime I_SYS_TIME          /**/
1272#$i_systimek I_SYS_TIME_KERNEL          /**/
1273#$d_tm_tm_zone HAS_TM_TM_ZONE           /**/
1274#$d_tm_tm_gmtoff HAS_TM_TM_GMTOFF               /**/
1275
1276/* VAL_O_NONBLOCK:
1277 *      This symbol is to be used during open() or fcntl(F_SETFL) to turn on
1278 *      non-blocking I/O for the file descriptor. Note that there is no way
1279 *      back, i.e. you cannot turn it blocking again this way. If you wish to
1280 *      alternatively switch between blocking and non-blocking, use the
1281 *      ioctl(FIOSNBIO) call instead, but that is not supported by all devices.
1282 */
1283/* VAL_EAGAIN:
1284 *      This symbol holds the errno error code set by read() when no data was
1285 *      present on the non-blocking file descriptor.
1286 */
1287/* RD_NODATA:
1288 *      This symbol holds the return code from read() when no data is present
1289 *      on the non-blocking file descriptor. Be careful! If EOF_NONBLOCK is
1290 *      not defined, then you can't distinguish between no data and EOF by
1291 *      issuing a read(). You'll have to find another way to tell for sure!
1292 */
1293/* EOF_NONBLOCK:
1294 *      This symbol, if defined, indicates to the C program that a read() on
1295 *      a non-blocking file descriptor will return 0 on EOF, and not the value
1296 *      held in RD_NODATA (-1 usually, in that case!).
1297 */
1298#define VAL_O_NONBLOCK $o_nonblock
1299#define VAL_EAGAIN $eagain
1300#define RD_NODATA $rd_nodata
1301#$d_eofnblk EOF_NONBLOCK
1302
1303/* PTRSIZE:
1304 *      This symbol contains the size of a pointer, so that the C preprocessor
1305 *      can make decisions based on it.  It will be sizeof(void *) if
1306 *      the compiler supports (void *); otherwise it will be
1307 *      sizeof(char *).
1308 */
1309#define PTRSIZE $ptrsize                /**/
1310
1311/* Drand01:
1312 *      This macro is to be used to generate uniformly distributed
1313 *      random numbers over the range [0., 1.[.  You may have to supply
1314 *      an 'extern double drand48();' in your program since SunOS 4.1.3
1315 *      doesn't provide you with anything relevant in its headers.
1316 *      See HAS_DRAND48_PROTO.
1317 */
1318/* Rand_seed_t:
1319 *      This symbol defines the type of the argument of the
1320 *      random seed function.
1321 */
1322/* seedDrand01:
1323 *      This symbol defines the macro to be used in seeding the
1324 *      random number generator (see Drand01).
1325 */
1326/* RANDBITS:
1327 *      This symbol indicates how many bits are produced by the
1328 *      function used to generate normalized random numbers.
1329 *      Values include 15, 16, 31, and 48.
1330 */
1331#define Drand01()               $drand01                /**/
1332#define Rand_seed_t             $randseedtype           /**/
1333#define seedDrand01(x)  $seedfunc((Rand_seed_t)x)       /**/
1334#define RANDBITS                $randbits               /**/
1335
1336/* SSize_t:
1337 *      This symbol holds the type used by functions that return
1338 *      a count of bytes or an error condition.  It must be a signed type.
1339 *      It is usually ssize_t, but may be long or int, etc.
1340 *      It may be necessary to include <sys/types.h> or <unistd.h>
1341 *      to get any typedef'ed information.
1342 *      We will pick a type such that sizeof(SSize_t) == sizeof(Size_t).
1343 */
1344#define SSize_t $ssizetype       /* signed count of bytes */
1345
1346/* EBCDIC:
1347 *     This symbol, if defined, indicates that this system uses
1348 *      EBCDIC encoding.
1349 */
1350#$ebcdic        EBCDIC          /**/
1351
1352/* ARCHLIB:
1353 *      This variable, if defined, holds the name of the directory in
1354 *      which the user wants to put architecture-dependent public
1355 *      library files for $package.  It is most often a local directory
1356 *      such as /usr/local/lib.  Programs using this variable must be
1357 *      prepared to deal with filename expansion.  If ARCHLIB is the
1358 *      same as PRIVLIB, it is not defined, since presumably the
1359 *      program already searches PRIVLIB.
1360 */
1361/* ARCHLIB_EXP:
1362 *      This symbol contains the ~name expanded version of ARCHLIB, to be used
1363 *      in programs that are not prepared to deal with ~ expansion at run-time.
1364 */
1365#$d_archlib ARCHLIB "$archlib"          /**/
1366#$d_archlib ARCHLIB_EXP "$archlibexp"           /**/
1367
1368/* BIN:
1369 *      This symbol holds the path of the bin directory where the package will
1370 *      be installed. Program must be prepared to deal with ~name substitution.
1371 */
1372/* BIN_EXP:
1373 *      This symbol is the filename expanded version of the BIN symbol, for
1374 *      programs that do not want to deal with that at run-time.
1375 */
1376#define BIN "$bin"      /**/
1377#define BIN_EXP "$binexp"       /**/
1378
1379/* PERL_INC_VERSION_LIST:
1380 *      This variable specifies the list of subdirectories in over
1381 *      which perl.c:incpush() and lib/lib.pm will automatically
1382 *      search when adding directories to @INC, in a format suitable
1383 *      for a C initialization string.  See the inc_version_list entry
1384 *      in Porting/Glossary for more details.
1385 */
1386#define PERL_INC_VERSION_LIST $inc_version_list_init            /**/
1387
1388/* INSTALL_USR_BIN_PERL:
1389 *      This symbol, if defined, indicates that Perl is to be installed
1390 *      also as /usr/bin/perl.
1391 */
1392#$installusrbinperl INSTALL_USR_BIN_PERL        /**/
1393
1394/* PERL_OTHERLIBDIRS:
1395 *      This variable contains a colon-separated set of paths for the perl
1396 *      binary to search for additional library files or modules.
1397 *      These directories will be tacked to the end of @INC.
1398 *      Perl will automatically search below each path for version-
1399 *      and architecture-specific directories.  See PERL_INC_VERSION_LIST
1400 *      for more details.
1401 */
1402#$d_perl_otherlibdirs PERL_OTHERLIBDIRS "$otherlibdirs"         /**/
1403
1404/* INSTALL_PREFIX:
1405 *      This symbol contains the "root" of installation tree for this package.
1406 *      The program should be prepared to do ~ expansion.
1407 */
1408/* INSTALL_PREFIX_EXP:
1409 *      This symbol contains the "root" of installation tree for this package
1410 *      to be used in programs that are not prepared to deal with ~ expansion
1411 *      at run-time.
1412 */
1413#define INSTALL_PREFIX "$installprefix"         /**/
1414#define INSTALL_PREFIX_EXP "$installprefixexp"  /**/
1415
1416/* PRIVLIB:
1417 *      This symbol contains the name of the private library for this package.
1418 *      The library is private in the sense that it needn't be in anyone's
1419 *      execution path, but it should be accessible by the world.  The program
1420 *      should be prepared to do ~ expansion.
1421 */
1422/* PRIVLIB_EXP:
1423 *      This symbol contains the ~name expanded version of PRIVLIB, to be used
1424 *      in programs that are not prepared to deal with ~ expansion at run-time.
1425 */
1426#define PRIVLIB "$privlib"              /**/
1427#define PRIVLIB_EXP "$privlibexp"               /**/
1428
1429/* SITEARCH:
1430 *      This symbol contains the name of the private library for this package.
1431 *      The library is private in the sense that it needn't be in anyone's
1432 *      execution path, but it should be accessible by the world.  The program
1433 *      should be prepared to do ~ expansion.
1434 *      The standard distribution will put nothing in this directory.
1435 *      After perl has been installed, users may install their own local
1436 *      architecture-dependent modules in this directory with
1437 *              MakeMaker Makefile.PL
1438 *      or equivalent.  See INSTALL for details.
1439 */
1440/* SITEARCH_EXP:
1441 *      This symbol contains the ~name expanded version of SITEARCH, to be used
1442 *      in programs that are not prepared to deal with ~ expansion at run-time.
1443 */
1444#define SITEARCH "$sitearch"            /**/
1445#define SITEARCH_EXP "$sitearchexp"             /**/
1446
1447/* SITELIB:
1448 *      This symbol contains the name of the private library for this package.
1449 *      The library is private in the sense that it needn't be in anyone's
1450 *      execution path, but it should be accessible by the world.  The program
1451 *      should be prepared to do ~ expansion.
1452 *      The standard distribution will put nothing in this directory.
1453 *      After perl has been installed, users may install their own local
1454 *      architecture-independent modules in this directory with
1455 *              MakeMaker Makefile.PL
1456 *      or equivalent.  See INSTALL for details.
1457 */
1458/* SITELIB_EXP:
1459 *      This symbol contains the ~name expanded version of SITELIB, to be used
1460 *      in programs that are not prepared to deal with ~ expansion at run-time.
1461 */
1462/* SITELIB_STEM:
1463 *      This define is SITELIB_EXP with any trailing version-specific component
1464 *      removed.  The elements in inc_version_list (inc_version_list.U) can
1465 *      be tacked onto this variable to generate a list of directories to search.
1466 */
1467#define SITELIB "$sitelib"              /**/
1468#define SITELIB_EXP "$sitelibexp"               /**/
1469#define SITELIB_STEM "$sitelib_stem"            /**/
1470
1471/* PERL_VENDORARCH:
1472 *      If defined, this symbol contains the name of a private library.
1473 *      The library is private in the sense that it needn't be in anyone's
1474 *      execution path, but it should be accessible by the world.
1475 *      It may have a ~ on the front.
1476 *      The standard distribution will put nothing in this directory.
1477 *      Vendors who distribute perl may wish to place their own
1478 *      architecture-dependent modules and extensions in this directory with
1479 *              MakeMaker Makefile.PL INSTALLDIRS=vendor
1480 *      or equivalent.  See INSTALL for details.
1481 */
1482/* PERL_VENDORARCH_EXP:
1483 *      This symbol contains the ~name expanded version of PERL_VENDORARCH, to be used
1484 *      in programs that are not prepared to deal with ~ expansion at run-time.
1485 */
1486#$d_vendorarch PERL_VENDORARCH "$vendorarch"            /**/
1487#$d_vendorarch PERL_VENDORARCH_EXP "$vendorarchexp"             /**/
1488
1489/* PERL_VENDORLIB_EXP:
1490 *      This symbol contains the ~name expanded version of VENDORLIB, to be used
1491 *      in programs that are not prepared to deal with ~ expansion at run-time.
1492 */
1493/* PERL_VENDORLIB_STEM:
1494 *      This define is PERL_VENDORLIB_EXP with any trailing version-specific component
1495 *      removed.  The elements in inc_version_list (inc_version_list.U) can
1496 *      be tacked onto this variable to generate a list of directories to search.
1497 */
1498#$d_vendorlib PERL_VENDORLIB_EXP "$vendorlibexp"                /**/
1499#$d_vendorlib PERL_VENDORLIB_STEM "$vendorlib_stem"             /**/
1500
1501/* OSNAME:
1502 *      This symbol contains the name of the operating system, as determined
1503 *      by Configure.  You shouldn't rely on it too much; the specific
1504 *      feature tests from Configure are generally more reliable.
1505 */
1506/* OSVERS:
1507 *      This symbol contains the version of the operating system, as determined
1508 *      by Configure.  You shouldn't rely on it too much; the specific
1509 *      feature tests from Configure are generally more reliable.
1510 */
1511#define OSNAME "$osname"                /**/
1512#define OSVERS "$osvers"                /**/
1513
1514/* CAT2:
1515 *      This macro concatenates 2 tokens together.
1516 */
1517/* STRINGIFY:
1518 *      This macro surrounds its token with double quotes.
1519 */
1520#if $cpp_stuff == 1
1521#define CAT2(a,b)       a/**/b
1522#define STRINGIFY(a)    "a"
1523                /* If you can get stringification with catify, tell me how! */
1524#endif
1525#if $cpp_stuff == 42
1526#define PeRl_CaTiFy(a, b)       a ## b 
1527#define PeRl_StGiFy(a)  #a
1528/* the additional level of indirection enables these macros to be
1529 * used as arguments to other macros.  See K&R 2nd ed., page 231. */
1530#define CAT2(a,b)       PeRl_CaTiFy(a,b)
1531#define StGiFy(a)       PeRl_StGiFy(a)
1532#define STRINGIFY(a)    PeRl_StGiFy(a)
1533#endif
1534#if $cpp_stuff != 1 && $cpp_stuff != 42
1535#   include "Bletch: How does this C preprocessor concatenate tokens?"
1536#endif
1537
1538/* CPPSTDIN:
1539 *      This symbol contains the first part of the string which will invoke
1540 *      the C preprocessor on the standard input and produce to standard
1541 *      output.  Typical value of "cc -E" or "/lib/cpp", but it can also
1542 *      call a wrapper. See CPPRUN.
1543 */
1544/* CPPMINUS:
1545 *      This symbol contains the second part of the string which will invoke
1546 *      the C preprocessor on the standard input and produce to standard
1547 *      output.  This symbol will have the value "-" if CPPSTDIN needs a minus
1548 *      to specify standard input, otherwise the value is "".
1549 */
1550/* CPPRUN:
1551 *      This symbol contains the string which will invoke a C preprocessor on
1552 *      the standard input and produce to standard output. It needs to end
1553 *      with CPPLAST, after all other preprocessor flags have been specified.
1554 *      The main difference with CPPSTDIN is that this program will never be a
1555 *      pointer to a shell wrapper, i.e. it will be empty if no preprocessor is
1556 *      available directly to the user. Note that it may well be different from
1557 *      the preprocessor used to compile the C program.
1558 */
1559/* CPPLAST:
1560 *      This symbol is intended to be used along with CPPRUN in the same manner
1561 *      symbol CPPMINUS is used with CPPSTDIN. It contains either "-" or "".
1562 */
1563#define CPPSTDIN "$cppstdin"
1564#define CPPMINUS "$cppminus"
1565#define CPPRUN "$cpprun"
1566#define CPPLAST "$cpplast"
1567
1568/* HAS_ACCESS:
1569 *      This manifest constant lets the C program know that the access()
1570 *      system call is available to check for accessibility using real UID/GID.
1571 *      (always present on UNIX.)
1572 */
1573#$d_access HAS_ACCESS           /**/
1574
1575/* HASATTRIBUTE:
1576 *      This symbol indicates the C compiler can check for function attributes,
1577 *      such as printf formats. This is normally only supported by GNU cc.
1578 */
1579#$d_attribut HASATTRIBUTE       /**/
1580#ifndef HASATTRIBUTE
1581#ifdef __attribute__
1582#undef __attribute__
1583#endif
1584#define __attribute__(_arg_)
1585#endif
1586
1587/* HAS_CRYPT:
1588 *      This symbol, if defined, indicates that the crypt routine is available
1589 *      to encrypt passwords and the like.
1590 */
1591#$d_crypt HAS_CRYPT             /**/
1592
1593/* HAS_CSH:
1594 *      This symbol, if defined, indicates that the C-shell exists.
1595 */
1596/* CSH:
1597 *      This symbol, if defined, contains the full pathname of csh.
1598 */
1599#$d_csh HAS_CSH         /**/
1600#ifdef HAS_CSH
1601#define CSH "$full_csh" /**/
1602#endif
1603
1604/* SETUID_SCRIPTS_ARE_SECURE_NOW:
1605 *      This symbol, if defined, indicates that the bug that prevents
1606 *      setuid scripts from being secure is not present in this kernel.
1607 */
1608/* DOSUID:
1609 *      This symbol, if defined, indicates that the C program should
1610 *      check the script that it is executing for setuid/setgid bits, and
1611 *      attempt to emulate setuid/setgid on systems that have disabled
1612 *      setuid #! scripts because the kernel can't do it securely.
1613 *      It is up to the package designer to make sure that this emulation
1614 *      is done securely.  Among other things, it should do an fstat on
1615 *      the script it just opened to make sure it really is a setuid/setgid
1616 *      script, it should make sure the arguments passed correspond exactly
1617 *      to the argument on the #! line, and it should not trust any
1618 *      subprocesses to which it must pass the filename rather than the
1619 *      file descriptor of the script to be executed.
1620 */
1621#$d_suidsafe SETUID_SCRIPTS_ARE_SECURE_NOW      /**/
1622#$d_dosuid DOSUID               /**/
1623
1624/* HAS_ENDGRENT:
1625 *      This symbol, if defined, indicates that the getgrent routine is
1626 *      available for finalizing sequential access of the group database.
1627 */
1628#$d_endgrent HAS_ENDGRENT               /**/
1629
1630/* HAS_ENDHOSTENT:
1631 *      This symbol, if defined, indicates that the endhostent() routine is
1632 *      available to close whatever was being used for host queries.
1633 */
1634#$d_endhent HAS_ENDHOSTENT              /**/
1635
1636/* HAS_ENDNETENT:
1637 *      This symbol, if defined, indicates that the endnetent() routine is
1638 *      available to close whatever was being used for network queries.
1639 */
1640#$d_endnent HAS_ENDNETENT               /**/
1641
1642/* HAS_ENDPROTOENT:
1643 *      This symbol, if defined, indicates that the endprotoent() routine is
1644 *      available to close whatever was being used for protocol queries.
1645 */
1646#$d_endpent HAS_ENDPROTOENT             /**/
1647
1648/* HAS_ENDPWENT:
1649 *      This symbol, if defined, indicates that the getgrent routine is
1650 *      available for finalizing sequential access of the passwd database.
1651 */
1652#$d_endpwent HAS_ENDPWENT               /**/
1653
1654/* HAS_ENDSERVENT:
1655 *      This symbol, if defined, indicates that the endservent() routine is
1656 *      available to close whatever was being used for service queries.
1657 */
1658#$d_endsent HAS_ENDSERVENT              /**/
1659
1660/* FLEXFILENAMES:
1661 *      This symbol, if defined, indicates that the system supports filenames
1662 *      longer than 14 characters.
1663 */
1664#$d_flexfnam    FLEXFILENAMES           /**/
1665
1666/* HAS_GETGRENT:
1667 *      This symbol, if defined, indicates that the getgrent routine is
1668 *      available for sequential access of the group database.
1669 */
1670#$d_getgrent HAS_GETGRENT               /**/
1671
1672/* HAS_GETHOSTBYADDR:
1673 *      This symbol, if defined, indicates that the gethostbyaddr() routine is
1674 *      available to look up hosts by their IP addresses.
1675 */
1676#$d_gethbyaddr HAS_GETHOSTBYADDR                /**/
1677
1678/* HAS_GETHOSTBYNAME:
1679 *      This symbol, if defined, indicates that the gethostbyname() routine is
1680 *      available to look up host names in some data base or other.
1681 */
1682#$d_gethbyname HAS_GETHOSTBYNAME                /**/
1683
1684/* HAS_GETHOSTENT:
1685 *      This symbol, if defined, indicates that the gethostent() routine is
1686 *      available to look up host names in some data base or another.
1687 */
1688#$d_gethent HAS_GETHOSTENT              /**/
1689
1690/* HAS_GETHOSTNAME:
1691 *      This symbol, if defined, indicates that the C program may use the
1692 *      gethostname() routine to derive the host name.  See also HAS_UNAME
1693 *      and PHOSTNAME.
1694 */
1695/* HAS_UNAME:
1696 *      This symbol, if defined, indicates that the C program may use the
1697 *      uname() routine to derive the host name.  See also HAS_GETHOSTNAME
1698 *      and PHOSTNAME.
1699 */
1700/* PHOSTNAME:
1701 *      This symbol, if defined, indicates the command to feed to the
1702 *      popen() routine to derive the host name.  See also HAS_GETHOSTNAME
1703 *      and HAS_UNAME.  Note that the command uses a fully qualified path,
1704 *      so that it is safe even if used by a process with super-user
1705 *      privileges.
1706 */
1707/* HAS_PHOSTNAME:
1708 *      This symbol, if defined, indicates that the C program may use the
1709 *      contents of PHOSTNAME as a command to feed to the popen() routine
1710 *      to derive the host name.
1711 */
1712#$d_gethname HAS_GETHOSTNAME    /**/
1713#$d_uname HAS_UNAME             /**/
1714#$d_phostname HAS_PHOSTNAME     /**/
1715#ifdef HAS_PHOSTNAME
1716#define PHOSTNAME "$aphostname" /* How to get the host name */
1717#endif
1718
1719/* HAS_GETNETBYADDR:
1720 *      This symbol, if defined, indicates that the getnetbyaddr() routine is
1721 *      available to look up networks by their IP addresses.
1722 */
1723#$d_getnbyaddr HAS_GETNETBYADDR         /**/
1724
1725/* HAS_GETNETBYNAME:
1726 *      This symbol, if defined, indicates that the getnetbyname() routine is
1727 *      available to look up networks by their names.
1728 */
1729#$d_getnbyname HAS_GETNETBYNAME         /**/
1730
1731/* HAS_GETNETENT:
1732 *      This symbol, if defined, indicates that the getnetent() routine is
1733 *      available to look up network names in some data base or another.
1734 */
1735#$d_getnent HAS_GETNETENT               /**/
1736
1737/* HAS_GETPROTOENT:
1738 *      This symbol, if defined, indicates that the getprotoent() routine is
1739 *      available to look up protocols in some data base or another.
1740 */
1741#$d_getpent HAS_GETPROTOENT             /**/
1742
1743/* HAS_GETPGRP:
1744 *      This symbol, if defined, indicates that the getpgrp routine is
1745 *      available to get the current process group.
1746 */
1747/* USE_BSD_GETPGRP:
1748 *      This symbol, if defined, indicates that getpgrp needs one
1749 *      arguments whereas USG one needs none.
1750 */
1751#$d_getpgrp HAS_GETPGRP         /**/
1752#$d_bsdgetpgrp USE_BSD_GETPGRP  /**/
1753
1754/* HAS_GETPROTOBYNAME:
1755 *      This symbol, if defined, indicates that the getprotobyname()
1756 *      routine is available to look up protocols by their name.
1757 */
1758/* HAS_GETPROTOBYNUMBER:
1759 *      This symbol, if defined, indicates that the getprotobynumber()
1760 *      routine is available to look up protocols by their number.
1761 */
1762#$d_getpbyname HAS_GETPROTOBYNAME               /**/
1763#$d_getpbynumber HAS_GETPROTOBYNUMBER           /**/
1764
1765/* HAS_GETPWENT:
1766 *      This symbol, if defined, indicates that the getpwent routine is
1767 *      available for sequential access of the passwd database.
1768 *      If this is not available, the older getpw() function may be available.
1769 */
1770#$d_getpwent HAS_GETPWENT               /**/
1771
1772/* HAS_GETSERVENT:
1773 *      This symbol, if defined, indicates that the getservent() routine is
1774 *      available to look up network services in some data base or another.
1775 */
1776#$d_getsent HAS_GETSERVENT              /**/
1777
1778/* HAS_GETSERVBYNAME:
1779 *      This symbol, if defined, indicates that the getservbyname()
1780 *      routine is available to look up services by their name.
1781 */
1782/* HAS_GETSERVBYPORT:
1783 *      This symbol, if defined, indicates that the getservbyport()
1784 *      routine is available to look up services by their port.
1785 */
1786#$d_getsbyname HAS_GETSERVBYNAME                /**/
1787#$d_getsbyport HAS_GETSERVBYPORT                /**/
1788
1789/* HAS_HTONL:
1790 *      This symbol, if defined, indicates that the htonl() routine (and
1791 *      friends htons() ntohl() ntohs()) are available to do network
1792 *      order byte swapping.
1793 */
1794/* HAS_HTONS:
1795 *      This symbol, if defined, indicates that the htons() routine (and
1796 *      friends htonl() ntohl() ntohs()) are available to do network
1797 *      order byte swapping.
1798 */
1799/* HAS_NTOHL:
1800 *      This symbol, if defined, indicates that the ntohl() routine (and
1801 *      friends htonl() htons() ntohs()) are available to do network
1802 *      order byte swapping.
1803 */
1804/* HAS_NTOHS:
1805 *      This symbol, if defined, indicates that the ntohs() routine (and
1806 *      friends htonl() htons() ntohl()) are available to do network
1807 *      order byte swapping.
1808 */
1809#$d_htonl HAS_HTONL             /**/
1810#$d_htonl HAS_HTONS             /**/
1811#$d_htonl HAS_NTOHL             /**/
1812#$d_htonl HAS_NTOHS             /**/
1813
1814/* HAS_LONG_DOUBLE:
1815 *      This symbol will be defined if the C compiler supports long
1816 *      doubles.
1817 */
1818/* LONG_DOUBLESIZE:
1819 *      This symbol contains the size of a long double, so that the
1820 *      C preprocessor can make decisions based on it.  It is only
1821 *      defined if the system supports long doubles.
1822 */
1823#$d_longdbl HAS_LONG_DOUBLE             /**/
1824#ifdef HAS_LONG_DOUBLE
1825#define LONG_DOUBLESIZE $longdblsize            /**/
1826#endif
1827
1828/* HAS_LONG_LONG:
1829 *      This symbol will be defined if the C compiler supports long long.
1830 */
1831/* LONGLONGSIZE:
1832 *      This symbol contains the size of a long long, so that the
1833 *      C preprocessor can make decisions based on it.  It is only
1834 *      defined if the system supports long long.
1835 */
1836#$d_longlong HAS_LONG_LONG              /**/
1837#ifdef HAS_LONG_LONG
1838#define LONGLONGSIZE $longlongsize              /**/
1839#endif
1840
1841/* HAS_MEMCHR:
1842 *      This symbol, if defined, indicates that the memchr routine is available
1843 *      to locate characters within a C string.
1844 */
1845#$d_memchr HAS_MEMCHR   /**/
1846
1847/* HAS_MKSTEMP:
1848 *      This symbol, if defined, indicates that the mkstemp routine is
1849 *      available to exclusively create and open a uniquely named
1850 *      temporary file.
1851 */
1852#$d_mkstemp HAS_MKSTEMP         /**/
1853
1854/* HAS_MMAP:
1855 *      This symbol, if defined, indicates that the mmap system call is
1856 *      available to map a file into memory.
1857 */
1858/* Mmap_t:
1859 *      This symbol holds the return type of the mmap() system call
1860 *      (and simultaneously the type of the first argument).
1861 *      Usually set to 'void *' or 'cadd_t'.
1862 */
1863#$d_mmap HAS_MMAP               /**/
1864#define Mmap_t $mmaptype        /**/
1865
1866/* HAS_MSG:
1867 *      This symbol, if defined, indicates that the entire msg*(2) library is
1868 *      supported (IPC mechanism based on message queues).
1869 */
1870#$d_msg HAS_MSG         /**/
1871
1872/* HAS_SEM:
1873 *      This symbol, if defined, indicates that the entire sem*(2) library is
1874 *      supported.
1875 */
1876#$d_sem HAS_SEM         /**/
1877
1878/* HAS_SETGRENT:
1879 *      This symbol, if defined, indicates that the setgrent routine is
1880 *      available for initializing sequential access of the group database.
1881 */
1882#$d_setgrent HAS_SETGRENT               /**/
1883
1884/* HAS_SETGROUPS:
1885 *      This symbol, if defined, indicates that the setgroups() routine is
1886 *      available to set the list of process groups.  If unavailable, multiple
1887 *      groups are probably not supported.
1888 */
1889#$d_setgrps HAS_SETGROUPS               /**/
1890
1891/* HAS_SETHOSTENT:
1892 *      This symbol, if defined, indicates that the sethostent() routine is
1893 *      available.
1894 */
1895#$d_sethent HAS_SETHOSTENT              /**/
1896
1897/* HAS_SETNETENT:
1898 *      This symbol, if defined, indicates that the setnetent() routine is
1899 *      available.
1900 */
1901#$d_setnent HAS_SETNETENT               /**/
1902
1903/* HAS_SETPROTOENT:
1904 *      This symbol, if defined, indicates that the setprotoent() routine is
1905 *      available.
1906 */
1907#$d_setpent HAS_SETPROTOENT             /**/
1908
1909/* HAS_SETPGRP:
1910 *      This symbol, if defined, indicates that the setpgrp routine is
1911 *      available to set the current process group.
1912 */
1913/* USE_BSD_SETPGRP:
1914 *      This symbol, if defined, indicates that setpgrp needs two
1915 *      arguments whereas USG one needs none.  See also HAS_SETPGID
1916 *      for a POSIX interface.
1917 */
1918#$d_setpgrp HAS_SETPGRP         /**/
1919#$d_bsdsetpgrp USE_BSD_SETPGRP  /**/
1920
1921/* HAS_SETPWENT:
1922 *      This symbol, if defined, indicates that the setpwent routine is
1923 *      available for initializing sequential access of the passwd database.
1924 */
1925#$d_setpwent HAS_SETPWENT               /**/
1926
1927/* HAS_SETSERVENT:
1928 *      This symbol, if defined, indicates that the setservent() routine is
1929 *      available.
1930 */
1931#$d_setsent HAS_SETSERVENT              /**/
1932
1933/* HAS_SETVBUF:
1934 *      This symbol, if defined, indicates that the setvbuf routine is
1935 *      available to change buffering on an open stdio stream.
1936 *      to a line-buffered mode.
1937 */
1938#$d_setvbuf HAS_SETVBUF         /**/
1939
1940/* HAS_SHM:
1941 *      This symbol, if defined, indicates that the entire shm*(2) library is
1942 *      supported.
1943 */
1944#$d_shm HAS_SHM         /**/
1945
1946/* Shmat_t:
1947 *      This symbol holds the return type of the shmat() system call.
1948 *      Usually set to 'void *' or 'char *'.
1949 */
1950/* HAS_SHMAT_PROTOTYPE:
1951 *      This symbol, if defined, indicates that the sys/shm.h includes
1952 *      a prototype for shmat().  Otherwise, it is up to the program to
1953 *      guess one.  Shmat_t shmat(int, Shmat_t, int) is a good guess,
1954 *      but not always right so it should be emitted by the program only
1955 *      when HAS_SHMAT_PROTOTYPE is not defined to avoid conflicting defs.
1956 */
1957#define Shmat_t $shmattype      /**/
1958#$d_shmatprototype HAS_SHMAT_PROTOTYPE  /**/
1959
1960/* HAS_SOCKET:
1961 *      This symbol, if defined, indicates that the BSD socket interface is
1962 *      supported.
1963 */
1964/* HAS_SOCKETPAIR:
1965 *      This symbol, if defined, indicates that the BSD socketpair() call is
1966 *      supported.
1967 */
1968/* HAS_MSG_CTRUNC:
1969 *      This symbol, if defined, indicates that the MSG_CTRUNC is supported.
1970 *      Checking just with #ifdef might not be enough because this symbol
1971 *      has been known to be an enum.
1972 */
1973/* HAS_MSG_DONTROUTE:
1974 *      This symbol, if defined, indicates that the MSG_DONTROUTE is supported.
1975 *      Checking just with #ifdef might not be enough because this symbol
1976 *      has been known to be an enum.
1977 */
1978/* HAS_MSG_OOB:
1979 *      This symbol, if defined, indicates that the MSG_OOB is supported.
1980 *      Checking just with #ifdef might not be enough because this symbol
1981 *      has been known to be an enum.
1982 */
1983/* HAS_MSG_PEEK:
1984 *      This symbol, if defined, indicates that the MSG_PEEK is supported.
1985 *      Checking just with #ifdef might not be enough because this symbol
1986 *      has been known to be an enum.
1987 */
1988/* HAS_MSG_PROXY:
1989 *      This symbol, if defined, indicates that the MSG_PROXY is supported.
1990 *      Checking just with #ifdef might not be enough because this symbol
1991 *      has been known to be an enum.
1992 */
1993/* HAS_SCM_RIGHTS:
1994 *      This symbol, if defined, indicates that the SCM_RIGHTS is supported.
1995 *      Checking just with #ifdef might not be enough because this symbol
1996 *      has been known to be an enum.
1997 */
1998#$d_socket      HAS_SOCKET              /**/
1999#$d_sockpair    HAS_SOCKETPAIR  /**/
2000#$d_msg_ctrunc  HAS_MSG_CTRUNC  /**/
2001#$d_msg_dontroute       HAS_MSG_DONTROUTE       /**/
2002#$d_msg_oob     HAS_MSG_OOB     /**/
2003#$d_msg_peek    HAS_MSG_PEEK    /**/
2004#$d_msg_proxy   HAS_MSG_PROXY   /**/
2005#$d_scm_rights  HAS_SCM_RIGHTS  /**/
2006
2007/* USE_STAT_BLOCKS:
2008 *      This symbol is defined if this system has a stat structure declaring
2009 *      st_blksize and st_blocks.
2010 */
2011#ifndef USE_STAT_BLOCKS
2012#$d_statblks USE_STAT_BLOCKS    /**/
2013#endif
2014
2015/* HAS_STRERROR:
2016 *      This symbol, if defined, indicates that the strerror routine is
2017 *      available to translate error numbers to strings. See the writeup
2018 *      of Strerror() in this file before you try to define your own.
2019 */
2020/* HAS_SYS_ERRLIST:
2021 *      This symbol, if defined, indicates that the sys_errlist array is
2022 *      available to translate error numbers to strings. The extern int
2023 *      sys_nerr gives the size of that table.
2024 */
2025/* Strerror:
2026 *      This preprocessor symbol is defined as a macro if strerror() is
2027 *      not available to translate error numbers to strings but sys_errlist[]
2028 *      array is there.
2029 */
2030#$d_strerror HAS_STRERROR               /**/
2031#$d_syserrlst HAS_SYS_ERRLIST   /**/
2032#define Strerror(e) $d_strerrm
2033
2034/* HAS_STRTOUL:
2035 *      This symbol, if defined, indicates that the strtoul routine is
2036 *      available to provide conversion of strings to unsigned long.
2037 */
2038#$d_strtoul HAS_STRTOUL /**/
2039
2040/* HAS_UNION_SEMUN:
2041 *      This symbol, if defined, indicates that the union semun is
2042 *      defined by including <sys/sem.h>.  If not, the user code
2043 *      probably needs to define it as:
2044 *      union semun {
2045 *          int val;
2046 *          struct semid_ds *buf;
2047 *          unsigned short *array;
2048 *      }
2049 */
2050/* USE_SEMCTL_SEMUN:
2051 *      This symbol, if defined, indicates that union semun is
2052 *      used for semctl IPC_STAT.
2053 */
2054/* USE_SEMCTL_SEMID_DS:
2055 *      This symbol, if defined, indicates that struct semid_ds * is
2056 *      used for semctl IPC_STAT.
2057 */
2058#$d_union_semun HAS_UNION_SEMUN /**/
2059#$d_semctl_semun USE_SEMCTL_SEMUN       /**/
2060#$d_semctl_semid_ds USE_SEMCTL_SEMID_DS /**/
2061
2062/* HAS_VFORK:
2063 *      This symbol, if defined, indicates that vfork() exists.
2064 */
2065#$d_vfork HAS_VFORK     /**/
2066
2067/* Signal_t:
2068 *      This symbol's value is either "void" or "int", corresponding to the
2069 *      appropriate return type of a signal handler.  Thus, you can declare
2070 *      a signal handler using "Signal_t (*handler)()", and define the
2071 *      handler using "Signal_t handler(sig)".
2072 */
2073#define Signal_t $signal_t      /* Signal handler's return type */
2074
2075/* Groups_t:
2076 *      This symbol holds the type used for the second argument to
2077 *      getgroups() and setgroups().  Usually, this is the same as
2078 *      gidtype (gid_t) , but sometimes it isn't.
2079 *      It can be int, ushort, gid_t, etc...
2080 *      It may be necessary to include <sys/types.h> to get any
2081 *      typedef'ed information.  This is only required if you have
2082 *      getgroups() or setgroups()..
2083 */
2084#if defined(HAS_GETGROUPS) || defined(HAS_SETGROUPS)
2085#define Groups_t $groupstype    /* Type for 2nd arg to [sg]etgroups() */
2086#endif
2087
2088/* I_GRP:
2089 *      This symbol, if defined, indicates to the C program that it should
2090 *      include <grp.h>.
2091 */
2092/* GRPASSWD:
2093 *      This symbol, if defined, indicates to the C program that struct group
2094 *      in <grp.h> contains gr_passwd.
2095 */
2096#$i_grp I_GRP           /**/
2097#$d_grpasswd GRPASSWD   /**/
2098
2099/* I_NDBM:
2100 *      This symbol, if defined, indicates that <ndbm.h> exists and should
2101 *      be included.
2102 */
2103#$i_ndbm I_NDBM /**/
2104
2105/* I_NETDB:
2106 *      This symbol, if defined, indicates that <netdb.h> exists and
2107 *      should be included.
2108 */
2109#$i_netdb I_NETDB               /**/
2110
2111/* I_PWD:
2112 *      This symbol, if defined, indicates to the C program that it should
2113 *      include <pwd.h>.
2114 */
2115/* PWQUOTA:
2116 *      This symbol, if defined, indicates to the C program that struct passwd
2117 *      contains pw_quota.
2118 */
2119/* PWAGE:
2120 *      This symbol, if defined, indicates to the C program that struct passwd
2121 *      contains pw_age.
2122 */
2123/* PWCHANGE:
2124 *      This symbol, if defined, indicates to the C program that struct passwd
2125 *      contains pw_change.
2126 */
2127/* PWCLASS:
2128 *      This symbol, if defined, indicates to the C program that struct passwd
2129 *      contains pw_class.
2130 */
2131/* PWEXPIRE:
2132 *      This symbol, if defined, indicates to the C program that struct passwd
2133 *      contains pw_expire.
2134 */
2135/* PWCOMMENT:
2136 *      This symbol, if defined, indicates to the C program that struct passwd
2137 *      contains pw_comment.
2138 */
2139/* PWGECOS:
2140 *      This symbol, if defined, indicates to the C program that struct passwd
2141 *      contains pw_gecos.
2142 */
2143/* PWPASSWD:
2144 *      This symbol, if defined, indicates to the C program that struct passwd
2145 *      contains pw_passwd.
2146 */
2147#$i_pwd I_PWD           /**/
2148#$d_pwquota PWQUOTA     /**/
2149#$d_pwage PWAGE /**/
2150#$d_pwchange PWCHANGE   /**/
2151#$d_pwclass PWCLASS     /**/
2152#$d_pwexpire PWEXPIRE   /**/
2153#$d_pwcomment PWCOMMENT /**/
2154#$d_pwgecos PWGECOS     /**/
2155#$d_pwpasswd PWPASSWD   /**/
2156
2157/* I_SYSUIO:
2158 *      This symbol, if defined, indicates that <sys/uio.h> exists and
2159 *      should be included.
2160 */
2161#$i_sysuio      I_SYSUIO                /**/
2162
2163/* I_STDARG:
2164 *      This symbol, if defined, indicates that <stdarg.h> exists and should
2165 *      be included.
2166 */
2167/* I_VARARGS:
2168 *      This symbol, if defined, indicates to the C program that it should
2169 *      include <varargs.h>.
2170 */
2171#$i_stdarg I_STDARG             /**/
2172#$i_varargs I_VARARGS   /**/
2173
2174/* Free_t:
2175 *      This variable contains the return type of free().  It is usually
2176 * void, but occasionally int.
2177 */
2178/* Malloc_t:
2179 *      This symbol is the type of pointer returned by malloc and realloc.
2180 */
2181#define Malloc_t $malloctype                    /**/
2182#define Free_t $freetype                        /**/
2183
2184/* MYMALLOC:
2185 *      This symbol, if defined, indicates that we're using our own malloc.
2186 */
2187#$d_mymalloc MYMALLOC                   /**/
2188
2189/* CAN_PROTOTYPE:
2190 *      If defined, this macro indicates that the C compiler can handle
2191 *      function prototypes.
2192 */
2193/* _:
2194 *      This macro is used to declare function parameters for folks who want
2195 *      to make declarations with prototypes using a different style than
2196 *      the above macros.  Use double parentheses.  For example:
2197 *
2198 *              int main _((int argc, char *argv[]));
2199 */
2200#$prototype     CAN_PROTOTYPE   /**/
2201#ifdef CAN_PROTOTYPE
2202#define _(args) args
2203#else
2204#define _(args) ()
2205#endif
2206
2207/* SH_PATH:
2208 *      This symbol contains the full pathname to the shell used on this
2209 *      on this system to execute Bourne shell scripts.  Usually, this will be
2210 *      /bin/sh, though it's possible that some systems will have /bin/ksh,
2211 *      /bin/pdksh, /bin/ash, /bin/bash, or even something such as
2212 *      D:/bin/sh.exe.
2213 */
2214#define SH_PATH "$sh"  /**/
2215
2216/* SIG_NAME:
2217 *      This symbol contains a list of signal names in order of
2218 *      signal number. This is intended
2219 *      to be used as a static array initialization, like this:
2220 *              char *sig_name[] = { SIG_NAME };
2221 *      The signals in the list are separated with commas, and each signal
2222 *      is surrounded by double quotes. There is no leading SIG in the signal
2223 *      name, i.e. SIGQUIT is known as "QUIT".
2224 *      Gaps in the signal numbers (up to NSIG) are filled in with NUMnn,
2225 *      etc., where nn is the actual signal number (e.g. NUM37).
2226 *      The signal number for sig_name[i] is stored in sig_num[i].
2227 *      The last element is 0 to terminate the list with a NULL.  This
2228 *      corresponds to the 0 at the end of the sig_name_init list.
2229 *      Note that this variable is initialized from the sig_name_init,
2230 *      not from sig_name (which is unused).
2231 */
2232/* SIG_NUM:
2233 *      This symbol contains a list of signal numbers, in the same order as the
2234 *      SIG_NAME list. It is suitable for static array initialization, as in:
2235 *              int sig_num[] = { SIG_NUM };
2236 *      The signals in the list are separated with commas, and the indices
2237 *      within that list and the SIG_NAME list match, so it's easy to compute
2238 *      the signal name from a number or vice versa at the price of a small
2239 *      dynamic linear lookup.
2240 *      Duplicates are allowed, but are moved to the end of the list.
2241 *      The signal number corresponding to sig_name[i] is sig_number[i].
2242 *      if (i < NSIG) then sig_number[i] == i. 
2243 *      The last element is 0, corresponding to the 0 at the end of
2244 *      the sig_name_init list.
2245 *      Note that this variable is initialized from the sig_num_init,
2246 *      not from sig_num (which is unused).
2247 */
2248/* SIG_SIZE:
2249 *      This variable contains the number of elements of the SIG_NAME
2250 *      and SIG_NUM arrays, excluding the final NULL entry.
2251 */
2252#define SIG_NAME $sig_name_init         /**/
2253#define SIG_NUM  $sig_num_init          /**/
2254#define SIG_SIZE $sig_size                      /**/
2255
2256/* STDCHAR:
2257 *      This symbol is defined to be the type of char used in stdio.h.
2258 *      It has the values "unsigned char" or "char".
2259 */
2260#define STDCHAR $stdchar        /**/
2261
2262/* VOIDFLAGS:
2263 *      This symbol indicates how much support of the void type is given by this
2264 *      compiler.  What various bits mean:
2265 *
2266 *          1 = supports declaration of void
2267 *          2 = supports arrays of pointers to functions returning void
2268 *          4 = supports comparisons between pointers to void functions and
2269 *                  addresses of void functions
2270 *          8 = suports declaration of generic void pointers
2271 *
2272 *      The package designer should define VOIDUSED to indicate the requirements
2273 *      of the package.  This can be done either by #defining VOIDUSED before
2274 *      including config.h, or by defining defvoidused in Myinit.U.  If the
2275 *      latter approach is taken, only those flags will be tested.  If the
2276 *      level of void support necessary is not present, defines void to int.
2277 */
2278#ifndef VOIDUSED
2279#define VOIDUSED $defvoidused
2280#endif
2281#define VOIDFLAGS $voidflags
2282#if (VOIDFLAGS & VOIDUSED) != VOIDUSED
2283#define void int                /* is void to be avoided? */
2284#define M_VOID                  /* Xenix strikes again */
2285#endif
2286
2287/* USE_CROSS_COMPILE:
2288 *      This symbol, if defined, indicates that Perl is being cross-compiled.
2289 */
2290/* PERL_TARGETARCH:
2291 *      This symbol, if defined, indicates the target architecture
2292 *      Perl has been cross-compiled to.  Undefined if not a cross-compile.
2293 */
2294#ifndef USE_CROSS_COMPILE
2295#$usecrosscompile       USE_CROSS_COMPILE       /**/
2296#define PERL_TARGETARCH "$targetarch"   /**/
2297#endif
2298
2299/* HAS_ATOLF:
2300 *      This symbol, if defined, indicates that the atolf routine is
2301 *      available to convert strings into long doubles.
2302 */
2303#$d_atolf HAS_ATOLF             /**/
2304
2305/* HAS_ATOLL:
2306 *      This symbol, if defined, indicates that the atoll routine is
2307 *      available to convert strings into long longs.
2308 */
2309#$d_atoll HAS_ATOLL             /**/
2310
2311/* HAS__FWALK:
2312 *      This symbol, if defined, indicates that the _fwalk system call is
2313 *      available to apply a function to all the file handles.
2314 */
2315#$d__fwalk HAS__FWALK           /**/
2316
2317/* HAS_AINTL:
2318 *      This symbol, if defined, indicates that the aintl routine is
2319 *      available.  If copysignl is also present we can emulate modfl.
2320 */
2321#$d_aintl HAS_AINTL             /**/
2322
2323/* HAS_CLASS:
2324 *      This symbol, if defined, indicates that the class routine is
2325 *      available to classify doubles.  Available for example in AIX.
2326 *      The returned values are defined in <float.h> and are:
2327 *
2328 *      FP_PLUS_NORM    Positive normalized, nonzero
2329 *      FP_MINUS_NORM   Negative normalized, nonzero
2330 *      FP_PLUS_DENORM  Positive denormalized, nonzero
2331 *      FP_MINUS_DENORM Negative denormalized, nonzero
2332 *      FP_PLUS_ZERO    +0.0
2333 *      FP_MINUS_ZERO   -0.0
2334 *      FP_PLUS_INF     +INF
2335 *      FP_MINUS_INF    -INF
2336 *      FP_NANS         Signaling Not a Number (NaNS)
2337 *      FP_NANQ         Quiet Not a Number (NaNQ)
2338 */
2339#$d_class HAS_CLASS             /**/
2340
2341/* HAS_STRUCT_CMSGHDR:
2342 *      This symbol, if defined, indicates that the struct cmsghdr
2343 *      is supported.
2344 */
2345#$d_cmsghdr_s HAS_STRUCT_CMSGHDR        /**/
2346
2347/* HAS_COPYSIGNL:
2348 *      This symbol, if defined, indicates that the copysignl routine is
2349 *      available.  If aintl is also present we can emulate modfl.
2350 */
2351#$d_copysignl HAS_COPYSIGNL             /**/
2352
2353/* HAS_DBMINIT_PROTO:
2354 *      This symbol, if defined, indicates that the system provides
2355 *      a prototype for the dbminit() function.  Otherwise, it is up
2356 *      to the program to supply one.  A good guess is
2357 *              extern int dbminit(char *);
2358 */
2359#$d_dbminitproto        HAS_DBMINIT_PROTO       /**/
2360
2361/* HAS_DIRFD:
2362 *      This manifest constant lets the C program know that dirfd
2363 *      is available.
2364 */
2365#$d_dirfd HAS_DIRFD             /**/
2366
2367/* DLSYM_NEEDS_UNDERSCORE:
2368 *      This symbol, if defined, indicates that we need to prepend an
2369 *      underscore to the symbol name before calling dlsym().  This only
2370 *      makes sense if you *have* dlsym, which we will presume is the
2371 *      case if you're using dl_dlopen.xs.
2372 */
2373#$d_dlsymun     DLSYM_NEEDS_UNDERSCORE  /**/
2374
2375/* HAS_FAST_STDIO:
2376 *      This symbol, if defined, indicates that the "fast stdio"
2377 *      is available to manipulate the stdio buffers directly.
2378 */
2379#$d_faststdio HAS_FAST_STDIO            /**/
2380
2381/* HAS_FCHDIR:
2382 *      This symbol, if defined, indicates that the fchdir routine is
2383 *      available to change directory using a file descriptor.
2384 */
2385#$d_fchdir HAS_FCHDIR           /**/
2386
2387/* FCNTL_CAN_LOCK:
2388 *      This symbol, if defined, indicates that fcntl() can be used
2389 *      for file locking.  Normally on Unix systems this is defined.
2390 *      It may be undefined on VMS.
2391 */
2392#$d_fcntl_can_lock FCNTL_CAN_LOCK               /**/
2393
2394/* HAS_FINITE:
2395 *      This symbol, if defined, indicates that the finite routine is
2396 *      available to check whether a double is finite (non-infinity non-NaN).
2397 */
2398#$d_finite HAS_FINITE           /**/
2399
2400/* HAS_FINITEL:
2401 *      This symbol, if defined, indicates that the finitel routine is
2402 *      available to check whether a long double is finite
2403 *      (non-infinity non-NaN).
2404 */
2405#$d_finitel HAS_FINITEL         /**/
2406
2407/* HAS_FLOCK_PROTO:
2408 *      This symbol, if defined, indicates that the system provides
2409 *      a prototype for the flock() function.  Otherwise, it is up
2410 *      to the program to supply one.  A good guess is
2411 *              extern int flock(int, int);
2412 */
2413#$d_flockproto  HAS_FLOCK_PROTO /**/
2414
2415/* HAS_FP_CLASS:
2416 *      This symbol, if defined, indicates that the fp_class routine is
2417 *      available to classify doubles.  Available for example in Digital UNIX.
2418 *      The returned values are defined in <math.h> and are:
2419 *
2420 *      FP_SNAN           Signaling NaN (Not-a-Number)
2421 *      FP_QNAN           Quiet NaN (Not-a-Number)
2422 *      FP_POS_INF        +infinity
2423 *      FP_NEG_INF        -infinity
2424 *      FP_POS_NORM       Positive normalized
2425 *      FP_NEG_NORM       Negative normalized
2426 *      FP_POS_DENORM     Positive denormalized
2427 *      FP_NEG_DENORM     Negative denormalized
2428 *      FP_POS_ZERO       +0.0 (positive zero)
2429 *      FP_NEG_ZERO       -0.0 (negative zero)
2430 */
2431#$d_fp_class HAS_FP_CLASS               /**/
2432
2433/* HAS_FPCLASS:
2434 *      This symbol, if defined, indicates that the fpclass routine is
2435 *      available to classify doubles.  Available for example in Solaris/SVR4.
2436 *      The returned values are defined in <ieeefp.h> and are:
2437 *
2438 *      FP_SNAN         signaling NaN
2439 *      FP_QNAN         quiet NaN
2440 *      FP_NINF         negative infinity
2441 *      FP_PINF         positive infinity
2442 *      FP_NDENORM      negative denormalized non-zero
2443 *      FP_PDENORM      positive denormalized non-zero
2444 *      FP_NZERO        negative zero
2445 *      FP_PZERO        positive zero
2446 *      FP_NNORM        negative normalized non-zero
2447 *      FP_PNORM        positive normalized non-zero
2448 */
2449#$d_fpclass HAS_FPCLASS         /**/
2450
2451/* HAS_FPCLASSIFY:
2452 *      This symbol, if defined, indicates that the fpclassify routine is
2453 *      available to classify doubles.  Available for example in HP-UX.
2454 *      The returned values are defined in <math.h> and are
2455 *
2456 *           FP_NORMAL     Normalized
2457 *           FP_ZERO       Zero
2458 *           FP_INFINITE   Infinity
2459 *           FP_SUBNORMAL  Denormalized
2460 *           FP_NAN        NaN
2461 *
2462 */
2463#$d_fpclassify HAS_FPCLASSIFY           /**/
2464
2465/* HAS_FPCLASSL:
2466 *      This symbol, if defined, indicates that the fpclassl routine is
2467 *      available to classify long doubles.  Available for example in IRIX.
2468 *      The returned values are defined in <ieeefp.h> and are:
2469 *
2470 *      FP_SNAN         signaling NaN
2471 *      FP_QNAN         quiet NaN
2472 *      FP_NINF         negative infinity
2473 *      FP_PINF         positive infinity
2474 *      FP_NDENORM      negative denormalized non-zero
2475 *      FP_PDENORM      positive denormalized non-zero
2476 *      FP_NZERO        negative zero
2477 *      FP_PZERO        positive zero
2478 *      FP_NNORM        negative normalized non-zero
2479 *      FP_PNORM        positive normalized non-zero
2480 */
2481#$d_fpclassl HAS_FPCLASSL               /**/
2482
2483/* HAS_FPOS64_T:
2484 *      This symbol will be defined if the C compiler supports fpos64_t.
2485 */
2486#$d_fpos64_t    HAS_FPOS64_T            /**/
2487
2488/* HAS_FREXPL:
2489 *      This symbol, if defined, indicates that the frexpl routine is
2490 *      available to break a long double floating-point number into
2491 *      a normalized fraction and an integral power of 2.
2492 */
2493#$d_frexpl HAS_FREXPL           /**/
2494
2495/* HAS_STRUCT_FS_DATA:
2496 *      This symbol, if defined, indicates that the struct fs_data
2497 *      to do statfs() is supported.
2498 */
2499#$d_fs_data_s HAS_STRUCT_FS_DATA        /**/
2500
2501/* HAS_FSEEKO:
2502 *      This symbol, if defined, indicates that the fseeko routine is
2503 *      available to fseek beyond 32 bits (useful for ILP32 hosts).
2504 */
2505#$d_fseeko HAS_FSEEKO           /**/
2506
2507/* HAS_FSTATFS:
2508 *      This symbol, if defined, indicates that the fstatfs routine is
2509 *      available to stat filesystems by file descriptors.
2510 */
2511#$d_fstatfs HAS_FSTATFS         /**/
2512
2513/* HAS_FSYNC:
2514 *      This symbol, if defined, indicates that the fsync routine is
2515 *      available to write a file's modified data and attributes to
2516 *      permanent storage.
2517 */
2518#$d_fsync HAS_FSYNC             /**/
2519
2520/* HAS_FTELLO:
2521 *      This symbol, if defined, indicates that the ftello routine is
2522 *      available to ftell beyond 32 bits (useful for ILP32 hosts).
2523 */
2524#$d_ftello HAS_FTELLO           /**/
2525
2526/* HAS_GETCWD:
2527 *      This symbol, if defined, indicates that the getcwd routine is
2528 *      available to get the current working directory.
2529 */
2530#$d_getcwd HAS_GETCWD           /**/
2531
2532/* HAS_GETESPWNAM:
2533 *      This symbol, if defined, indicates that the getespwnam system call is
2534 *      available to retrieve enchanced (shadow) password entries by name.
2535 */
2536#$d_getespwnam HAS_GETESPWNAM           /**/
2537
2538/* HAS_GETFSSTAT:
2539 *      This symbol, if defined, indicates that the getfsstat routine is
2540 *      available to stat filesystems in bulk.
2541 */
2542#$d_getfsstat HAS_GETFSSTAT             /**/
2543
2544/* HAS_GETITIMER:
2545 *      This symbol, if defined, indicates that the getitimer routine is
2546 *      available to return interval timers.
2547 */
2548#$d_getitimer HAS_GETITIMER             /**/
2549
2550/* HAS_GETMNT:
2551 *      This symbol, if defined, indicates that the getmnt routine is
2552 *      available to get filesystem mount info by filename.
2553 */
2554#$d_getmnt HAS_GETMNT           /**/
2555
2556/* HAS_GETMNTENT:
2557 *      This symbol, if defined, indicates that the getmntent routine is
2558 *      available to iterate through mounted file systems to get their info.
2559 */
2560#$d_getmntent HAS_GETMNTENT             /**/
2561
2562/* HAS_GETPRPWNAM:
2563 *      This symbol, if defined, indicates that the getprpwnam system call is
2564 *      available to retrieve protected (shadow) password entries by name.
2565 */
2566#$d_getprpwnam HAS_GETPRPWNAM           /**/
2567
2568/* HAS_GETSPNAM:
2569 *      This symbol, if defined, indicates that the getspnam system call is
2570 *      available to retrieve SysV shadow password entries by name.
2571 */
2572#$d_getspnam HAS_GETSPNAM               /**/
2573
2574/* HAS_HASMNTOPT:
2575 *      This symbol, if defined, indicates that the hasmntopt routine is
2576 *      available to query the mount options of file systems.
2577 */
2578#$d_hasmntopt HAS_HASMNTOPT             /**/
2579
2580/* HAS_ILOGBL:
2581 *      This symbol, if defined, indicates that the ilogbl routine is
2582 *      available.  If scalbnl is also present we can emulate frexpl.
2583 */
2584#$d_ilogbl HAS_ILOGBL           /**/
2585
2586/* HAS_INT64_T:
2587 *     This symbol will defined if the C compiler supports int64_t.
2588 *     Usually the <inttypes.h> needs to be included, but sometimes
2589 *      <sys/types.h> is enough.
2590 */
2591#$d_int64_t     HAS_INT64_T               /**/
2592
2593/* HAS_ISFINITE:
2594 *      This symbol, if defined, indicates that the isfinite routine is
2595 *      available to check whether a double is finite (non-infinity non-NaN).
2596 */
2597#$d_isfinite HAS_ISFINITE               /**/
2598
2599/* HAS_ISINF:
2600 *      This symbol, if defined, indicates that the isinf routine is
2601 *      available to check whether a double is an infinity.
2602 */
2603#$d_isinf HAS_ISINF             /**/
2604
2605/* HAS_ISNAN:
2606 *      This symbol, if defined, indicates that the isnan routine is
2607 *      available to check whether a double is a NaN.
2608 */
2609#$d_isnan HAS_ISNAN             /**/
2610
2611/* HAS_ISNANL:
2612 *      This symbol, if defined, indicates that the isnanl routine is
2613 *      available to check whether a long double is a NaN.
2614 */
2615#$d_isnanl HAS_ISNANL           /**/
2616
2617/* HAS_LDBL_DIG:
2618 *      This symbol, if defined, indicates that this system's <float.h>
2619 *      or <limits.h> defines the symbol LDBL_DIG, which is the number
2620 *      of significant digits in a long double precision number. Unlike
2621 *      for DBL_DIG, there's no good guess for LDBL_DIG if it is undefined.
2622 */
2623#$d_ldbl_dig HAS_LDBL_DIG       /* */
2624
2625/* HAS_MADVISE:
2626 *      This symbol, if defined, indicates that the madvise system call is
2627 *      available to map a file into memory.
2628 */
2629#$d_madvise HAS_MADVISE         /**/
2630
2631/* HAS_MKDTEMP:
2632 *      This symbol, if defined, indicates that the mkdtemp routine is
2633 *      available to exclusively create a uniquely named temporary directory.
2634 */
2635#$d_mkdtemp HAS_MKDTEMP         /**/
2636
2637/* HAS_MKSTEMPS:
2638 *      This symbol, if defined, indicates that the mkstemps routine is
2639 *      available to excluslvely create and open a uniquely named
2640 *      (with a suffix) temporary file.
2641 */
2642#$d_mkstemps HAS_MKSTEMPS               /**/
2643
2644/* HAS_MODFL:
2645 *      This symbol, if defined, indicates that the modfl routine is
2646 *      available to split a long double x into a fractional part f and
2647 *      an integer part i such that |f| < 1.0 and (f + i) = x.
2648 */
2649/* HAS_MODFL_PROTO:
2650 *      This symbol, if defined, indicates that the system provides
2651 *      a prototype for the modfl() function.  Otherwise, it is up
2652 *      to the program to supply one.
2653 */
2654/* HAS_MODFL_POW32_BUG:
2655 *      This symbol, if defined, indicates that the modfl routine is
2656 *      broken for long doubles >= pow(2, 32).
2657 *      For example from 4294967303.150000 one would get 4294967302.000000
2658 *      and 1.150000.  The bug has been seen in certain versions of glibc,
2659 *      release 2.2.2 is known to be okay.
2660 */
2661#$d_modfl HAS_MODFL             /**/
2662#$d_modflproto HAS_MODFL_PROTO          /**/
2663#$d_modfl_pow32_bug HAS_MODFL_POW32_BUG         /**/
2664
2665/* HAS_MPROTECT:
2666 *      This symbol, if defined, indicates that the mprotect system call is
2667 *      available to modify the access protection of a memory mapped file.
2668 */
2669#$d_mprotect HAS_MPROTECT               /**/
2670
2671/* HAS_STRUCT_MSGHDR:
2672 *      This symbol, if defined, indicates that the struct msghdr
2673 *      is supported.
2674 */
2675#$d_msghdr_s HAS_STRUCT_MSGHDR  /**/
2676
2677/* HAS_NL_LANGINFO:
2678 *      This symbol, if defined, indicates that the nl_langinfo routine is
2679 *      available to return local data.  You will also need <langinfo.h>
2680 *      and therefore I_LANGINFO.
2681 */
2682#$d_nl_langinfo HAS_NL_LANGINFO         /**/
2683
2684/* HAS_OFF64_T:
2685 *      This symbol will be defined if the C compiler supports off64_t.
2686 */
2687#$d_off64_t     HAS_OFF64_T             /**/
2688
2689/* HAS_PROCSELFEXE:
2690 *      This symbol is defined if PROCSELFEXE_PATH is a symlink
2691 *      to the absolute pathname of the executing program.
2692 */
2693/* PROCSELFEXE_PATH:
2694 *      If HAS_PROCSELFEXE is defined this symbol is the filename
2695 *      of the symbolic link pointing to the absolute pathname of
2696 *      the executing program.
2697 */
2698#$d_procselfexe HAS_PROCSELFEXE /**/
2699#if defined(HAS_PROCSELFEXE) && !defined(PROCSELFEXE_PATH)
2700#define PROCSELFEXE_PATH        $procselfexe    /**/
2701#endif
2702
2703/* HAS_PTHREAD_ATTR_SETSCOPE:
2704 *      This symbol, if defined, indicates that the pthread_attr_setscope
2705 *      system call is available to set the contention scope attribute of
2706 *      a thread attribute object.
2707 */
2708#$d_pthread_attr_setscope HAS_PTHREAD_ATTR_SETSCOPE             /**/
2709
2710/* HAS_READV:
2711 *      This symbol, if defined, indicates that the readv routine is
2712 *      available to do gather reads.  You will also need <sys/uio.h>
2713 *      and there I_SYSUIO.
2714 */
2715#$d_readv HAS_READV             /**/
2716
2717/* HAS_RECVMSG:
2718 *      This symbol, if defined, indicates that the recvmsg routine is
2719 *      available to send structured socket messages.
2720 */
2721#$d_recvmsg HAS_RECVMSG         /**/
2722
2723/* HAS_SBRK_PROTO:
2724 *      This symbol, if defined, indicates that the system provides
2725 *      a prototype for the sbrk() function.  Otherwise, it is up
2726 *      to the program to supply one.  Good guesses are
2727 *              extern void* sbrk(int);
2728 *              extern void* sbrk(size_t);
2729 */
2730#$d_sbrkproto   HAS_SBRK_PROTO  /**/
2731
2732/* HAS_SCALBNL:
2733 *      This symbol, if defined, indicates that the scalbnl routine is
2734 *      available.  If ilogbl is also present we can emulate frexpl.
2735 */
2736#$d_scalbnl HAS_SCALBNL         /**/
2737
2738/* HAS_SENDMSG:
2739 *      This symbol, if defined, indicates that the sendmsg routine is
2740 *      available to send structured socket messages.
2741 */
2742#$d_sendmsg HAS_SENDMSG         /**/
2743
2744/* HAS_SETITIMER:
2745 *      This symbol, if defined, indicates that the setitimer routine is
2746 *      available to set interval timers.
2747 */
2748#$d_setitimer HAS_SETITIMER             /**/
2749
2750/* HAS_SETPROCTITLE:
2751 *      This symbol, if defined, indicates that the setproctitle routine is
2752 *      available to set process title.
2753 */
2754#$d_setproctitle HAS_SETPROCTITLE               /**/
2755
2756/* USE_SFIO:
2757 *      This symbol, if defined, indicates that sfio should
2758 *      be used.
2759 */
2760#$d_sfio        USE_SFIO                /**/
2761
2762/* HAS_SIGPROCMASK:
2763 *      This symbol, if defined, indicates that the sigprocmask
2764 *      system call is available to examine or change the signal mask
2765 *      of the calling process.
2766 */
2767#$d_sigprocmask HAS_SIGPROCMASK         /**/
2768
2769/* HAS_SOCKATMARK:
2770 *      This symbol, if defined, indicates that the sockatmark routine is
2771 *      available to test whether a socket is at the out-of-band mark.
2772 */
2773#$d_sockatmark HAS_SOCKATMARK           /**/
2774
2775/* HAS_SOCKATMARK_PROTO:
2776 *      This symbol, if defined, indicates that the system provides
2777 *      a prototype for the sockatmark() function.  Otherwise, it is up
2778 *      to the program to supply one.  A good guess is
2779 *              extern int sockatmark(int);
2780 */
2781#$d_sockatmarkproto     HAS_SOCKATMARK_PROTO    /**/
2782
2783/* HAS_SOCKS5_INIT:
2784 *      This symbol, if defined, indicates that the socks5_init routine is
2785 *      available to initialize SOCKS 5.
2786 */
2787#$d_socks5_init HAS_SOCKS5_INIT         /**/
2788
2789/* HAS_SQRTL:
2790 *      This symbol, if defined, indicates that the sqrtl routine is
2791 *      available to do long double square roots.
2792 */
2793#$d_sqrtl HAS_SQRTL             /**/
2794
2795/* HAS_SETRESGID_PROTO:
2796 *      This symbol, if defined, indicates that the system provides
2797 *      a prototype for the setresgid() function.  Otherwise, it is up
2798 *      to the program to supply one.  Good guesses are
2799 *              extern int setresgid(uid_t ruid, uid_t euid, uid_t suid);
2800 */
2801#$d_sresgproto  HAS_SETRESGID_PROTO     /**/
2802
2803/* HAS_SETRESUID_PROTO:
2804 *      This symbol, if defined, indicates that the system provides
2805 *      a prototype for the setresuid() function.  Otherwise, it is up
2806 *      to the program to supply one.  Good guesses are
2807 *              extern int setresuid(uid_t ruid, uid_t euid, uid_t suid);
2808 */
2809#$d_sresuproto  HAS_SETRESUID_PROTO     /**/
2810
2811/* HAS_STRUCT_STATFS_F_FLAGS:
2812 *      This symbol, if defined, indicates that the struct statfs
2813 *      does have the f_flags member containing the mount flags of
2814 *      the filesystem containing the file.
2815 *      This kind of struct statfs is coming from <sys/mount.h> (BSD 4.3),
2816 *      not from <sys/statfs.h> (SYSV).  Older BSDs (like Ultrix) do not
2817 *      have statfs() and struct statfs, they have ustat() and getmnt()
2818 *      with struct ustat and struct fs_data.
2819 */
2820#$d_statfs_f_flags HAS_STRUCT_STATFS_F_FLAGS            /**/
2821
2822/* HAS_STRUCT_STATFS:
2823 *      This symbol, if defined, indicates that the struct statfs
2824 *      to do statfs() is supported.
2825 */
2826#$d_statfs_s HAS_STRUCT_STATFS  /**/
2827
2828/* HAS_FSTATVFS:
2829 *      This symbol, if defined, indicates that the fstatvfs routine is
2830 *      available to stat filesystems by file descriptors.
2831 */
2832#$d_fstatvfs HAS_FSTATVFS               /**/
2833
2834/* HAS_STRFTIME:
2835 *      This symbol, if defined, indicates that the strftime routine is
2836 *      available to do time formatting.
2837 */
2838#$d_strftime HAS_STRFTIME               /**/
2839
2840/* HAS_STRTOLD:
2841 *      This symbol, if defined, indicates that the strtold routine is
2842 *      available to convert strings to long doubles.
2843 */
2844#$d_strtold HAS_STRTOLD         /**/
2845
2846/* HAS_STRTOLL:
2847 *      This symbol, if defined, indicates that the strtoll routine is
2848 *      available to convert strings to long longs.
2849 */
2850#$d_strtoll HAS_STRTOLL         /**/
2851
2852/* HAS_STRTOQ:
2853 *      This symbol, if defined, indicates that the strtoq routine is
2854 *      available to convert strings to long longs (quads).
2855 */
2856#$d_strtoq HAS_STRTOQ           /**/
2857
2858/* HAS_STRTOULL:
2859 *      This symbol, if defined, indicates that the strtoull routine is
2860 *      available to convert strings to unsigned long longs.
2861 */
2862#$d_strtoull HAS_STRTOULL               /**/
2863
2864/* HAS_STRTOUQ:
2865 *      This symbol, if defined, indicates that the strtouq routine is
2866 *      available to convert strings to unsigned long longs (quads).
2867 */
2868#$d_strtouq HAS_STRTOUQ         /**/
2869
2870/* HAS_SYSCALL_PROTO:
2871 *      This symbol, if defined, indicates that the system provides
2872 *      a prototype for the syscall() function.  Otherwise, it is up
2873 *      to the program to supply one.  Good guesses are
2874 *              extern int syscall(int,  ...);
2875 *              extern int syscall(long, ...);
2876 */
2877#$d_syscallproto        HAS_SYSCALL_PROTO       /**/
2878
2879/* HAS_TELLDIR_PROTO:
2880 *      This symbol, if defined, indicates that the system provides
2881 *      a prototype for the telldir() function.  Otherwise, it is up
2882 *      to the program to supply one.  A good guess is
2883 *              extern long telldir(DIR*);
2884 */
2885#$d_telldirproto        HAS_TELLDIR_PROTO       /**/
2886
2887/* U32_ALIGNMENT_REQUIRED:
2888 *      This symbol, if defined, indicates that you must access
2889 *      character data through U32-aligned pointers.
2890 */
2891#ifndef U32_ALIGNMENT_REQUIRED
2892#$d_u32align U32_ALIGNMENT_REQUIRED     /**/
2893#endif
2894
2895/* HAS_UALARM:
2896 *      This symbol, if defined, indicates that the ualarm routine is
2897 *      available to do alarms with microsecond granularity.
2898 */
2899#$d_ualarm HAS_UALARM           /**/
2900
2901/* HAS_UNORDERED:
2902 *      This symbol, if defined, indicates that the unordered routine is
2903 *      available to check whether two doubles are unordered
2904 *      (effectively: whether either of them is NaN)
2905 */
2906#$d_unordered HAS_UNORDERED             /**/
2907
2908/* HAS_USLEEP_PROTO:
2909 *      This symbol, if defined, indicates that the system provides
2910 *      a prototype for the usleep() function.  Otherwise, it is up
2911 *      to the program to supply one.  A good guess is
2912 *              extern int usleep(useconds_t);
2913 */
2914#$d_usleepproto HAS_USLEEP_PROTO        /**/
2915
2916/* HAS_USTAT:
2917 *      This symbol, if defined, indicates that the ustat system call is
2918 *      available to query file system statistics by dev_t.
2919 */
2920#$d_ustat HAS_USTAT             /**/
2921
2922/* HAS_WRITEV:
2923 *      This symbol, if defined, indicates that the writev routine is
2924 *      available to do scatter writes.
2925 */
2926#$d_writev HAS_WRITEV           /**/
2927
2928/* USE_DYNAMIC_LOADING:
2929 *      This symbol, if defined, indicates that dynamic loading of
2930 *      some sort is available.
2931 */
2932#$usedl USE_DYNAMIC_LOADING             /**/
2933
2934/* FFLUSH_NULL:
2935 *      This symbol, if defined, tells that fflush(NULL) does flush
2936 *      all pending stdio output.
2937 */
2938/* FFLUSH_ALL:
2939 *      This symbol, if defined, tells that to flush
2940 *      all pending stdio output one must loop through all
2941 *      the stdio file handles stored in an array and fflush them.
2942 *      Note that if fflushNULL is defined, fflushall will not
2943 *      even be probed for and will be left undefined.
2944 */
2945#$fflushNULL    FFLUSH_NULL             /**/
2946#$fflushall     FFLUSH_ALL              /**/
2947
2948/* I_CRYPT:
2949 *      This symbol, if defined, indicates that <crypt.h> exists and
2950 *      should be included.
2951 */
2952#$i_crypt       I_CRYPT         /**/
2953
2954/* DB_Prefix_t:
2955 *      This symbol contains the type of the prefix structure element
2956 *      in the <db.h> header file.  In older versions of DB, it was
2957 *      int, while in newer ones it is u_int32_t.
2958 */
2959/* DB_Hash_t:
2960 *      This symbol contains the type of the prefix structure element
2961 *      in the <db.h> header file.  In older versions of DB, it was
2962 *      int, while in newer ones it is size_t.
2963 */
2964/* DB_VERSION_MAJOR_CFG:
2965 *      This symbol, if defined, defines the major version number of
2966 *      Berkeley DB found in the <db.h> header when Perl was configured.
2967 */
2968/* DB_VERSION_MINOR_CFG:
2969 *      This symbol, if defined, defines the minor version number of
2970 *      Berkeley DB found in the <db.h> header when Perl was configured.
2971 *      For DB version 1 this is always 0.
2972 */
2973/* DB_VERSION_PATCH_CFG:
2974 *      This symbol, if defined, defines the patch version number of
2975 *      Berkeley DB found in the <db.h> header when Perl was configured.
2976 *      For DB version 1 this is always 0.
2977 */
2978#define DB_Hash_t       $db_hashtype            /**/
2979#define DB_Prefix_t     $db_prefixtype          /**/
2980#define DB_VERSION_MAJOR_CFG    $db_version_major       /**/
2981#define DB_VERSION_MINOR_CFG    $db_version_minor       /**/
2982#define DB_VERSION_PATCH_CFG    $db_version_patch       /**/
2983
2984/* I_FP:
2985 *      This symbol, if defined, indicates that <fp.h> exists and
2986 *      should be included.
2987 */
2988#$i_fp  I_FP            /**/
2989
2990/* I_FP_CLASS:
2991 *      This symbol, if defined, indicates that <fp_class.h> exists and
2992 *      should be included.
2993 */
2994#$i_fp_class    I_FP_CLASS              /**/
2995
2996/* I_IEEEFP:
2997 *      This symbol, if defined, indicates that <ieeefp.h> exists and
2998 *      should be included.
2999 */
3000#$i_ieeefp      I_IEEEFP                /**/
3001
3002/* I_INTTYPES:
3003 *     This symbol, if defined, indicates to the C program that it should
3004 *     include <inttypes.h>.
3005 */
3006#$i_inttypes   I_INTTYPES                /**/
3007
3008/* I_LANGINFO:
3009 *      This symbol, if defined, indicates that <langinfo.h> exists and
3010 *      should be included.
3011 */
3012#$i_langinfo    I_LANGINFO              /**/
3013
3014/* I_LIBUTIL:
3015 *      This symbol, if defined, indicates that <libutil.h> exists and
3016 *      should be included.
3017 */
3018#$i_libutil     I_LIBUTIL               /**/
3019
3020/* I_MNTENT:
3021 *      This symbol, if defined, indicates that <mntent.h> exists and
3022 *      should be included.
3023 */
3024#$i_mntent      I_MNTENT                /**/
3025
3026/* I_NETINET_TCP:
3027 *     This symbol, if defined, indicates to the C program that it should
3028 *     include <netinet/tcp.h>.
3029 */
3030#$i_netinettcp   I_NETINET_TCP                /**/
3031
3032/* I_POLL:
3033 *      This symbol, if defined, indicates that <poll.h> exists and
3034 *      should be included.
3035 */
3036#$i_poll        I_POLL          /**/
3037
3038/* I_PROT:
3039 *      This symbol, if defined, indicates that <prot.h> exists and
3040 *      should be included.
3041 */
3042#$i_prot        I_PROT          /**/
3043
3044/* I_SHADOW:
3045 *      This symbol, if defined, indicates that <shadow.h> exists and
3046 *      should be included.
3047 */
3048#$i_shadow      I_SHADOW                /**/
3049
3050/* I_SOCKS:
3051 *      This symbol, if defined, indicates that <socks.h> exists and
3052 *      should be included.
3053 */
3054#$i_socks       I_SOCKS         /**/
3055
3056/* I_SUNMATH:
3057 *      This symbol, if defined, indicates that <sunmath.h> exists and
3058 *      should be included.
3059 */
3060#$i_sunmath     I_SUNMATH               /**/
3061
3062/* I_SYSLOG:
3063 *      This symbol, if defined, indicates that <syslog.h> exists and
3064 *      should be included.
3065 */
3066#$i_syslog      I_SYSLOG                /**/
3067
3068/* I_SYSMODE:
3069 *      This symbol, if defined, indicates that <sys/mode.h> exists and
3070 *      should be included.
3071 */
3072#$i_sysmode     I_SYSMODE               /**/
3073
3074/* I_SYS_MOUNT:
3075 *      This symbol, if defined, indicates that <sys/mount.h> exists and
3076 *      should be included.
3077 */
3078#$i_sysmount    I_SYS_MOUNT             /**/
3079
3080/* I_SYS_STATFS:
3081 *      This symbol, if defined, indicates that <sys/statfs.h> exists.
3082 */
3083#$i_sysstatfs   I_SYS_STATFS            /**/
3084
3085/* I_SYS_STATVFS:
3086 *      This symbol, if defined, indicates that <sys/statvfs.h> exists and
3087 *      should be included.
3088 */
3089#$i_sysstatvfs  I_SYS_STATVFS           /**/
3090
3091/* I_SYSUTSNAME:
3092 *      This symbol, if defined, indicates that <sys/utsname.h> exists and
3093 *      should be included.
3094 */
3095#$i_sysutsname  I_SYSUTSNAME            /**/
3096
3097/* I_SYS_VFS:
3098 *      This symbol, if defined, indicates that <sys/vfs.h> exists and
3099 *      should be included.
3100 */
3101#$i_sysvfs      I_SYS_VFS               /**/
3102
3103/* I_USTAT:
3104 *      This symbol, if defined, indicates that <ustat.h> exists and
3105 *      should be included.
3106 */
3107#$i_ustat       I_USTAT         /**/
3108
3109/* PERL_PRIfldbl:
3110 *      This symbol, if defined, contains the string used by stdio to
3111 *      format long doubles (format 'f') for output.
3112 */
3113/* PERL_PRIgldbl:
3114 *      This symbol, if defined, contains the string used by stdio to
3115 *      format long doubles (format 'g') for output.
3116 */
3117/* PERL_PRIeldbl:
3118 *      This symbol, if defined, contains the string used by stdio to
3119 *      format long doubles (format 'e') for output.
3120 */
3121/* PERL_SCNfldbl:
3122 *      This symbol, if defined, contains the string used by stdio to
3123 *      format long doubles (format 'f') for input.
3124 */
3125#$d_PRIfldbl PERL_PRIfldbl      $sPRIfldbl      /**/
3126#$d_PRIgldbl PERL_PRIgldbl      $sPRIgldbl      /**/
3127#$d_PRIeldbl PERL_PRIeldbl      $sPRIeldbl      /**/
3128#$d_SCNfldbl PERL_SCNfldbl      $sSCNfldbl      /**/
3129
3130/* NEED_VA_COPY:
3131 *      This symbol, if defined, indicates that the system stores
3132 *      the variable argument list datatype, va_list, in a format
3133 *      that cannot be copied by simple assignment, so that some
3134 *      other means must be used when copying is required.
3135 *      As such systems vary in their provision (or non-provision)
3136 *      of copying mechanisms, handy.h defines a platform-
3137 *      independent macro, Perl_va_copy(src, dst), to do the job.
3138 */
3139#$need_va_copy  NEED_VA_COPY            /**/
3140
3141/* IVTYPE:
3142 *      This symbol defines the C type used for Perl's IV.
3143 */
3144/* UVTYPE:
3145 *      This symbol defines the C type used for Perl's UV.
3146 */
3147/* I8TYPE:
3148 *      This symbol defines the C type used for Perl's I8.
3149 */
3150/* U8TYPE:
3151 *      This symbol defines the C type used for Perl's U8.
3152 */
3153/* I16TYPE:
3154 *      This symbol defines the C type used for Perl's I16.
3155 */
3156/* U16TYPE:
3157 *      This symbol defines the C type used for Perl's U16.
3158 */
3159/* I32TYPE:
3160 *      This symbol defines the C type used for Perl's I32.
3161 */
3162/* U32TYPE:
3163 *      This symbol defines the C type used for Perl's U32.
3164 */
3165/* I64TYPE:
3166 *      This symbol defines the C type used for Perl's I64.
3167 */
3168/* U64TYPE:
3169 *      This symbol defines the C type used for Perl's U64.
3170 */
3171/* NVTYPE:
3172 *      This symbol defines the C type used for Perl's NV.
3173 */
3174/* IVSIZE:
3175 *      This symbol contains the sizeof(IV).
3176 */
3177/* UVSIZE:
3178 *      This symbol contains the sizeof(UV).
3179 */
3180/* I8SIZE:
3181 *      This symbol contains the sizeof(I8).
3182 */
3183/* U8SIZE:
3184 *      This symbol contains the sizeof(U8).
3185 */
3186/* I16SIZE:
3187 *      This symbol contains the sizeof(I16).
3188 */
3189/* U16SIZE:
3190 *      This symbol contains the sizeof(U16).
3191 */
3192/* I32SIZE:
3193 *      This symbol contains the sizeof(I32).
3194 */
3195/* U32SIZE:
3196 *      This symbol contains the sizeof(U32).
3197 */
3198/* I64SIZE:
3199 *      This symbol contains the sizeof(I64).
3200 */
3201/* U64SIZE:
3202 *      This symbol contains the sizeof(U64).
3203 */
3204/* NVSIZE:
3205 *      This symbol contains the sizeof(NV).
3206 */
3207/* NV_PRESERVES_UV:
3208 *      This symbol, if defined, indicates that a variable of type NVTYPE
3209 *      can preserve all the bits of a variable of type UVTYPE.
3210 */
3211/* NV_PRESERVES_UV_BITS:
3212 *      This symbol contains the number of bits a variable of type NVTYPE
3213 *      can preserve of a variable of type UVTYPE.
3214 */
3215#define IVTYPE          $ivtype         /**/
3216#define UVTYPE          $uvtype         /**/
3217#define I8TYPE          $i8type         /**/
3218#define U8TYPE          $u8type         /**/
3219#define I16TYPE         $i16type        /**/
3220#define U16TYPE         $u16type        /**/
3221#define I32TYPE         $i32type        /**/
3222#define U32TYPE         $u32type        /**/
3223#ifdef HAS_QUAD
3224#define I64TYPE         $i64type        /**/
3225#define U64TYPE         $u64type        /**/
3226#endif
3227#define NVTYPE          $nvtype         /**/
3228#define IVSIZE          $ivsize         /**/
3229#define UVSIZE          $uvsize         /**/
3230#define I8SIZE          $i8size         /**/
3231#define U8SIZE          $u8size         /**/
3232#define I16SIZE         $i16size        /**/
3233#define U16SIZE         $u16size        /**/
3234#define I32SIZE         $i32size        /**/
3235#define U32SIZE         $u32size        /**/
3236#ifdef HAS_QUAD
3237#define I64SIZE         $i64size        /**/
3238#define U64SIZE         $u64size        /**/
3239#endif
3240#define NVSIZE          $nvsize         /**/
3241#$d_nv_preserves_uv     NV_PRESERVES_UV
3242#define NV_PRESERVES_UV_BITS    $nv_preserves_uv_bits
3243#if UVSIZE == 8
3244#   ifdef BYTEORDER
3245#       if BYTEORDER == 0x1234
3246#           undef BYTEORDER
3247#           define BYTEORDER 0x12345678
3248#       else
3249#           if BYTEORDER == 0x4321
3250#               undef BYTEORDER
3251#               define BYTEORDER 0x87654321
3252#           endif
3253#       endif
3254#   endif
3255#endif
3256
3257/* IVdf:
3258 *      This symbol defines the format string used for printing a Perl IV
3259 *      as a signed decimal integer.
3260 */
3261/* UVuf:
3262 *      This symbol defines the format string used for printing a Perl UV
3263 *      as an unsigned decimal integer.
3264 */
3265/* UVof:
3266 *      This symbol defines the format string used for printing a Perl UV
3267 *      as an unsigned octal integer.
3268 */
3269/* UVxf:
3270 *      This symbol defines the format string used for printing a Perl UV
3271 *      as an unsigned hexadecimal integer in lowercase abcdef.
3272 */
3273/* UVXf:
3274 *      This symbol defines the format string used for printing a Perl UV
3275 *      as an unsigned hexadecimal integer in uppercase ABCDEF.
3276 */
3277/* NVef:
3278 *      This symbol defines the format string used for printing a Perl NV
3279 *      using %e-ish floating point format.
3280 */
3281/* NVff:
3282 *      This symbol defines the format string used for printing a Perl NV
3283 *      using %f-ish floating point format.
3284 */
3285/* NVgf:
3286 *      This symbol defines the format string used for printing a Perl NV
3287 *      using %g-ish floating point format.
3288 */
3289#define IVdf            $ivdformat              /**/
3290#define UVuf            $uvuformat              /**/
3291#define UVof            $uvoformat              /**/
3292#define UVxf            $uvxformat              /**/
3293#define UVXf            $uvXUformat             /**/
3294#define NVef            $nveformat              /**/
3295#define NVff            $nvfformat              /**/
3296#define NVgf            $nvgformat              /**/
3297
3298/* SELECT_MIN_BITS:
3299 *      This symbol holds the minimum number of bits operated by select.
3300 *      That is, if you do select(n, ...), how many bits at least will be
3301 *      cleared in the masks if some activity is detected.  Usually this
3302 *      is either n or 32*ceil(n/32), especially many little-endians do
3303 *      the latter.  This is only useful if you have select(), naturally.
3304 */
3305#define SELECT_MIN_BITS         $selectminbits  /**/
3306
3307/* STARTPERL:
3308 *      This variable contains the string to put in front of a perl
3309 *      script to make sure (one hopes) that it runs with perl and not
3310 *      some shell.
3311 */
3312#define STARTPERL "$startperl"          /**/
3313
3314/* HAS_STDIO_STREAM_ARRAY:
3315 *      This symbol, if defined, tells that there is an array
3316 *      holding the stdio streams.
3317 */
3318/* STDIO_STREAM_ARRAY:
3319 *      This symbol tells the name of the array holding the stdio streams.
3320 *      Usual values include _iob, __iob, and __sF.
3321 */
3322#$d_stdio_stream_array  HAS_STDIO_STREAM_ARRAY  /**/
3323#define STDIO_STREAM_ARRAY      $stdio_stream_array
3324
3325/* USE_64_BIT_INT:
3326 *      This symbol, if defined, indicates that 64-bit integers should
3327 *      be used when available.  If not defined, the native integers
3328 *      will be employed (be they 32 or 64 bits).  The minimal possible
3329 *      64-bitness is used, just enough to get 64-bit integers into Perl.
3330 *      This may mean using for example "long longs", while your memory
3331 *      may still be limited to 2 gigabytes.
3332 */
3333/* USE_64_BIT_ALL:
3334 *      This symbol, if defined, indicates that 64-bit integers should
3335 *      be used when available.  If not defined, the native integers
3336 *      will be used (be they 32 or 64 bits).  The maximal possible
3337 *      64-bitness is employed: LP64 or ILP64, meaning that you will
3338 *      be able to use more than 2 gigabytes of memory.  This mode is
3339 *      even more binary incompatible than USE_64_BIT_INT. You may not
3340 *      be able to run the resulting executable in a 32-bit CPU at all or
3341 *      you may need at least to reboot your OS to 64-bit mode.
3342 */
3343#ifndef USE_64_BIT_INT
3344#$use64bitint   USE_64_BIT_INT          /**/
3345#endif
3346
3347#ifndef USE_64_BIT_ALL
3348#$use64bitall   USE_64_BIT_ALL          /**/
3349#endif
3350
3351/* USE_FAST_STDIO:
3352 *      This symbol, if defined, indicates that Perl should
3353 *      be built to use 'fast stdio'.
3354 *      Defaults to define in Perls 5.8 and earlier, to undef later.
3355 */
3356#ifndef USE_FAST_STDIO
3357#$usefaststdio  USE_FAST_STDIO          /**/
3358#endif
3359
3360/* USE_LARGE_FILES:
3361 *      This symbol, if defined, indicates that large file support
3362 *      should be used when available.
3363 */
3364#ifndef USE_LARGE_FILES
3365#$uselargefiles USE_LARGE_FILES         /**/
3366#endif
3367
3368/* USE_LONG_DOUBLE:
3369 *      This symbol, if defined, indicates that long doubles should
3370 *      be used when available.
3371 */
3372#ifndef USE_LONG_DOUBLE
3373#$uselongdouble USE_LONG_DOUBLE         /**/
3374#endif
3375
3376/* USE_MORE_BITS:
3377 *      This symbol, if defined, indicates that 64-bit interfaces and
3378 *      long doubles should be used when available.
3379 */
3380#ifndef USE_MORE_BITS
3381#$usemorebits   USE_MORE_BITS           /**/
3382#endif
3383
3384/* MULTIPLICITY:
3385 *      This symbol, if defined, indicates that Perl should
3386 *      be built to use multiplicity.
3387 */
3388#ifndef MULTIPLICITY
3389#$usemultiplicity       MULTIPLICITY            /**/
3390#endif
3391
3392/* USE_PERLIO:
3393 *      This symbol, if defined, indicates that the PerlIO abstraction should
3394 *      be used throughout.  If not defined, stdio should be
3395 *      used in a fully backward compatible manner.
3396 */
3397#ifndef USE_PERLIO
3398#$useperlio     USE_PERLIO              /**/
3399#endif
3400
3401/* USE_SOCKS:
3402 *      This symbol, if defined, indicates that Perl should
3403 *      be built to use socks.
3404 */
3405#ifndef USE_SOCKS
3406#$usesocks      USE_SOCKS               /**/
3407#endif
3408
3409/* PERL_XS_APIVERSION:
3410 *      This variable contains the version of the oldest perl binary
3411 *      compatible with the present perl.  perl.c:incpush() and
3412 *      lib/lib.pm will automatically search in $sitearch for older
3413 *      directories across major versions back to xs_apiversion.
3414 *      This is only useful if you have a perl library directory tree
3415 *      structured like the default one.
3416 *      See INSTALL for how this works.
3417 *      The versioned site_perl directory was introduced in 5.005,
3418 *      so that is the lowest possible value.
3419 *      Since this can depend on compile time options
3420 *      it is set by Configure.  Other non-default sources
3421 *      of potential incompatibility, such as multiplicity, threads,
3422 *      debugging, 64bits, sfio, etc., are not checked for currently,
3423 *      though in principle we could go snooping around in old
3424 *      Config.pm files.
3425 */
3426/* PERL_PM_APIVERSION:
3427 *      This variable contains the version of the oldest perl
3428 *      compatible with the present perl.  (That is, pure perl modules
3429 *      written for pm_apiversion will still work for the current
3430 *      version).  perl.c:incpush() and lib/lib.pm will automatically
3431 *      search in $sitelib for older directories across major versions
3432 *      back to pm_apiversion.  This is only useful if you have a perl
3433 *      library directory tree structured like the default one.  The
3434 *      versioned site_perl library was introduced in 5.005, so that's
3435 *      the default setting for this variable.  It's hard to imagine
3436 *      it changing before Perl6.  It is included here for symmetry
3437 *      with xs_apiveprsion -- the searching algorithms will
3438 *      (presumably) be similar.
3439 *      See the INSTALL file for how this works.
3440 */
3441#define PERL_XS_APIVERSION "$xs_apiversion"
3442#define PERL_PM_APIVERSION "$pm_apiversion"
3443
3444/* HAS_DRAND48_PROTO:
3445 *      This symbol, if defined, indicates that the system provides
3446 *      a prototype for the drand48() function.  Otherwise, it is up
3447 *      to the program to supply one.  A good guess is
3448 *              extern double drand48(void);
3449 */
3450#$d_drand48proto        HAS_DRAND48_PROTO       /**/
3451
3452/* HAS_GETHOST_PROTOS:
3453 *      This symbol, if defined, indicates that <netdb.h> includes
3454 *      prototypes for gethostent(), gethostbyname(), and
3455 *      gethostbyaddr().  Otherwise, it is up to the program to guess
3456 *      them.  See netdbtype.U for probing for various Netdb_xxx_t types.
3457 */
3458#$d_gethostprotos       HAS_GETHOST_PROTOS      /**/
3459
3460/* HAS_GETNET_PROTOS:
3461 *      This symbol, if defined, indicates that <netdb.h> includes
3462 *      prototypes for getnetent(), getnetbyname(), and
3463 *      getnetbyaddr().  Otherwise, it is up to the program to guess
3464 *      them.  See netdbtype.U for probing for various Netdb_xxx_t types.
3465 */
3466#$d_getnetprotos        HAS_GETNET_PROTOS       /**/
3467
3468/* HAS_GETPROTO_PROTOS:
3469 *      This symbol, if defined, indicates that <netdb.h> includes
3470 *      prototypes for getprotoent(), getprotobyname(), and
3471 *      getprotobyaddr().  Otherwise, it is up to the program to guess
3472 *      them.  See netdbtype.U for probing for various Netdb_xxx_t types.
3473 */
3474#$d_getprotoprotos      HAS_GETPROTO_PROTOS     /**/
3475
3476/* HAS_GETSERV_PROTOS:
3477 *      This symbol, if defined, indicates that <netdb.h> includes
3478 *      prototypes for getservent(), getservbyname(), and
3479 *      getservbyaddr().  Otherwise, it is up to the program to guess
3480 *      them.  See netdbtype.U for probing for various Netdb_xxx_t types.
3481 */
3482#$d_getservprotos       HAS_GETSERV_PROTOS      /**/
3483
3484/* HAS_LSEEK_PROTO:
3485 *      This symbol, if defined, indicates that the system provides
3486 *      a prototype for the lseek() function.  Otherwise, it is up
3487 *      to the program to supply one.  A good guess is
3488 *              extern off_t lseek(int, off_t, int);
3489 */
3490#$d_lseekproto  HAS_LSEEK_PROTO /**/
3491
3492/* Netdb_host_t:
3493 *      This symbol holds the type used for the 1st argument
3494 *      to gethostbyaddr().
3495 */
3496/* Netdb_hlen_t:
3497 *      This symbol holds the type used for the 2nd argument
3498 *      to gethostbyaddr().
3499 */
3500/* Netdb_name_t:
3501 *      This symbol holds the type used for the argument to
3502 *      gethostbyname().
3503 */
3504/* Netdb_net_t:
3505 *      This symbol holds the type used for the 1st argument to
3506 *      getnetbyaddr().
3507 */
3508#define Netdb_host_t            $netdb_host_type /**/
3509#define Netdb_hlen_t            $netdb_hlen_type /**/
3510#define Netdb_name_t            $netdb_name_type /**/
3511#define Netdb_net_t             $netdb_net_type /**/
3512
3513/* Select_fd_set_t:
3514 *      This symbol holds the type used for the 2nd, 3rd, and 4th
3515 *      arguments to select.  Usually, this is 'fd_set *', if HAS_FD_SET
3516 *      is defined, and 'int *' otherwise.  This is only useful if you
3517 *      have select(), of course.
3518 */
3519#define Select_fd_set_t         $selecttype     /**/
3520
3521/* Sock_size_t:
3522 *      This symbol holds the type used for the size argument of
3523 *      various socket calls (just the base type, not the pointer-to).
3524 */
3525#define Sock_size_t             $socksizetype /**/
3526
3527/* ARCHNAME:
3528 *      This symbol holds a string representing the architecture name.
3529 *      It may be used to construct an architecture-dependant pathname
3530 *      where library files may be held under a private library, for
3531 *      instance.
3532 */
3533#define ARCHNAME "$archname"            /**/
3534
3535/* HAS_ASCTIME_R:
3536 *      This symbol, if defined, indicates that the asctime_r routine
3537 *      is available to asctime re-entrantly.
3538 */
3539/* ASCTIME_R_PROTO:
3540 *      This symbol encodes the prototype of asctime_r.
3541 *      It is zero if d_asctime_r is undef, and one of the
3542 *      REENTRANT_PROTO_T_ABC macros of reentr.h if d_asctime_r
3543 *      is defined.
3544 */
3545#$d_asctime_r HAS_ASCTIME_R        /**/
3546#define ASCTIME_R_PROTO $asctime_r_proto           /**/
3547
3548/* HAS_CRYPT_R:
3549 *      This symbol, if defined, indicates that the crypt_r routine
3550 *      is available to crypt re-entrantly.
3551 */
3552/* CRYPT_R_PROTO:
3553 *      This symbol encodes the prototype of crypt_r.
3554 *      It is zero if d_crypt_r is undef, and one of the
3555 *      REENTRANT_PROTO_T_ABC macros of reentr.h if d_crypt_r
3556 *      is defined.
3557 */
3558#$d_crypt_r HAS_CRYPT_R    /**/
3559#define CRYPT_R_PROTO $crypt_r_proto       /**/
3560
3561/* HAS_CTERMID_R:
3562 *      This symbol, if defined, indicates that the ctermid_r routine
3563 *      is available to ctermid re-entrantly.
3564 */
3565/* CTERMID_R_PROTO:
3566 *      This symbol encodes the prototype of ctermid_r.
3567 *      It is zero if d_ctermid_r is undef, and one of the
3568 *      REENTRANT_PROTO_T_ABC macros of reentr.h if d_ctermid_r
3569 *      is defined.
3570 */
3571#$d_ctermid_r HAS_CTERMID_R        /**/
3572#define CTERMID_R_PROTO $ctermid_r_proto           /**/
3573
3574/* HAS_CTIME_R:
3575 *      This symbol, if defined, indicates that the ctime_r routine
3576 *      is available to ctime re-entrantly.
3577 */
3578/* CTIME_R_PROTO:
3579 *      This symbol encodes the prototype of ctime_r.
3580 *      It is zero if d_ctime_r is undef, and one of the
3581 *      REENTRANT_PROTO_T_ABC macros of reentr.h if d_ctime_r
3582 *      is defined.
3583 */
3584#$d_ctime_r HAS_CTIME_R    /**/
3585#define CTIME_R_PROTO $ctime_r_proto       /**/
3586
3587/* HAS_DRAND48_R:
3588 *      This symbol, if defined, indicates that the drand48_r routine
3589 *      is available to drand48 re-entrantly.
3590 */
3591/* DRAND48_R_PROTO:
3592 *      This symbol encodes the prototype of drand48_r.
3593 *      It is zero if d_drand48_r is undef, and one of the
3594 *      REENTRANT_PROTO_T_ABC macros of reentr.h if d_drand48_r
3595 *      is defined.
3596 */
3597#$d_drand48_r HAS_DRAND48_R        /**/
3598#define DRAND48_R_PROTO $drand48_r_proto           /**/
3599
3600/* HAS_ENDGRENT_R:
3601 *      This symbol, if defined, indicates that the endgrent_r routine
3602 *      is available to endgrent re-entrantly.
3603 */
3604/* ENDGRENT_R_PROTO:
3605 *      This symbol encodes the prototype of endgrent_r.
3606 *      It is zero if d_endgrent_r is undef, and one of the
3607 *      REENTRANT_PROTO_T_ABC macros of reentr.h if d_endgrent_r
3608 *      is defined.
3609 */
3610#$d_endgrent_r HAS_ENDGRENT_R      /**/
3611#define ENDGRENT_R_PROTO $endgrent_r_proto         /**/
3612
3613/* HAS_ENDHOSTENT_R:
3614 *      This symbol, if defined, indicates that the endhostent_r routine
3615 *      is available to endhostent re-entrantly.
3616 */
3617/* ENDHOSTENT_R_PROTO:
3618 *      This symbol encodes the prototype of endhostent_r.
3619 *      It is zero if d_endhostent_r is undef, and one of the
3620 *      REENTRANT_PROTO_T_ABC macros of reentr.h if d_endhostent_r
3621 *      is defined.
3622 */
3623#$d_endhostent_r HAS_ENDHOSTENT_R          /**/
3624#define ENDHOSTENT_R_PROTO $endhostent_r_proto     /**/
3625
3626/* HAS_ENDNETENT_R:
3627 *      This symbol, if defined, indicates that the endnetent_r routine
3628 *      is available to endnetent re-entrantly.
3629 */
3630/* ENDNETENT_R_PROTO:
3631 *      This symbol encodes the prototype of endnetent_r.
3632 *      It is zero if d_endnetent_r is undef, and one of the
3633 *      REENTRANT_PROTO_T_ABC macros of reentr.h if d_endnetent_r
3634 *      is defined.
3635 */
3636#$d_endnetent_r HAS_ENDNETENT_R    /**/
3637#define ENDNETENT_R_PROTO $endnetent_r_proto       /**/
3638
3639/* HAS_ENDPROTOENT_R:
3640 *      This symbol, if defined, indicates that the endprotoent_r routine
3641 *      is available to endprotoent re-entrantly.
3642 */
3643/* ENDPROTOENT_R_PROTO:
3644 *      This symbol encodes the prototype of endprotoent_r.
3645 *      It is zero if d_endprotoent_r is undef, and one of the
3646 *      REENTRANT_PROTO_T_ABC macros of reentr.h if d_endprotoent_r
3647 *      is defined.
3648 */
3649#$d_endprotoent_r HAS_ENDPROTOENT_R        /**/
3650#define ENDPROTOENT_R_PROTO $endprotoent_r_proto           /**/
3651
3652/* HAS_ENDPWENT_R:
3653 *      This symbol, if defined, indicates that the endpwent_r routine
3654 *      is available to endpwent re-entrantly.
3655 */
3656/* ENDPWENT_R_PROTO:
3657 *      This symbol encodes the prototype of endpwent_r.
3658 *      It is zero if d_endpwent_r is undef, and one of the
3659 *      REENTRANT_PROTO_T_ABC macros of reentr.h if d_endpwent_r
3660 *      is defined.
3661 */
3662#$d_endpwent_r HAS_ENDPWENT_R      /**/
3663#define ENDPWENT_R_PROTO $endpwent_r_proto         /**/
3664
3665/* HAS_ENDSERVENT_R:
3666 *      This symbol, if defined, indicates that the endservent_r routine
3667 *      is available to endservent re-entrantly.
3668 */
3669/* ENDSERVENT_R_PROTO:
3670 *      This symbol encodes the prototype of endservent_r.
3671 *      It is zero if d_endservent_r is undef, and one of the
3672 *      REENTRANT_PROTO_T_ABC macros of reentr.h if d_endservent_r
3673 *      is defined.
3674 */
3675#$d_endservent_r HAS_ENDSERVENT_R          /**/
3676#define ENDSERVENT_R_PROTO $endservent_r_proto     /**/
3677
3678/* HAS_GETGRENT_R:
3679 *      This symbol, if defined, indicates that the getgrent_r routine
3680 *      is available to getgrent re-entrantly.
3681 */
3682/* GETGRENT_R_PROTO:
3683 *      This symbol encodes the prototype of getgrent_r.
3684 *      It is zero if d_getgrent_r is undef, and one of the
3685 *      REENTRANT_PROTO_T_ABC macros of reentr.h if d_getgrent_r
3686 *      is defined.
3687 */
3688#$d_getgrent_r HAS_GETGRENT_R      /**/
3689#define GETGRENT_R_PROTO $getgrent_r_proto         /**/
3690
3691/* HAS_GETGRGID_R:
3692 *      This symbol, if defined, indicates that the getgrgid_r routine
3693 *      is available to getgrgid re-entrantly.
3694 */
3695/* GETGRGID_R_PROTO:
3696 *      This symbol encodes the prototype of getgrgid_r.
3697 *      It is zero if d_getgrgid_r is undef, and one of the
3698 *      REENTRANT_PROTO_T_ABC macros of reentr.h if d_getgrgid_r
3699 *      is defined.
3700 */
3701#$d_getgrgid_r HAS_GETGRGID_R      /**/
3702#define GETGRGID_R_PROTO $getgrgid_r_proto         /**/
3703
3704/* HAS_GETGRNAM_R:
3705 *      This symbol, if defined, indicates that the getgrnam_r routine
3706 *      is available to getgrnam re-entrantly.
3707 */
3708/* GETGRNAM_R_PROTO:
3709 *      This symbol encodes the prototype of getgrnam_r.
3710 *      It is zero if d_getgrnam_r is undef, and one of the
3711 *      REENTRANT_PROTO_T_ABC macros of reentr.h if d_getgrnam_r
3712 *      is defined.
3713 */
3714#$d_getgrnam_r HAS_GETGRNAM_R      /**/
3715#define GETGRNAM_R_PROTO $getgrnam_r_proto         /**/
3716
3717/* HAS_GETHOSTBYADDR_R:
3718 *      This symbol, if defined, indicates that the gethostbyaddr_r routine
3719 *      is available to gethostbyaddr re-entrantly.
3720 */
3721/* GETHOSTBYADDR_R_PROTO:
3722 *      This symbol encodes the prototype of gethostbyaddr_r.
3723 *      It is zero if d_gethostbyaddr_r is undef, and one of the
3724 *      REENTRANT_PROTO_T_ABC macros of reentr.h if d_gethostbyaddr_r
3725 *      is defined.
3726 */
3727#$d_gethostbyaddr_r HAS_GETHOSTBYADDR_R    /**/
3728#define GETHOSTBYADDR_R_PROTO $gethostbyaddr_r_proto       /**/
3729
3730/* HAS_GETHOSTBYNAME_R:
3731 *      This symbol, if defined, indicates that the gethostbyname_r routine
3732 *      is available to gethostbyname re-entrantly.
3733 */
3734/* GETHOSTBYNAME_R_PROTO:
3735 *      This symbol encodes the prototype of gethostbyname_r.
3736 *      It is zero if d_gethostbyname_r is undef, and one of the
3737 *      REENTRANT_PROTO_T_ABC macros of reentr.h if d_gethostbyname_r
3738 *      is defined.
3739 */
3740#$d_gethostbyname_r HAS_GETHOSTBYNAME_R    /**/
3741#define GETHOSTBYNAME_R_PROTO $gethostbyname_r_proto       /**/
3742
3743/* HAS_GETHOSTENT_R:
3744 *      This symbol, if defined, indicates that the gethostent_r routine
3745 *      is available to gethostent re-entrantly.
3746 */
3747/* GETHOSTENT_R_PROTO:
3748 *      This symbol encodes the prototype of gethostent_r.
3749 *      It is zero if d_gethostent_r is undef, and one of the
3750 *      REENTRANT_PROTO_T_ABC macros of reentr.h if d_gethostent_r
3751 *      is defined.
3752 */
3753#$d_gethostent_r HAS_GETHOSTENT_R          /**/
3754#define GETHOSTENT_R_PROTO $gethostent_r_proto     /**/
3755
3756/* HAS_GETLOGIN_R:
3757 *      This symbol, if defined, indicates that the getlogin_r routine
3758 *      is available to getlogin re-entrantly.
3759 */
3760/* GETLOGIN_R_PROTO:
3761 *      This symbol encodes the prototype of getlogin_r.
3762 *      It is zero if d_getlogin_r is undef, and one of the
3763 *      REENTRANT_PROTO_T_ABC macros of reentr.h if d_getlogin_r
3764 *      is defined.
3765 */
3766#$d_getlogin_r HAS_GETLOGIN_R      /**/
3767#define GETLOGIN_R_PROTO $getlogin_r_proto         /**/
3768
3769/* HAS_GETNETBYADDR_R:
3770 *      This symbol, if defined, indicates that the getnetbyaddr_r routine
3771 *      is available to getnetbyaddr re-entrantly.
3772 */
3773/* GETNETBYADDR_R_PROTO:
3774 *      This symbol encodes the prototype of getnetbyaddr_r.
3775 *      It is zero if d_getnetbyaddr_r is undef, and one of the
3776 *      REENTRANT_PROTO_T_ABC macros of reentr.h if d_getnetbyaddr_r
3777 *      is defined.
3778 */
3779#$d_getnetbyaddr_r HAS_GETNETBYADDR_R      /**/
3780#define GETNETBYADDR_R_PROTO $getnetbyaddr_r_proto         /**/
3781
3782/* HAS_GETNETBYNAME_R:
3783 *      This symbol, if defined, indicates that the getnetbyname_r routine
3784 *      is available to getnetbyname re-entrantly.
3785 */
3786/* GETNETBYNAME_R_PROTO:
3787 *      This symbol encodes the prototype of getnetbyname_r.
3788 *      It is zero if d_getnetbyname_r is undef, and one of the
3789 *      REENTRANT_PROTO_T_ABC macros of reentr.h if d_getnetbyname_r
3790 *      is defined.
3791 */
3792#$d_getnetbyname_r HAS_GETNETBYNAME_R      /**/
3793#define GETNETBYNAME_R_PROTO $getnetbyname_r_proto         /**/
3794
3795/* HAS_GETNETENT_R:
3796 *      This symbol, if defined, indicates that the getnetent_r routine
3797 *      is available to getnetent re-entrantly.
3798 */
3799/* GETNETENT_R_PROTO:
3800 *      This symbol encodes the prototype of getnetent_r.
3801 *      It is zero if d_getnetent_r is undef, and one of the
3802 *      REENTRANT_PROTO_T_ABC macros of reentr.h if d_getnetent_r
3803 *      is defined.
3804 */
3805#$d_getnetent_r HAS_GETNETENT_R    /**/
3806#define GETNETENT_R_PROTO $getnetent_r_proto       /**/
3807
3808/* HAS_GETPROTOBYNAME_R:
3809 *      This symbol, if defined, indicates that the getprotobyname_r routine
3810 *      is available to getprotobyname re-entrantly.
3811 */
3812/* GETPROTOBYNAME_R_PROTO:
3813 *      This symbol encodes the prototype of getprotobyname_r.
3814 *      It is zero if d_getprotobyname_r is undef, and one of the
3815 *      REENTRANT_PROTO_T_ABC macros of reentr.h if d_getprotobyname_r
3816 *      is defined.
3817 */
3818#$d_getprotobyname_r HAS_GETPROTOBYNAME_R          /**/
3819#define GETPROTOBYNAME_R_PROTO $getprotobyname_r_proto     /**/
3820
3821/* HAS_GETPROTOBYNUMBER_R:
3822 *      This symbol, if defined, indicates that the getprotobynumber_r routine
3823 *      is available to getprotobynumber re-entrantly.
3824 */
3825/* GETPROTOBYNUMBER_R_PROTO:
3826 *      This symbol encodes the prototype of getprotobynumber_r.
3827 *      It is zero if d_getprotobynumber_r is undef, and one of the
3828 *      REENTRANT_PROTO_T_ABC macros of reentr.h if d_getprotobynumber_r
3829 *      is defined.
3830 */
3831#$d_getprotobynumber_r HAS_GETPROTOBYNUMBER_R      /**/
3832#define GETPROTOBYNUMBER_R_PROTO $getprotobynumber_r_proto         /**/
3833
3834/* HAS_GETPROTOENT_R:
3835 *      This symbol, if defined, indicates that the getprotoent_r routine
3836 *      is available to getprotoent re-entrantly.
3837 */
3838/* GETPROTOENT_R_PROTO:
3839 *      This symbol encodes the prototype of getprotoent_r.
3840 *      It is zero if d_getprotoent_r is undef, and one of the
3841 *      REENTRANT_PROTO_T_ABC macros of reentr.h if d_getprotoent_r
3842 *      is defined.
3843 */
3844#$d_getprotoent_r HAS_GETPROTOENT_R        /**/
3845#define GETPROTOENT_R_PROTO $getprotoent_r_proto           /**/
3846
3847/* HAS_GETPWENT_R:
3848 *      This symbol, if defined, indicates that the getpwent_r routine
3849 *      is available to getpwent re-entrantly.
3850 */
3851/* GETPWENT_R_PROTO:
3852 *      This symbol encodes the prototype of getpwent_r.
3853 *      It is zero if d_getpwent_r is undef, and one of the
3854 *      REENTRANT_PROTO_T_ABC macros of reentr.h if d_getpwent_r
3855 *      is defined.
3856 */
3857#$d_getpwent_r HAS_GETPWENT_R      /**/
3858#define GETPWENT_R_PROTO $getpwent_r_proto         /**/
3859
3860/* HAS_GETPWNAM_R:
3861 *      This symbol, if defined, indicates that the getpwnam_r routine
3862 *      is available to getpwnam re-entrantly.
3863 */
3864/* GETPWNAM_R_PROTO:
3865 *      This symbol encodes the prototype of getpwnam_r.
3866 *      It is zero if d_getpwnam_r is undef, and one of the
3867 *      REENTRANT_PROTO_T_ABC macros of reentr.h if d_getpwnam_r
3868 *      is defined.
3869 */
3870#$d_getpwnam_r HAS_GETPWNAM_R      /**/
3871#define GETPWNAM_R_PROTO $getpwnam_r_proto         /**/
3872
3873/* HAS_GETPWUID_R:
3874 *      This symbol, if defined, indicates that the getpwuid_r routine
3875 *      is available to getpwuid re-entrantly.
3876 */
3877/* GETPWUID_R_PROTO:
3878 *      This symbol encodes the prototype of getpwuid_r.
3879 *      It is zero if d_getpwuid_r is undef, and one of the
3880 *      REENTRANT_PROTO_T_ABC macros of reentr.h if d_getpwuid_r
3881 *      is defined.
3882 */
3883#$d_getpwuid_r HAS_GETPWUID_R      /**/
3884#define GETPWUID_R_PROTO $getpwuid_r_proto         /**/
3885
3886/* HAS_GETSERVBYNAME_R:
3887 *      This symbol, if defined, indicates that the getservbyname_r routine
3888 *      is available to getservbyname re-entrantly.
3889 */
3890/* GETSERVBYNAME_R_PROTO:
3891 *      This symbol encodes the prototype of getservbyname_r.
3892 *      It is zero if d_getservbyname_r is undef, and one of the
3893 *      REENTRANT_PROTO_T_ABC macros of reentr.h if d_getservbyname_r
3894 *      is defined.
3895 */
3896#$d_getservbyname_r HAS_GETSERVBYNAME_R    /**/
3897#define GETSERVBYNAME_R_PROTO $getservbyname_r_proto       /**/
3898
3899/* HAS_GETSERVBYPORT_R:
3900 *      This symbol, if defined, indicates that the getservbyport_r routine
3901 *      is available to getservbyport re-entrantly.
3902 */
3903/* GETSERVBYPORT_R_PROTO:
3904 *      This symbol encodes the prototype of getservbyport_r.
3905 *      It is zero if d_getservbyport_r is undef, and one of the
3906 *      REENTRANT_PROTO_T_ABC macros of reentr.h if d_getservbyport_r
3907 *      is defined.
3908 */
3909#$d_getservbyport_r HAS_GETSERVBYPORT_R    /**/
3910#define GETSERVBYPORT_R_PROTO $getservbyport_r_proto       /**/
3911
3912/* HAS_GETSERVENT_R:
3913 *      This symbol, if defined, indicates that the getservent_r routine
3914 *      is available to getservent re-entrantly.
3915 */
3916/* GETSERVENT_R_PROTO:
3917 *      This symbol encodes the prototype of getservent_r.
3918 *      It is zero if d_getservent_r is undef, and one of the
3919 *      REENTRANT_PROTO_T_ABC macros of reentr.h if d_getservent_r
3920 *      is defined.
3921 */
3922#$d_getservent_r HAS_GETSERVENT_R          /**/
3923#define GETSERVENT_R_PROTO $getservent_r_proto     /**/
3924
3925/* HAS_GETSPNAM_R:
3926 *      This symbol, if defined, indicates that the getspnam_r routine
3927 *      is available to getspnam re-entrantly.
3928 */
3929/* GETSPNAM_R_PROTO:
3930 *      This symbol encodes the prototype of getspnam_r.
3931 *      It is zero if d_getspnam_r is undef, and one of the
3932 *      REENTRANT_PROTO_T_ABC macros of reentr.h if d_getspnam_r
3933 *      is defined.
3934 */
3935#$d_getspnam_r HAS_GETSPNAM_R      /**/
3936#define GETSPNAM_R_PROTO $getspnam_r_proto         /**/
3937
3938/* HAS_GMTIME_R:
3939 *      This symbol, if defined, indicates that the gmtime_r routine
3940 *      is available to gmtime re-entrantly.
3941 */
3942/* GMTIME_R_PROTO:
3943 *      This symbol encodes the prototype of gmtime_r.
3944 *      It is zero if d_gmtime_r is undef, and one of the
3945 *      REENTRANT_PROTO_T_ABC macros of reentr.h if d_gmtime_r
3946 *      is defined.
3947 */
3948#$d_gmtime_r HAS_GMTIME_R          /**/
3949#define GMTIME_R_PROTO $gmtime_r_proto     /**/
3950
3951/* HAS_LOCALTIME_R:
3952 *      This symbol, if defined, indicates that the localtime_r routine
3953 *      is available to localtime re-entrantly.
3954 */
3955/* LOCALTIME_R_PROTO:
3956 *      This symbol encodes the prototype of localtime_r.
3957 *      It is zero if d_localtime_r is undef, and one of the
3958 *      REENTRANT_PROTO_T_ABC macros of reentr.h if d_localtime_r
3959 *      is defined.
3960 */
3961#$d_localtime_r HAS_LOCALTIME_R    /**/
3962#define LOCALTIME_R_PROTO $localtime_r_proto       /**/
3963
3964/* OLD_PTHREAD_CREATE_JOINABLE:
3965 *      This symbol, if defined, indicates how to create pthread
3966 *      in joinable (aka undetached) state.  NOTE: not defined
3967 *      if pthread.h already has defined PTHREAD_CREATE_JOINABLE
3968 *      (the new version of the constant).
3969 *      If defined, known values are PTHREAD_CREATE_UNDETACHED
3970 *      and __UNDETACHED.
3971 */
3972#$d_old_pthread_create_joinable OLD_PTHREAD_CREATE_JOINABLE $old_pthread_create_joinable /**/
3973
3974/* HAS_PTHREAD_ATFORK:
3975 *      This symbol, if defined, indicates that the pthread_atfork routine
3976 *      is available to setup fork handlers.
3977 */
3978#$d_pthread_atfork HAS_PTHREAD_ATFORK           /**/
3979
3980/* HAS_PTHREAD_YIELD:
3981 *      This symbol, if defined, indicates that the pthread_yield
3982 *      routine is available to yield the execution of the current
3983 *      thread.  sched_yield is preferable to pthread_yield.
3984 */
3985/* SCHED_YIELD:
3986 *      This symbol defines the way to yield the execution of
3987 *      the current thread.  Known ways are sched_yield,
3988 *      pthread_yield, and pthread_yield with NULL.
3989 */
3990/* HAS_SCHED_YIELD:
3991 *      This symbol, if defined, indicates that the sched_yield
3992 *      routine is available to yield the execution of the current
3993 *      thread.  sched_yield is preferable to pthread_yield.
3994 */
3995#$d_pthread_yield HAS_PTHREAD_YIELD     /**/
3996#define SCHED_YIELD     $sched_yield    /**/
3997#$d_sched_yield HAS_SCHED_YIELD /**/
3998
3999/* HAS_RANDOM_R:
4000 *      This symbol, if defined, indicates that the random_r routine
4001 *      is available to random re-entrantly.
4002 */
4003/* RANDOM_R_PROTO:
4004 *      This symbol encodes the prototype of random_r.
4005 *      It is zero if d_random_r is undef, and one of the
4006 *      REENTRANT_PROTO_T_ABC macros of reentr.h if d_random_r
4007 *      is defined.
4008 */
4009#$d_random_r HAS_RANDOM_R          /**/
4010#define RANDOM_R_PROTO $random_r_proto     /**/
4011
4012/* HAS_READDIR64_R:
4013 *      This symbol, if defined, indicates that the readdir64_r routine
4014 *      is available to readdir64 re-entrantly.
4015 */
4016/* READDIR64_R_PROTO:
4017 *      This symbol encodes the prototype of readdir64_r.
4018 *      It is zero if d_readdir64_r is undef, and one of the
4019 *      REENTRANT_PROTO_T_ABC macros of reentr.h if d_readdir64_r
4020 *      is defined.
4021 */
4022#$d_readdir64_r HAS_READDIR64_R    /**/
4023#define READDIR64_R_PROTO $readdir64_r_proto       /**/
4024
4025/* HAS_READDIR_R:
4026 *      This symbol, if defined, indicates that the readdir_r routine
4027 *      is available to readdir re-entrantly.
4028 */
4029/* READDIR_R_PROTO:
4030 *      This symbol encodes the prototype of readdir_r.
4031 *      It is zero if d_readdir_r is undef, and one of the
4032 *      REENTRANT_PROTO_T_ABC macros of reentr.h if d_readdir_r
4033 *      is defined.
4034 */
4035#$d_readdir_r HAS_READDIR_R        /**/
4036#define READDIR_R_PROTO $readdir_r_proto           /**/
4037
4038/* HAS_SETGRENT_R:
4039 *      This symbol, if defined, indicates that the setgrent_r routine
4040 *      is available to setgrent re-entrantly.
4041 */
4042/* SETGRENT_R_PROTO:
4043 *      This symbol encodes the prototype of setgrent_r.
4044 *      It is zero if d_setgrent_r is undef, and one of the
4045 *      REENTRANT_PROTO_T_ABC macros of reentr.h if d_setgrent_r
4046 *      is defined.
4047 */
4048#$d_setgrent_r HAS_SETGRENT_R      /**/
4049#define SETGRENT_R_PROTO $setgrent_r_proto         /**/
4050
4051/* HAS_SETHOSTENT_R:
4052 *      This symbol, if defined, indicates that the sethostent_r routine
4053 *      is available to sethostent re-entrantly.
4054 */
4055/* SETHOSTENT_R_PROTO:
4056 *      This symbol encodes the prototype of sethostent_r.
4057 *      It is zero if d_sethostent_r is undef, and one of the
4058 *      REENTRANT_PROTO_T_ABC macros of reentr.h if d_sethostent_r
4059 *      is defined.
4060 */
4061#$d_sethostent_r HAS_SETHOSTENT_R          /**/
4062#define SETHOSTENT_R_PROTO $sethostent_r_proto     /**/
4063
4064/* HAS_SETLOCALE_R:
4065 *      This symbol, if defined, indicates that the setlocale_r routine
4066 *      is available to setlocale re-entrantly.
4067 */
4068/* SETLOCALE_R_PROTO:
4069 *      This symbol encodes the prototype of setlocale_r.
4070 *      It is zero if d_setlocale_r is undef, and one of the
4071 *      REENTRANT_PROTO_T_ABC macros of reentr.h if d_setlocale_r
4072 *      is defined.
4073 */
4074#$d_setlocale_r HAS_SETLOCALE_R    /**/
4075#define SETLOCALE_R_PROTO $setlocale_r_proto       /**/
4076
4077/* HAS_SETNETENT_R:
4078 *      This symbol, if defined, indicates that the setnetent_r routine
4079 *      is available to setnetent re-entrantly.
4080 */
4081/* SETNETENT_R_PROTO:
4082 *      This symbol encodes the prototype of setnetent_r.
4083 *      It is zero if d_setnetent_r is undef, and one of the
4084 *      REENTRANT_PROTO_T_ABC macros of reentr.h if d_setnetent_r
4085 *      is defined.
4086 */
4087#$d_setnetent_r HAS_SETNETENT_R    /**/
4088#define SETNETENT_R_PROTO $setnetent_r_proto       /**/
4089
4090/* HAS_SETPROTOENT_R:
4091 *      This symbol, if defined, indicates that the setprotoent_r routine
4092 *      is available to setprotoent re-entrantly.
4093 */
4094/* SETPROTOENT_R_PROTO:
4095 *      This symbol encodes the prototype of setprotoent_r.
4096 *      It is zero if d_setprotoent_r is undef, and one of the
4097 *      REENTRANT_PROTO_T_ABC macros of reentr.h if d_setprotoent_r
4098 *      is defined.
4099 */
4100#$d_setprotoent_r HAS_SETPROTOENT_R        /**/
4101#define SETPROTOENT_R_PROTO $setprotoent_r_proto           /**/
4102
4103/* HAS_SETPWENT_R:
4104 *      This symbol, if defined, indicates that the setpwent_r routine
4105 *      is available to setpwent re-entrantly.
4106 */
4107/* SETPWENT_R_PROTO:
4108 *      This symbol encodes the prototype of setpwent_r.
4109 *      It is zero if d_setpwent_r is undef, and one of the
4110 *      REENTRANT_PROTO_T_ABC macros of reentr.h if d_setpwent_r
4111 *      is defined.
4112 */
4113#$d_setpwent_r HAS_SETPWENT_R      /**/
4114#define SETPWENT_R_PROTO $setpwent_r_proto         /**/
4115
4116/* HAS_SETSERVENT_R:
4117 *      This symbol, if defined, indicates that the setservent_r routine
4118 *      is available to setservent re-entrantly.
4119 */
4120/* SETSERVENT_R_PROTO:
4121 *      This symbol encodes the prototype of setservent_r.
4122 *      It is zero if d_setservent_r is undef, and one of the
4123 *      REENTRANT_PROTO_T_ABC macros of reentr.h if d_setservent_r
4124 *      is defined.
4125 */
4126#$d_setservent_r HAS_SETSERVENT_R          /**/
4127#define SETSERVENT_R_PROTO $setservent_r_proto     /**/
4128
4129/* HAS_SRAND48_R:
4130 *      This symbol, if defined, indicates that the srand48_r routine
4131 *      is available to srand48 re-entrantly.
4132 */
4133/* SRAND48_R_PROTO:
4134 *      This symbol encodes the prototype of srand48_r.
4135 *      It is zero if d_srand48_r is undef, and one of the
4136 *      REENTRANT_PROTO_T_ABC macros of reentr.h if d_srand48_r
4137 *      is defined.
4138 */
4139#$d_srand48_r HAS_SRAND48_R        /**/
4140#define SRAND48_R_PROTO $srand48_r_proto           /**/
4141
4142/* HAS_SRANDOM_R:
4143 *      This symbol, if defined, indicates that the srandom_r routine
4144 *      is available to srandom re-entrantly.
4145 */
4146/* SRANDOM_R_PROTO:
4147 *      This symbol encodes the prototype of srandom_r.
4148 *      It is zero if d_srandom_r is undef, and one of the
4149 *      REENTRANT_PROTO_T_ABC macros of reentr.h if d_srandom_r
4150 *      is defined.
4151 */
4152#$d_srandom_r HAS_SRANDOM_R        /**/
4153#define SRANDOM_R_PROTO $srandom_r_proto           /**/
4154
4155/* HAS_STRERROR_R:
4156 *      This symbol, if defined, indicates that the strerror_r routine
4157 *      is available to strerror re-entrantly.
4158 */
4159/* STRERROR_R_PROTO:
4160 *      This symbol encodes the prototype of strerror_r.
4161 *      It is zero if d_strerror_r is undef, and one of the
4162 *      REENTRANT_PROTO_T_ABC macros of reentr.h if d_strerror_r
4163 *      is defined.
4164 */
4165#$d_strerror_r HAS_STRERROR_R      /**/
4166#define STRERROR_R_PROTO $strerror_r_proto         /**/
4167
4168/* HAS_TMPNAM_R:
4169 *      This symbol, if defined, indicates that the tmpnam_r routine
4170 *      is available to tmpnam re-entrantly.
4171 */
4172/* TMPNAM_R_PROTO:
4173 *      This symbol encodes the prototype of tmpnam_r.
4174 *      It is zero if d_tmpnam_r is undef, and one of the
4175 *      REENTRANT_PROTO_T_ABC macros of reentr.h if d_tmpnam_r
4176 *      is defined.
4177 */
4178#$d_tmpnam_r HAS_TMPNAM_R          /**/
4179#define TMPNAM_R_PROTO $tmpnam_r_proto     /**/
4180
4181/* HAS_TTYNAME_R:
4182 *      This symbol, if defined, indicates that the ttyname_r routine
4183 *      is available to ttyname re-entrantly.
4184 */
4185/* TTYNAME_R_PROTO:
4186 *      This symbol encodes the prototype of ttyname_r.
4187 *      It is zero if d_ttyname_r is undef, and one of the
4188 *      REENTRANT_PROTO_T_ABC macros of reentr.h if d_ttyname_r
4189 *      is defined.
4190 */
4191#$d_ttyname_r HAS_TTYNAME_R        /**/
4192#define TTYNAME_R_PROTO $ttyname_r_proto           /**/
4193
4194/* I_MACH_CTHREADS:
4195 *     This symbol, if defined, indicates to the C program that it should
4196 *     include <mach/cthreads.h>.
4197 */
4198#$i_machcthr   I_MACH_CTHREADS  /**/
4199
4200/* I_PTHREAD:
4201 *     This symbol, if defined, indicates to the C program that it should
4202 *     include <pthread.h>.
4203 */
4204#$i_pthread   I_PTHREAD /**/
4205
4206/* USE_ITHREADS:
4207 *      This symbol, if defined, indicates that Perl should be built to
4208 *      use the interpreter-based threading implementation.
4209 */
4210/* USE_5005THREADS:
4211 *      This symbol, if defined, indicates that Perl should be built to
4212 *      use the 5.005-based threading implementation.
4213 */
4214/* OLD_PTHREADS_API:
4215 *      This symbol, if defined, indicates that Perl should
4216 *      be built to use the old draft POSIX threads API.
4217 */
4218/* USE_REENTRANT_API:
4219 *      This symbol, if defined, indicates that Perl should
4220 *      try to use the various _r versions of library functions.
4221 *      This is extremely experimental.
4222 */
4223#$use5005threads        USE_5005THREADS         /**/
4224#$useithreads   USE_ITHREADS            /**/
4225#if defined(USE_5005THREADS) && !defined(USE_ITHREADS)
4226#define         USE_THREADS             /* until src is revised*/
4227#endif
4228#$d_oldpthreads OLD_PTHREADS_API                /**/
4229#$usereentrant  USE_REENTRANT_API       /**/
4230
4231/* HAS_TIME:
4232 *      This symbol, if defined, indicates that the time() routine exists.
4233 */
4234/* Time_t:
4235 *      This symbol holds the type returned by time(). It can be long,
4236 *      or time_t on BSD sites (in which case <sys/types.h> should be
4237 *      included).
4238 */
4239#$d_time HAS_TIME               /**/
4240#define Time_t $timetype                /* Time type */
4241
4242/* HAS_TIMES:
4243 *      This symbol, if defined, indicates that the times() routine exists.
4244 *      Note that this became obsolete on some systems (SUNOS), which now
4245 * use getrusage(). It may be necessary to include <sys/times.h>.
4246 */
4247#$d_times HAS_TIMES             /**/
4248
4249/* Fpos_t:
4250 *      This symbol holds the type used to declare file positions in libc.
4251 *      It can be fpos_t, long, uint, etc... It may be necessary to include
4252 *      <sys/types.h> to get any typedef'ed information.
4253 */
4254#define Fpos_t $fpostype                /* File position type */
4255
4256/* Gid_t_f:
4257 *      This symbol defines the format string used for printing a Gid_t.
4258 */
4259#define Gid_t_f         $gidformat              /**/
4260
4261/* Gid_t_sign:
4262 *      This symbol holds the signedess of a Gid_t.
4263 *      1 for unsigned, -1 for signed.
4264 */
4265#define Gid_t_sign      $gidsign                /* GID sign */
4266
4267/* Gid_t_size:
4268 *      This symbol holds the size of a Gid_t in bytes.
4269 */
4270#define Gid_t_size $gidsize             /* GID size */
4271
4272/* Gid_t:
4273 *      This symbol holds the return type of getgid() and the type of
4274 *      argument to setrgid() and related functions.  Typically,
4275 *      it is the type of group ids in the kernel. It can be int, ushort,
4276 *      gid_t, etc... It may be necessary to include <sys/types.h> to get
4277 *      any typedef'ed information.
4278 */
4279#define Gid_t $gidtype          /* Type for getgid(), etc... */
4280
4281/* Off_t:
4282 *      This symbol holds the type used to declare offsets in the kernel.
4283 *      It can be int, long, off_t, etc... It may be necessary to include
4284 *      <sys/types.h> to get any typedef'ed information.
4285 */
4286/* LSEEKSIZE:
4287 *      This symbol holds the number of bytes used by the Off_t.
4288 */
4289/* Off_t_size:
4290 *      This symbol holds the number of bytes used by the Off_t.
4291 */
4292#define Off_t $lseektype                /* <offset> type */
4293#define LSEEKSIZE $lseeksize            /* <offset> size */
4294#define Off_t_size $lseeksize   /* <offset> size */
4295
4296/* Mode_t:
4297 *      This symbol holds the type used to declare file modes
4298 *      for systems calls.  It is usually mode_t, but may be
4299 *      int or unsigned short.  It may be necessary to include <sys/types.h>
4300 *      to get any typedef'ed information.
4301 */
4302#define Mode_t $modetype         /* file mode parameter for system calls */
4303
4304/* Pid_t:
4305 *      This symbol holds the type used to declare process ids in the kernel.
4306 *      It can be int, uint, pid_t, etc... It may be necessary to include
4307 *      <sys/types.h> to get any typedef'ed information.
4308 */
4309#define Pid_t $pidtype          /* PID type */
4310
4311/* Size_t_size:
4312 *      This symbol holds the size of a Size_t in bytes.
4313 */
4314#define Size_t_size $sizesize           /* */
4315
4316/* Size_t:
4317 *      This symbol holds the type used to declare length parameters
4318 *      for string functions.  It is usually size_t, but may be
4319 *      unsigned long, int, etc.  It may be necessary to include
4320 *      <sys/types.h> to get any typedef'ed information.
4321 */
4322#define Size_t $sizetype         /* length paramater for string functions */
4323
4324/* Uid_t_f:
4325 *      This symbol defines the format string used for printing a Uid_t.
4326 */
4327#define Uid_t_f         $uidformat              /**/
4328
4329/* Uid_t_sign:
4330 *      This symbol holds the signedess of a Uid_t.
4331 *      1 for unsigned, -1 for signed.
4332 */
4333#define Uid_t_sign      $uidsign                /* UID sign */
4334
4335/* Uid_t_size:
4336 *      This symbol holds the size of a Uid_t in bytes.
4337 */
4338#define Uid_t_size $uidsize             /* UID size */
4339
4340/* Uid_t:
4341 *      This symbol holds the type used to declare user ids in the kernel.
4342 *      It can be int, ushort, uid_t, etc... It may be necessary to include
4343 *      <sys/types.h> to get any typedef'ed information.
4344 */
4345#define Uid_t $uidtype          /* UID type */
4346
4347#endif
4348!GROK!THIS!
Note: See TracBrowser for help on using the repository browser.