This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Since strlcat/strlcpy are not argument/return value compatible
[perl5.git] / Porting / config_H
CommitLineData
85e6fe83
LW
1/*
2 * This file was produced by running the config_h.SH script, which
8d063cd8
LW
3 * gets its values from config.sh, which is generally produced by
4 * running Configure.
5 *
6 * Feel free to modify any of this as the need arises. Note, however,
1aef975c
AD
7 * that running config_h.SH again will wipe out any changes you've made.
8 * For a more permanent change edit config.sh and rerun config_h.SH.
85e6fe83 9 *
dfe9444c 10 * $Id: Config_h.U,v 3.0.1.5 1997/02/28 14:57:43 ram Exp $
8d063cd8 11 */
a687059c 12
dfe9444c
AD
13/*
14 * Package name : perl5
983dbef6 15 * Source directory : .
60a7d337
RGS
16 * Configuration time: Tue Feb 17 15:43:05 CET 2004
17 * Configured by : rafael
18 * Target system : linux dat 2.4.20 #1 sun dec 1 21:25:14 cet 2002 i686 unknown
68decaef 19 */
68decaef 20
85e6fe83
LW
21#ifndef _config_h_
22#define _config_h_
fe14fcc3 23
dfe9444c
AD
24/* LOC_SED:
25 * This symbol holds the complete pathname to the sed program.
774d564b 26 */
60a7d337 27#define LOC_SED "/bin/sed" /**/
774d564b 28
a0d0e21e
LW
29/* HAS_ALARM:
30 * This symbol, if defined, indicates that the alarm routine is
31 * available.
32 */
33#define HAS_ALARM /**/
a687059c 34
85e6fe83
LW
35/* HAS_BCMP:
36 * This symbol is defined if the bcmp() routine is available to
37 * compare blocks of memory.
a687059c 38 */
9003a523 39#define HAS_BCMP /**/
a687059c 40
85e6fe83
LW
41/* HAS_BCOPY:
42 * This symbol is defined if the bcopy() routine is available to
43 * copy blocks of memory.
a687059c 44 */
9003a523 45#define HAS_BCOPY /**/
fe14fcc3 46
85e6fe83
LW
47/* HAS_BZERO:
48 * This symbol is defined if the bzero() routine is available to
49 * set a memory block to 0.
fe14fcc3 50 */
9003a523 51#define HAS_BZERO /**/
8d063cd8 52
a0d0e21e
LW
53/* HAS_CHOWN:
54 * This symbol, if defined, indicates that the chown routine is
55 * available.
56 */
57#define HAS_CHOWN /**/
58
59/* HAS_CHROOT:
60 * This symbol, if defined, indicates that the chroot routine is
61 * available.
62 */
63#define HAS_CHROOT /**/
8d063cd8 64
85e6fe83 65/* HAS_CHSIZE:
fe14fcc3
LW
66 * This symbol, if defined, indicates that the chsize routine is available
67 * to truncate files. You might need a -lx to get this routine.
68 */
20e68413 69/*#define HAS_CHSIZE / **/
ecfc5424 70
85e6fe83
LW
71/* HASCONST:
72 * This symbol, if defined, indicates that this C compiler knows about
73 * the const type. There is no need to actually test for that symbol
74 * within your programs. The mere use of the "const" keyword will
75 * trigger the necessary tests.
76 */
4633a7c4 77#define HASCONST /**/
85e6fe83
LW
78#ifndef HASCONST
79#define const
80#endif
fe14fcc3 81
a0d0e21e
LW
82/* HAS_CUSERID:
83 * This symbol, if defined, indicates that the cuserid routine is
84 * available to get character login names.
a687059c 85 */
a0d0e21e
LW
86#define HAS_CUSERID /**/
87
88/* HAS_DBL_DIG:
89 * This symbol, if defined, indicates that this system's <float.h>
90 * or <limits.h> defines the symbol DBL_DIG, which is the number
91 * of significant digits in a double precision number. If this
92 * symbol is not defined, a guess of 15 is usually pretty good.
93 */
94#define HAS_DBL_DIG /* */
95
96/* HAS_DIFFTIME:
97 * This symbol, if defined, indicates that the difftime routine is
98 * available.
99 */
100#define HAS_DIFFTIME /**/
a687059c 101
ecfc5424
AD
102/* HAS_DLERROR:
103 * This symbol, if defined, indicates that the dlerror routine is
104 * available to return a string describing the last error that
105 * occurred from a call to dlopen(), dlclose() or dlsym().
106 */
4633a7c4 107#define HAS_DLERROR /**/
ecfc5424 108
85e6fe83
LW
109/* HAS_DUP2:
110 * This symbol, if defined, indicates that the dup2 routine is
111 * available to duplicate file descriptors.
a687059c 112 */
85e6fe83 113#define HAS_DUP2 /**/
a687059c 114
85e6fe83 115/* HAS_FCHMOD:
a687059c
LW
116 * This symbol, if defined, indicates that the fchmod routine is available
117 * to change mode of opened files. If unavailable, use chmod().
118 */
4633a7c4 119#define HAS_FCHMOD /**/
a687059c 120
85e6fe83 121/* HAS_FCHOWN:
a687059c
LW
122 * This symbol, if defined, indicates that the fchown routine is available
123 * to change ownership of opened files. If unavailable, use chown().
124 */
4633a7c4 125#define HAS_FCHOWN /**/
a687059c 126
85e6fe83 127/* HAS_FCNTL:
fe14fcc3
LW
128 * This symbol, if defined, indicates to the C program that
129 * the fcntl() function exists.
a687059c 130 */
85e6fe83 131#define HAS_FCNTL /**/
a687059c 132
a0d0e21e
LW
133/* HAS_FGETPOS:
134 * This symbol, if defined, indicates that the fgetpos routine is
135 * available to get the file position indicator, similar to ftell().
136 */
4633a7c4 137#define HAS_FGETPOS /**/
a0d0e21e 138
85e6fe83
LW
139/* HAS_FLOCK:
140 * This symbol, if defined, indicates that the flock routine is
a687059c
LW
141 * available to do file locking.
142 */
88fdc172 143#define HAS_FLOCK /**/
a0d0e21e
LW
144
145/* HAS_FORK:
146 * This symbol, if defined, indicates that the fork routine is
147 * available.
148 */
149#define HAS_FORK /**/
150
151/* HAS_FSETPOS:
152 * This symbol, if defined, indicates that the fsetpos routine is
153 * available to set the file position indicator, similar to fseek().
154 */
4633a7c4 155#define HAS_FSETPOS /**/
ecfc5424 156
5f05dabc
PP
157/* HAS_GETTIMEOFDAY:
158 * This symbol, if defined, indicates that the gettimeofday() system
159 * call is available for a sub-second accuracy clock. Usually, the file
160 * <sys/resource.h> needs to be included (see I_SYS_RESOURCE).
161 * The type "Timeval" should be used to refer to "struct timeval".
162 */
dfe9444c 163#define HAS_GETTIMEOFDAY /**/
5f05dabc
PP
164#ifdef HAS_GETTIMEOFDAY
165#define Timeval struct timeval /* Structure used by gettimeofday() */
166#endif
167
85e6fe83 168/* HAS_GETGROUPS:
a687059c
LW
169 * This symbol, if defined, indicates that the getgroups() routine is
170 * available to get the list of process groups. If unavailable, multiple
171 * groups are probably not supported.
172 */
85e6fe83 173#define HAS_GETGROUPS /**/
a687059c 174
a0d0e21e
LW
175/* HAS_GETLOGIN:
176 * This symbol, if defined, indicates that the getlogin routine is
177 * available to get the login name.
178 */
179#define HAS_GETLOGIN /**/
180
dfe9444c
AD
181/* HAS_GETPGID:
182 * This symbol, if defined, indicates to the C program that
183 * the getpgid(pid) function is available to get the
184 * process group id.
185 */
186#define HAS_GETPGID /**/
187
85e6fe83 188/* HAS_GETPGRP2:
fe14fcc3
LW
189 * This symbol, if defined, indicates that the getpgrp2() (as in DG/UX)
190 * routine is available to get the current process group.
191 */
88fdc172 192/*#define HAS_GETPGRP2 / **/
a687059c 193
a0d0e21e
LW
194/* HAS_GETPPID:
195 * This symbol, if defined, indicates that the getppid routine is
196 * available to get the parent process ID.
197 */
198#define HAS_GETPPID /**/
199
85e6fe83
LW
200/* HAS_GETPRIORITY:
201 * This symbol, if defined, indicates that the getpriority routine is
a687059c
LW
202 * available to get a process's priority.
203 */
9003a523 204#define HAS_GETPRIORITY /**/
a0d0e21e 205
dfe9444c
AD
206/* HAS_INET_ATON:
207 * This symbol, if defined, indicates to the C program that the
208 * inet_aton() function is available to parse IP address "dotted-quad"
209 * strings.
ecfc5424 210 */
921b2963 211#define HAS_INET_ATON /**/
ecfc5424 212
85e6fe83 213/* HAS_KILLPG:
a687059c
LW
214 * This symbol, if defined, indicates that the killpg routine is available
215 * to kill process groups. If unavailable, you probably should use kill
216 * with a negative process number.
217 */
9003a523 218#define HAS_KILLPG /**/
a687059c 219
85e6fe83
LW
220/* HAS_LINK:
221 * This symbol, if defined, indicates that the link routine is
222 * available to create hard links.
fe14fcc3 223 */
85e6fe83 224#define HAS_LINK /**/
fe14fcc3 225
ecfc5424
AD
226/* HAS_LOCALECONV:
227 * This symbol, if defined, indicates that the localeconv routine is
228 * available for numeric and monetary formatting conventions.
229 */
230#define HAS_LOCALECONV /**/
231
a0d0e21e
LW
232/* HAS_LOCKF:
233 * This symbol, if defined, indicates that the lockf routine is
234 * available to do file locking.
235 */
236#define HAS_LOCKF /**/
237
85e6fe83
LW
238/* HAS_LSTAT:
239 * This symbol, if defined, indicates that the lstat routine is
240 * available to do file stats on symbolic links.
a687059c 241 */
85e6fe83 242#define HAS_LSTAT /**/
a687059c 243
a0d0e21e
LW
244/* HAS_MBLEN:
245 * This symbol, if defined, indicates that the mblen routine is available
246 * to find the number of bytes in a multibye character.
247 */
4633a7c4 248#define HAS_MBLEN /**/
a0d0e21e
LW
249
250/* HAS_MBSTOWCS:
251 * This symbol, if defined, indicates that the mbstowcs routine is
252 * available to covert a multibyte string into a wide character string.
253 */
4633a7c4 254#define HAS_MBSTOWCS /**/
a0d0e21e
LW
255
256/* HAS_MBTOWC:
257 * This symbol, if defined, indicates that the mbtowc routine is available
258 * to covert a multibyte to a wide character.
259 */
4633a7c4 260#define HAS_MBTOWC /**/
a0d0e21e 261
85e6fe83
LW
262/* HAS_MEMCMP:
263 * This symbol, if defined, indicates that the memcmp routine is available
264 * to compare blocks of memory.
a687059c 265 */
85e6fe83
LW
266#define HAS_MEMCMP /**/
267
268/* HAS_MEMCPY:
68decaef 269 * This symbol, if defined, indicates that the memcpy routine is available
85e6fe83 270 * to copy blocks of memory.
68decaef 271 */
85e6fe83 272#define HAS_MEMCPY /**/
68decaef 273
85e6fe83 274/* HAS_MEMMOVE:
68decaef 275 * This symbol, if defined, indicates that the memmove routine is available
85e6fe83
LW
276 * to copy potentially overlapping blocks of memory. This should be used
277 * only when HAS_SAFE_BCOPY is not defined. If neither is there, roll your
278 * own version.
68decaef 279 */
4633a7c4 280#define HAS_MEMMOVE /**/
68decaef 281
85e6fe83 282/* HAS_MEMSET:
68decaef 283 * This symbol, if defined, indicates that the memset routine is available
85e6fe83 284 * to set blocks of memory.
68decaef 285 */
85e6fe83 286#define HAS_MEMSET /**/
a687059c 287
85e6fe83 288/* HAS_MKDIR:
a687059c
LW
289 * This symbol, if defined, indicates that the mkdir routine is available
290 * to create directories. Otherwise you should fork off a new process to
291 * exec /bin/mkdir.
292 */
85e6fe83 293#define HAS_MKDIR /**/
fe14fcc3 294
ecfc5424
AD
295/* HAS_MKFIFO:
296 * This symbol, if defined, indicates that the mkfifo routine is
297 * available to create FIFOs. Otherwise, mknod should be able to
298 * do it for you. However, if mkfifo is there, mknod might require
299 * super-user privileges which mkfifo will not.
300 */
301#define HAS_MKFIFO /**/
302
a0d0e21e
LW
303/* HAS_MKTIME:
304 * This symbol, if defined, indicates that the mktime routine is
305 * available.
306 */
307#define HAS_MKTIME /**/
308
fe749a9f
JH
309/* HAS_MSYNC:
310 * This symbol, if defined, indicates that the msync system call is
311 * available to synchronize a mapped file.
312 */
313#define HAS_MSYNC /**/
314
315/* HAS_MUNMAP:
316 * This symbol, if defined, indicates that the munmap system call is
317 * available to unmap a region, usually mapped by mmap().
318 */
319#define HAS_MUNMAP /**/
320
a0d0e21e
LW
321/* HAS_NICE:
322 * This symbol, if defined, indicates that the nice routine is
323 * available.
fe14fcc3 324 */
a0d0e21e 325#define HAS_NICE /**/
fe14fcc3 326
ecfc5424
AD
327/* HAS_PATHCONF:
328 * This symbol, if defined, indicates that pathconf() is available
329 * to determine file-system related limits and options associated
330 * with a given filename.
331 */
332/* HAS_FPATHCONF:
333 * This symbol, if defined, indicates that pathconf() is available
334 * to determine file-system related limits and options associated
335 * with a given open file descriptor.
336 */
337#define HAS_PATHCONF /**/
338#define HAS_FPATHCONF /**/
339
a0d0e21e
LW
340/* HAS_PAUSE:
341 * This symbol, if defined, indicates that the pause routine is
342 * available to suspend a process until a signal is received.
a687059c 343 */
a0d0e21e 344#define HAS_PAUSE /**/
fe14fcc3 345
a0d0e21e
LW
346/* HAS_PIPE:
347 * This symbol, if defined, indicates that the pipe routine is
348 * available to create an inter-process channel.
fe14fcc3 349 */
a0d0e21e
LW
350#define HAS_PIPE /**/
351
4633a7c4
LW
352/* HAS_POLL:
353 * This symbol, if defined, indicates that the poll routine is
dfe9444c
AD
354 * available to poll active file descriptors. You may safely
355 * include <poll.h> when this symbol is defined.
4633a7c4
LW
356 */
357#define HAS_POLL /**/
358
a0d0e21e
LW
359/* HAS_READDIR:
360 * This symbol, if defined, indicates that the readdir routine is
361 * available to read directory entries. You may have to include
362 * <dirent.h>. See I_DIRENT.
363 */
364#define HAS_READDIR /**/
365
366/* HAS_SEEKDIR:
367 * This symbol, if defined, indicates that the seekdir routine is
368 * available. You may have to include <dirent.h>. See I_DIRENT.
369 */
370#define HAS_SEEKDIR /**/
371
372/* HAS_TELLDIR:
373 * This symbol, if defined, indicates that the telldir routine is
374 * available. You may have to include <dirent.h>. See I_DIRENT.
375 */
376#define HAS_TELLDIR /**/
377
378/* HAS_REWINDDIR:
379 * This symbol, if defined, indicates that the rewinddir routine is
380 * available. You may have to include <dirent.h>. See I_DIRENT.
381 */
382#define HAS_REWINDDIR /**/
383
384/* HAS_READLINK:
385 * This symbol, if defined, indicates that the readlink routine is
386 * available to read the value of a symbolic link.
387 */
388#define HAS_READLINK /**/
a687059c 389
85e6fe83 390/* HAS_RENAME:
a687059c
LW
391 * This symbol, if defined, indicates that the rename routine is available
392 * to rename files. Otherwise you should do the unlink(), link(), unlink()
393 * trick.
394 */
85e6fe83 395#define HAS_RENAME /**/
a687059c 396
85e6fe83
LW
397/* HAS_RMDIR:
398 * This symbol, if defined, indicates that the rmdir routine is
399 * available to remove directories. Otherwise you should fork off a
400 * new process to exec /bin/rmdir.
68decaef 401 */
85e6fe83 402#define HAS_RMDIR /**/
68decaef 403
85e6fe83
LW
404/* HAS_SELECT:
405 * This symbol, if defined, indicates that the select routine is
406 * available to select active file descriptors. If the timeout field
407 * is used, <sys/time.h> may need to be included.
68decaef 408 */
85e6fe83 409#define HAS_SELECT /**/
68decaef 410
85e6fe83 411/* HAS_SETEGID:
a687059c
LW
412 * This symbol, if defined, indicates that the setegid routine is available
413 * to change the effective gid of the current program.
414 */
88fdc172 415#define HAS_SETEGID /**/
a687059c 416
85e6fe83 417/* HAS_SETEUID:
a687059c
LW
418 * This symbol, if defined, indicates that the seteuid routine is available
419 * to change the effective uid of the current program.
420 */
88fdc172 421#define HAS_SETEUID /**/
85e6fe83 422
a0d0e21e
LW
423/* HAS_SETLINEBUF:
424 * This symbol, if defined, indicates that the setlinebuf routine is
425 * available to change stderr or stdout from block-buffered or unbuffered
426 * to a line-buffered mode.
427 */
88fdc172 428#define HAS_SETLINEBUF /**/
a0d0e21e
LW
429
430/* HAS_SETLOCALE:
431 * This symbol, if defined, indicates that the setlocale routine is
432 * available to handle locale-specific ctype implementations.
433 */
434#define HAS_SETLOCALE /**/
435
dfe9444c
AD
436/* HAS_SETPGID:
437 * This symbol, if defined, indicates that the setpgid(pid, gpid)
438 * routine is available to set process group ID.
439 */
440#define HAS_SETPGID /**/
441
85e6fe83 442/* HAS_SETPGRP2:
fe14fcc3
LW
443 * This symbol, if defined, indicates that the setpgrp2() (as in DG/UX)
444 * routine is available to set the current process group.
445 */
88fdc172 446/*#define HAS_SETPGRP2 / **/
fe14fcc3 447
85e6fe83
LW
448/* HAS_SETPRIORITY:
449 * This symbol, if defined, indicates that the setpriority routine is
a687059c
LW
450 * available to set a process's priority.
451 */
9003a523 452#define HAS_SETPRIORITY /**/
a687059c 453
85e6fe83 454/* HAS_SETREGID:
fe14fcc3 455 * This symbol, if defined, indicates that the setregid routine is
85e6fe83
LW
456 * available to change the real and effective gid of the current
457 * process.
a687059c 458 */
85e6fe83 459/* HAS_SETRESGID:
fe14fcc3
LW
460 * This symbol, if defined, indicates that the setresgid routine is
461 * available to change the real, effective and saved gid of the current
85e6fe83 462 * process.
fe14fcc3 463 */
9003a523 464#define HAS_SETREGID /**/
60a7d337 465#define HAS_SETRESGID /**/
a687059c 466
85e6fe83 467/* HAS_SETREUID:
fe14fcc3 468 * This symbol, if defined, indicates that the setreuid routine is
85e6fe83
LW
469 * available to change the real and effective uid of the current
470 * process.
fe14fcc3 471 */
85e6fe83 472/* HAS_SETRESUID:
fe14fcc3
LW
473 * This symbol, if defined, indicates that the setresuid routine is
474 * available to change the real, effective and saved uid of the current
85e6fe83 475 * process.
a687059c 476 */
9003a523 477#define HAS_SETREUID /**/
60a7d337 478#define HAS_SETRESUID /**/
a687059c 479
85e6fe83 480/* HAS_SETRGID:
a687059c
LW
481 * This symbol, if defined, indicates that the setrgid routine is available
482 * to change the real gid of the current program.
483 */
60a7d337 484/*#define HAS_SETRGID / **/
a687059c 485
85e6fe83 486/* HAS_SETRUID:
a687059c
LW
487 * This symbol, if defined, indicates that the setruid routine is available
488 * to change the real uid of the current program.
489 */
60a7d337 490/*#define HAS_SETRUID / **/
fe14fcc3 491
85e6fe83
LW
492/* HAS_SETSID:
493 * This symbol, if defined, indicates that the setsid routine is
494 * available to set the process group ID.
fe14fcc3 495 */
85e6fe83 496#define HAS_SETSID /**/
fe14fcc3 497
a0d0e21e
LW
498/* HAS_STRCHR:
499 * This symbol is defined to indicate that the strchr()/strrchr()
500 * functions are available for string searching. If not, try the
501 * index()/rindex() pair.
502 */
503/* HAS_INDEX:
504 * This symbol is defined to indicate that the index()/rindex()
505 * functions are available for string searching.
506 */
507#define HAS_STRCHR /**/
20e68413 508/*#define HAS_INDEX / **/
a0d0e21e
LW
509
510/* HAS_STRCOLL:
511 * This symbol, if defined, indicates that the strcoll routine is
512 * available to compare strings using collating information.
513 */
514#define HAS_STRCOLL /**/
515
85e6fe83 516/* USE_STRUCT_COPY:
8d063cd8
LW
517 * This symbol, if defined, indicates that this C compiler knows how
518 * to copy structures. If undefined, you'll need to use a block copy
519 * routine of some sort instead.
520 */
85e6fe83 521#define USE_STRUCT_COPY /**/
fe14fcc3 522
55497cff
PP
523/* HAS_STRTOD:
524 * This symbol, if defined, indicates that the strtod routine is
774d564b 525 * available to provide better numeric string conversion than atof().
55497cff
PP
526 */
527#define HAS_STRTOD /**/
528
529/* HAS_STRTOL:
774d564b
PP
530 * This symbol, if defined, indicates that the strtol routine is available
531 * to provide better numeric string conversion than atoi() and friends.
55497cff
PP
532 */
533#define HAS_STRTOL /**/
534
a0d0e21e
LW
535/* HAS_STRXFRM:
536 * This symbol, if defined, indicates that the strxfrm() routine is
537 * available to transform strings.
538 */
539#define HAS_STRXFRM /**/
540
85e6fe83 541/* HAS_SYMLINK:
a687059c
LW
542 * This symbol, if defined, indicates that the symlink routine is available
543 * to create symbolic links.
544 */
85e6fe83 545#define HAS_SYMLINK /**/
a687059c 546
85e6fe83
LW
547/* HAS_SYSCALL:
548 * This symbol, if defined, indicates that the syscall routine is
549 * available to call arbitrary system calls. If undefined, that's tough.
a687059c 550 */
85e6fe83 551#define HAS_SYSCALL /**/
a687059c 552
ecfc5424
AD
553/* HAS_SYSCONF:
554 * This symbol, if defined, indicates that sysconf() is available
555 * to determine system related limits and options.
556 */
557#define HAS_SYSCONF /**/
558
85e6fe83
LW
559/* HAS_SYSTEM:
560 * This symbol, if defined, indicates that the system routine is
561 * available to issue a shell command.
68decaef 562 */
85e6fe83 563#define HAS_SYSTEM /**/
68decaef 564
a0d0e21e
LW
565/* HAS_TCGETPGRP:
566 * This symbol, if defined, indicates that the tcgetpgrp routine is
567 * available to get foreground process group ID.
568 */
569#define HAS_TCGETPGRP /**/
570
571/* HAS_TCSETPGRP:
572 * This symbol, if defined, indicates that the tcsetpgrp routine is
573 * available to set foreground process group ID.
85e6fe83 574 */
a0d0e21e 575#define HAS_TCSETPGRP /**/
85e6fe83 576
85e6fe83 577/* HAS_TRUNCATE:
fe14fcc3
LW
578 * This symbol, if defined, indicates that the truncate routine is
579 * available to truncate files.
a687059c 580 */
4633a7c4 581#define HAS_TRUNCATE /**/
a0d0e21e
LW
582
583/* HAS_TZNAME:
584 * This symbol, if defined, indicates that the tzname[] array is
585 * available to access timezone names.
586 */
587#define HAS_TZNAME /**/
588
589/* HAS_UMASK:
590 * This symbol, if defined, indicates that the umask routine is
591 * available to set and get the value of the file creation mask.
592 */
593#define HAS_UMASK /**/
a687059c 594
4e0554ec
JH
595/* HAS_USLEEP:
596 * This symbol, if defined, indicates that the usleep routine is
597 * available to let the process sleep on a sub-second accuracy.
598 */
599#define HAS_USLEEP /**/
600
85e6fe83 601/* HASVOLATILE:
fe14fcc3
LW
602 * This symbol, if defined, indicates that this C compiler knows about
603 * the volatile declaration.
604 */
4633a7c4 605#define HASVOLATILE /**/
85e6fe83
LW
606#ifndef HASVOLATILE
607#define volatile
608#endif
fe14fcc3 609
85e6fe83 610/* HAS_WAIT4:
fe14fcc3
LW
611 * This symbol, if defined, indicates that wait4() exists.
612 */
88fdc172 613#define HAS_WAIT4 /**/
fe14fcc3 614
85e6fe83
LW
615/* HAS_WAITPID:
616 * This symbol, if defined, indicates that the waitpid routine is
617 * available to wait for child process.
fe14fcc3 618 */
85e6fe83 619#define HAS_WAITPID /**/
fe14fcc3 620
a0d0e21e
LW
621/* HAS_WCSTOMBS:
622 * This symbol, if defined, indicates that the wcstombs routine is
623 * available to convert wide character strings to multibyte strings.
624 */
4633a7c4 625#define HAS_WCSTOMBS /**/
a0d0e21e
LW
626
627/* HAS_WCTOMB:
628 * This symbol, if defined, indicates that the wctomb routine is available
629 * to covert a wide character to a multibyte.
630 */
4633a7c4 631#define HAS_WCTOMB /**/
a0d0e21e 632
93341792 633/* I_ARPA_INET:
327c3667
GS
634 * This symbol, if defined, indicates to the C program that it should
635 * include <arpa/inet.h> to get inet_addr and friends declarations.
93341792 636 */
11dc3f68 637#define I_ARPA_INET /**/
93341792 638
dfe9444c
AD
639/* I_DBM:
640 * This symbol, if defined, indicates that <dbm.h> exists and should
641 * be included.
232e078e 642 */
dfe9444c
AD
643/* I_RPCSVC_DBM:
644 * This symbol, if defined, indicates that <rpcsvc/dbm.h> exists and
645 * should be included.
232e078e 646 */
60a7d337 647/*#define I_DBM / **/
921b2963 648/*#define I_RPCSVC_DBM / **/
232e078e 649
85e6fe83
LW
650/* I_DIRENT:
651 * This symbol, if defined, indicates to the C program that it should
652 * include <dirent.h>. Using this symbol also triggers the definition
653 * of the Direntry_t define which ends up being 'struct dirent' or
654 * 'struct direct' depending on the availability of <dirent.h>.
655 */
656/* DIRNAMLEN:
657 * This symbol, if defined, indicates to the C program that the length
658 * of directory entry names is provided by a d_namlen field. Otherwise
659 * you need to do strlen() on the d_name field.
2b317908 660 */
a0d0e21e
LW
661/* Direntry_t:
662 * This symbol is set to 'struct direct' or 'struct dirent' depending on
663 * whether dirent is available or not. You should use this pseudo type to
664 * portably declare your directory entries.
665 */
85e6fe83 666#define I_DIRENT /**/
60a7d337 667/*#define DIRNAMLEN / **/
85e6fe83 668#define Direntry_t struct dirent
a0d0e21e
LW
669
670/* I_DLFCN:
671 * This symbol, if defined, indicates that <dlfcn.h> exists and should
672 * be included.
673 */
4633a7c4 674#define I_DLFCN /**/
a687059c 675
85e6fe83 676/* I_FCNTL:
fe14fcc3 677 * This manifest constant tells the C program to include <fcntl.h>.
a687059c 678 */
921b2963 679/*#define I_FCNTL / **/
a687059c 680
a0d0e21e
LW
681/* I_FLOAT:
682 * This symbol, if defined, indicates to the C program that it should
683 * include <float.h> to get definition of symbols like DBL_MAX or
684 * DBL_MIN, i.e. machine dependent floating point values.
a687059c 685 */
a0d0e21e 686#define I_FLOAT /**/
a687059c 687
a0d0e21e
LW
688/* I_LIMITS:
689 * This symbol, if defined, indicates to the C program that it should
690 * include <limits.h> to get definition of symbols like WORD_BIT or
691 * LONG_MAX, i.e. machine dependant limitations.
692 */
693#define I_LIMITS /**/
694
dfe9444c
AD
695/* I_LOCALE:
696 * This symbol, if defined, indicates to the C program that it should
697 * include <locale.h>.
698 */
699#define I_LOCALE /**/
700
a0d0e21e
LW
701/* I_MATH:
702 * This symbol, if defined, indicates to the C program that it should
703 * include <math.h>.
704 */
705#define I_MATH /**/
706
707/* I_MEMORY:
708 * This symbol, if defined, indicates to the C program that it should
709 * include <memory.h>.
710 */
20e68413 711/*#define I_MEMORY / **/
a0d0e21e 712
ecfc5424
AD
713/* I_NET_ERRNO:
714 * This symbol, if defined, indicates that <net/errno.h> exists and
715 * should be included.
fe14fcc3 716 */
20e68413 717/*#define I_NET_ERRNO / **/
fe14fcc3 718
85e6fe83 719/* I_NETINET_IN:
a687059c 720 * This symbol, if defined, indicates to the C program that it should
85e6fe83 721 * include <netinet/in.h>. Otherwise, you may try <sys/in.h>.
a687059c 722 */
85e6fe83 723#define I_NETINET_IN /**/
85e6fe83 724
dfe9444c
AD
725/* I_SFIO:
726 * This symbol, if defined, indicates to the C program that it should
727 * include <sfio.h>.
728 */
729/*#define I_SFIO / **/
85e6fe83
LW
730
731/* I_STDDEF:
732 * This symbol, if defined, indicates that <stddef.h> exists and should
733 * be included.
fe14fcc3 734 */
85e6fe83
LW
735#define I_STDDEF /**/
736
a0d0e21e
LW
737/* I_STDLIB:
738 * This symbol, if defined, indicates that <stdlib.h> exists and should
739 * be included.
740 */
741#define I_STDLIB /**/
742
85e6fe83
LW
743/* I_STRING:
744 * This symbol, if defined, indicates to the C program that it should
745 * include <string.h> (USG systems) instead of <strings.h> (BSD systems).
fe14fcc3 746 */
85e6fe83
LW
747#define I_STRING /**/
748
749/* I_SYS_DIR:
750 * This symbol, if defined, indicates to the C program that it should
751 * include <sys/dir.h>.
fe14fcc3 752 */
921b2963 753#define I_SYS_DIR /**/
a687059c 754
85e6fe83
LW
755/* I_SYS_FILE:
756 * This symbol, if defined, indicates to the C program that it should
757 * include <sys/file.h> to get definition of R_OK and friends.
a687059c 758 */
921b2963 759#define I_SYS_FILE /**/
a687059c 760
85e6fe83
LW
761/* I_SYS_IOCTL:
762 * This symbol, if defined, indicates that <sys/ioctl.h> exists and should
763 * be included. Otherwise, include <sgtty.h> or <termio.h>.
a687059c 764 */
49a78c82
JH
765/* I_SYS_SOCKIO:
766 * This symbol, if defined, indicates the <sys/sockio.h> should be included
767 * to get socket ioctl options, like SIOCATMARK.
768 */
85e6fe83 769#define I_SYS_IOCTL /**/
49a78c82 770/*#define I_SYS_SOCKIO / **/
a687059c 771
85e6fe83
LW
772/* I_SYS_NDIR:
773 * This symbol, if defined, indicates to the C program that it should
774 * include <sys/ndir.h>.
fe14fcc3 775 */
20e68413 776/*#define I_SYS_NDIR / **/
85e6fe83 777
a0d0e21e
LW
778/* I_SYS_PARAM:
779 * This symbol, if defined, indicates to the C program that it should
780 * include <sys/param.h>.
781 */
782#define I_SYS_PARAM /**/
783
9003a523
PP
784/* I_SYS_RESOURCE:
785 * This symbol, if defined, indicates to the C program that it should
786 * include <sys/resource.h>.
787 */
788#define I_SYS_RESOURCE /**/
789
85e6fe83
LW
790/* I_SYS_SELECT:
791 * This symbol, if defined, indicates to the C program that it should
792 * include <sys/select.h> in order to get definition of struct timeval.
fe14fcc3 793 */
88fdc172 794#define I_SYS_SELECT /**/
85e6fe83 795
dfe9444c
AD
796/* I_SYS_STAT:
797 * This symbol, if defined, indicates to the C program that it should
798 * include <sys/stat.h>.
799 */
800#define I_SYS_STAT /**/
801
a0d0e21e 802/* I_SYS_TIMES:
85e6fe83 803 * This symbol, if defined, indicates to the C program that it should
a0d0e21e 804 * include <sys/times.h>.
fe14fcc3 805 */
a0d0e21e
LW
806#define I_SYS_TIMES /**/
807
bd89102f
AD
808/* I_SYS_TYPES:
809 * This symbol, if defined, indicates to the C program that it should
810 * include <sys/types.h>.
811 */
812#define I_SYS_TYPES /**/
813
fbfd4aab
PP
814/* I_SYS_UN:
815 * This symbol, if defined, indicates to the C program that it should
816 * include <sys/un.h> to get UNIX domain socket definitions.
817 */
818#define I_SYS_UN /**/
819
9003a523
PP
820/* I_SYS_WAIT:
821 * This symbol, if defined, indicates to the C program that it should
822 * include <sys/wait.h>.
823 */
824#define I_SYS_WAIT /**/
825
a0d0e21e
LW
826/* I_TERMIO:
827 * This symbol, if defined, indicates that the program should include
828 * <termio.h> rather than <sgtty.h>. There are also differences in
829 * the ioctl() calls that depend on the value of this symbol.
830 */
831/* I_TERMIOS:
832 * This symbol, if defined, indicates that the program should include
833 * the POSIX termios.h rather than sgtty.h or termio.h.
834 * There are also differences in the ioctl() calls that depend on the
835 * value of this symbol.
836 */
837/* I_SGTTY:
838 * This symbol, if defined, indicates that the program should include
839 * <sgtty.h> rather than <termio.h>. There are also differences in
840 * the ioctl() calls that depend on the value of this symbol.
841 */
20e68413 842/*#define I_TERMIO / **/
a0d0e21e 843#define I_TERMIOS /**/
20e68413 844/*#define I_SGTTY / **/
a0d0e21e 845
a0d0e21e
LW
846/* I_UNISTD:
847 * This symbol, if defined, indicates to the C program that it should
848 * include <unistd.h>.
849 */
850#define I_UNISTD /**/
851
85e6fe83 852/* I_UTIME:
a687059c 853 * This symbol, if defined, indicates to the C program that it should
85e6fe83 854 * include <utime.h>.
a687059c 855 */
85e6fe83 856#define I_UTIME /**/
a687059c 857
dfe9444c
AD
858/* I_VALUES:
859 * This symbol, if defined, indicates to the C program that it should
860 * include <values.h> to get definition of symbols like MINFLOAT or
861 * MAXLONG, i.e. machine dependant limitations. Probably, you
862 * should use <limits.h> instead, if it is available.
863 */
864#define I_VALUES /**/
865
a0d0e21e
LW
866/* I_VFORK:
867 * This symbol, if defined, indicates to the C program that it should
868 * include vfork.h.
869 */
20e68413 870/*#define I_VFORK / **/
fe14fcc3 871
aaacdc8b
GS
872/* INTSIZE:
873 * This symbol contains the value of sizeof(int) so that the C
874 * preprocessor can make decisions based on it.
875 */
876/* LONGSIZE:
877 * This symbol contains the value of sizeof(long) so that the C
878 * preprocessor can make decisions based on it.
879 */
880/* SHORTSIZE:
881 * This symbol contains the value of sizeof(short) so that the C
882 * preprocessor can make decisions based on it.
de1c2614 883 */
aaacdc8b 884#define INTSIZE 4 /**/
60a7d337 885#define LONGSIZE 4 /**/
aaacdc8b
GS
886#define SHORTSIZE 2 /**/
887
888/* MULTIARCH:
889 * This symbol, if defined, signifies that the build
890 * process will produce some binary files that are going to be
891 * used in a cross-platform environment. This is the case for
892 * example with the NeXT "fat" binaries that contain executables
893 * for several CPUs.
a22e52b9 894 */
aaacdc8b
GS
895/*#define MULTIARCH / **/
896
897/* HAS_QUAD:
898 * This symbol, if defined, tells that there's a 64-bit integer type,
899 * Quad_t, and its unsigned counterpar, Uquad_t. QUADKIND will be one
900 * of QUAD_IS_INT, QUAD_IS_LONG, QUAD_IS_LONG_LONG, or QUAD_IS_INT64_T.
a22e52b9 901 */
de1c2614 902#define HAS_QUAD /**/
e0a10278 903#ifdef HAS_QUAD
60a7d337
RGS
904# define Quad_t long long /**/
905# define Uquad_t unsigned long long /**/
906# define QUADKIND 3 /**/
e0a10278
JH
907# define QUAD_IS_INT 1
908# define QUAD_IS_LONG 2
909# define QUAD_IS_LONG_LONG 3
910# define QUAD_IS_INT64_T 4
911#endif
a22e52b9 912
327c3667
GS
913/* HAS_ACCESSX:
914 * This symbol, if defined, indicates that the accessx routine is
915 * available to do extended access checks.
916 */
11dc3f68 917/*#define HAS_ACCESSX / **/
327c3667
GS
918
919/* HAS_EACCESS:
920 * This symbol, if defined, indicates that the eaccess routine is
921 * available to do extended access checks.
922 */
11dc3f68 923/*#define HAS_EACCESS / **/
327c3667
GS
924
925/* I_SYS_ACCESS:
926 * This symbol, if defined, indicates to the C program that it should
921b2963 927 * include <sys/access.h>.
327c3667 928 */
60a7d337 929/*#define I_SYS_ACCESS / **/
327c3667
GS
930
931/* I_SYS_SECURITY:
932 * This symbol, if defined, indicates to the C program that it should
933 * include <sys/security.h>.
934 */
60a7d337 935/*#define I_SYS_SECURITY / **/
af4c28eb 936
dfe9444c 937/* MEM_ALIGNBYTES:
af4c28eb 938 * This symbol contains the number of bytes required to align a
87b71857
JH
939 * double, or a long double when applicable. Usual values are 2,
940 * 4 and 8. The default is eight, for safety.
5f05dabc 941 */
5440bc8e 942#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH)
cb5953d6 943# define MEM_ALIGNBYTES 8
af4c28eb 944#else
60a7d337 945#define MEM_ALIGNBYTES 4
af4c28eb 946#endif
5f05dabc 947
4633a7c4 948/* BYTEORDER:
9003a523 949 * This symbol holds the hexadecimal constant defined in byteorder,
24412007 950 * in a UV, i.e. 0x1234 or 0x4321 or 0x12345678, etc...
af4c28eb
CS
951 * If the compiler supports cross-compiling or multiple-architecture
952 * binaries (eg. on NeXT systems), use compiler-defined macros to
953 * determine the byte order.
dfe9444c 954 * On NeXT 3.2 (and greater), you can build "Fat" Multiple Architecture
9003a523
PP
955 * Binaries (MAB) on either big endian or little endian machines.
956 * The endian-ness is available at compile-time. This only matters
957 * for perl, where the config.h can be generated and installed on
958 * one system, and used by a different architecture to build an
959 * extension. Older versions of NeXT that might not have
960 * defined either *_ENDIAN__ were all on Motorola 680x0 series,
961 * so the default case (for NeXT) is big endian to catch them.
962 * This might matter for NeXT 3.0.
963 */
5440bc8e 964#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH)
af4c28eb
CS
965# ifdef __LITTLE_ENDIAN__
966# if LONGSIZE == 4
967# define BYTEORDER 0x1234
968# else
969# if LONGSIZE == 8
970# define BYTEORDER 0x12345678
971# endif
972# endif
973# else
974# ifdef __BIG_ENDIAN__
975# if LONGSIZE == 4
976# define BYTEORDER 0x4321
977# else
978# if LONGSIZE == 8
979# define BYTEORDER 0x87654321
980# endif
981# endif
982# endif
983# endif
984# if !defined(BYTEORDER) && (defined(NeXT) || defined(__NeXT__))
985# define BYTEORDER 0x4321
986# endif
987#else
60a7d337 988#define BYTEORDER 0x1234 /* large digits for MSB */
9003a523 989#endif /* NeXT */
4633a7c4 990
dfe9444c
AD
991/* CASTI32:
992 * This symbol is defined if the C compiler can cast negative
993 * or large floating point numbers to 32-bit ints.
1aef975c 994 */
88fdc172 995/*#define CASTI32 / **/
1aef975c 996
dfe9444c
AD
997/* CASTNEGFLOAT:
998 * This symbol is defined if the C compiler can cast negative
999 * numbers to unsigned longs, ints and shorts.
85e6fe83 1000 */
dfe9444c
AD
1001/* CASTFLAGS:
1002 * This symbol contains flags that say what difficulties the compiler
1003 * has casting odd floating values to unsigned long:
1004 * 0 = ok
1005 * 1 = couldn't cast < 0
1006 * 2 = couldn't cast >= 0x80000000
1007 * 4 = couldn't cast in argument expression list
fbfd4aab 1008 */
e5c9fcd0
AD
1009#define CASTNEGFLOAT /**/
1010#define CASTFLAGS 0 /**/
dfe9444c
AD
1011
1012/* VOID_CLOSEDIR:
1013 * This symbol, if defined, indicates that the closedir() routine
1014 * does not return a value.
fbfd4aab 1015 */
dfe9444c 1016/*#define VOID_CLOSEDIR / **/
fbfd4aab 1017
88fdc172
SB
1018/* HAS_FD_SET:
1019 * This symbol, when defined, indicates presence of the fd_set typedef
1020 * in <sys/types.h>
4e0554ec 1021 */
88fdc172 1022#define HAS_FD_SET /**/
4e0554ec 1023
88fdc172
SB
1024/* Gconvert:
1025 * This preprocessor macro is defined to convert a floating point
1026 * number to a string without a trailing decimal point. This
1027 * emulates the behavior of sprintf("%g"), but is sometimes much more
1028 * efficient. If gconvert() is not available, but gcvt() drops the
1029 * trailing decimal point, then gcvt() is used. If all else fails,
1030 * a macro using sprintf("%g") is used. Arguments for the Gconvert
1031 * macro are: value, number of digits, whether trailing zeros should
1032 * be retained, and the output buffer.
1033 * The usual values are:
1034 * d_Gconvert='gconvert((x),(n),(t),(b))'
1035 * d_Gconvert='gcvt((x),(n),(b))'
1036 * d_Gconvert='sprintf((b),"%.*g",(n),(x))'
1037 * The last two assume trailing zeros should not be kept.
10bc17b6 1038 */
60a7d337 1039#define Gconvert(x,n,t,b) gcvt((x),(n),(b))
10bc17b6 1040
88fdc172
SB
1041/* HAS_GETPAGESIZE:
1042 * This symbol, if defined, indicates that the getpagesize system call
1043 * is available to get system page size, which is the granularity of
1044 * many memory management calls.
ff935051 1045 */
88fdc172
SB
1046#define HAS_GETPAGESIZE /**/
1047
1048/* HAS_GNULIBC:
1049 * This symbol, if defined, indicates to the C program that
1050 * the GNU C library is being used. A better check is to use
1051 * the __GLIBC__ and __GLIBC_MINOR__ symbols supplied with glibc.
ff935051 1052 */
60a7d337 1053#define HAS_GNULIBC /**/
88fdc172
SB
1054#if defined(HAS_GNULIBC) && !defined(_GNU_SOURCE)
1055# define _GNU_SOURCE
ff935051 1056#endif
88fdc172
SB
1057/* HAS_ISASCII:
1058 * This manifest constant lets the C program know that isascii
1059 * is available.
1060 */
1061#define HAS_ISASCII /**/
ff935051 1062
88fdc172
SB
1063/* HAS_LCHOWN:
1064 * This symbol, if defined, indicates that the lchown routine is
1065 * available to operate on a symbolic link (instead of following the
1066 * link).
10bc17b6 1067 */
88fdc172
SB
1068#define HAS_LCHOWN /**/
1069
1070/* HAS_OPEN3:
1071 * This manifest constant lets the C program know that the three
1072 * argument form of open(2) is available.
10bc17b6 1073 */
88fdc172 1074#define HAS_OPEN3 /**/
10bc17b6 1075
88fdc172
SB
1076/* HAS_SAFE_BCOPY:
1077 * This symbol, if defined, indicates that the bcopy routine is available
1078 * to copy potentially overlapping memory blocks. Normally, you should
1079 * probably use memmove() or memcpy(). If neither is defined, roll your
1080 * own version.
ff935051 1081 */
88fdc172 1082/*#define HAS_SAFE_BCOPY / **/
ff935051 1083
88fdc172
SB
1084/* HAS_SAFE_MEMCPY:
1085 * This symbol, if defined, indicates that the memcpy routine is available
1086 * to copy potentially overlapping memory blocks. If you need to
1087 * copy overlapping memory blocks, you should check HAS_MEMMOVE and
1088 * use memmove() instead, if available.
10bc17b6 1089 */
88fdc172
SB
1090/*#define HAS_SAFE_MEMCPY / **/
1091
1092/* HAS_SANE_MEMCMP:
1093 * This symbol, if defined, indicates that the memcmp routine is available
1094 * and can be used to compare relative magnitudes of chars with their high
1095 * bits set. If it is not defined, roll your own version.
1096 */
1097#define HAS_SANE_MEMCMP /**/
1098
1099/* HAS_SIGACTION:
1100 * This symbol, if defined, indicates that Vr4's sigaction() routine
1101 * is available.
1102 */
1103#define HAS_SIGACTION /**/
1104
1105/* HAS_SIGSETJMP:
1106 * This variable indicates to the C program that the sigsetjmp()
1107 * routine is available to save the calling process's registers
1108 * and stack environment for later use by siglongjmp(), and
1109 * to optionally save the process's signal mask. See
1110 * Sigjmp_buf, Sigsetjmp, and Siglongjmp.
1111 */
1112/* Sigjmp_buf:
1113 * This is the buffer type to be used with Sigsetjmp and Siglongjmp.
1114 */
1115/* Sigsetjmp:
1116 * This macro is used in the same way as sigsetjmp(), but will invoke
1117 * traditional setjmp() if sigsetjmp isn't available.
1118 * See HAS_SIGSETJMP.
1119 */
1120/* Siglongjmp:
1121 * This macro is used in the same way as siglongjmp(), but will invoke
1122 * traditional longjmp() if siglongjmp isn't available.
1123 * See HAS_SIGSETJMP.
1124 */
1125#define HAS_SIGSETJMP /**/
1126#ifdef HAS_SIGSETJMP
1127#define Sigjmp_buf sigjmp_buf
1128#define Sigsetjmp(buf,save_mask) sigsetjmp((buf),(save_mask))
1129#define Siglongjmp(buf,retval) siglongjmp((buf),(retval))
1130#else
1131#define Sigjmp_buf jmp_buf
1132#define Sigsetjmp(buf,save_mask) setjmp((buf))
1133#define Siglongjmp(buf,retval) longjmp((buf),(retval))
1134#endif
1135
1136/* USE_STDIO_PTR:
1137 * This symbol is defined if the _ptr and _cnt fields (or similar)
1138 * of the stdio FILE structure can be used to access the stdio buffer
1139 * for a file handle. If this is defined, then the FILE_ptr(fp)
1140 * and FILE_cnt(fp) macros will also be defined and should be used
1141 * to access these fields.
1142 */
1143/* FILE_ptr:
1144 * This macro is used to access the _ptr field (or equivalent) of the
1145 * FILE structure pointed to by its argument. This macro will always be
1146 * defined if USE_STDIO_PTR is defined.
1147 */
1148/* STDIO_PTR_LVALUE:
1149 * This symbol is defined if the FILE_ptr macro can be used as an
1150 * lvalue.
1151 */
1152/* FILE_cnt:
1153 * This macro is used to access the _cnt field (or equivalent) of the
1154 * FILE structure pointed to by its argument. This macro will always be
1155 * defined if USE_STDIO_PTR is defined.
1156 */
1157/* STDIO_CNT_LVALUE:
1158 * This symbol is defined if the FILE_cnt macro can be used as an
1159 * lvalue.
1160 */
1161/* STDIO_PTR_LVAL_SETS_CNT:
1162 * This symbol is defined if using the FILE_ptr macro as an lvalue
1163 * to increase the pointer by n has the side effect of decreasing the
1164 * value of File_cnt(fp) by n.
1165 */
1166/* STDIO_PTR_LVAL_NOCHANGE_CNT:
1167 * This symbol is defined if using the FILE_ptr macro as an lvalue
1168 * to increase the pointer by n leaves File_cnt(fp) unchanged.
1169 */
1170#define USE_STDIO_PTR /**/
1171#ifdef USE_STDIO_PTR
60a7d337 1172#define FILE_ptr(fp) ((fp)->_IO_read_ptr)
88fdc172 1173#define STDIO_PTR_LVALUE /**/
60a7d337
RGS
1174#define FILE_cnt(fp) ((fp)->_IO_read_end - (fp)->_IO_read_ptr)
1175/*#define STDIO_CNT_LVALUE / **/
1176#define STDIO_PTR_LVAL_SETS_CNT /**/
1177/*#define STDIO_PTR_LVAL_NOCHANGE_CNT / **/
88fdc172
SB
1178#endif
1179
1180/* USE_STDIO_BASE:
1181 * This symbol is defined if the _base field (or similar) of the
1182 * stdio FILE structure can be used to access the stdio buffer for
1183 * a file handle. If this is defined, then the FILE_base(fp) macro
1184 * will also be defined and should be used to access this field.
1185 * Also, the FILE_bufsiz(fp) macro will be defined and should be used
1186 * to determine the number of bytes in the buffer. USE_STDIO_BASE
1187 * will never be defined unless USE_STDIO_PTR is.
1188 */
1189/* FILE_base:
1190 * This macro is used to access the _base field (or equivalent) of the
1191 * FILE structure pointed to by its argument. This macro will always be
1192 * defined if USE_STDIO_BASE is defined.
1193 */
1194/* FILE_bufsiz:
1195 * This macro is used to determine the number of bytes in the I/O
1196 * buffer pointed to by _base field (or equivalent) of the FILE
1197 * structure pointed to its argument. This macro will always be defined
1198 * if USE_STDIO_BASE is defined.
1199 */
1200#define USE_STDIO_BASE /**/
1201#ifdef USE_STDIO_BASE
60a7d337
RGS
1202#define FILE_base(fp) ((fp)->_IO_read_base)
1203#define FILE_bufsiz(fp) ((fp)->_IO_read_end - (fp)->_IO_read_base)
88fdc172
SB
1204#endif
1205
1206/* HAS_VPRINTF:
1207 * This symbol, if defined, indicates that the vprintf routine is available
1208 * to printf with a pointer to an argument list. If unavailable, you
1209 * may need to write your own, probably in terms of _doprnt().
1210 */
1211/* USE_CHAR_VSPRINTF:
1212 * This symbol is defined if this system has vsprintf() returning type
1213 * (char*). The trend seems to be to declare it as "int vsprintf()". It
1214 * is up to the package author to declare vsprintf correctly based on the
1215 * symbol.
1216 */
1217#define HAS_VPRINTF /**/
60a7d337 1218#define USE_CHAR_VSPRINTF /**/
88fdc172
SB
1219
1220/* DOUBLESIZE:
1221 * This symbol contains the size of a double, so that the C preprocessor
1222 * can make decisions based on it.
1223 */
1224#define DOUBLESIZE 8 /**/
1225
1226/* I_TIME:
1227 * This symbol, if defined, indicates to the C program that it should
1228 * include <time.h>.
1229 */
1230/* I_SYS_TIME:
1231 * This symbol, if defined, indicates to the C program that it should
1232 * include <sys/time.h>.
1233 */
1234/* I_SYS_TIME_KERNEL:
1235 * This symbol, if defined, indicates to the C program that it should
1236 * include <sys/time.h> with KERNEL defined.
1237 */
1238/* HAS_TM_TM_ZONE:
1239 * This symbol, if defined, indicates to the C program that
1240 * the struct tm has a tm_zone field.
1241 */
1242/* HAS_TM_TM_GMTOFF:
1243 * This symbol, if defined, indicates to the C program that
1244 * the struct tm has a tm_gmtoff field.
1245 */
60a7d337 1246#define I_TIME /**/
88fdc172
SB
1247#define I_SYS_TIME /**/
1248/*#define I_SYS_TIME_KERNEL / **/
1249#define HAS_TM_TM_ZONE /**/
1250#define HAS_TM_TM_GMTOFF /**/
1251
1252/* VAL_O_NONBLOCK:
1253 * This symbol is to be used during open() or fcntl(F_SETFL) to turn on
1254 * non-blocking I/O for the file descriptor. Note that there is no way
1255 * back, i.e. you cannot turn it blocking again this way. If you wish to
1256 * alternatively switch between blocking and non-blocking, use the
1257 * ioctl(FIOSNBIO) call instead, but that is not supported by all devices.
1258 */
1259/* VAL_EAGAIN:
1260 * This symbol holds the errno error code set by read() when no data was
1261 * present on the non-blocking file descriptor.
1262 */
1263/* RD_NODATA:
1264 * This symbol holds the return code from read() when no data is present
1265 * on the non-blocking file descriptor. Be careful! If EOF_NONBLOCK is
1266 * not defined, then you can't distinguish between no data and EOF by
1267 * issuing a read(). You'll have to find another way to tell for sure!
1268 */
1269/* EOF_NONBLOCK:
1270 * This symbol, if defined, indicates to the C program that a read() on
1271 * a non-blocking file descriptor will return 0 on EOF, and not the value
1272 * held in RD_NODATA (-1 usually, in that case!).
1273 */
1274#define VAL_O_NONBLOCK O_NONBLOCK
1275#define VAL_EAGAIN EAGAIN
1276#define RD_NODATA -1
1277#define EOF_NONBLOCK
1278
1279/* PTRSIZE:
1280 * This symbol contains the size of a pointer, so that the C preprocessor
1281 * can make decisions based on it. It will be sizeof(void *) if
1282 * the compiler supports (void *); otherwise it will be
1283 * sizeof(char *).
1284 */
60a7d337 1285#define PTRSIZE 4 /**/
88fdc172
SB
1286
1287/* Drand01:
1288 * This macro is to be used to generate uniformly distributed
1289 * random numbers over the range [0., 1.[. You may have to supply
1290 * an 'extern double drand48();' in your program since SunOS 4.1.3
1291 * doesn't provide you with anything relevant in its headers.
1292 * See HAS_DRAND48_PROTO.
1293 */
1294/* Rand_seed_t:
1295 * This symbol defines the type of the argument of the
1296 * random seed function.
1297 */
1298/* seedDrand01:
1299 * This symbol defines the macro to be used in seeding the
1300 * random number generator (see Drand01).
1301 */
1302/* RANDBITS:
1303 * This symbol indicates how many bits are produced by the
1304 * function used to generate normalized random numbers.
1305 * Values include 15, 16, 31, and 48.
1306 */
1307#define Drand01() drand48() /**/
1308#define Rand_seed_t long /**/
1309#define seedDrand01(x) srand48((Rand_seed_t)x) /**/
1310#define RANDBITS 48 /**/
1311
1312/* SSize_t:
1313 * This symbol holds the type used by functions that return
1314 * a count of bytes or an error condition. It must be a signed type.
1315 * It is usually ssize_t, but may be long or int, etc.
1316 * It may be necessary to include <sys/types.h> or <unistd.h>
1317 * to get any typedef'ed information.
1318 * We will pick a type such that sizeof(SSize_t) == sizeof(Size_t).
1319 */
1320#define SSize_t ssize_t /* signed count of bytes */
1321
1322/* EBCDIC:
1323 * This symbol, if defined, indicates that this system uses
1324 * EBCDIC encoding.
1325 */
1326/*#define EBCDIC / **/
1327
1328/* ARCHLIB:
1329 * This variable, if defined, holds the name of the directory in
1330 * which the user wants to put architecture-dependent public
1331 * library files for perl5. It is most often a local directory
1332 * such as /usr/local/lib. Programs using this variable must be
1333 * prepared to deal with filename expansion. If ARCHLIB is the
1334 * same as PRIVLIB, it is not defined, since presumably the
1335 * program already searches PRIVLIB.
1336 */
1337/* ARCHLIB_EXP:
1338 * This symbol contains the ~name expanded version of ARCHLIB, to be used
1339 * in programs that are not prepared to deal with ~ expansion at run-time.
1340 */
e01ffb8d
RGS
1341#define ARCHLIB "/opt/perl/lib/5.9.2/i686-linux" /**/
1342#define ARCHLIB_EXP "/opt/perl/lib/5.9.2/i686-linux" /**/
88fdc172
SB
1343
1344/* BIN:
1345 * This symbol holds the path of the bin directory where the package will
1346 * be installed. Program must be prepared to deal with ~name substitution.
1347 */
1348/* BIN_EXP:
1349 * This symbol is the filename expanded version of the BIN symbol, for
1350 * programs that do not want to deal with that at run-time.
1351 */
1352#define BIN "/opt/perl/bin" /**/
1353#define BIN_EXP "/opt/perl/bin" /**/
1354
1355/* PERL_INC_VERSION_LIST:
1356 * This variable specifies the list of subdirectories in over
1357 * which perl.c:incpush() and lib/lib.pm will automatically
1358 * search when adding directories to @INC, in a format suitable
1359 * for a C initialization string. See the inc_version_list entry
1360 * in Porting/Glossary for more details.
1361 */
1362#define PERL_INC_VERSION_LIST 0 /**/
1363
1364/* INSTALL_USR_BIN_PERL:
1365 * This symbol, if defined, indicates that Perl is to be installed
1366 * also as /usr/bin/perl.
1367 */
1368/*#define INSTALL_USR_BIN_PERL / **/
1369
1370/* PERL_OTHERLIBDIRS:
1371 * This variable contains a colon-separated set of paths for the perl
1372 * binary to search for additional library files or modules.
1373 * These directories will be tacked to the end of @INC.
1374 * Perl will automatically search below each path for version-
1375 * and architecture-specific directories. See PERL_INC_VERSION_LIST
1376 * for more details.
1377 */
1378/*#define PERL_OTHERLIBDIRS " " / **/
1379
60a7d337
RGS
1380/* INSTALL_PREFIX:
1381 * This symbol contains the "root" of installation tree for this package.
1382 * The program should be prepared to do ~ expansion.
1383 */
1384/* INSTALL_PREFIX_EXP:
1385 * This symbol contains the "root" of installation tree for this package
1386 * to be used in programs that are not prepared to deal with ~ expansion
1387 * at run-time.
1388 */
1389#define INSTALL_PREFIX "/opt/perl" /**/
1390#define INSTALL_PREFIX_EXP "/opt/perl" /**/
1391
88fdc172
SB
1392/* PRIVLIB:
1393 * This symbol contains the name of the private library for this package.
1394 * The library is private in the sense that it needn't be in anyone's
1395 * execution path, but it should be accessible by the world. The program
1396 * should be prepared to do ~ expansion.
1397 */
1398/* PRIVLIB_EXP:
1399 * This symbol contains the ~name expanded version of PRIVLIB, to be used
1400 * in programs that are not prepared to deal with ~ expansion at run-time.
1401 */
e01ffb8d
RGS
1402#define PRIVLIB "/opt/perl/lib/5.9.2" /**/
1403#define PRIVLIB_EXP "/opt/perl/lib/5.9.2" /**/
88fdc172
SB
1404
1405/* SITEARCH:
1406 * This symbol contains the name of the private library for this package.
1407 * The library is private in the sense that it needn't be in anyone's
1408 * execution path, but it should be accessible by the world. The program
1409 * should be prepared to do ~ expansion.
1410 * The standard distribution will put nothing in this directory.
1411 * After perl has been installed, users may install their own local
1412 * architecture-dependent modules in this directory with
1413 * MakeMaker Makefile.PL
1414 * or equivalent. See INSTALL for details.
1415 */
1416/* SITEARCH_EXP:
1417 * This symbol contains the ~name expanded version of SITEARCH, to be used
1418 * in programs that are not prepared to deal with ~ expansion at run-time.
1419 */
e01ffb8d
RGS
1420#define SITEARCH "/opt/perl/lib/site_perl/5.9.2/i686-linux" /**/
1421#define SITEARCH_EXP "/opt/perl/lib/site_perl/5.9.2/i686-linux" /**/
88fdc172
SB
1422
1423/* SITELIB:
1424 * This symbol contains the name of the private library for this package.
1425 * The library is private in the sense that it needn't be in anyone's
1426 * execution path, but it should be accessible by the world. The program
1427 * should be prepared to do ~ expansion.
1428 * The standard distribution will put nothing in this directory.
1429 * After perl has been installed, users may install their own local
1430 * architecture-independent modules in this directory with
1431 * MakeMaker Makefile.PL
1432 * or equivalent. See INSTALL for details.
1433 */
1434/* SITELIB_EXP:
1435 * This symbol contains the ~name expanded version of SITELIB, to be used
1436 * in programs that are not prepared to deal with ~ expansion at run-time.
1437 */
1438/* SITELIB_STEM:
1439 * This define is SITELIB_EXP with any trailing version-specific component
1440 * removed. The elements in inc_version_list (inc_version_list.U) can
1441 * be tacked onto this variable to generate a list of directories to search.
1442 */
e01ffb8d
RGS
1443#define SITELIB "/opt/perl/lib/site_perl/5.9.2" /**/
1444#define SITELIB_EXP "/opt/perl/lib/site_perl/5.9.2" /**/
88fdc172
SB
1445#define SITELIB_STEM "/opt/perl/lib/site_perl" /**/
1446
1447/* PERL_VENDORARCH:
1448 * If defined, this symbol contains the name of a private library.
1449 * The library is private in the sense that it needn't be in anyone's
1450 * execution path, but it should be accessible by the world.
1451 * It may have a ~ on the front.
1452 * The standard distribution will put nothing in this directory.
1453 * Vendors who distribute perl may wish to place their own
1454 * architecture-dependent modules and extensions in this directory with
1455 * MakeMaker Makefile.PL INSTALLDIRS=vendor
1456 * or equivalent. See INSTALL for details.
1457 */
1458/* PERL_VENDORARCH_EXP:
1459 * This symbol contains the ~name expanded version of PERL_VENDORARCH, to be used
1460 * in programs that are not prepared to deal with ~ expansion at run-time.
1461 */
1462/*#define PERL_VENDORARCH "" / **/
1463/*#define PERL_VENDORARCH_EXP "" / **/
1464
1465/* PERL_VENDORLIB_EXP:
1466 * This symbol contains the ~name expanded version of VENDORLIB, to be used
1467 * in programs that are not prepared to deal with ~ expansion at run-time.
1468 */
1469/* PERL_VENDORLIB_STEM:
1470 * This define is PERL_VENDORLIB_EXP with any trailing version-specific component
1471 * removed. The elements in inc_version_list (inc_version_list.U) can
1472 * be tacked onto this variable to generate a list of directories to search.
1473 */
1474/*#define PERL_VENDORLIB_EXP "" / **/
1475/*#define PERL_VENDORLIB_STEM "" / **/
1476
1477/* OSNAME:
1478 * This symbol contains the name of the operating system, as determined
1479 * by Configure. You shouldn't rely on it too much; the specific
1480 * feature tests from Configure are generally more reliable.
1481 */
1482/* OSVERS:
1483 * This symbol contains the version of the operating system, as determined
1484 * by Configure. You shouldn't rely on it too much; the specific
1485 * feature tests from Configure are generally more reliable.
1486 */
60a7d337
RGS
1487#define OSNAME "linux" /**/
1488#define OSVERS "2.4.20" /**/
88fdc172
SB
1489
1490/* CAT2:
505656d3 1491 * This macro concatenates 2 tokens together.
88fdc172
SB
1492 */
1493/* STRINGIFY:
1494 * This macro surrounds its token with double quotes.
1495 */
1496#if 42 == 1
1497#define CAT2(a,b) a/**/b
1498#define STRINGIFY(a) "a"
1499 /* If you can get stringification with catify, tell me how! */
1500#endif
1501#if 42 == 42
1502#define PeRl_CaTiFy(a, b) a ## b
1503#define PeRl_StGiFy(a) #a
1504/* the additional level of indirection enables these macros to be
1505 * used as arguments to other macros. See K&R 2nd ed., page 231. */
1506#define CAT2(a,b) PeRl_CaTiFy(a,b)
1507#define StGiFy(a) PeRl_StGiFy(a)
1508#define STRINGIFY(a) PeRl_StGiFy(a)
1509#endif
1510#if 42 != 1 && 42 != 42
3099fc99 1511# include "Bletch: How does this C preprocessor concatenate tokens?"
88fdc172
SB
1512#endif
1513
1514/* CPPSTDIN:
1515 * This symbol contains the first part of the string which will invoke
1516 * the C preprocessor on the standard input and produce to standard
1517 * output. Typical value of "cc -E" or "/lib/cpp", but it can also
1518 * call a wrapper. See CPPRUN.
1519 */
1520/* CPPMINUS:
1521 * This symbol contains the second part of the string which will invoke
1522 * the C preprocessor on the standard input and produce to standard
1523 * output. This symbol will have the value "-" if CPPSTDIN needs a minus
1524 * to specify standard input, otherwise the value is "".
1525 */
1526/* CPPRUN:
1527 * This symbol contains the string which will invoke a C preprocessor on
1528 * the standard input and produce to standard output. It needs to end
1529 * with CPPLAST, after all other preprocessor flags have been specified.
1530 * The main difference with CPPSTDIN is that this program will never be a
1531 * pointer to a shell wrapper, i.e. it will be empty if no preprocessor is
1532 * available directly to the user. Note that it may well be different from
1533 * the preprocessor used to compile the C program.
1534 */
1535/* CPPLAST:
1536 * This symbol is intended to be used along with CPPRUN in the same manner
1537 * symbol CPPMINUS is used with CPPSTDIN. It contains either "-" or "".
1538 */
60a7d337 1539#define CPPSTDIN "/usr/local/gcc331/bin/gcc331 -E"
10305dfa 1540#define CPPMINUS "-"
60a7d337 1541#define CPPRUN "/usr/local/gcc331/bin/gcc331 -E"
10305dfa 1542#define CPPLAST "-"
88fdc172
SB
1543
1544/* HAS_ACCESS:
1545 * This manifest constant lets the C program know that the access()
1546 * system call is available to check for accessibility using real UID/GID.
1547 * (always present on UNIX.)
1548 */
1549#define HAS_ACCESS /**/
1550
1551/* HASATTRIBUTE:
1552 * This symbol indicates the C compiler can check for function attributes,
1553 * such as printf formats. This is normally only supported by GNU cc.
1554 */
60a7d337 1555#define HASATTRIBUTE /**/
88fdc172
SB
1556#ifndef HASATTRIBUTE
1557#ifdef __attribute__
1558#undef __attribute__
1559#endif
1560#define __attribute__(_arg_)
1561#endif
1562
1563/* HAS_CRYPT:
1564 * This symbol, if defined, indicates that the crypt routine is available
1565 * to encrypt passwords and the like.
1566 */
1567#define HAS_CRYPT /**/
1568
1569/* HAS_CSH:
1570 * This symbol, if defined, indicates that the C-shell exists.
1571 */
1572/* CSH:
1573 * This symbol, if defined, contains the full pathname of csh.
1574 */
1575#define HAS_CSH /**/
1576#ifdef HAS_CSH
60a7d337 1577#define CSH "/bin/csh" /**/
88fdc172
SB
1578#endif
1579
1580/* SETUID_SCRIPTS_ARE_SECURE_NOW:
1581 * This symbol, if defined, indicates that the bug that prevents
1582 * setuid scripts from being secure is not present in this kernel.
1583 */
1584/* DOSUID:
1585 * This symbol, if defined, indicates that the C program should
1586 * check the script that it is executing for setuid/setgid bits, and
1587 * attempt to emulate setuid/setgid on systems that have disabled
1588 * setuid #! scripts because the kernel can't do it securely.
1589 * It is up to the package designer to make sure that this emulation
1590 * is done securely. Among other things, it should do an fstat on
1591 * the script it just opened to make sure it really is a setuid/setgid
1592 * script, it should make sure the arguments passed correspond exactly
1593 * to the argument on the #! line, and it should not trust any
1594 * subprocesses to which it must pass the filename rather than the
1595 * file descriptor of the script to be executed.
1596 */
1597/*#define SETUID_SCRIPTS_ARE_SECURE_NOW / **/
1598/*#define DOSUID / **/
1599
1600/* HAS_ENDGRENT:
1601 * This symbol, if defined, indicates that the getgrent routine is
1602 * available for finalizing sequential access of the group database.
1603 */
1604#define HAS_ENDGRENT /**/
1605
1606/* HAS_ENDHOSTENT:
1607 * This symbol, if defined, indicates that the endhostent() routine is
1608 * available to close whatever was being used for host queries.
1609 */
1610#define HAS_ENDHOSTENT /**/
1611
1612/* HAS_ENDNETENT:
1613 * This symbol, if defined, indicates that the endnetent() routine is
1614 * available to close whatever was being used for network queries.
1615 */
1616#define HAS_ENDNETENT /**/
1617
1618/* HAS_ENDPROTOENT:
1619 * This symbol, if defined, indicates that the endprotoent() routine is
1620 * available to close whatever was being used for protocol queries.
1621 */
1622#define HAS_ENDPROTOENT /**/
1623
1624/* HAS_ENDPWENT:
1625 * This symbol, if defined, indicates that the getgrent routine is
1626 * available for finalizing sequential access of the passwd database.
1627 */
1628#define HAS_ENDPWENT /**/
1629
1630/* HAS_ENDSERVENT:
1631 * This symbol, if defined, indicates that the endservent() routine is
1632 * available to close whatever was being used for service queries.
1633 */
1634#define HAS_ENDSERVENT /**/
1635
1636/* FLEXFILENAMES:
1637 * This symbol, if defined, indicates that the system supports filenames
1638 * longer than 14 characters.
1639 */
1640#define FLEXFILENAMES /**/
1641
1642/* HAS_GETGRENT:
1643 * This symbol, if defined, indicates that the getgrent routine is
1644 * available for sequential access of the group database.
1645 */
1646#define HAS_GETGRENT /**/
1647
1648/* HAS_GETHOSTBYADDR:
1649 * This symbol, if defined, indicates that the gethostbyaddr() routine is
1650 * available to look up hosts by their IP addresses.
1651 */
1652#define HAS_GETHOSTBYADDR /**/
1653
1654/* HAS_GETHOSTBYNAME:
1655 * This symbol, if defined, indicates that the gethostbyname() routine is
1656 * available to look up host names in some data base or other.
1657 */
1658#define HAS_GETHOSTBYNAME /**/
1659
1660/* HAS_GETHOSTENT:
1661 * This symbol, if defined, indicates that the gethostent() routine is
1662 * available to look up host names in some data base or another.
1663 */
1664#define HAS_GETHOSTENT /**/
1665
1666/* HAS_GETHOSTNAME:
1667 * This symbol, if defined, indicates that the C program may use the
1668 * gethostname() routine to derive the host name. See also HAS_UNAME
1669 * and PHOSTNAME.
10bc17b6 1670 */
88fdc172
SB
1671/* HAS_UNAME:
1672 * This symbol, if defined, indicates that the C program may use the
1673 * uname() routine to derive the host name. See also HAS_GETHOSTNAME
1674 * and PHOSTNAME.
1675 */
1676/* PHOSTNAME:
1677 * This symbol, if defined, indicates the command to feed to the
1678 * popen() routine to derive the host name. See also HAS_GETHOSTNAME
1679 * and HAS_UNAME. Note that the command uses a fully qualified path,
1680 * so that it is safe even if used by a process with super-user
1681 * privileges.
1682 */
1683/* HAS_PHOSTNAME:
1684 * This symbol, if defined, indicates that the C program may use the
1685 * contents of PHOSTNAME as a command to feed to the popen() routine
1686 * to derive the host name.
1687 */
1688#define HAS_GETHOSTNAME /**/
1689#define HAS_UNAME /**/
1690/*#define HAS_PHOSTNAME / **/
1691#ifdef HAS_PHOSTNAME
60a7d337 1692#define PHOSTNAME "/bin/hostname" /* How to get the host name */
88fdc172 1693#endif
10bc17b6 1694
88fdc172
SB
1695/* HAS_GETNETBYADDR:
1696 * This symbol, if defined, indicates that the getnetbyaddr() routine is
1697 * available to look up networks by their IP addresses.
ff935051 1698 */
88fdc172 1699#define HAS_GETNETBYADDR /**/
ff935051 1700
88fdc172
SB
1701/* HAS_GETNETBYNAME:
1702 * This symbol, if defined, indicates that the getnetbyname() routine is
1703 * available to look up networks by their names.
ff935051 1704 */
88fdc172 1705#define HAS_GETNETBYNAME /**/
ff935051 1706
88fdc172
SB
1707/* HAS_GETNETENT:
1708 * This symbol, if defined, indicates that the getnetent() routine is
1709 * available to look up network names in some data base or another.
10bc17b6 1710 */
88fdc172
SB
1711#define HAS_GETNETENT /**/
1712
1713/* HAS_GETPROTOENT:
1714 * This symbol, if defined, indicates that the getprotoent() routine is
1715 * available to look up protocols in some data base or another.
10bc17b6 1716 */
88fdc172 1717#define HAS_GETPROTOENT /**/
10bc17b6 1718
88fdc172
SB
1719/* HAS_GETPGRP:
1720 * This symbol, if defined, indicates that the getpgrp routine is
1721 * available to get the current process group.
ff935051 1722 */
88fdc172
SB
1723/* USE_BSD_GETPGRP:
1724 * This symbol, if defined, indicates that getpgrp needs one
1725 * arguments whereas USG one needs none.
1726 */
1727#define HAS_GETPGRP /**/
1728/*#define USE_BSD_GETPGRP / **/
ff935051 1729
88fdc172
SB
1730/* HAS_GETPROTOBYNAME:
1731 * This symbol, if defined, indicates that the getprotobyname()
1732 * routine is available to look up protocols by their name.
1733 */
1734/* HAS_GETPROTOBYNUMBER:
1735 * This symbol, if defined, indicates that the getprotobynumber()
1736 * routine is available to look up protocols by their number.
1737 */
1738#define HAS_GETPROTOBYNAME /**/
1739#define HAS_GETPROTOBYNUMBER /**/
1740
1741/* HAS_GETPWENT:
1742 * This symbol, if defined, indicates that the getpwent routine is
1743 * available for sequential access of the passwd database.
1744 * If this is not available, the older getpw() function may be available.
1745 */
1746#define HAS_GETPWENT /**/
1747
1748/* HAS_GETSERVENT:
1749 * This symbol, if defined, indicates that the getservent() routine is
1750 * available to look up network services in some data base or another.
1751 */
1752#define HAS_GETSERVENT /**/
1753
1754/* HAS_GETSERVBYNAME:
1755 * This symbol, if defined, indicates that the getservbyname()
1756 * routine is available to look up services by their name.
1757 */
1758/* HAS_GETSERVBYPORT:
1759 * This symbol, if defined, indicates that the getservbyport()
1760 * routine is available to look up services by their port.
1761 */
1762#define HAS_GETSERVBYNAME /**/
1763#define HAS_GETSERVBYPORT /**/
1764
1765/* HAS_HTONL:
1766 * This symbol, if defined, indicates that the htonl() routine (and
1767 * friends htons() ntohl() ntohs()) are available to do network
1768 * order byte swapping.
1769 */
1770/* HAS_HTONS:
1771 * This symbol, if defined, indicates that the htons() routine (and
1772 * friends htonl() ntohl() ntohs()) are available to do network
1773 * order byte swapping.
1774 */
1775/* HAS_NTOHL:
1776 * This symbol, if defined, indicates that the ntohl() routine (and
1777 * friends htonl() htons() ntohs()) are available to do network
1778 * order byte swapping.
1779 */
1780/* HAS_NTOHS:
1781 * This symbol, if defined, indicates that the ntohs() routine (and
1782 * friends htonl() htons() ntohl()) are available to do network
1783 * order byte swapping.
1784 */
1785#define HAS_HTONL /**/
1786#define HAS_HTONS /**/
1787#define HAS_NTOHL /**/
1788#define HAS_NTOHS /**/
1789
1790/* HAS_LONG_DOUBLE:
1791 * This symbol will be defined if the C compiler supports long
1792 * doubles.
1793 */
1794/* LONG_DOUBLESIZE:
1795 * This symbol contains the size of a long double, so that the
1796 * C preprocessor can make decisions based on it. It is only
1797 * defined if the system supports long doubles.
1798 */
1799#define HAS_LONG_DOUBLE /**/
1800#ifdef HAS_LONG_DOUBLE
60a7d337 1801#define LONG_DOUBLESIZE 12 /**/
88fdc172
SB
1802#endif
1803
1804/* HAS_LONG_LONG:
1805 * This symbol will be defined if the C compiler supports long long.
1806 */
1807/* LONGLONGSIZE:
1808 * This symbol contains the size of a long long, so that the
1809 * C preprocessor can make decisions based on it. It is only
1810 * defined if the system supports long long.
1811 */
1812#define HAS_LONG_LONG /**/
1813#ifdef HAS_LONG_LONG
1814#define LONGLONGSIZE 8 /**/
1815#endif
1816
1817/* HAS_MEMCHR:
1818 * This symbol, if defined, indicates that the memchr routine is available
1819 * to locate characters within a C string.
1820 */
1821#define HAS_MEMCHR /**/
1822
1823/* HAS_MKSTEMP:
1824 * This symbol, if defined, indicates that the mkstemp routine is
1825 * available to exclusively create and open a uniquely named
1826 * temporary file.
1827 */
1828#define HAS_MKSTEMP /**/
1829
1830/* HAS_MMAP:
1831 * This symbol, if defined, indicates that the mmap system call is
1832 * available to map a file into memory.
1833 */
1834/* Mmap_t:
1835 * This symbol holds the return type of the mmap() system call
1836 * (and simultaneously the type of the first argument).
1837 * Usually set to 'void *' or 'cadd_t'.
1838 */
1839#define HAS_MMAP /**/
1840#define Mmap_t void * /**/
1841
1842/* HAS_MSG:
1843 * This symbol, if defined, indicates that the entire msg*(2) library is
1844 * supported (IPC mechanism based on message queues).
1845 */
1846#define HAS_MSG /**/
1847
1848/* HAS_SEM:
1849 * This symbol, if defined, indicates that the entire sem*(2) library is
1850 * supported.
1851 */
1852#define HAS_SEM /**/
1853
1854/* HAS_SETGRENT:
1855 * This symbol, if defined, indicates that the setgrent routine is
1856 * available for initializing sequential access of the group database.
1857 */
1858#define HAS_SETGRENT /**/
1859
1860/* HAS_SETGROUPS:
1861 * This symbol, if defined, indicates that the setgroups() routine is
1862 * available to set the list of process groups. If unavailable, multiple
1863 * groups are probably not supported.
1864 */
1865#define HAS_SETGROUPS /**/
1866
1867/* HAS_SETHOSTENT:
1868 * This symbol, if defined, indicates that the sethostent() routine is
1869 * available.
1870 */
1871#define HAS_SETHOSTENT /**/
1872
1873/* HAS_SETNETENT:
1874 * This symbol, if defined, indicates that the setnetent() routine is
1875 * available.
1876 */
1877#define HAS_SETNETENT /**/
1878
1879/* HAS_SETPROTOENT:
1880 * This symbol, if defined, indicates that the setprotoent() routine is
1881 * available.
1882 */
1883#define HAS_SETPROTOENT /**/
1884
1885/* HAS_SETPGRP:
1886 * This symbol, if defined, indicates that the setpgrp routine is
1887 * available to set the current process group.
1888 */
1889/* USE_BSD_SETPGRP:
1890 * This symbol, if defined, indicates that setpgrp needs two
1891 * arguments whereas USG one needs none. See also HAS_SETPGID
1892 * for a POSIX interface.
1893 */
1894#define HAS_SETPGRP /**/
60a7d337 1895/*#define USE_BSD_SETPGRP / **/
88fdc172
SB
1896
1897/* HAS_SETPWENT:
1898 * This symbol, if defined, indicates that the setpwent routine is
1899 * available for initializing sequential access of the passwd database.
1900 */
1901#define HAS_SETPWENT /**/
1902
1903/* HAS_SETSERVENT:
1904 * This symbol, if defined, indicates that the setservent() routine is
1905 * available.
ff935051 1906 */
88fdc172 1907#define HAS_SETSERVENT /**/
ff935051 1908
88fdc172
SB
1909/* HAS_SETVBUF:
1910 * This symbol, if defined, indicates that the setvbuf routine is
1911 * available to change buffering on an open stdio stream.
1912 * to a line-buffered mode.
ff935051 1913 */
88fdc172 1914#define HAS_SETVBUF /**/
ff935051 1915
88fdc172
SB
1916/* HAS_SHM:
1917 * This symbol, if defined, indicates that the entire shm*(2) library is
1918 * supported.
ff935051 1919 */
88fdc172 1920#define HAS_SHM /**/
ff935051 1921
88fdc172
SB
1922/* Shmat_t:
1923 * This symbol holds the return type of the shmat() system call.
1924 * Usually set to 'void *' or 'char *'.
10bc17b6 1925 */
88fdc172
SB
1926/* HAS_SHMAT_PROTOTYPE:
1927 * This symbol, if defined, indicates that the sys/shm.h includes
1928 * a prototype for shmat(). Otherwise, it is up to the program to
1929 * guess one. Shmat_t shmat(int, Shmat_t, int) is a good guess,
1930 * but not always right so it should be emitted by the program only
1931 * when HAS_SHMAT_PROTOTYPE is not defined to avoid conflicting defs.
10bc17b6 1932 */
88fdc172
SB
1933#define Shmat_t void * /**/
1934#define HAS_SHMAT_PROTOTYPE /**/
10bc17b6 1935
88fdc172
SB
1936/* HAS_SOCKET:
1937 * This symbol, if defined, indicates that the BSD socket interface is
1938 * supported.
ff935051 1939 */
88fdc172
SB
1940/* HAS_SOCKETPAIR:
1941 * This symbol, if defined, indicates that the BSD socketpair() call is
1942 * supported.
b363b713 1943 */
88fdc172
SB
1944/* HAS_MSG_CTRUNC:
1945 * This symbol, if defined, indicates that the MSG_CTRUNC is supported.
1946 * Checking just with #ifdef might not be enough because this symbol
1947 * has been known to be an enum.
a7fea17f 1948 */
88fdc172
SB
1949/* HAS_MSG_DONTROUTE:
1950 * This symbol, if defined, indicates that the MSG_DONTROUTE is supported.
1951 * Checking just with #ifdef might not be enough because this symbol
1952 * has been known to be an enum.
921b2963 1953 */
88fdc172
SB
1954/* HAS_MSG_OOB:
1955 * This symbol, if defined, indicates that the MSG_OOB is supported.
1956 * Checking just with #ifdef might not be enough because this symbol
1957 * has been known to be an enum.
758a5d79 1958 */
88fdc172
SB
1959/* HAS_MSG_PEEK:
1960 * This symbol, if defined, indicates that the MSG_PEEK is supported.
1961 * Checking just with #ifdef might not be enough because this symbol
1962 * has been known to be an enum.
758a5d79 1963 */
88fdc172
SB
1964/* HAS_MSG_PROXY:
1965 * This symbol, if defined, indicates that the MSG_PROXY is supported.
1966 * Checking just with #ifdef might not be enough because this symbol
1967 * has been known to be an enum.
b6592ff0 1968 */
88fdc172
SB
1969/* HAS_SCM_RIGHTS:
1970 * This symbol, if defined, indicates that the SCM_RIGHTS is supported.
1971 * Checking just with #ifdef might not be enough because this symbol
1972 * has been known to be an enum.
758a5d79 1973 */
88fdc172
SB
1974#define HAS_SOCKET /**/
1975#define HAS_SOCKETPAIR /**/
1976#define HAS_MSG_CTRUNC /**/
1977#define HAS_MSG_DONTROUTE /**/
1978#define HAS_MSG_OOB /**/
1979#define HAS_MSG_PEEK /**/
60a7d337 1980#define HAS_MSG_PROXY /**/
88fdc172 1981#define HAS_SCM_RIGHTS /**/
758a5d79 1982
88fdc172
SB
1983/* USE_STAT_BLOCKS:
1984 * This symbol is defined if this system has a stat structure declaring
1985 * st_blksize and st_blocks.
758a5d79 1986 */
88fdc172
SB
1987#ifndef USE_STAT_BLOCKS
1988#define USE_STAT_BLOCKS /**/
1989#endif
758a5d79 1990
88fdc172
SB
1991/* HAS_STRERROR:
1992 * This symbol, if defined, indicates that the strerror routine is
1993 * available to translate error numbers to strings. See the writeup
1994 * of Strerror() in this file before you try to define your own.
758a5d79 1995 */
88fdc172
SB
1996/* HAS_SYS_ERRLIST:
1997 * This symbol, if defined, indicates that the sys_errlist array is
1998 * available to translate error numbers to strings. The extern int
1999 * sys_nerr gives the size of that table.
c890dc6c 2000 */
88fdc172
SB
2001/* Strerror:
2002 * This preprocessor symbol is defined as a macro if strerror() is
2003 * not available to translate error numbers to strings but sys_errlist[]
2004 * array is there.
a3540c92 2005 */
88fdc172
SB
2006#define HAS_STRERROR /**/
2007#define HAS_SYS_ERRLIST /**/
2008#define Strerror(e) strerror(e)
a3540c92 2009
88fdc172
SB
2010/* HAS_STRTOUL:
2011 * This symbol, if defined, indicates that the strtoul routine is
2012 * available to provide conversion of strings to unsigned long.
ff935051 2013 */
88fdc172 2014#define HAS_STRTOUL /**/
ff935051 2015
88fdc172
SB
2016/* HAS_UNION_SEMUN:
2017 * This symbol, if defined, indicates that the union semun is
2018 * defined by including <sys/sem.h>. If not, the user code
2019 * probably needs to define it as:
2020 * union semun {
2021 * int val;
2022 * struct semid_ds *buf;
2023 * unsigned short *array;
2024 * }
ff935051 2025 */
88fdc172
SB
2026/* USE_SEMCTL_SEMUN:
2027 * This symbol, if defined, indicates that union semun is
2028 * used for semctl IPC_STAT.
ff935051 2029 */
88fdc172
SB
2030/* USE_SEMCTL_SEMID_DS:
2031 * This symbol, if defined, indicates that struct semid_ds * is
2032 * used for semctl IPC_STAT.
2033 */
2034/*#define HAS_UNION_SEMUN / **/
2035#define USE_SEMCTL_SEMUN /**/
2036#define USE_SEMCTL_SEMID_DS /**/
c890dc6c 2037
88fdc172
SB
2038/* HAS_VFORK:
2039 * This symbol, if defined, indicates that vfork() exists.
a7fea17f 2040 */
88fdc172 2041/*#define HAS_VFORK / **/
a7fea17f 2042
88fdc172
SB
2043/* Signal_t:
2044 * This symbol's value is either "void" or "int", corresponding to the
2045 * appropriate return type of a signal handler. Thus, you can declare
2046 * a signal handler using "Signal_t (*handler)()", and define the
2047 * handler using "Signal_t handler(sig)".
ff935051 2048 */
88fdc172 2049#define Signal_t void /* Signal handler's return type */
ff935051 2050
88fdc172
SB
2051/* Groups_t:
2052 * This symbol holds the type used for the second argument to
2053 * getgroups() and setgroups(). Usually, this is the same as
2054 * gidtype (gid_t) , but sometimes it isn't.
2055 * It can be int, ushort, gid_t, etc...
2056 * It may be necessary to include <sys/types.h> to get any
2057 * typedef'ed information. This is only required if you have
2058 * getgroups() or setgroups()..
4633a7c4 2059 */
88fdc172
SB
2060#if defined(HAS_GETGROUPS) || defined(HAS_SETGROUPS)
2061#define Groups_t gid_t /* Type for 2nd arg to [sg]etgroups() */
2062#endif
4633a7c4 2063
88fdc172
SB
2064/* I_GRP:
2065 * This symbol, if defined, indicates to the C program that it should
2066 * include <grp.h>.
49dabb45 2067 */
88fdc172
SB
2068/* GRPASSWD:
2069 * This symbol, if defined, indicates to the C program that struct group
2070 * in <grp.h> contains gr_passwd.
3813c136 2071 */
88fdc172
SB
2072#define I_GRP /**/
2073#define GRPASSWD /**/
3813c136 2074
88fdc172
SB
2075/* I_NDBM:
2076 * This symbol, if defined, indicates that <ndbm.h> exists and should
2077 * be included.
52c7d5b6 2078 */
88fdc172 2079#define I_NDBM /**/
52c7d5b6 2080
88fdc172
SB
2081/* I_NETDB:
2082 * This symbol, if defined, indicates that <netdb.h> exists and
2083 * should be included.
d103522a 2084 */
88fdc172 2085#define I_NETDB /**/
d103522a 2086
88fdc172
SB
2087/* I_PWD:
2088 * This symbol, if defined, indicates to the C program that it should
2089 * include <pwd.h>.
10bc17b6 2090 */
88fdc172
SB
2091/* PWQUOTA:
2092 * This symbol, if defined, indicates to the C program that struct passwd
2093 * contains pw_quota.
10bc17b6 2094 */
88fdc172
SB
2095/* PWAGE:
2096 * This symbol, if defined, indicates to the C program that struct passwd
2097 * contains pw_age.
10bc17b6 2098 */
88fdc172
SB
2099/* PWCHANGE:
2100 * This symbol, if defined, indicates to the C program that struct passwd
2101 * contains pw_change.
10bc17b6 2102 */
88fdc172
SB
2103/* PWCLASS:
2104 * This symbol, if defined, indicates to the C program that struct passwd
2105 * contains pw_class.
2106 */
2107/* PWEXPIRE:
2108 * This symbol, if defined, indicates to the C program that struct passwd
2109 * contains pw_expire.
2110 */
2111/* PWCOMMENT:
2112 * This symbol, if defined, indicates to the C program that struct passwd
2113 * contains pw_comment.
2114 */
2115/* PWGECOS:
2116 * This symbol, if defined, indicates to the C program that struct passwd
2117 * contains pw_gecos.
2118 */
2119/* PWPASSWD:
2120 * This symbol, if defined, indicates to the C program that struct passwd
2121 * contains pw_passwd.
2122 */
2123#define I_PWD /**/
60a7d337 2124/*#define PWQUOTA / **/
88fdc172
SB
2125/*#define PWAGE / **/
2126/*#define PWCHANGE / **/
2127/*#define PWCLASS / **/
2128/*#define PWEXPIRE / **/
60a7d337 2129/*#define PWCOMMENT / **/
88fdc172
SB
2130#define PWGECOS /**/
2131#define PWPASSWD /**/
10bc17b6 2132
88fdc172
SB
2133/* I_SYSUIO:
2134 * This symbol, if defined, indicates that <sys/uio.h> exists and
2135 * should be included.
10bc17b6 2136 */
88fdc172
SB
2137#define I_SYSUIO /**/
2138
2139/* I_STDARG:
2140 * This symbol, if defined, indicates that <stdarg.h> exists and should
2141 * be included.
10bc17b6 2142 */
88fdc172
SB
2143/* I_VARARGS:
2144 * This symbol, if defined, indicates to the C program that it should
2145 * include <varargs.h>.
2146 */
2147#define I_STDARG /**/
2148/*#define I_VARARGS / **/
10bc17b6 2149
88fdc172
SB
2150/* Free_t:
2151 * This variable contains the return type of free(). It is usually
2152 * void, but occasionally int.
dd64f1c3 2153 */
88fdc172
SB
2154/* Malloc_t:
2155 * This symbol is the type of pointer returned by malloc and realloc.
2156 */
2157#define Malloc_t void * /**/
2158#define Free_t void /**/
dd64f1c3 2159
88fdc172
SB
2160/* MYMALLOC:
2161 * This symbol, if defined, indicates that we're using our own malloc.
774d564b 2162 */
88fdc172 2163/*#define MYMALLOC / **/
774d564b 2164
88fdc172
SB
2165/* CAN_PROTOTYPE:
2166 * If defined, this macro indicates that the C compiler can handle
2167 * function prototypes.
d103522a 2168 */
88fdc172
SB
2169/* _:
2170 * This macro is used to declare function parameters for folks who want
2171 * to make declarations with prototypes using a different style than
2172 * the above macros. Use double parentheses. For example:
2173 *
2174 * int main _((int argc, char *argv[]));
2175 */
2176#define CAN_PROTOTYPE /**/
2177#ifdef CAN_PROTOTYPE
2178#define _(args) args
2179#else
2180#define _(args) ()
2181#endif
d103522a 2182
88fdc172
SB
2183/* SH_PATH:
2184 * This symbol contains the full pathname to the shell used on this
2185 * on this system to execute Bourne shell scripts. Usually, this will be
2186 * /bin/sh, though it's possible that some systems will have /bin/ksh,
2187 * /bin/pdksh, /bin/ash, /bin/bash, or even something such as
2188 * D:/bin/sh.exe.
d103522a 2189 */
88fdc172
SB
2190#define SH_PATH "/bin/sh" /**/
2191
2192/* SIG_NAME:
2193 * This symbol contains a list of signal names in order of
2194 * signal number. This is intended
2195 * to be used as a static array initialization, like this:
2196 * char *sig_name[] = { SIG_NAME };
2197 * The signals in the list are separated with commas, and each signal
2198 * is surrounded by double quotes. There is no leading SIG in the signal
2199 * name, i.e. SIGQUIT is known as "QUIT".
2200 * Gaps in the signal numbers (up to NSIG) are filled in with NUMnn,
2201 * etc., where nn is the actual signal number (e.g. NUM37).
2202 * The signal number for sig_name[i] is stored in sig_num[i].
2203 * The last element is 0 to terminate the list with a NULL. This
10305dfa
JH
2204 * corresponds to the 0 at the end of the sig_name_init list.
2205 * Note that this variable is initialized from the sig_name_init,
2206 * not from sig_name (which is unused).
af4c28eb 2207 */
88fdc172
SB
2208/* SIG_NUM:
2209 * This symbol contains a list of signal numbers, in the same order as the
2210 * SIG_NAME list. It is suitable for static array initialization, as in:
2211 * int sig_num[] = { SIG_NUM };
2212 * The signals in the list are separated with commas, and the indices
2213 * within that list and the SIG_NAME list match, so it's easy to compute
2214 * the signal name from a number or vice versa at the price of a small
2215 * dynamic linear lookup.
2216 * Duplicates are allowed, but are moved to the end of the list.
2217 * The signal number corresponding to sig_name[i] is sig_number[i].
2218 * if (i < NSIG) then sig_number[i] == i.
2219 * The last element is 0, corresponding to the 0 at the end of
10305dfa
JH
2220 * the sig_name_init list.
2221 * Note that this variable is initialized from the sig_num_init,
2222 * not from sig_num (which is unused).
af4c28eb 2223 */
88fdc172 2224/* SIG_SIZE:
4492b098
JH
2225 * This variable contains the number of elements of the SIG_NAME
2226 * and SIG_NUM arrays, excluding the final NULL entry.
78691af5 2227 */
60a7d337
RGS
2228#define SIG_NAME "ZERO", "HUP", "INT", "QUIT", "ILL", "TRAP", "ABRT", "BUS", "FPE", "KILL", "USR1", "SEGV", "USR2", "PIPE", "ALRM", "TERM", "STKFLT", "CHLD", "CONT", "STOP", "TSTP", "TTIN", "TTOU", "URG", "XCPU", "XFSZ", "VTALRM", "PROF", "WINCH", "IO", "PWR", "SYS", "RTMIN", "NUM33", "NUM34", "NUM35", "NUM36", "NUM37", "NUM38", "NUM39", "NUM40", "NUM41", "NUM42", "NUM43", "NUM44", "NUM45", "NUM46", "NUM47", "NUM48", "NUM49", "NUM50", "NUM51", "NUM52", "NUM53", "NUM54", "NUM55", "NUM56", "NUM57", "NUM58", "NUM59", "NUM60", "NUM61", "NUM62", "RTMAX", "IOT", "CLD", "POLL", "UNUSED", 0 /**/
2229#define SIG_NUM 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 6, 17, 29, 31, 0 /**/
2230#define SIG_SIZE 68 /**/
af4c28eb 2231
88fdc172
SB
2232/* STDCHAR:
2233 * This symbol is defined to be the type of char used in stdio.h.
2234 * It has the values "unsigned char" or "char".
ff935051 2235 */
10305dfa 2236#define STDCHAR char /**/
ff935051 2237
88fdc172
SB
2238/* VOIDFLAGS:
2239 * This symbol indicates how much support of the void type is given by this
2240 * compiler. What various bits mean:
2241 *
2242 * 1 = supports declaration of void
2243 * 2 = supports arrays of pointers to functions returning void
2244 * 4 = supports comparisons between pointers to void functions and
2245 * addresses of void functions
2246 * 8 = suports declaration of generic void pointers
2247 *
2248 * The package designer should define VOIDUSED to indicate the requirements
2249 * of the package. This can be done either by #defining VOIDUSED before
2250 * including config.h, or by defining defvoidused in Myinit.U. If the
2251 * latter approach is taken, only those flags will be tested. If the
2252 * level of void support necessary is not present, defines void to int.
4e0554ec 2253 */
88fdc172
SB
2254#ifndef VOIDUSED
2255#define VOIDUSED 15
2256#endif
2257#define VOIDFLAGS 15
2258#if (VOIDFLAGS & VOIDUSED) != VOIDUSED
2259#define void int /* is void to be avoided? */
2260#define M_VOID /* Xenix strikes again */
2261#endif
4e0554ec 2262
88fdc172
SB
2263/* USE_CROSS_COMPILE:
2264 * This symbol, if defined, indicates that Perl is being cross-compiled.
10bc17b6 2265 */
88fdc172
SB
2266/* PERL_TARGETARCH:
2267 * This symbol, if defined, indicates the target architecture
2268 * Perl has been cross-compiled to. Undefined if not a cross-compile.
10bc17b6 2269 */
88fdc172
SB
2270#ifndef USE_CROSS_COMPILE
2271/*#define USE_CROSS_COMPILE / **/
2272#define PERL_TARGETARCH "" /**/
2273#endif
10bc17b6 2274
88fdc172
SB
2275/* HAS_ATOLF:
2276 * This symbol, if defined, indicates that the atolf routine is
2277 * available to convert strings into long doubles.
ff935051 2278 */
88fdc172 2279/*#define HAS_ATOLF / **/
ff935051 2280
88fdc172
SB
2281/* HAS_ATOLL:
2282 * This symbol, if defined, indicates that the atoll routine is
2283 * available to convert strings into long longs.
ff935051 2284 */
60a7d337 2285#define HAS_ATOLL /**/
ff935051 2286
88fdc172
SB
2287/* HAS__FWALK:
2288 * This symbol, if defined, indicates that the _fwalk system call is
2289 * available to apply a function to all the file handles.
693762b4 2290 */
88fdc172 2291/*#define HAS__FWALK / **/
693762b4 2292
5c567d7d
JH
2293/* HAS_AINTL:
2294 * This symbol, if defined, indicates that the aintl routine is
2295 * available. If copysignl is also present we can emulate modfl.
2296 */
2297/*#define HAS_AINTL / **/
2298
88fdc172
SB
2299/* HAS_CLASS:
2300 * This symbol, if defined, indicates that the class routine is
2301 * available to classify doubles. Available for example in AIX.
2302 * The returned values are defined in <float.h> and are:
2303 *
2304 * FP_PLUS_NORM Positive normalized, nonzero
2305 * FP_MINUS_NORM Negative normalized, nonzero
2306 * FP_PLUS_DENORM Positive denormalized, nonzero
2307 * FP_MINUS_DENORM Negative denormalized, nonzero
2308 * FP_PLUS_ZERO +0.0
2309 * FP_MINUS_ZERO -0.0
2310 * FP_PLUS_INF +INF
2311 * FP_MINUS_INF -INF
2312 * FP_NANS Signaling Not a Number (NaNS)
2313 * FP_NANQ Quiet Not a Number (NaNQ)
693762b4 2314 */
88fdc172 2315/*#define HAS_CLASS / **/
693762b4 2316
88fdc172
SB
2317/* HAS_STRUCT_CMSGHDR:
2318 * This symbol, if defined, indicates that the struct cmsghdr
2319 * is supported.
e5c9fcd0 2320 */
88fdc172 2321#define HAS_STRUCT_CMSGHDR /**/
e5c9fcd0 2322
5c567d7d
JH
2323/* HAS_COPYSIGNL:
2324 * This symbol, if defined, indicates that the copysignl routine is
2325 * available. If aintl is also present we can emulate modfl.
2326 */
2327#define HAS_COPYSIGNL /**/
2328
88fdc172
SB
2329/* HAS_DBMINIT_PROTO:
2330 * This symbol, if defined, indicates that the system provides
2331 * a prototype for the dbminit() function. Otherwise, it is up
2332 * to the program to supply one. A good guess is
2333 * extern int dbminit(char *);
ff935051 2334 */
88fdc172 2335/*#define HAS_DBMINIT_PROTO / **/
ff935051 2336
88fdc172
SB
2337/* HAS_DIRFD:
2338 * This manifest constant lets the C program know that dirfd
2339 * is available.
0c0643d0 2340 */
88fdc172 2341#define HAS_DIRFD /**/
0c0643d0 2342
88fdc172
SB
2343/* DLSYM_NEEDS_UNDERSCORE:
2344 * This symbol, if defined, indicates that we need to prepend an
2345 * underscore to the symbol name before calling dlsym(). This only
2346 * makes sense if you *have* dlsym, which we will presume is the
2347 * case if you're using dl_dlopen.xs.
e5c9fcd0 2348 */
88fdc172 2349/*#define DLSYM_NEEDS_UNDERSCORE / **/
e5c9fcd0 2350
4d54317a
JH
2351/* HAS_FAST_STDIO:
2352 * This symbol, if defined, indicates that the "fast stdio"
2353 * is available to manipulate the stdio buffers directly.
2354 */
2355#define HAS_FAST_STDIO /**/
2356
88fdc172
SB
2357/* HAS_FCHDIR:
2358 * This symbol, if defined, indicates that the fchdir routine is
2359 * available to change directory using a file descriptor.
a7fea17f 2360 */
88fdc172
SB
2361#define HAS_FCHDIR /**/
2362
2363/* FCNTL_CAN_LOCK:
2364 * This symbol, if defined, indicates that fcntl() can be used
2365 * for file locking. Normally on Unix systems this is defined.
2366 * It may be undefined on VMS.
a7fea17f 2367 */
88fdc172 2368#define FCNTL_CAN_LOCK /**/
a7fea17f 2369
88fdc172
SB
2370/* HAS_FINITE:
2371 * This symbol, if defined, indicates that the finite routine is
2372 * available to check whether a double is finite (non-infinity non-NaN).
693762b4 2373 */
88fdc172
SB
2374#define HAS_FINITE /**/
2375
2376/* HAS_FINITEL:
2377 * This symbol, if defined, indicates that the finitel routine is
2378 * available to check whether a long double is finite
2379 * (non-infinity non-NaN).
693762b4 2380 */
88fdc172 2381#define HAS_FINITEL /**/
693762b4 2382
88fdc172
SB
2383/* HAS_FLOCK_PROTO:
2384 * This symbol, if defined, indicates that the system provides
2385 * a prototype for the flock() function. Otherwise, it is up
2386 * to the program to supply one. A good guess is
2387 * extern int flock(int, int);
ff935051 2388 */
60a7d337 2389#define HAS_FLOCK_PROTO /**/
ff935051 2390
88fdc172
SB
2391/* HAS_FP_CLASS:
2392 * This symbol, if defined, indicates that the fp_class routine is
2393 * available to classify doubles. Available for example in Digital UNIX.
2394 * The returned values are defined in <math.h> and are:
2395 *
2396 * FP_SNAN Signaling NaN (Not-a-Number)
2397 * FP_QNAN Quiet NaN (Not-a-Number)
2398 * FP_POS_INF +infinity
2399 * FP_NEG_INF -infinity
2400 * FP_POS_NORM Positive normalized
2401 * FP_NEG_NORM Negative normalized
2402 * FP_POS_DENORM Positive denormalized
2403 * FP_NEG_DENORM Negative denormalized
2404 * FP_POS_ZERO +0.0 (positive zero)
2405 * FP_NEG_ZERO -0.0 (negative zero)
3813c136 2406 */
60a7d337 2407/*#define HAS_FP_CLASS / **/
3813c136 2408
88fdc172
SB
2409/* HAS_FPCLASS:
2410 * This symbol, if defined, indicates that the fpclass routine is
2411 * available to classify doubles. Available for example in Solaris/SVR4.
2412 * The returned values are defined in <ieeefp.h> and are:
2413 *
2414 * FP_SNAN signaling NaN
2415 * FP_QNAN quiet NaN
2416 * FP_NINF negative infinity
2417 * FP_PINF positive infinity
2418 * FP_NDENORM negative denormalized non-zero
2419 * FP_PDENORM positive denormalized non-zero
2420 * FP_NZERO negative zero
2421 * FP_PZERO positive zero
2422 * FP_NNORM negative normalized non-zero
2423 * FP_PNORM positive normalized non-zero
327c3667 2424 */
88fdc172 2425/*#define HAS_FPCLASS / **/
327c3667 2426
88fdc172
SB
2427/* HAS_FPCLASSIFY:
2428 * This symbol, if defined, indicates that the fpclassify routine is
2429 * available to classify doubles. Available for example in HP-UX.
2430 * The returned values are defined in <math.h> and are
2431 *
2432 * FP_NORMAL Normalized
2433 * FP_ZERO Zero
2434 * FP_INFINITE Infinity
2435 * FP_SUBNORMAL Denormalized
2436 * FP_NAN NaN
2437 *
10bc17b6 2438 */
88fdc172
SB
2439/*#define HAS_FPCLASSIFY / **/
2440
2441/* HAS_FPCLASSL:
2442 * This symbol, if defined, indicates that the fpclassl routine is
2443 * available to classify long doubles. Available for example in IRIX.
2444 * The returned values are defined in <ieeefp.h> and are:
2445 *
2446 * FP_SNAN signaling NaN
2447 * FP_QNAN quiet NaN
2448 * FP_NINF negative infinity
2449 * FP_PINF positive infinity
2450 * FP_NDENORM negative denormalized non-zero
2451 * FP_PDENORM positive denormalized non-zero
2452 * FP_NZERO negative zero
2453 * FP_PZERO positive zero
2454 * FP_NNORM negative normalized non-zero
2455 * FP_PNORM positive normalized non-zero
10bc17b6 2456 */
88fdc172 2457/*#define HAS_FPCLASSL / **/
10bc17b6 2458
88fdc172
SB
2459/* HAS_FPOS64_T:
2460 * This symbol will be defined if the C compiler supports fpos64_t.
10bc17b6 2461 */
88fdc172
SB
2462/*#define HAS_FPOS64_T / **/
2463
2464/* HAS_FREXPL:
2465 * This symbol, if defined, indicates that the frexpl routine is
2466 * available to break a long double floating-point number into
2467 * a normalized fraction and an integral power of 2.
10bc17b6 2468 */
88fdc172 2469#define HAS_FREXPL /**/
10bc17b6 2470
88fdc172
SB
2471/* HAS_STRUCT_FS_DATA:
2472 * This symbol, if defined, indicates that the struct fs_data
2473 * to do statfs() is supported.
10bc17b6 2474 */
88fdc172
SB
2475/*#define HAS_STRUCT_FS_DATA / **/
2476
2477/* HAS_FSEEKO:
2478 * This symbol, if defined, indicates that the fseeko routine is
2479 * available to fseek beyond 32 bits (useful for ILP32 hosts).
10bc17b6 2480 */
10305dfa 2481#define HAS_FSEEKO /**/
10bc17b6 2482
88fdc172
SB
2483/* HAS_FSTATFS:
2484 * This symbol, if defined, indicates that the fstatfs routine is
2485 * available to stat filesystems by file descriptors.
e5c9fcd0 2486 */
88fdc172 2487#define HAS_FSTATFS /**/
e5c9fcd0 2488
88fdc172
SB
2489/* HAS_FSYNC:
2490 * This symbol, if defined, indicates that the fsync routine is
2491 * available to write a file's modified data and attributes to
2492 * permanent storage.
ff935051 2493 */
88fdc172 2494#define HAS_FSYNC /**/
ff935051 2495
88fdc172
SB
2496/* HAS_FTELLO:
2497 * This symbol, if defined, indicates that the ftello routine is
2498 * available to ftell beyond 32 bits (useful for ILP32 hosts).
ff935051 2499 */
10305dfa 2500#define HAS_FTELLO /**/
ff935051 2501
88fdc172
SB
2502/* HAS_GETCWD:
2503 * This symbol, if defined, indicates that the getcwd routine is
2504 * available to get the current working directory.
10bc17b6 2505 */
88fdc172
SB
2506#define HAS_GETCWD /**/
2507
2508/* HAS_GETESPWNAM:
2509 * This symbol, if defined, indicates that the getespwnam system call is
2510 * available to retrieve enchanced (shadow) password entries by name.
10bc17b6 2511 */
88fdc172 2512/*#define HAS_GETESPWNAM / **/
10bc17b6 2513
88fdc172
SB
2514/* HAS_GETFSSTAT:
2515 * This symbol, if defined, indicates that the getfsstat routine is
2516 * available to stat filesystems in bulk.
693762b4 2517 */
60a7d337 2518/*#define HAS_GETFSSTAT / **/
88fdc172
SB
2519
2520/* HAS_GETITIMER:
2521 * This symbol, if defined, indicates that the getitimer routine is
2522 * available to return interval timers.
693762b4 2523 */
88fdc172 2524#define HAS_GETITIMER /**/
693762b4 2525
88fdc172
SB
2526/* HAS_GETMNT:
2527 * This symbol, if defined, indicates that the getmnt routine is
2528 * available to get filesystem mount info by filename.
10bc17b6 2529 */
88fdc172
SB
2530/*#define HAS_GETMNT / **/
2531
2532/* HAS_GETMNTENT:
2533 * This symbol, if defined, indicates that the getmntent routine is
2534 * available to iterate through mounted file systems to get their info.
10bc17b6 2535 */
60a7d337 2536#define HAS_GETMNTENT /**/
10bc17b6 2537
88fdc172
SB
2538/* HAS_GETPRPWNAM:
2539 * This symbol, if defined, indicates that the getprpwnam system call is
2540 * available to retrieve protected (shadow) password entries by name.
ff935051 2541 */
88fdc172
SB
2542/*#define HAS_GETPRPWNAM / **/
2543
2544/* HAS_GETSPNAM:
2545 * This symbol, if defined, indicates that the getspnam system call is
2546 * available to retrieve SysV shadow password entries by name.
2547 */
60a7d337 2548#define HAS_GETSPNAM /**/
88fdc172 2549
ff935051
JH
2550/* HAS_HASMNTOPT:
2551 * This symbol, if defined, indicates that the hasmntopt routine is
2552 * available to query the mount options of file systems.
2553 */
60a7d337 2554#define HAS_HASMNTOPT /**/
327c3667 2555
5c567d7d
JH
2556/* HAS_ILOGBL:
2557 * This symbol, if defined, indicates that the ilogbl routine is
2558 * available. If scalbnl is also present we can emulate frexpl.
2559 */
2560#define HAS_ILOGBL /**/
2561
fe749a9f
JH
2562/* HAS_INT64_T:
2563 * This symbol will defined if the C compiler supports int64_t.
2564 * Usually the <inttypes.h> needs to be included, but sometimes
2565 * <sys/types.h> is enough.
2566 */
44b94491 2567#define HAS_INT64_T /**/
fe749a9f 2568
758a5d79
JH
2569/* HAS_ISFINITE:
2570 * This symbol, if defined, indicates that the isfinite routine is
2571 * available to check whether a double is finite (non-infinity non-NaN).
2572 */
88fdc172 2573/*#define HAS_ISFINITE / **/
758a5d79
JH
2574
2575/* HAS_ISINF:
2576 * This symbol, if defined, indicates that the isinf routine is
2577 * available to check whether a double is an infinity.
2578 */
60a7d337 2579#define HAS_ISINF /**/
758a5d79 2580
a3540c92
JH
2581/* HAS_ISNAN:
2582 * This symbol, if defined, indicates that the isnan routine is
2583 * available to check whether a double is a NaN.
2584 */
2585#define HAS_ISNAN /**/
2586
2587/* HAS_ISNANL:
2588 * This symbol, if defined, indicates that the isnanl routine is
2589 * available to check whether a long double is a NaN.
2590 */
88fdc172 2591#define HAS_ISNANL /**/
b6592ff0 2592
ff935051
JH
2593/* HAS_LDBL_DIG:
2594 * This symbol, if defined, indicates that this system's <float.h>
2595 * or <limits.h> defines the symbol LDBL_DIG, which is the number
2596 * of significant digits in a long double precision number. Unlike
2597 * for DBL_DIG, there's no good guess for LDBL_DIG if it is undefined.
2598 */
2599#define HAS_LDBL_DIG /* */
2600
792d8dab
JH
2601/* HAS_MADVISE:
2602 * This symbol, if defined, indicates that the madvise system call is
2603 * available to map a file into memory.
2604 */
2605#define HAS_MADVISE /**/
2606
fe749a9f
JH
2607/* HAS_MKDTEMP:
2608 * This symbol, if defined, indicates that the mkdtemp routine is
2609 * available to exclusively create a uniquely named temporary directory.
2610 */
10305dfa 2611#define HAS_MKDTEMP /**/
fe749a9f 2612
fe749a9f
JH
2613/* HAS_MKSTEMPS:
2614 * This symbol, if defined, indicates that the mkstemps routine is
2615 * available to excluslvely create and open a uniquely named
2616 * (with a suffix) temporary file.
2617 */
60a7d337 2618/*#define HAS_MKSTEMPS / **/
fe749a9f 2619
3813c136
JH
2620/* HAS_MODFL:
2621 * This symbol, if defined, indicates that the modfl routine is
2622 * available to split a long double x into a fractional part f and
2623 * an integer part i such that |f| < 1.0 and (f + i) = x.
2624 */
44b94491
MB
2625/* HAS_MODFL_PROTO:
2626 * This symbol, if defined, indicates that the system provides
2627 * a prototype for the modfl() function. Otherwise, it is up
2628 * to the program to supply one.
2629 */
e67aeab1
JH
2630/* HAS_MODFL_POW32_BUG:
2631 * This symbol, if defined, indicates that the modfl routine is
2632 * broken for long doubles >= pow(2, 32).
2633 * For example from 4294967303.150000 one would get 4294967302.000000
2634 * and 1.150000. The bug has been seen in certain versions of glibc,
2635 * release 2.2.2 is known to be okay.
2636 */
10305dfa 2637#define HAS_MODFL /**/
44b94491 2638/*#define HAS_MODFL_PROTO / **/
e67aeab1 2639/*#define HAS_MODFL_POW32_BUG / **/
3813c136 2640
fe749a9f
JH
2641/* HAS_MPROTECT:
2642 * This symbol, if defined, indicates that the mprotect system call is
2643 * available to modify the access protection of a memory mapped file.
2644 */
2645#define HAS_MPROTECT /**/
88fdc172
SB
2646
2647/* HAS_STRUCT_MSGHDR:
2648 * This symbol, if defined, indicates that the struct msghdr
2649 * is supported.
ff935051 2650 */
88fdc172
SB
2651#define HAS_STRUCT_MSGHDR /**/
2652
88fdc172
SB
2653/* HAS_NL_LANGINFO:
2654 * This symbol, if defined, indicates that the nl_langinfo routine is
2655 * available to return local data. You will also need <langinfo.h>
2656 * and therefore I_LANGINFO.
10bc17b6 2657 */
88fdc172
SB
2658#define HAS_NL_LANGINFO /**/
2659
2660/* HAS_OFF64_T:
2661 * This symbol will be defined if the C compiler supports off64_t.
10bc17b6 2662 */
88fdc172 2663/*#define HAS_OFF64_T / **/
10bc17b6 2664
88fdc172
SB
2665/* HAS_PROCSELFEXE:
2666 * This symbol is defined if PROCSELFEXE_PATH is a symlink
2667 * to the absolute pathname of the executing program.
10bc17b6 2668 */
88fdc172
SB
2669/* PROCSELFEXE_PATH:
2670 * If HAS_PROCSELFEXE is defined this symbol is the filename
2671 * of the symbolic link pointing to the absolute pathname of
2672 * the executing program.
10bc17b6 2673 */
60a7d337 2674#define HAS_PROCSELFEXE /**/
88fdc172 2675#if defined(HAS_PROCSELFEXE) && !defined(PROCSELFEXE_PATH)
60a7d337 2676#define PROCSELFEXE_PATH "/proc/self/exe" /**/
88fdc172 2677#endif
10bc17b6 2678
505656d3
JH
2679/* HAS_PTHREAD_ATTR_SETSCOPE:
2680 * This symbol, if defined, indicates that the pthread_attr_setscope
2681 * system call is available to set the contention scope attribute of
2682 * a thread attribute object.
2683 */
60a7d337 2684#define HAS_PTHREAD_ATTR_SETSCOPE /**/
505656d3 2685
4e0554ec
JH
2686/* HAS_READV:
2687 * This symbol, if defined, indicates that the readv routine is
2688 * available to do gather reads. You will also need <sys/uio.h>
2689 * and there I_SYSUIO.
2690 */
2691#define HAS_READV /**/
2692
2693/* HAS_RECVMSG:
2694 * This symbol, if defined, indicates that the recvmsg routine is
2695 * available to send structured socket messages.
2696 */
2697#define HAS_RECVMSG /**/
2698
a7fea17f
JH
2699/* HAS_SBRK_PROTO:
2700 * This symbol, if defined, indicates that the system provides
2701 * a prototype for the sbrk() function. Otherwise, it is up
2702 * to the program to supply one. Good guesses are
c68a00c0
JH
2703 * extern void* sbrk(int);
2704 * extern void* sbrk(size_t);
a7fea17f
JH
2705 */
2706#define HAS_SBRK_PROTO /**/
2707
5c567d7d
JH
2708/* HAS_SCALBNL:
2709 * This symbol, if defined, indicates that the scalbnl routine is
2710 * available. If ilogbl is also present we can emulate frexpl.
2711 */
2712#define HAS_SCALBNL /**/
2713
4e0554ec
JH
2714/* HAS_SENDMSG:
2715 * This symbol, if defined, indicates that the sendmsg routine is
2716 * available to send structured socket messages.
2717 */
2718#define HAS_SENDMSG /**/
2719
4e0554ec
JH
2720/* HAS_SETITIMER:
2721 * This symbol, if defined, indicates that the setitimer routine is
2722 * available to set interval timers.
2723 */
2724#define HAS_SETITIMER /**/
2725
af960fef
JH
2726/* HAS_SETPROCTITLE:
2727 * This symbol, if defined, indicates that the setproctitle routine is
2728 * available to set process title.
2729 */
2730/*#define HAS_SETPROCTITLE / **/
2731
ff935051
JH
2732/* USE_SFIO:
2733 * This symbol, if defined, indicates that sfio should
2734 * be used.
bfb7748a 2735 */
ff935051 2736/*#define USE_SFIO / **/
9003a523 2737
88fdc172
SB
2738/* HAS_SIGPROCMASK:
2739 * This symbol, if defined, indicates that the sigprocmask
2740 * system call is available to examine or change the signal mask
2741 * of the calling process.
ff935051 2742 */
88fdc172 2743#define HAS_SIGPROCMASK /**/
fbfd4aab 2744
88fdc172
SB
2745/* HAS_SOCKATMARK:
2746 * This symbol, if defined, indicates that the sockatmark routine is
2747 * available to test whether a socket is at the out-of-band mark.
ff935051 2748 */
88fdc172
SB
2749#define HAS_SOCKATMARK /**/
2750
2751/* HAS_SOCKATMARK_PROTO:
2752 * This symbol, if defined, indicates that the system provides
2753 * a prototype for the sockatmark() function. Otherwise, it is up
2754 * to the program to supply one. A good guess is
2755 * extern int sockatmark(int);
2756 */
2757/*#define HAS_SOCKATMARK_PROTO / **/
d71b2b6b 2758
6b356c8e
JH
2759/* HAS_SOCKS5_INIT:
2760 * This symbol, if defined, indicates that the socks5_init routine is
2761 * available to initialize SOCKS 5.
2762 */
2763/*#define HAS_SOCKS5_INIT / **/
2764
ff935051
JH
2765/* HAS_SQRTL:
2766 * This symbol, if defined, indicates that the sqrtl routine is
2767 * available to do long double square roots.
dfe9444c 2768 */
88fdc172 2769#define HAS_SQRTL /**/
dfe9444c 2770
88fdc172
SB
2771/* HAS_SETRESGID_PROTO:
2772 * This symbol, if defined, indicates that the system provides
2773 * a prototype for the setresgid() function. Otherwise, it is up
2774 * to the program to supply one. Good guesses are
2775 * extern int setresgid(uid_t ruid, uid_t euid, uid_t suid);
10bc17b6 2776 */
88fdc172 2777/*#define HAS_SETRESGID_PROTO / **/
10bc17b6 2778
88fdc172
SB
2779/* HAS_SETRESUID_PROTO:
2780 * This symbol, if defined, indicates that the system provides
2781 * a prototype for the setresuid() function. Otherwise, it is up
2782 * to the program to supply one. Good guesses are
2783 * extern int setresuid(uid_t ruid, uid_t euid, uid_t suid);
86959918 2784 */
88fdc172 2785/*#define HAS_SETRESUID_PROTO / **/
86959918 2786
ff935051
JH
2787/* HAS_STRUCT_STATFS_F_FLAGS:
2788 * This symbol, if defined, indicates that the struct statfs
2789 * does have the f_flags member containing the mount flags of
2790 * the filesystem containing the file.
2791 * This kind of struct statfs is coming from <sys/mount.h> (BSD 4.3),
2792 * not from <sys/statfs.h> (SYSV). Older BSDs (like Ultrix) do not
2793 * have statfs() and struct statfs, they have ustat() and getmnt()
2794 * with struct ustat and struct fs_data.
ad27e871 2795 */
60a7d337 2796/*#define HAS_STRUCT_STATFS_F_FLAGS / **/
ad27e871 2797
ff935051
JH
2798/* HAS_STRUCT_STATFS:
2799 * This symbol, if defined, indicates that the struct statfs
2800 * to do statfs() is supported.
327c3667 2801 */
ff935051 2802#define HAS_STRUCT_STATFS /**/
327c3667 2803
ff935051
JH
2804/* HAS_FSTATVFS:
2805 * This symbol, if defined, indicates that the fstatvfs routine is
0545a864
JH
2806 * available to stat filesystems by file descriptors.
2807 */
ff935051 2808#define HAS_FSTATVFS /**/
327c3667 2809
88fdc172
SB
2810/* HAS_STRFTIME:
2811 * This symbol, if defined, indicates that the strftime routine is
2812 * available to do time formatting.
10bc17b6 2813 */
88fdc172 2814#define HAS_STRFTIME /**/
10bc17b6 2815
54b118e4
MB
2816/* HAS_STRLCAT
2817 * This symbol, if defined, indicates that the strlcat routine is
2818 * available to do string concatenation.
2819 */
2820/*#define HAS_STRLCAT /**/
2821
2822/* HAS_STRLCPY:
2823 * This symbol, if defined, indicates that the strlcpy routine is
2824 * available to do string copying.
2825 */
2826/*#define HAS_STRLCPY /**/
2827
ff935051
JH
2828/* HAS_STRTOLD:
2829 * This symbol, if defined, indicates that the strtold routine is
2830 * available to convert strings to long doubles.
ff49bff8 2831 */
10305dfa 2832#define HAS_STRTOLD /**/
ff49bff8 2833
76d49b1c
JH
2834/* HAS_STRTOLL:
2835 * This symbol, if defined, indicates that the strtoll routine is
2836 * available to convert strings to long longs.
2837 */
60a7d337 2838#define HAS_STRTOLL /**/
76d49b1c 2839
d0e6d399
NC
2840/* HAS_STRTOQ:
2841 * This symbol, if defined, indicates that the strtoq routine is
2842 * available to convert strings to long longs (quads).
2843 */
60a7d337 2844#define HAS_STRTOQ /**/
d0e6d399 2845
ff935051
JH
2846/* HAS_STRTOULL:
2847 * This symbol, if defined, indicates that the strtoull routine is
2848 * available to convert strings to unsigned long longs.
ad27e871 2849 */
60a7d337 2850#define HAS_STRTOULL /**/
ad27e871 2851
ff935051
JH
2852/* HAS_STRTOUQ:
2853 * This symbol, if defined, indicates that the strtouq routine is
2854 * available to convert strings to unsigned long longs (quads).
ff49bff8 2855 */
60a7d337 2856#define HAS_STRTOUQ /**/
ff49bff8 2857
88fdc172
SB
2858/* HAS_SYSCALL_PROTO:
2859 * This symbol, if defined, indicates that the system provides
2860 * a prototype for the syscall() function. Otherwise, it is up
2861 * to the program to supply one. Good guesses are
2862 * extern int syscall(int, ...);
2863 * extern int syscall(long, ...);
2864 */
10305dfa 2865#define HAS_SYSCALL_PROTO /**/
88fdc172 2866
ff49bff8
JH
2867/* HAS_TELLDIR_PROTO:
2868 * This symbol, if defined, indicates that the system provides
2869 * a prototype for the telldir() function. Otherwise, it is up
2870 * to the program to supply one. A good guess is
c68a00c0 2871 * extern long telldir(DIR*);
ff49bff8 2872 */
11dc3f68 2873#define HAS_TELLDIR_PROTO /**/
ff49bff8 2874
88fdc172
SB
2875/* U32_ALIGNMENT_REQUIRED:
2876 * This symbol, if defined, indicates that you must access
2877 * character data through U32-aligned pointers.
10bc17b6 2878 */
88fdc172 2879#ifndef U32_ALIGNMENT_REQUIRED
60a7d337 2880/*#define U32_ALIGNMENT_REQUIRED / **/
88fdc172 2881#endif
10bc17b6 2882
4e0554ec
JH
2883/* HAS_UALARM:
2884 * This symbol, if defined, indicates that the ualarm routine is
2885 * available to do alarms with microsecond granularity.
2886 */
2887#define HAS_UALARM /**/
2888
758a5d79
JH
2889/* HAS_UNORDERED:
2890 * This symbol, if defined, indicates that the unordered routine is
2891 * available to check whether two doubles are unordered
2892 * (effectively: whether either of them is NaN)
2893 */
60a7d337 2894/*#define HAS_UNORDERED / **/
758a5d79 2895
88fdc172
SB
2896/* HAS_USLEEP_PROTO:
2897 * This symbol, if defined, indicates that the system provides
2898 * a prototype for the usleep() function. Otherwise, it is up
2899 * to the program to supply one. A good guess is
2900 * extern int usleep(useconds_t);
ff935051 2901 */
10305dfa 2902#define HAS_USLEEP_PROTO /**/
88fdc172
SB
2903
2904/* HAS_USTAT:
2905 * This symbol, if defined, indicates that the ustat system call is
2906 * available to query file system statistics by dev_t.
ff935051 2907 */
88fdc172 2908#define HAS_USTAT /**/
ff935051 2909
4e0554ec
JH
2910/* HAS_WRITEV:
2911 * This symbol, if defined, indicates that the writev routine is
2912 * available to do scatter writes.
2913 */
2914#define HAS_WRITEV /**/
2915
dfe9444c
AD
2916/* USE_DYNAMIC_LOADING:
2917 * This symbol, if defined, indicates that dynamic loading of
2918 * some sort is available.
2919 */
2920#define USE_DYNAMIC_LOADING /**/
2921
a71cd7cd
JH
2922/* FFLUSH_NULL:
2923 * This symbol, if defined, tells that fflush(NULL) does flush
2924 * all pending stdio output.
2925 */
2926/* FFLUSH_ALL:
2927 * This symbol, if defined, tells that to flush
2928 * all pending stdio output one must loop through all
2929 * the stdio file handles stored in an array and fflush them.
a32a45b6
JH
2930 * Note that if fflushNULL is defined, fflushall will not
2931 * even be probed for and will be left undefined.
a71cd7cd 2932 */
cb5953d6 2933#define FFLUSH_NULL /**/
11dc3f68 2934/*#define FFLUSH_ALL / **/
a71cd7cd 2935
88fdc172
SB
2936/* I_CRYPT:
2937 * This symbol, if defined, indicates that <crypt.h> exists and
2938 * should be included.
ff935051 2939 */
88fdc172 2940#define I_CRYPT /**/
ff935051 2941
dfe9444c
AD
2942/* DB_Prefix_t:
2943 * This symbol contains the type of the prefix structure element
2944 * in the <db.h> header file. In older versions of DB, it was
2945 * int, while in newer ones it is u_int32_t.
2946 */
2947/* DB_Hash_t:
2948 * This symbol contains the type of the prefix structure element
2949 * in the <db.h> header file. In older versions of DB, it was
2950 * int, while in newer ones it is size_t.
2951 */
eef837ea
JH
2952/* DB_VERSION_MAJOR_CFG:
2953 * This symbol, if defined, defines the major version number of
2954 * Berkeley DB found in the <db.h> header when Perl was configured.
2955 */
2956/* DB_VERSION_MINOR_CFG:
2957 * This symbol, if defined, defines the minor version number of
2958 * Berkeley DB found in the <db.h> header when Perl was configured.
2959 * For DB version 1 this is always 0.
2960 */
2961/* DB_VERSION_PATCH_CFG:
2962 * This symbol, if defined, defines the patch version number of
2963 * Berkeley DB found in the <db.h> header when Perl was configured.
2964 * For DB version 1 this is always 0.
2965 */
0617aed7
JH
2966#define DB_Hash_t u_int32_t /**/
2967#define DB_Prefix_t size_t /**/
60a7d337
RGS
2968#define DB_VERSION_MAJOR_CFG /**/
2969#define DB_VERSION_MINOR_CFG /**/
2970#define DB_VERSION_PATCH_CFG /**/
dfe9444c 2971
88fdc172
SB
2972/* I_FP:
2973 * This symbol, if defined, indicates that <fp.h> exists and
758a5d79
JH
2974 * should be included.
2975 */
60a7d337 2976/*#define I_FP / **/
758a5d79 2977
88fdc172
SB
2978/* I_FP_CLASS:
2979 * This symbol, if defined, indicates that <fp_class.h> exists and
2980 * should be included.
ff935051 2981 */
60a7d337 2982/*#define I_FP_CLASS / **/
ff935051 2983
52c7d5b6
JH
2984/* I_IEEEFP:
2985 * This symbol, if defined, indicates that <ieeefp.h> exists and
2986 * should be included.
2987 */
2988/*#define I_IEEEFP / **/
2989
327c3667
GS
2990/* I_INTTYPES:
2991 * This symbol, if defined, indicates to the C program that it should
2992 * include <inttypes.h>.
2993 */
44b94491 2994#define I_INTTYPES /**/
ff935051 2995
88fdc172
SB
2996/* I_LANGINFO:
2997 * This symbol, if defined, indicates that <langinfo.h> exists and
2998 * should be included.
2999 */
3000#define I_LANGINFO /**/
3001
6b356c8e
JH
3002/* I_LIBUTIL:
3003 * This symbol, if defined, indicates that <libutil.h> exists and
3004 * should be included.
3005 */
3006/*#define I_LIBUTIL / **/
3007
ff49bff8
JH
3008/* I_MNTENT:
3009 * This symbol, if defined, indicates that <mntent.h> exists and
3010 * should be included.
3011 */
60a7d337 3012#define I_MNTENT /**/
ff49bff8 3013
a71cd7cd
JH
3014/* I_NETINET_TCP:
3015 * This symbol, if defined, indicates to the C program that it should
3016 * include <netinet/tcp.h>.
3017 */
ff935051
JH
3018#define I_NETINET_TCP /**/
3019
3020/* I_POLL:
3021 * This symbol, if defined, indicates that <poll.h> exists and
3022 * should be included.
3023 */
3024#define I_POLL /**/
3025
3813c136
JH
3026/* I_PROT:
3027 * This symbol, if defined, indicates that <prot.h> exists and
3028 * should be included.
3029 */
60a7d337 3030/*#define I_PROT / **/
3813c136 3031
86959918
JH
3032/* I_SHADOW:
3033 * This symbol, if defined, indicates that <shadow.h> exists and
3034 * should be included.
3035 */
60a7d337 3036#define I_SHADOW /**/
86959918
JH
3037
3038/* I_SOCKS:
3039 * This symbol, if defined, indicates that <socks.h> exists and
3040 * should be included.
3041 */
11dc3f68 3042/*#define I_SOCKS / **/
86959918 3043
792d8dab
JH
3044/* I_SUNMATH:
3045 * This symbol, if defined, indicates that <sunmath.h> exists and
3046 * should be included.
3047 */
3048/*#define I_SUNMATH / **/
3049
ca52efda
JH
3050/* I_SYSLOG:
3051 * This symbol, if defined, indicates that <syslog.h> exists and
3052 * should be included.
3053 */
3054#define I_SYSLOG /**/
3055
13b3f787
JH
3056/* I_SYSMODE:
3057 * This symbol, if defined, indicates that <sys/mode.h> exists and
3058 * should be included.
3059 */
60a7d337 3060/*#define I_SYSMODE / **/
13b3f787 3061
ff49bff8
JH
3062/* I_SYS_MOUNT:
3063 * This symbol, if defined, indicates that <sys/mount.h> exists and
3064 * should be included.
3065 */
11dc3f68 3066#define I_SYS_MOUNT /**/
ff49bff8 3067
0545a864
JH
3068/* I_SYS_STATFS:
3069 * This symbol, if defined, indicates that <sys/statfs.h> exists.
3070 */
60a7d337 3071#define I_SYS_STATFS /**/
0545a864 3072
ff49bff8
JH
3073/* I_SYS_STATVFS:
3074 * This symbol, if defined, indicates that <sys/statvfs.h> exists and
3075 * should be included.
3076 */
88fdc172 3077#define I_SYS_STATVFS /**/
ff935051 3078
88fdc172
SB
3079/* I_SYSUTSNAME:
3080 * This symbol, if defined, indicates that <sys/utsname.h> exists and
3081 * should be included.
ff935051 3082 */
88fdc172 3083#define I_SYSUTSNAME /**/
ff935051 3084
88fdc172
SB
3085/* I_SYS_VFS:
3086 * This symbol, if defined, indicates that <sys/vfs.h> exists and
3087 * should be included.
ff935051 3088 */
60a7d337 3089#define I_SYS_VFS /**/
ff935051 3090
88fdc172
SB
3091/* I_USTAT:
3092 * This symbol, if defined, indicates that <ustat.h> exists and
3093 * should be included.
ff935051 3094 */
88fdc172
SB
3095#define I_USTAT /**/
3096
3097/* PERL_PRIfldbl:
3098 * This symbol, if defined, contains the string used by stdio to
3099 * format long doubles (format 'f') for output.
ff935051 3100 */
88fdc172
SB
3101/* PERL_PRIgldbl:
3102 * This symbol, if defined, contains the string used by stdio to
3103 * format long doubles (format 'g') for output.
ff935051 3104 */
88fdc172
SB
3105/* PERL_PRIeldbl:
3106 * This symbol, if defined, contains the string used by stdio to
3107 * format long doubles (format 'e') for output.
ff935051 3108 */
88fdc172
SB
3109/* PERL_SCNfldbl:
3110 * This symbol, if defined, contains the string used by stdio to
3111 * format long doubles (format 'f') for input.
3112 */
10305dfa
JH
3113#define PERL_PRIfldbl "Lf" /**/
3114#define PERL_PRIgldbl "Lg" /**/
3115#define PERL_PRIeldbl "Le" /**/
3116#define PERL_SCNfldbl "Lf" /**/
ff935051 3117
a7fea17f
JH
3118/* NEED_VA_COPY:
3119 * This symbol, if defined, indicates that the system stores
3120 * the variable argument list datatype, va_list, in a format
3121 * that cannot be copied by simple assignment, so that some
3122 * other means must be used when copying is required.
3123 * As such systems vary in their provision (or non-provision)
3124 * of copying mechanisms, handy.h defines a platform-
3125 * independent macro, Perl_va_copy(src, dst), to do the job.
3126 */
3127/*#define NEED_VA_COPY / **/
3128
a22e52b9
JH
3129/* IVTYPE:
3130 * This symbol defines the C type used for Perl's IV.
8c09e4ca 3131 */
a22e52b9
JH
3132/* UVTYPE:
3133 * This symbol defines the C type used for Perl's UV.
8c09e4ca 3134 */
a22e52b9
JH
3135/* I8TYPE:
3136 * This symbol defines the C type used for Perl's I8.
ca24dfc6 3137 */
a22e52b9
JH
3138/* U8TYPE:
3139 * This symbol defines the C type used for Perl's U8.
3140 */
3141/* I16TYPE:
3142 * This symbol defines the C type used for Perl's I16.
3143 */
3144/* U16TYPE:
3145 * This symbol defines the C type used for Perl's U16.
3146 */
3147/* I32TYPE:
3148 * This symbol defines the C type used for Perl's I32.
3149 */
3150/* U32TYPE:
3151 * This symbol defines the C type used for Perl's U32.
3152 */
3153/* I64TYPE:
3154 * This symbol defines the C type used for Perl's I64.
3155 */
3156/* U64TYPE:
3157 * This symbol defines the C type used for Perl's U64.
3158 */
3159/* NVTYPE:
3160 * This symbol defines the C type used for Perl's NV.
3161 */
3162/* IVSIZE:
3163 * This symbol contains the sizeof(IV).
3164 */
3165/* UVSIZE:
3166 * This symbol contains the sizeof(UV).
3167 */
3168/* I8SIZE:
3169 * This symbol contains the sizeof(I8).
3170 */
3171/* U8SIZE:
3172 * This symbol contains the sizeof(U8).
3173 */
3174/* I16SIZE:
3175 * This symbol contains the sizeof(I16).
3176 */
3177/* U16SIZE:
3178 * This symbol contains the sizeof(U16).
8c09e4ca 3179 */
a22e52b9 3180/* I32SIZE:
88fdc172 3181 * This symbol contains the sizeof(I32).
ff935051 3182 */
88fdc172
SB
3183/* U32SIZE:
3184 * This symbol contains the sizeof(U32).
ff935051 3185 */
88fdc172
SB
3186/* I64SIZE:
3187 * This symbol contains the sizeof(I64).
76d3c696 3188 */
88fdc172
SB
3189/* U64SIZE:
3190 * This symbol contains the sizeof(U64).
ff935051 3191 */
88fdc172
SB
3192/* NVSIZE:
3193 * This symbol contains the sizeof(NV).
3194 */
3195/* NV_PRESERVES_UV:
3196 * This symbol, if defined, indicates that a variable of type NVTYPE
3197 * can preserve all the bits of a variable of type UVTYPE.
3198 */
3199/* NV_PRESERVES_UV_BITS:
3200 * This symbol contains the number of bits a variable of type NVTYPE
3201 * can preserve of a variable of type UVTYPE.
ff935051 3202 */
88fdc172
SB
3203#define IVTYPE long /**/
3204#define UVTYPE unsigned long /**/
3205#define I8TYPE char /**/
3206#define U8TYPE unsigned char /**/
3207#define I16TYPE short /**/
3208#define U16TYPE unsigned short /**/
60a7d337
RGS
3209#define I32TYPE long /**/
3210#define U32TYPE unsigned long /**/
88fdc172 3211#ifdef HAS_QUAD
60a7d337
RGS
3212#define I64TYPE long long /**/
3213#define U64TYPE unsigned long long /**/
88fdc172
SB
3214#endif
3215#define NVTYPE double /**/
60a7d337
RGS
3216#define IVSIZE 4 /**/
3217#define UVSIZE 4 /**/
88fdc172
SB
3218#define I8SIZE 1 /**/
3219#define U8SIZE 1 /**/
3220#define I16SIZE 2 /**/
3221#define U16SIZE 2 /**/
3222#define I32SIZE 4 /**/
3223#define U32SIZE 4 /**/
3224#ifdef HAS_QUAD
3225#define I64SIZE 8 /**/
3226#define U64SIZE 8 /**/
3227#endif
3228#define NVSIZE 8 /**/
60a7d337
RGS
3229#define NV_PRESERVES_UV
3230#define NV_PRESERVES_UV_BITS 32
3231#if UVSIZE == 8
3232# ifdef BYTEORDER
3233# if BYTEORDER == 0x1234
3234# undef BYTEORDER
3235# define BYTEORDER 0x12345678
3236# else
3237# if BYTEORDER == 0x4321
3238# undef BYTEORDER
3239# define BYTEORDER 0x87654321
3240# endif
3241# endif
3242# endif
3243#endif
ff935051 3244
88fdc172
SB
3245/* IVdf:
3246 * This symbol defines the format string used for printing a Perl IV
3247 * as a signed decimal integer.
ff935051 3248 */
88fdc172
SB
3249/* UVuf:
3250 * This symbol defines the format string used for printing a Perl UV
3251 * as an unsigned decimal integer.
ff935051 3252 */
88fdc172
SB
3253/* UVof:
3254 * This symbol defines the format string used for printing a Perl UV
3255 * as an unsigned octal integer.
526fdc24 3256 */
88fdc172
SB
3257/* UVxf:
3258 * This symbol defines the format string used for printing a Perl UV
3259 * as an unsigned hexadecimal integer in lowercase abcdef.
a13ea748 3260 */
88fdc172
SB
3261/* UVXf:
3262 * This symbol defines the format string used for printing a Perl UV
3263 * as an unsigned hexadecimal integer in uppercase ABCDEF.
ff935051 3264 */
88fdc172
SB
3265/* NVef:
3266 * This symbol defines the format string used for printing a Perl NV
3267 * using %e-ish floating point format.
52c7d5b6 3268 */
88fdc172
SB
3269/* NVff:
3270 * This symbol defines the format string used for printing a Perl NV
3271 * using %f-ish floating point format.
3272 */
3273/* NVgf:
3274 * This symbol defines the format string used for printing a Perl NV
3275 * using %g-ish floating point format.
3276 */
3277#define IVdf "ld" /**/
3278#define UVuf "lu" /**/
3279#define UVof "lo" /**/
3280#define UVxf "lx" /**/
3281#define UVXf "lX" /**/
3282#define NVef "e" /**/
3283#define NVff "f" /**/
3284#define NVgf "g" /**/
52c7d5b6 3285
88fdc172
SB
3286/* SELECT_MIN_BITS:
3287 * This symbol holds the minimum number of bits operated by select.
3288 * That is, if you do select(n, ...), how many bits at least will be
3289 * cleared in the masks if some activity is detected. Usually this
3290 * is either n or 32*ceil(n/32), especially many little-endians do
3291 * the latter. This is only useful if you have select(), naturally.
ff935051 3292 */
88fdc172 3293#define SELECT_MIN_BITS 32 /**/
bfb7748a 3294
fbfd4aab
PP
3295/* STARTPERL:
3296 * This variable contains the string to put in front of a perl
3297 * script to make sure (one hopes) that it runs with perl and not
3298 * some shell.
3299 */
e01ffb8d 3300#define STARTPERL "#!/opt/perl/bin/perl5.9.2" /**/
327c3667 3301
a71cd7cd
JH
3302/* HAS_STDIO_STREAM_ARRAY:
3303 * This symbol, if defined, tells that there is an array
3304 * holding the stdio streams.
3305 */
3306/* STDIO_STREAM_ARRAY:
3307 * This symbol tells the name of the array holding the stdio streams.
3308 * Usual values include _iob, __iob, and __sF.
3309 */
60a7d337
RGS
3310/*#define HAS_STDIO_STREAM_ARRAY / **/
3311#define STDIO_STREAM_ARRAY
8c09e4ca 3312
10cc9d2a 3313/* USE_64_BIT_INT:
aaacdc8b
GS
3314 * This symbol, if defined, indicates that 64-bit integers should
3315 * be used when available. If not defined, the native integers
c890dc6c
JH
3316 * will be employed (be they 32 or 64 bits). The minimal possible
3317 * 64-bitness is used, just enough to get 64-bit integers into Perl.
3318 * This may mean using for example "long longs", while your memory
3319 * may still be limited to 2 gigabytes.
327c3667 3320 */
10cc9d2a
JH
3321/* USE_64_BIT_ALL:
3322 * This symbol, if defined, indicates that 64-bit integers should
3323 * be used when available. If not defined, the native integers
3324 * will be used (be they 32 or 64 bits). The maximal possible
3325 * 64-bitness is employed: LP64 or ILP64, meaning that you will
3326 * be able to use more than 2 gigabytes of memory. This mode is
3327 * even more binary incompatible than USE_64_BIT_INT. You may not
3328 * be able to run the resulting executable in a 32-bit CPU at all or
3329 * you may need at least to reboot your OS to 64-bit mode.
3330 */
3331#ifndef USE_64_BIT_INT
60a7d337 3332/*#define USE_64_BIT_INT / **/
0befd8de 3333#endif
4633a7c4 3334
10cc9d2a 3335#ifndef USE_64_BIT_ALL
60a7d337 3336/*#define USE_64_BIT_ALL / **/
c890dc6c
JH
3337#endif
3338
4d54317a
JH
3339/* USE_FAST_STDIO:
3340 * This symbol, if defined, indicates that Perl should
3341 * be built to use 'fast stdio'.
3342 * Defaults to define in Perls 5.8 and earlier, to undef later.
3343 */
3344#ifndef USE_FAST_STDIO
3345/*#define USE_FAST_STDIO / **/
3346#endif
3347
1baac590
JH
3348/* USE_LARGE_FILES:
3349 * This symbol, if defined, indicates that large file support
c890dc6c 3350 * should be used when available.
1baac590 3351 */
0befd8de 3352#ifndef USE_LARGE_FILES
aaacdc8b 3353#define USE_LARGE_FILES /**/
0befd8de 3354#endif
1baac590 3355
ca24dfc6
LV
3356/* USE_LONG_DOUBLE:
3357 * This symbol, if defined, indicates that long doubles should
3358 * be used when available.
3359 */
0befd8de 3360#ifndef USE_LONG_DOUBLE
ca24dfc6 3361/*#define USE_LONG_DOUBLE / **/
0befd8de
JH
3362#endif
3363
78691af5
JH
3364/* USE_MORE_BITS:
3365 * This symbol, if defined, indicates that 64-bit interfaces and
3366 * long doubles should be used when available.
3367 */
0befd8de
JH
3368#ifndef USE_MORE_BITS
3369/*#define USE_MORE_BITS / **/
3370#endif
ca24dfc6 3371
ff49bff8
JH
3372/* MULTIPLICITY:
3373 * This symbol, if defined, indicates that Perl should
3374 * be built to use multiplicity.
3375 */
fe749a9f 3376#ifndef MULTIPLICITY
af960fef 3377/*#define MULTIPLICITY / **/
0befd8de 3378#endif
ff49bff8 3379
9003a523
PP
3380/* USE_PERLIO:
3381 * This symbol, if defined, indicates that the PerlIO abstraction should
3382 * be used throughout. If not defined, stdio should be
3383 * used in a fully backward compatible manner.
ce4a058e 3384 */
0befd8de 3385#ifndef USE_PERLIO
2d967e39 3386#define USE_PERLIO /**/
0befd8de 3387#endif
ce4a058e 3388
88fdc172
SB
3389/* USE_SOCKS:
3390 * This symbol, if defined, indicates that Perl should
3391 * be built to use socks.
3392 */
3393#ifndef USE_SOCKS
3394/*#define USE_SOCKS / **/
ff935051 3395#endif
dc45a647 3396
88fdc172 3397/* HAS_DRAND48_PROTO:
5af95cda 3398 * This symbol, if defined, indicates that the system provides
88fdc172 3399 * a prototype for the drand48() function. Otherwise, it is up
5af95cda 3400 * to the program to supply one. A good guess is
88fdc172 3401 * extern double drand48(void);
b99a9337 3402 */
88fdc172 3403#define HAS_DRAND48_PROTO /**/
b99a9337 3404
88fdc172
SB
3405/* HAS_GETHOST_PROTOS:
3406 * This symbol, if defined, indicates that <netdb.h> includes
3407 * prototypes for gethostent(), gethostbyname(), and
3408 * gethostbyaddr(). Otherwise, it is up to the program to guess
3409 * them. See netdbtype.U for probing for various Netdb_xxx_t types.
2765b840 3410 */
88fdc172 3411#define HAS_GETHOST_PROTOS /**/
2765b840 3412
88fdc172
SB
3413/* HAS_GETNET_PROTOS:
3414 * This symbol, if defined, indicates that <netdb.h> includes
3415 * prototypes for getnetent(), getnetbyname(), and
3416 * getnetbyaddr(). Otherwise, it is up to the program to guess
3417 * them. See netdbtype.U for probing for various Netdb_xxx_t types.
428dc699 3418 */
88fdc172 3419#define HAS_GETNET_PROTOS /**/
428dc699 3420
88fdc172
SB
3421/* HAS_GETPROTO_PROTOS:
3422 * This symbol, if defined, indicates that <netdb.h> includes
3423 * prototypes for getprotoent(), getprotobyname(), and
3424 * getprotobyaddr(). Otherwise, it is up to the program to guess
3425 * them. See netdbtype.U for probing for various Netdb_xxx_t types.
983dbef6 3426 */
88fdc172 3427#define HAS_GETPROTO_PROTOS /**/
983dbef6 3428
88fdc172
SB
3429/* HAS_GETSERV_PROTOS:
3430 * This symbol, if defined, indicates that <netdb.h> includes
3431 * prototypes for getservent(), getservbyname(), and
3432 * getservbyaddr(). Otherwise, it is up to the program to guess
3433 * them. See netdbtype.U for probing for various Netdb_xxx_t types.
49a78c82 3434 */
88fdc172 3435#define HAS_GETSERV_PROTOS /**/
49a78c82 3436
88fdc172 3437/* HAS_LSEEK_PROTO:
5af95cda 3438 * This symbol, if defined, indicates that the system provides
88fdc172 3439 * a prototype for the lseek() function. Otherwise, it is up
5af95cda 3440 * to the program to supply one. A good guess is
88fdc172 3441 * extern off_t lseek(int, off_t, int);
5af95cda 3442 */
88fdc172 3443#define HAS_LSEEK_PROTO /**/
5af95cda 3444
88fdc172
SB
3445/* Netdb_host_t:
3446 * This symbol holds the type used for the 1st argument
3447 * to gethostbyaddr().
eef837ea 3448 */
88fdc172
SB
3449/* Netdb_hlen_t:
3450 * This symbol holds the type used for the 2nd argument
3451 * to gethostbyaddr().
640374d0 3452 */
88fdc172
SB
3453/* Netdb_name_t:
3454 * This symbol holds the type used for the argument to
3455 * gethostbyname().
b3c85772 3456 */
88fdc172
SB
3457/* Netdb_net_t:
3458 * This symbol holds the type used for the 1st argument to
3459 * getnetbyaddr().
5af95cda 3460 */
60a7d337
RGS
3461#define Netdb_host_t const void * /**/
3462#define Netdb_hlen_t size_t /**/
88fdc172 3463#define Netdb_name_t const char * /**/
60a7d337 3464#define Netdb_net_t in_addr_t /**/
5af95cda 3465
88fdc172
SB
3466/* Select_fd_set_t:
3467 * This symbol holds the type used for the 2nd, 3rd, and 4th
3468 * arguments to select. Usually, this is 'fd_set *', if HAS_FD_SET
3469 * is defined, and 'int *' otherwise. This is only useful if you
3470 * have select(), of course.
4e0554ec 3471 */
88fdc172 3472#define Select_fd_set_t fd_set * /**/
4e0554ec 3473
88fdc172
SB
3474/* Sock_size_t:
3475 * This symbol holds the type used for the size argument of
3476 * various socket calls (just the base type, not the pointer-to).
5af95cda 3477 */
60a7d337 3478#define Sock_size_t socklen_t /**/
5af95cda 3479
88fdc172
SB
3480/* ARCHNAME:
3481 * This symbol holds a string representing the architecture name.
3482 * It may be used to construct an architecture-dependant pathname
3483 * where library files may be held under a private library, for
3484 * instance.
10bc17b6 3485 */
60a7d337 3486#define ARCHNAME "i686-linux" /**/
10bc17b6 3487
88fdc172
SB
3488/* HAS_ASCTIME_R:
3489 * This symbol, if defined, indicates that the asctime_r routine
3490 * is available to asctime re-entrantly.
3491 */
3492/* ASCTIME_R_PROTO:
3493 * This symbol encodes the prototype of asctime_r.
3494 * It is zero if d_asctime_r is undef, and one of the
3495 * REENTRANT_PROTO_T_ABC macros of reentr.h if d_asctime_r
3496 * is defined.
758a5d79 3497 */
88fdc172
SB
3498/*#define HAS_ASCTIME_R / **/
3499#define ASCTIME_R_PROTO 0 /**/
758a5d79 3500
88fdc172
SB
3501/* HAS_CRYPT_R:
3502 * This symbol, if defined, indicates that the crypt_r routine
3503 * is available to crypt re-entrantly.
2765b840 3504 */
88fdc172
SB
3505/* CRYPT_R_PROTO:
3506 * This symbol encodes the prototype of crypt_r.
3507 * It is zero if d_crypt_r is undef, and one of the
3508 * REENTRANT_PROTO_T_ABC macros of reentr.h if d_crypt_r
3509 * is defined.
3510 */
3511/*#define HAS_CRYPT_R / **/
3512#define CRYPT_R_PROTO 0 /**/
2765b840 3513
10bc17b6
JH
3514/* HAS_CTERMID_R:
3515 * This symbol, if defined, indicates that the ctermid_r routine
3516 * is available to ctermid re-entrantly.
3517 */
3518/* CTERMID_R_PROTO:
3519 * This symbol encodes the prototype of ctermid_r.
39183afa
JH
3520 * It is zero if d_ctermid_r is undef, and one of the
3521 * REENTRANT_PROTO_T_ABC macros of reentr.h if d_ctermid_r
3522 * is defined.
10bc17b6
JH
3523 */
3524/*#define HAS_CTERMID_R / **/
3525#define CTERMID_R_PROTO 0 /**/
3526
88fdc172
SB
3527/* HAS_CTIME_R:
3528 * This symbol, if defined, indicates that the ctime_r routine
3529 * is available to ctime re-entrantly.
3530 */
3531/* CTIME_R_PROTO:
3532 * This symbol encodes the prototype of ctime_r.
3533 * It is zero if d_ctime_r is undef, and one of the
3534 * REENTRANT_PROTO_T_ABC macros of reentr.h if d_ctime_r
3535 * is defined.
3536 */
3537/*#define HAS_CTIME_R / **/
3538#define CTIME_R_PROTO 0 /**/
3539
3540/* HAS_DRAND48_R:
3541 * This symbol, if defined, indicates that the drand48_r routine
3542 * is available to drand48 re-entrantly.
3543 */
3544/* DRAND48_R_PROTO:
3545 * This symbol encodes the prototype of drand48_r.
3546 * It is zero if d_drand48_r is undef, and one of the
3547 * REENTRANT_PROTO_T_ABC macros of reentr.h if d_drand48_r
3548 * is defined.
3549 */
3550/*#define HAS_DRAND48_R / **/
3551#define DRAND48_R_PROTO 0 /**/
3552
3553/* HAS_ENDGRENT_R:
3554 * This symbol, if defined, indicates that the endgrent_r routine
3555 * is available to endgrent re-entrantly.
3556 */
3557/* ENDGRENT_R_PROTO:
3558 * This symbol encodes the prototype of endgrent_r.
3559 * It is zero if d_endgrent_r is undef, and one of the
3560 * REENTRANT_PROTO_T_ABC macros of reentr.h if d_endgrent_r
3561 * is defined.
3562 */
3563/*#define HAS_ENDGRENT_R / **/
3564#define ENDGRENT_R_PROTO 0 /**/
3565
10bc17b6
JH
3566/* HAS_ENDHOSTENT_R:
3567 * This symbol, if defined, indicates that the endhostent_r routine
3568 * is available to endhostent re-entrantly.
3569 */
3570/* ENDHOSTENT_R_PROTO:
3571 * This symbol encodes the prototype of endhostent_r.
39183afa
JH
3572 * It is zero if d_endhostent_r is undef, and one of the
3573 * REENTRANT_PROTO_T_ABC macros of reentr.h if d_endhostent_r
3574 * is defined.
10bc17b6 3575 */
2f12987e
JH
3576/*#define HAS_ENDHOSTENT_R / **/
3577#define ENDHOSTENT_R_PROTO 0 /**/
10bc17b6
JH
3578
3579/* HAS_ENDNETENT_R:
3580 * This symbol, if defined, indicates that the endnetent_r routine
3581 * is available to endnetent re-entrantly.
3582 */
3583/* ENDNETENT_R_PROTO:
3584 * This symbol encodes the prototype of endnetent_r.
39183afa
JH
3585 * It is zero if d_endnetent_r is undef, and one of the
3586 * REENTRANT_PROTO_T_ABC macros of reentr.h if d_endnetent_r
3587 * is defined.
10bc17b6 3588 */
2f12987e
JH
3589/*#define HAS_ENDNETENT_R / **/
3590#define ENDNETENT_R_PROTO 0 /**/
10bc17b6
JH
3591
3592/* HAS_ENDPROTOENT_R:
3593 * This symbol, if defined, indicates that the endprotoent_r routine
3594 * is available to endprotoent re-entrantly.
3595 */
3596/* ENDPROTOENT_R_PROTO:
3597 * This symbol encodes the prototype of endprotoent_r.
39183afa
JH
3598 * It is zero if d_endprotoent_r is undef, and one of the
3599 * REENTRANT_PROTO_T_ABC macros of reentr.h if d_endprotoent_r
3600 * is defined.
10bc17b6 3601 */
2f12987e
JH
3602/*#define HAS_ENDPROTOENT_R / **/
3603#define ENDPROTOENT_R_PROTO 0 /**/
10bc17b6 3604
88fdc172
SB
3605/* HAS_ENDPWENT_R:
3606 * This symbol, if defined, indicates that the endpwent_r routine
3607 * is available to endpwent re-entrantly.
3608 */
3609/* ENDPWENT_R_PROTO:
3610 * This symbol encodes the prototype of endpwent_r.
3611 * It is zero if d_endpwent_r is undef, and one of the
3612 * REENTRANT_PROTO_T_ABC macros of reentr.h if d_endpwent_r
3613 * is defined.
3614 */
3615/*#define HAS_ENDPWENT_R / **/
3616#define ENDPWENT_R_PROTO 0 /**/
3617
10bc17b6
JH
3618/* HAS_ENDSERVENT_R:
3619 * This symbol, if defined, indicates that the endservent_r routine
3620 * is available to endservent re-entrantly.
3621 */
3622/* ENDSERVENT_R_PROTO:
3623 * This symbol encodes the prototype of endservent_r.
39183afa
JH
3624 * It is zero if d_endservent_r is undef, and one of the
3625 * REENTRANT_PROTO_T_ABC macros of reentr.h if d_endservent_r
3626 * is defined.
10bc17b6 3627 */
2f12987e
JH
3628/*#define HAS_ENDSERVENT_R / **/
3629#define ENDSERVENT_R_PROTO 0 /**/
10bc17b6 3630
88fdc172
SB
3631/* HAS_GETGRENT_R:
3632 * This symbol, if defined, indicates that the getgrent_r routine
3633 * is available to getgrent re-entrantly.
3634 */
3635/* GETGRENT_R_PROTO:
3636 * This symbol encodes the prototype of getgrent_r.
3637 * It is zero if d_getgrent_r is undef, and one of the
3638 * REENTRANT_PROTO_T_ABC macros of reentr.h if d_getgrent_r
3639 * is defined.
3640 */
3641/*#define HAS_GETGRENT_R / **/
3642#define GETGRENT_R_PROTO 0 /**/
3643
3644/* HAS_GETGRGID_R:
3645 * This symbol, if defined, indicates that the getgrgid_r routine
3646 * is available to getgrgid re-entrantly.
3647 */
3648/* GETGRGID_R_PROTO:
3649 * This symbol encodes the prototype of getgrgid_r.
3650 * It is zero if d_getgrgid_r is undef, and one of the
3651 * REENTRANT_PROTO_T_ABC macros of reentr.h if d_getgrgid_r
3652 * is defined.
3653 */
3654/*#define HAS_GETGRGID_R / **/
3655#define GETGRGID_R_PROTO 0 /**/
3656
3657/* HAS_GETGRNAM_R:
3658 * This symbol, if defined, indicates that the getgrnam_r routine
3659 * is available to getgrnam re-entrantly.
3660 */
3661/* GETGRNAM_R_PROTO:
3662 * This symbol encodes the prototype of getgrnam_r.
3663 * It is zero if d_getgrnam_r is undef, and one of the
3664 * REENTRANT_PROTO_T_ABC macros of reentr.h if d_getgrnam_r
3665 * is defined.
3666 */
3667/*#define HAS_GETGRNAM_R / **/
3668#define GETGRNAM_R_PROTO 0 /**/
3669
10bc17b6
JH
3670/* HAS_GETHOSTBYADDR_R:
3671 * This symbol, if defined, indicates that the gethostbyaddr_r routine
3672 * is available to gethostbyaddr re-entrantly.
3673 */
3674/* GETHOSTBYADDR_R_PROTO:
3675 * This symbol encodes the prototype of gethostbyaddr_r.
39183afa
JH
3676 * It is zero if d_gethostbyaddr_r is undef, and one of the
3677 * REENTRANT_PROTO_T_ABC macros of reentr.h if d_gethostbyaddr_r
3678 * is defined.
10bc17b6 3679 */
2f12987e
JH
3680/*#define HAS_GETHOSTBYADDR_R / **/
3681#define GETHOSTBYADDR_R_PROTO 0 /**/
10bc17b6
JH
3682
3683/* HAS_GETHOSTBYNAME_R:
3684 * This symbol, if defined, indicates that the gethostbyname_r routine
3685 * is available to gethostbyname re-entrantly.
3686 */
3687/* GETHOSTBYNAME_R_PROTO: