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