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