lval substr() coredumps with refs (with patch)
[p5sagit/p5-mst-13.2.git] / config_H
CommitLineData
16d20bd9 1/* This file (config_H) is a sample config.h file. If you are unable
a0d0e21e 2 to successfully run Configure, copy this file to config.h and
3 edit it to suit your system.
85e6fe83 4*/
5/*
6 * This file was produced by running the config_h.SH script, which
8d063cd8 7 * gets its values from config.sh, which is generally produced by
8 * running Configure.
9 *
10 * Feel free to modify any of this as the need arises. Note, however,
1aef975c 11 * that running config_h.SH again will wipe out any changes you've made.
12 * For a more permanent change edit config.sh and rerun config_h.SH.
85e6fe83 13 *
4633a7c4 14 * $Id: Config_h.U,v 3.0.1.4 1995/09/25 09:10:49 ram Exp $
8d063cd8 15 */
a687059c 16
20e68413 17/* Configuration time: Fri Aug 30 15:56:35 EDT 1996
9003a523 18 * Configured by: doughera
19 * Target system: sunos fractal 5.5 generic i86pc i386 i86pc
68decaef 20 */
68decaef 21
85e6fe83 22#ifndef _config_h_
23#define _config_h_
fe14fcc3 24
a0d0e21e 25/* MEM_ALIGNBYTES:
26 * This symbol contains the number of bytes required to align a
27 * double. Usual values are 2, 4 and 8.
28 */
29#define MEM_ALIGNBYTES 4 /**/
30
85e6fe83 31/* BIN:
32 * This symbol holds the path of the bin directory where the package will
33 * be installed. Program must be prepared to deal with ~name substitution.
a687059c 34 */
9003a523 35#define BIN "/opt/perl/bin" /**/
a687059c 36
ecfc5424 37/* CAT2:
38 * This macro catenates 2 tokens together.
39 */
20e68413 40/* STRINGIFY:
41 * This macro surrounds its token with double quotes.
42 */
4633a7c4 43#if 42 == 1
ecfc5424 44#define CAT2(a,b)a/**/b
45#define CAT3(a,b,c)a/**/b/**/c
46#define CAT4(a,b,c,d)a/**/b/**/c/**/d
47#define CAT5(a,b,c,d,e)a/**/b/**/c/**/d/**/e
48#define STRINGIFY(a)"a"
49 /* If you can get stringification with catify, tell me how! */
50#endif
4633a7c4 51#if 42 == 42
ecfc5424 52#define CAT2(a,b)a ## b
53#define CAT3(a,b,c)a ## b ## c
54#define CAT4(a,b,c,d)a ## b ## c ## d
55#define CAT5(a,b,c,d,e)a ## b ## c ## d ## e
56#define StGiFy(a)# a
57#define STRINGIFY(a)StGiFy(a)
58#define SCAT2(a,b)StGiFy(a) StGiFy(b)
59#define SCAT3(a,b,c)StGiFy(a) StGiFy(b) StGiFy(c)
60#define SCAT4(a,b,c,d)StGiFy(a) StGiFy(b) StGiFy(c) StGiFy(d)
61#define SCAT5(a,b,c,d,e)StGiFy(a) StGiFy(b) StGiFy(c) StGiFy(d) StGiFy(e)
62#endif
63#ifndef CAT2
64#include "Bletch: How does this C preprocessor catenate tokens?"
65#endif
66
85e6fe83 67/* CPPSTDIN:
a687059c 68 * This symbol contains the first part of the string which will invoke
69 * the C preprocessor on the standard input and produce to standard
85e6fe83 70 * output. Typical value of "cc -E" or "/lib/cpp", but it can also
71 * call a wrapper. See CPPRUN.
a687059c 72 */
85e6fe83 73/* CPPMINUS:
a687059c 74 * This symbol contains the second part of the string which will invoke
75 * the C preprocessor on the standard input and produce to standard
76 * output. This symbol will have the value "-" if CPPSTDIN needs a minus
77 * to specify standard input, otherwise the value is "".
78 */
fbfd4aab 79#define CPPSTDIN "cc -E"
a0d0e21e 80#define CPPMINUS "-"
81
82/* HAS_ALARM:
83 * This symbol, if defined, indicates that the alarm routine is
84 * available.
85 */
86#define HAS_ALARM /**/
a687059c 87
ecfc5424 88/* HASATTRIBUTE:
89 * This symbol indicates the C compiler can check for function attributes,
90 * such as printf formats. This is normally only supported by GNU cc.
91 */
20e68413 92/*#define HASATTRIBUTE / **/
ecfc5424 93#ifndef HASATTRIBUTE
94#define __attribute__(_arg_)
95#endif
96
85e6fe83 97/* HAS_BCMP:
98 * This symbol is defined if the bcmp() routine is available to
99 * compare blocks of memory.
a687059c 100 */
9003a523 101#define HAS_BCMP /**/
a687059c 102
85e6fe83 103/* HAS_BCOPY:
104 * This symbol is defined if the bcopy() routine is available to
105 * copy blocks of memory.
a687059c 106 */
9003a523 107#define HAS_BCOPY /**/
fe14fcc3 108
85e6fe83 109/* HAS_BZERO:
110 * This symbol is defined if the bzero() routine is available to
111 * set a memory block to 0.
fe14fcc3 112 */
9003a523 113#define HAS_BZERO /**/
8d063cd8 114
a0d0e21e 115/* CASTI32:
116 * This symbol is defined if the C compiler can cast negative
117 * or large floating point numbers to 32-bit ints.
118 */
4633a7c4 119#define CASTI32 /**/
a0d0e21e 120
85e6fe83 121/* CASTNEGFLOAT:
122 * This symbol is defined if the C compiler can cast negative
123 * numbers to unsigned longs, ints and shorts.
fe14fcc3 124 */
85e6fe83 125/* CASTFLAGS:
fe14fcc3 126 * This symbol contains flags that say what difficulties the compiler
127 * has casting odd floating values to unsigned long:
85e6fe83 128 * 0 = ok
fe14fcc3 129 * 1 = couldn't cast < 0
130 * 2 = couldn't cast >= 0x80000000
232e078e 131 * 4 = couldn't cast in argument expression list
fe14fcc3 132 */
4633a7c4 133#define CASTNEGFLOAT /**/
134#define CASTFLAGS 0 /**/
a0d0e21e 135
136/* HAS_CHOWN:
137 * This symbol, if defined, indicates that the chown routine is
138 * available.
139 */
140#define HAS_CHOWN /**/
141
142/* HAS_CHROOT:
143 * This symbol, if defined, indicates that the chroot routine is
144 * available.
145 */
146#define HAS_CHROOT /**/
8d063cd8 147
85e6fe83 148/* HAS_CHSIZE:
fe14fcc3 149 * This symbol, if defined, indicates that the chsize routine is available
150 * to truncate files. You might need a -lx to get this routine.
151 */
20e68413 152/*#define HAS_CHSIZE / **/
ecfc5424 153
154/* VOID_CLOSEDIR:
155 * This symbol, if defined, indicates that the closedir() routine
156 * does not return a value.
157 */
20e68413 158/*#define VOID_CLOSEDIR / **/
85e6fe83 159
160/* HASCONST:
161 * This symbol, if defined, indicates that this C compiler knows about
162 * the const type. There is no need to actually test for that symbol
163 * within your programs. The mere use of the "const" keyword will
164 * trigger the necessary tests.
165 */
4633a7c4 166#define HASCONST /**/
85e6fe83 167#ifndef HASCONST
168#define const
169#endif
fe14fcc3 170
85e6fe83 171/* HAS_CRYPT:
a687059c 172 * This symbol, if defined, indicates that the crypt routine is available
173 * to encrypt passwords and the like.
174 */
85e6fe83 175#define HAS_CRYPT /**/
fe14fcc3 176
a0d0e21e 177/* HAS_CUSERID:
178 * This symbol, if defined, indicates that the cuserid routine is
179 * available to get character login names.
a687059c 180 */
a0d0e21e 181#define HAS_CUSERID /**/
182
183/* HAS_DBL_DIG:
184 * This symbol, if defined, indicates that this system's <float.h>
185 * or <limits.h> defines the symbol DBL_DIG, which is the number
186 * of significant digits in a double precision number. If this
187 * symbol is not defined, a guess of 15 is usually pretty good.
188 */
189#define HAS_DBL_DIG /* */
190
191/* HAS_DIFFTIME:
192 * This symbol, if defined, indicates that the difftime routine is
193 * available.
194 */
195#define HAS_DIFFTIME /**/
a687059c 196
ecfc5424 197/* HAS_DLERROR:
198 * This symbol, if defined, indicates that the dlerror routine is
199 * available to return a string describing the last error that
200 * occurred from a call to dlopen(), dlclose() or dlsym().
201 */
4633a7c4 202#define HAS_DLERROR /**/
ecfc5424 203
85e6fe83 204/* HAS_DUP2:
205 * This symbol, if defined, indicates that the dup2 routine is
206 * available to duplicate file descriptors.
a687059c 207 */
85e6fe83 208#define HAS_DUP2 /**/
a687059c 209
85e6fe83 210/* HAS_FCHMOD:
a687059c 211 * This symbol, if defined, indicates that the fchmod routine is available
212 * to change mode of opened files. If unavailable, use chmod().
213 */
4633a7c4 214#define HAS_FCHMOD /**/
a687059c 215
85e6fe83 216/* HAS_FCHOWN:
a687059c 217 * This symbol, if defined, indicates that the fchown routine is available
218 * to change ownership of opened files. If unavailable, use chown().
219 */
4633a7c4 220#define HAS_FCHOWN /**/
a687059c 221
85e6fe83 222/* HAS_FCNTL:
fe14fcc3 223 * This symbol, if defined, indicates to the C program that
224 * the fcntl() function exists.
a687059c 225 */
85e6fe83 226#define HAS_FCNTL /**/
a687059c 227
a0d0e21e 228/* HAS_FGETPOS:
229 * This symbol, if defined, indicates that the fgetpos routine is
230 * available to get the file position indicator, similar to ftell().
231 */
4633a7c4 232#define HAS_FGETPOS /**/
a0d0e21e 233
85e6fe83 234/* FLEXFILENAMES:
fe14fcc3 235 * This symbol, if defined, indicates that the system supports filenames
236 * longer than 14 characters.
237 */
4633a7c4 238#define FLEXFILENAMES /**/
fe14fcc3 239
85e6fe83 240/* HAS_FLOCK:
241 * This symbol, if defined, indicates that the flock routine is
a687059c 242 * available to do file locking.
243 */
20e68413 244/*#define HAS_FLOCK / **/
a0d0e21e 245
246/* HAS_FORK:
247 * This symbol, if defined, indicates that the fork routine is
248 * available.
249 */
250#define HAS_FORK /**/
251
252/* HAS_FSETPOS:
253 * This symbol, if defined, indicates that the fsetpos routine is
254 * available to set the file position indicator, similar to fseek().
255 */
4633a7c4 256#define HAS_FSETPOS /**/
ecfc5424 257
85e6fe83 258/* HAS_GETGROUPS:
a687059c 259 * This symbol, if defined, indicates that the getgroups() routine is
260 * available to get the list of process groups. If unavailable, multiple
261 * groups are probably not supported.
262 */
85e6fe83 263#define HAS_GETGROUPS /**/
a687059c 264
85e6fe83 265/* HAS_GETHOSTENT:
266 * This symbol, if defined, indicates that the gethostent routine is
a687059c 267 * available to lookup host names in some data base or other.
268 */
4633a7c4 269#define HAS_GETHOSTENT /**/
85e6fe83 270
271/* HAS_UNAME:
272 * This symbol, if defined, indicates that the C program may use the
273 * uname() routine to derive the host name. See also HAS_GETHOSTNAME
274 * and PHOSTNAME.
275 */
276#define HAS_UNAME /**/
a687059c 277
a0d0e21e 278/* HAS_GETLOGIN:
279 * This symbol, if defined, indicates that the getlogin routine is
280 * available to get the login name.
281 */
282#define HAS_GETLOGIN /**/
283
85e6fe83 284/* HAS_GETPGRP:
285 * This symbol, if defined, indicates that the getpgrp routine is
a687059c 286 * available to get the current process group.
287 */
85e6fe83 288#define HAS_GETPGRP /**/
fe14fcc3 289
85e6fe83 290/* HAS_GETPGRP2:
fe14fcc3 291 * This symbol, if defined, indicates that the getpgrp2() (as in DG/UX)
292 * routine is available to get the current process group.
293 */
20e68413 294/*#define HAS_GETPGRP2 / **/
a687059c 295
a0d0e21e 296/* HAS_GETPPID:
297 * This symbol, if defined, indicates that the getppid routine is
298 * available to get the parent process ID.
299 */
300#define HAS_GETPPID /**/
301
85e6fe83 302/* HAS_GETPRIORITY:
303 * This symbol, if defined, indicates that the getpriority routine is
a687059c 304 * available to get a process's priority.
305 */
9003a523 306#define HAS_GETPRIORITY /**/
a0d0e21e 307
a0d0e21e 308/* HAS_HTONL:
309 * This symbol, if defined, indicates that the htonl() routine (and
310 * friends htons() ntohl() ntohs()) are available to do network
311 * order byte swapping.
312 */
313/* HAS_HTONS:
314 * This symbol, if defined, indicates that the htons() routine (and
315 * friends htonl() ntohl() ntohs()) are available to do network
316 * order byte swapping.
317 */
318/* HAS_NTOHL:
319 * This symbol, if defined, indicates that the ntohl() routine (and
320 * friends htonl() htons() ntohs()) are available to do network
321 * order byte swapping.
322 */
323/* HAS_NTOHS:
324 * This symbol, if defined, indicates that the ntohs() routine (and
325 * friends htonl() htons() ntohl()) are available to do network
326 * order byte swapping.
327 */
328#define HAS_HTONL /**/
329#define HAS_HTONS /**/
330#define HAS_NTOHL /**/
331#define HAS_NTOHS /**/
a687059c 332
ecfc5424 333/* HAS_ISASCII:
334 * This manifest constant lets the C program know that isascii
335 * is available.
336 */
337#define HAS_ISASCII /**/
338
85e6fe83 339/* HAS_KILLPG:
a687059c 340 * This symbol, if defined, indicates that the killpg routine is available
341 * to kill process groups. If unavailable, you probably should use kill
342 * with a negative process number.
343 */
9003a523 344#define HAS_KILLPG /**/
a687059c 345
85e6fe83 346/* HAS_LINK:
347 * This symbol, if defined, indicates that the link routine is
348 * available to create hard links.
fe14fcc3 349 */
85e6fe83 350#define HAS_LINK /**/
fe14fcc3 351
ecfc5424 352/* HAS_LOCALECONV:
353 * This symbol, if defined, indicates that the localeconv routine is
354 * available for numeric and monetary formatting conventions.
355 */
356#define HAS_LOCALECONV /**/
357
a0d0e21e 358/* HAS_LOCKF:
359 * This symbol, if defined, indicates that the lockf routine is
360 * available to do file locking.
361 */
362#define HAS_LOCKF /**/
363
85e6fe83 364/* HAS_LSTAT:
365 * This symbol, if defined, indicates that the lstat routine is
366 * available to do file stats on symbolic links.
a687059c 367 */
85e6fe83 368#define HAS_LSTAT /**/
a687059c 369
a0d0e21e 370/* HAS_MBLEN:
371 * This symbol, if defined, indicates that the mblen routine is available
372 * to find the number of bytes in a multibye character.
373 */
4633a7c4 374#define HAS_MBLEN /**/
a0d0e21e 375
376/* HAS_MBSTOWCS:
377 * This symbol, if defined, indicates that the mbstowcs routine is
378 * available to covert a multibyte string into a wide character string.
379 */
4633a7c4 380#define HAS_MBSTOWCS /**/
a0d0e21e 381
382/* HAS_MBTOWC:
383 * This symbol, if defined, indicates that the mbtowc routine is available
384 * to covert a multibyte to a wide character.
385 */
4633a7c4 386#define HAS_MBTOWC /**/
a0d0e21e 387
85e6fe83 388/* HAS_MEMCMP:
389 * This symbol, if defined, indicates that the memcmp routine is available
390 * to compare blocks of memory.
a687059c 391 */
85e6fe83 392#define HAS_MEMCMP /**/
393
394/* HAS_MEMCPY:
68decaef 395 * This symbol, if defined, indicates that the memcpy routine is available
85e6fe83 396 * to copy blocks of memory.
68decaef 397 */
85e6fe83 398#define HAS_MEMCPY /**/
68decaef 399
85e6fe83 400/* HAS_MEMMOVE:
68decaef 401 * This symbol, if defined, indicates that the memmove routine is available
85e6fe83 402 * to copy potentially overlapping blocks of memory. This should be used
403 * only when HAS_SAFE_BCOPY is not defined. If neither is there, roll your
404 * own version.
68decaef 405 */
4633a7c4 406#define HAS_MEMMOVE /**/
68decaef 407
85e6fe83 408/* HAS_MEMSET:
68decaef 409 * This symbol, if defined, indicates that the memset routine is available
85e6fe83 410 * to set blocks of memory.
68decaef 411 */
85e6fe83 412#define HAS_MEMSET /**/
a687059c 413
85e6fe83 414/* HAS_MKDIR:
a687059c 415 * This symbol, if defined, indicates that the mkdir routine is available
416 * to create directories. Otherwise you should fork off a new process to
417 * exec /bin/mkdir.
418 */
85e6fe83 419#define HAS_MKDIR /**/
fe14fcc3 420
ecfc5424 421/* HAS_MKFIFO:
422 * This symbol, if defined, indicates that the mkfifo routine is
423 * available to create FIFOs. Otherwise, mknod should be able to
424 * do it for you. However, if mkfifo is there, mknod might require
425 * super-user privileges which mkfifo will not.
426 */
427#define HAS_MKFIFO /**/
428
a0d0e21e 429/* HAS_MKTIME:
430 * This symbol, if defined, indicates that the mktime routine is
431 * available.
432 */
433#define HAS_MKTIME /**/
434
85e6fe83 435/* HAS_MSG:
fe14fcc3 436 * This symbol, if defined, indicates that the entire msg*(2) library is
85e6fe83 437 * supported (IPC mechanism based on message queues).
fe14fcc3 438 */
85e6fe83 439#define HAS_MSG /**/
fe14fcc3 440
a0d0e21e 441/* HAS_NICE:
442 * This symbol, if defined, indicates that the nice routine is
443 * available.
fe14fcc3 444 */
a0d0e21e 445#define HAS_NICE /**/
fe14fcc3 446
a0d0e21e 447/* HAS_OPEN3:
448 * This manifest constant lets the C program know that the three
449 * argument form of open(2) is available.
fe14fcc3 450 */
a0d0e21e 451#define HAS_OPEN3 /**/
fe14fcc3 452
ecfc5424 453/* HAS_PATHCONF:
454 * This symbol, if defined, indicates that pathconf() is available
455 * to determine file-system related limits and options associated
456 * with a given filename.
457 */
458/* HAS_FPATHCONF:
459 * This symbol, if defined, indicates that pathconf() is available
460 * to determine file-system related limits and options associated
461 * with a given open file descriptor.
462 */
463#define HAS_PATHCONF /**/
464#define HAS_FPATHCONF /**/
465
a0d0e21e 466/* HAS_PAUSE:
467 * This symbol, if defined, indicates that the pause routine is
468 * available to suspend a process until a signal is received.
a687059c 469 */
a0d0e21e 470#define HAS_PAUSE /**/
fe14fcc3 471
a0d0e21e 472/* HAS_PIPE:
473 * This symbol, if defined, indicates that the pipe routine is
474 * available to create an inter-process channel.
fe14fcc3 475 */
a0d0e21e 476#define HAS_PIPE /**/
477
4633a7c4 478/* HAS_POLL:
479 * This symbol, if defined, indicates that the poll routine is
480 * available to poll active file descriptors.
481 */
482#define HAS_POLL /**/
483
a0d0e21e 484/* HAS_READDIR:
485 * This symbol, if defined, indicates that the readdir routine is
486 * available to read directory entries. You may have to include
487 * <dirent.h>. See I_DIRENT.
488 */
489#define HAS_READDIR /**/
490
491/* HAS_SEEKDIR:
492 * This symbol, if defined, indicates that the seekdir routine is
493 * available. You may have to include <dirent.h>. See I_DIRENT.
494 */
495#define HAS_SEEKDIR /**/
496
497/* HAS_TELLDIR:
498 * This symbol, if defined, indicates that the telldir routine is
499 * available. You may have to include <dirent.h>. See I_DIRENT.
500 */
501#define HAS_TELLDIR /**/
502
503/* HAS_REWINDDIR:
504 * This symbol, if defined, indicates that the rewinddir routine is
505 * available. You may have to include <dirent.h>. See I_DIRENT.
506 */
507#define HAS_REWINDDIR /**/
508
509/* HAS_READLINK:
510 * This symbol, if defined, indicates that the readlink routine is
511 * available to read the value of a symbolic link.
512 */
513#define HAS_READLINK /**/
a687059c 514
85e6fe83 515/* HAS_RENAME:
a687059c 516 * This symbol, if defined, indicates that the rename routine is available
517 * to rename files. Otherwise you should do the unlink(), link(), unlink()
518 * trick.
519 */
85e6fe83 520#define HAS_RENAME /**/
a687059c 521
85e6fe83 522/* HAS_RMDIR:
523 * This symbol, if defined, indicates that the rmdir routine is
524 * available to remove directories. Otherwise you should fork off a
525 * new process to exec /bin/rmdir.
68decaef 526 */
85e6fe83 527#define HAS_RMDIR /**/
68decaef 528
ecfc5424 529/* HAS_SAFE_BCOPY:
530 * This symbol, if defined, indicates that the bcopy routine is available
531 * to copy potentially overlapping memory blocks. Otherwise you should
532 * probably use memmove() or memcpy(). If neither is defined, roll your
533 * own version.
534 */
9003a523 535#define HAS_SAFE_BCOPY /**/
ecfc5424 536
537/* HAS_SAFE_MEMCPY:
538 * This symbol, if defined, indicates that the memcpy routine is available
539 * to copy potentially overlapping memory blocks. Otherwise you should
540 * probably use memmove() or memcpy(). If neither is defined, roll your
541 * own version.
542 */
20e68413 543/*#define HAS_SAFE_MEMCPY / **/
ecfc5424 544
85e6fe83 545/* HAS_SELECT:
546 * This symbol, if defined, indicates that the select routine is
547 * available to select active file descriptors. If the timeout field
548 * is used, <sys/time.h> may need to be included.
68decaef 549 */
85e6fe83 550#define HAS_SELECT /**/
68decaef 551
85e6fe83 552/* HAS_SEM:
fe14fcc3 553 * This symbol, if defined, indicates that the entire sem*(2) library is
554 * supported.
555 */
85e6fe83 556#define HAS_SEM /**/
fe14fcc3 557
85e6fe83 558/* HAS_SETEGID:
a687059c 559 * This symbol, if defined, indicates that the setegid routine is available
560 * to change the effective gid of the current program.
561 */
85e6fe83 562#define HAS_SETEGID /**/
a687059c 563
85e6fe83 564/* HAS_SETEUID:
a687059c 565 * This symbol, if defined, indicates that the seteuid routine is available
566 * to change the effective uid of the current program.
567 */
85e6fe83 568#define HAS_SETEUID /**/
569
a0d0e21e 570/* HAS_SETLINEBUF:
571 * This symbol, if defined, indicates that the setlinebuf routine is
572 * available to change stderr or stdout from block-buffered or unbuffered
573 * to a line-buffered mode.
574 */
9003a523 575#define HAS_SETLINEBUF /**/
a0d0e21e 576
577/* HAS_SETLOCALE:
578 * This symbol, if defined, indicates that the setlocale routine is
579 * available to handle locale-specific ctype implementations.
580 */
581#define HAS_SETLOCALE /**/
582
85e6fe83 583/* HAS_SETPGID:
584 * This symbol, if defined, indicates that the setpgid routine is
585 * available to set process group ID.
586 */
587#define HAS_SETPGID /**/
a687059c 588
85e6fe83 589/* HAS_SETPGRP:
590 * This symbol, if defined, indicates that the setpgrp routine is
a687059c 591 * available to set the current process group.
592 */
ecfc5424 593/* USE_BSDPGRP:
594 * This symbol, if defined, indicates that the BSD notion of process
595 * group is to be used. For instance, you have to say setpgrp(pid, pgrp)
596 * instead of the USG setpgrp().
597 */
85e6fe83 598#define HAS_SETPGRP /**/
20e68413 599/*#define USE_BSDPGRP / **/
a687059c 600
85e6fe83 601/* HAS_SETPGRP2:
fe14fcc3 602 * This symbol, if defined, indicates that the setpgrp2() (as in DG/UX)
603 * routine is available to set the current process group.
604 */
20e68413 605/*#define HAS_SETPGRP2 / **/
fe14fcc3 606
85e6fe83 607/* HAS_SETPRIORITY:
608 * This symbol, if defined, indicates that the setpriority routine is
a687059c 609 * available to set a process's priority.
610 */
9003a523 611#define HAS_SETPRIORITY /**/
a687059c 612
85e6fe83 613/* HAS_SETREGID:
fe14fcc3 614 * This symbol, if defined, indicates that the setregid routine is
85e6fe83 615 * available to change the real and effective gid of the current
616 * process.
a687059c 617 */
85e6fe83 618/* HAS_SETRESGID:
fe14fcc3 619 * This symbol, if defined, indicates that the setresgid routine is
620 * available to change the real, effective and saved gid of the current
85e6fe83 621 * process.
fe14fcc3 622 */
9003a523 623#define HAS_SETREGID /**/
20e68413 624/*#define HAS_SETRESGID / **/
a687059c 625
85e6fe83 626/* HAS_SETREUID:
fe14fcc3 627 * This symbol, if defined, indicates that the setreuid routine is
85e6fe83 628 * available to change the real and effective uid of the current
629 * process.
fe14fcc3 630 */
85e6fe83 631/* HAS_SETRESUID:
fe14fcc3 632 * This symbol, if defined, indicates that the setresuid routine is
633 * available to change the real, effective and saved uid of the current
85e6fe83 634 * process.
a687059c 635 */
9003a523 636#define HAS_SETREUID /**/
20e68413 637/*#define HAS_SETRESUID / **/
a687059c 638
85e6fe83 639/* HAS_SETRGID:
a687059c 640 * This symbol, if defined, indicates that the setrgid routine is available
641 * to change the real gid of the current program.
642 */
20e68413 643/*#define HAS_SETRGID / **/
a687059c 644
85e6fe83 645/* HAS_SETRUID:
a687059c 646 * This symbol, if defined, indicates that the setruid routine is available
647 * to change the real uid of the current program.
648 */
20e68413 649/*#define HAS_SETRUID / **/
fe14fcc3 650
85e6fe83 651/* HAS_SETSID:
652 * This symbol, if defined, indicates that the setsid routine is
653 * available to set the process group ID.
fe14fcc3 654 */
85e6fe83 655#define HAS_SETSID /**/
fe14fcc3 656
85e6fe83 657/* HAS_SHM:
658 * This symbol, if defined, indicates that the entire shm*(2) library is
659 * supported.
2b317908 660 */
85e6fe83 661#define HAS_SHM /**/
fe14fcc3 662
a0d0e21e 663/* Shmat_t:
664 * This symbol holds the return type of the shmat() system call.
665 * Usually set to 'void *' or 'char *'.
fe14fcc3 666 */
a0d0e21e 667/* HAS_SHMAT_PROTOTYPE:
668 * This symbol, if defined, indicates that the sys/shm.h includes
669 * a prototype for shmat(). Otherwise, it is up to the program to
670 * guess one. Shmat_t shmat _((int, Shmat_t, int)) is a good guess,
671 * but not always right so it should be emitted by the program only
672 * when HAS_SHMAT_PROTOTYPE is not defined to avoid conflicting defs.
fe14fcc3 673 */
4633a7c4 674#define Shmat_t void * /**/
675#define HAS_SHMAT_PROTOTYPE /**/
a687059c 676
fbfd4aab 677/* HAS_SIGACTION:
678 * This symbol, if defined, indicates that Vr4's sigaction() routine
679 * is available.
680 */
681#define HAS_SIGACTION /**/
682
85e6fe83 683/* HAS_SOCKET:
a687059c 684 * This symbol, if defined, indicates that the BSD socket interface is
685 * supported.
686 */
85e6fe83 687/* HAS_SOCKETPAIR:
688 * This symbol, if defined, indicates that the BSD socketpair() call is
a687059c 689 * supported.
690 */
85e6fe83 691#define HAS_SOCKET /**/
4633a7c4 692#define HAS_SOCKETPAIR /**/
a687059c 693
85e6fe83 694/* USE_STAT_BLOCKS:
a687059c 695 * This symbol is defined if this system has a stat structure declaring
696 * st_blksize and st_blocks.
697 */
4633a7c4 698#define USE_STAT_BLOCKS /**/
a687059c 699
16d20bd9 700/* USE_STDIO_PTR:
701 * This symbol is defined if the _ptr and _cnt fields (or similar)
702 * of the stdio FILE structure can be used to access the stdio buffer
703 * for a file handle. If this is defined, then the FILE_ptr(fp)
704 * and FILE_cnt(fp) macros will also be defined and should be used
705 * to access these fields.
706 */
16d20bd9 707/* FILE_ptr:
708 * This macro is used to access the _ptr field (or equivalent) of the
709 * FILE structure pointed to by its argument. This macro will always be
710 * defined if USE_STDIO_PTR is defined.
711 */
c2960299 712/* STDIO_PTR_LVALUE:
713 * This symbol is defined if the FILE_ptr macro can be used as an
714 * lvalue.
715 */
16d20bd9 716/* FILE_cnt:
717 * This macro is used to access the _cnt field (or equivalent) of the
718 * FILE structure pointed to by its argument. This macro will always be
719 * defined if USE_STDIO_PTR is defined.
720 */
c2960299 721/* STDIO_CNT_LVALUE:
722 * This symbol is defined if the FILE_cnt macro can be used as an
723 * lvalue.
724 */
9003a523 725/* FILE_filbuf:
726 * This macro is used to access the internal stdio _filbuf function
727 * (or equivalent), if STDIO_CNT_LVALUE and STDIO_PTR_LVALUE
728 * are defined. It is typically either _filbuf or __filbuf.
729 * This macro will only be defined if both STDIO_CNT_LVALUE and
730 * STDIO_PTR_LVALUE are defined.
731 */
732#define USE_STDIO_PTR /**/
16d20bd9 733#ifdef USE_STDIO_PTR
734#define FILE_ptr(fp) ((fp)->_ptr)
4aa0a1f7 735#define STDIO_PTR_LVALUE /**/
16d20bd9 736#define FILE_cnt(fp) ((fp)->_cnt)
4aa0a1f7 737#define STDIO_CNT_LVALUE /**/
9003a523 738#if defined(STDIO_PTR_LVALUE) && defined(STDIO_CNT_LVALUE)
739#define FILE_filbuf(fp) _filbuf(fp) /**/
740#endif
16d20bd9 741#endif
742
9003a523 743/* USE_STDIO_BASE:
744 * This symbol is defined if the _base field (or similar) of the
745 * stdio FILE structure can be used to access the stdio buffer for
746 * a file handle. If this is defined, then the FILE_base(fp) macro
747 * will also be defined and should be used to access this field.
748 * Also, the FILE_bufsiz(fp) macro will be defined and should be used
749 * to determine the number of bytes in the buffer. USE_STDIO_BASE
750 * will never be defined unless USE_STDIO_PTR is.
751 */
16d20bd9 752/* FILE_base:
753 * This macro is used to access the _base field (or equivalent) of the
754 * FILE structure pointed to by its argument. This macro will always be
755 * defined if USE_STDIO_BASE is defined.
756 */
757/* FILE_bufsiz:
758 * This macro is used to determine the number of bytes in the I/O
759 * buffer pointed to by _base field (or equivalent) of the FILE
760 * structure pointed to its argument. This macro will always be defined
761 * if USE_STDIO_BASE is defined.
a687059c 762 */
9003a523 763#define USE_STDIO_BASE /**/
16d20bd9 764#ifdef USE_STDIO_BASE
765#define FILE_base(fp) ((fp)->_base)
766#define FILE_bufsiz(fp) ((fp)->_cnt + (fp)->_ptr - (fp)->_base)
767#endif
8d063cd8 768
a0d0e21e 769/* HAS_STRCHR:
770 * This symbol is defined to indicate that the strchr()/strrchr()
771 * functions are available for string searching. If not, try the
772 * index()/rindex() pair.
773 */
774/* HAS_INDEX:
775 * This symbol is defined to indicate that the index()/rindex()
776 * functions are available for string searching.
777 */
778#define HAS_STRCHR /**/
20e68413 779/*#define HAS_INDEX / **/
a0d0e21e 780
781/* HAS_STRCOLL:
782 * This symbol, if defined, indicates that the strcoll routine is
783 * available to compare strings using collating information.
784 */
785#define HAS_STRCOLL /**/
786
85e6fe83 787/* USE_STRUCT_COPY:
8d063cd8 788 * This symbol, if defined, indicates that this C compiler knows how
789 * to copy structures. If undefined, you'll need to use a block copy
790 * routine of some sort instead.
791 */
85e6fe83 792#define USE_STRUCT_COPY /**/
fe14fcc3 793
a0d0e21e 794/* HAS_STRERROR:
795 * This symbol, if defined, indicates that the strerror routine is
796 * available to translate error numbers to strings. See the writeup
797 * of Strerror() in this file before you try to define your own.
798 */
799/* HAS_SYS_ERRLIST:
800 * This symbol, if defined, indicates that the sys_errlist array is
801 * available to translate error numbers to strings. The extern int
802 * sys_nerr gives the size of that table.
803 */
804/* Strerror:
805 * This preprocessor symbol is defined as a macro if strerror() is
806 * not available to translate error numbers to strings but sys_errlist[]
807 * array is there.
808 */
809#define HAS_STRERROR /**/
810#define HAS_SYS_ERRLIST /**/
811#define Strerror(e) strerror(e)
812
813/* HAS_STRXFRM:
814 * This symbol, if defined, indicates that the strxfrm() routine is
815 * available to transform strings.
816 */
817#define HAS_STRXFRM /**/
818
85e6fe83 819/* HAS_SYMLINK:
a687059c 820 * This symbol, if defined, indicates that the symlink routine is available
821 * to create symbolic links.
822 */
85e6fe83 823#define HAS_SYMLINK /**/
a687059c 824
85e6fe83 825/* HAS_SYSCALL:
826 * This symbol, if defined, indicates that the syscall routine is
827 * available to call arbitrary system calls. If undefined, that's tough.
a687059c 828 */
85e6fe83 829#define HAS_SYSCALL /**/
a687059c 830
ecfc5424 831/* HAS_SYSCONF:
832 * This symbol, if defined, indicates that sysconf() is available
833 * to determine system related limits and options.
834 */
835#define HAS_SYSCONF /**/
836
85e6fe83 837/* HAS_SYSTEM:
838 * This symbol, if defined, indicates that the system routine is
839 * available to issue a shell command.
68decaef 840 */
85e6fe83 841#define HAS_SYSTEM /**/
68decaef 842
a0d0e21e 843/* HAS_TCGETPGRP:
844 * This symbol, if defined, indicates that the tcgetpgrp routine is
845 * available to get foreground process group ID.
846 */
847#define HAS_TCGETPGRP /**/
848
849/* HAS_TCSETPGRP:
850 * This symbol, if defined, indicates that the tcsetpgrp routine is
851 * available to set foreground process group ID.
85e6fe83 852 */
a0d0e21e 853#define HAS_TCSETPGRP /**/
85e6fe83 854
ecfc5424 855/* Time_t:
856 * This symbol holds the type returned by time(). It can be long,
857 * or time_t on BSD sites (in which case <sys/types.h> should be
858 * included).
859 */
860#define Time_t time_t /* Time type */
861
85e6fe83 862/* HAS_TIMES:
863 * This symbol, if defined, indicates that the times() routine exists.
864 * Note that this became obsolete on some systems (SUNOS), which now
865 * use getrusage(). It may be necessary to include <sys/times.h>.
866 */
867#define HAS_TIMES /**/
868
869/* HAS_TRUNCATE:
fe14fcc3 870 * This symbol, if defined, indicates that the truncate routine is
871 * available to truncate files.
a687059c 872 */
4633a7c4 873#define HAS_TRUNCATE /**/
a0d0e21e 874
875/* HAS_TZNAME:
876 * This symbol, if defined, indicates that the tzname[] array is
877 * available to access timezone names.
878 */
879#define HAS_TZNAME /**/
880
881/* HAS_UMASK:
882 * This symbol, if defined, indicates that the umask routine is
883 * available to set and get the value of the file creation mask.
884 */
885#define HAS_UMASK /**/
a687059c 886
a0d0e21e 887/* HAS_VFORK:
888 * This symbol, if defined, indicates that vfork() exists.
8d063cd8 889 */
20e68413 890/*#define HAS_VFORK / **/
a687059c 891
ecfc5424 892/* Signal_t:
893 * This symbol's value is either "void" or "int", corresponding to the
894 * appropriate return type of a signal handler. Thus, you can declare
895 * a signal handler using "Signal_t (*handler)()", and define the
896 * handler using "Signal_t handler(sig)".
897 */
ecfc5424 898#define Signal_t void /* Signal handler's return type */
a687059c 899
85e6fe83 900/* HASVOLATILE:
fe14fcc3 901 * This symbol, if defined, indicates that this C compiler knows about
902 * the volatile declaration.
903 */
4633a7c4 904#define HASVOLATILE /**/
85e6fe83 905#ifndef HASVOLATILE
906#define volatile
907#endif
fe14fcc3 908
85e6fe83 909/* HAS_VPRINTF:
a687059c 910 * This symbol, if defined, indicates that the vprintf routine is available
911 * to printf with a pointer to an argument list. If unavailable, you
912 * may need to write your own, probably in terms of _doprnt().
913 */
85e6fe83 914/* USE_CHAR_VSPRINTF:
a687059c 915 * This symbol is defined if this system has vsprintf() returning type
916 * (char*). The trend seems to be to declare it as "int vsprintf()". It
917 * is up to the package author to declare vsprintf correctly based on the
918 * symbol.
919 */
85e6fe83 920#define HAS_VPRINTF /**/
20e68413 921/*#define USE_CHAR_VSPRINTF / **/
a687059c 922
85e6fe83 923/* HAS_WAIT4:
fe14fcc3 924 * This symbol, if defined, indicates that wait4() exists.
925 */
9003a523 926#define HAS_WAIT4 /**/
fe14fcc3 927
85e6fe83 928/* HAS_WAITPID:
929 * This symbol, if defined, indicates that the waitpid routine is
930 * available to wait for child process.
fe14fcc3 931 */
85e6fe83 932#define HAS_WAITPID /**/
fe14fcc3 933
a0d0e21e 934/* HAS_WCSTOMBS:
935 * This symbol, if defined, indicates that the wcstombs routine is
936 * available to convert wide character strings to multibyte strings.
937 */
4633a7c4 938#define HAS_WCSTOMBS /**/
a0d0e21e 939
940/* HAS_WCTOMB:
941 * This symbol, if defined, indicates that the wctomb routine is available
942 * to covert a wide character to a multibyte.
943 */
4633a7c4 944#define HAS_WCTOMB /**/
a0d0e21e 945
946/* Fpos_t:
947 * This symbol holds the type used to declare file positions in libc.
948 * It can be fpos_t, long, uint, etc... It may be necessary to include
949 * <sys/types.h> to get any typedef'ed information.
950 */
951#define Fpos_t fpos_t /* File position type */
952
953/* Gid_t:
954 * This symbol holds the return type of getgid() and the type of
955 * argument to setrgid() and related functions. Typically,
956 * it is the type of group ids in the kernel. It can be int, ushort,
957 * uid_t, etc... It may be necessary to include <sys/types.h> to get
958 * any typedef'ed information.
a687059c 959 */
a0d0e21e 960#define Gid_t gid_t /* Type for getgid(), etc... */
2b317908 961
ecfc5424 962/* Groups_t:
963 * This symbol holds the type used for the second argument to
964 * getgroups(). Usually, this is the same of gidtype, but
965 * sometimes it isn't. It can be int, ushort, uid_t, etc...
966 * It may be necessary to include <sys/types.h> to get any
967 * typedef'ed information. This is only required if you have
968 * getgroups().
969 */
970#ifdef HAS_GETGROUPS
971#define Groups_t gid_t /* Type for 2nd arg to getgroups() */
972#endif
973
232e078e 974/* DB_Prefix_t:
975 * This symbol contains the type of the prefix structure element
976 * in the <db.h> header file. In older versions of DB, it was
977 * int, while in newer ones it is u_int32_t.
978 */
979/* DB_Hash_t:
980 * This symbol contains the type of the prefix structure element
981 * in the <db.h> header file. In older versions of DB, it was
982 * int, while in newer ones it is size_t.
983 */
984#define DB_Hash_t int /**/
985#define DB_Prefix_t int /**/
986
85e6fe83 987/* I_DIRENT:
988 * This symbol, if defined, indicates to the C program that it should
989 * include <dirent.h>. Using this symbol also triggers the definition
990 * of the Direntry_t define which ends up being 'struct dirent' or
991 * 'struct direct' depending on the availability of <dirent.h>.
992 */
993/* DIRNAMLEN:
994 * This symbol, if defined, indicates to the C program that the length
995 * of directory entry names is provided by a d_namlen field. Otherwise
996 * you need to do strlen() on the d_name field.
2b317908 997 */
a0d0e21e 998/* Direntry_t:
999 * This symbol is set to 'struct direct' or 'struct dirent' depending on
1000 * whether dirent is available or not. You should use this pseudo type to
1001 * portably declare your directory entries.
1002 */
85e6fe83 1003#define I_DIRENT /**/
20e68413 1004/*#define DIRNAMLEN / **/
85e6fe83 1005#define Direntry_t struct dirent
a0d0e21e 1006
1007/* I_DLFCN:
1008 * This symbol, if defined, indicates that <dlfcn.h> exists and should
1009 * be included.
1010 */
4633a7c4 1011#define I_DLFCN /**/
a687059c 1012
85e6fe83 1013/* I_FCNTL:
fe14fcc3 1014 * This manifest constant tells the C program to include <fcntl.h>.
a687059c 1015 */
a0d0e21e 1016#define I_FCNTL /**/
a687059c 1017
a0d0e21e 1018/* I_FLOAT:
1019 * This symbol, if defined, indicates to the C program that it should
1020 * include <float.h> to get definition of symbols like DBL_MAX or
1021 * DBL_MIN, i.e. machine dependent floating point values.
a687059c 1022 */
a0d0e21e 1023#define I_FLOAT /**/
a687059c 1024
85e6fe83 1025/* I_GRP:
a687059c 1026 * This symbol, if defined, indicates to the C program that it should
85e6fe83 1027 * include <grp.h>.
a687059c 1028 */
85e6fe83 1029#define I_GRP /**/
a687059c 1030
a0d0e21e 1031/* I_LIMITS:
1032 * This symbol, if defined, indicates to the C program that it should
1033 * include <limits.h> to get definition of symbols like WORD_BIT or
1034 * LONG_MAX, i.e. machine dependant limitations.
1035 */
1036#define I_LIMITS /**/
1037
1038/* I_MATH:
1039 * This symbol, if defined, indicates to the C program that it should
1040 * include <math.h>.
1041 */
1042#define I_MATH /**/
1043
1044/* I_MEMORY:
1045 * This symbol, if defined, indicates to the C program that it should
1046 * include <memory.h>.
1047 */
20e68413 1048/*#define I_MEMORY / **/
a0d0e21e 1049
232e078e 1050/* I_NDBM:
16d20bd9 1051 * This symbol, if defined, indicates that <ndbm.h> exists and should
232e078e 1052 * be included.
1053 */
1054#define I_NDBM /**/
1055
ecfc5424 1056/* I_NET_ERRNO:
1057 * This symbol, if defined, indicates that <net/errno.h> exists and
1058 * should be included.
fe14fcc3 1059 */
20e68413 1060/*#define I_NET_ERRNO / **/
fe14fcc3 1061
85e6fe83 1062/* I_NETINET_IN:
a687059c 1063 * This symbol, if defined, indicates to the C program that it should
85e6fe83 1064 * include <netinet/in.h>. Otherwise, you may try <sys/in.h>.
a687059c 1065 */
85e6fe83 1066#define I_NETINET_IN /**/
85e6fe83 1067
a0d0e21e 1068/* I_PWD:
1069 * This symbol, if defined, indicates to the C program that it should
1070 * include <pwd.h>.
1071 */
1072/* PWQUOTA:
1073 * This symbol, if defined, indicates to the C program that struct passwd
1074 * contains pw_quota.
1075 */
1076/* PWAGE:
1077 * This symbol, if defined, indicates to the C program that struct passwd
1078 * contains pw_age.
1079 */
1080/* PWCHANGE:
1081 * This symbol, if defined, indicates to the C program that struct passwd
1082 * contains pw_change.
fe14fcc3 1083 */
a0d0e21e 1084/* PWCLASS:
1085 * This symbol, if defined, indicates to the C program that struct passwd
1086 * contains pw_class.
1087 */
1088/* PWEXPIRE:
1089 * This symbol, if defined, indicates to the C program that struct passwd
1090 * contains pw_expire.
1091 */
1092/* PWCOMMENT:
1093 * This symbol, if defined, indicates to the C program that struct passwd
1094 * contains pw_comment.
1095 */
1096#define I_PWD /**/
20e68413 1097/*#define PWQUOTA / **/
a0d0e21e 1098#define PWAGE /**/
20e68413 1099/*#define PWCHANGE / **/
1100/*#define PWCLASS / **/
1101/*#define PWEXPIRE / **/
a0d0e21e 1102#define PWCOMMENT /**/
85e6fe83 1103
1104/* I_STDDEF:
1105 * This symbol, if defined, indicates that <stddef.h> exists and should
1106 * be included.
fe14fcc3 1107 */
85e6fe83 1108#define I_STDDEF /**/
1109
a0d0e21e 1110/* I_STDLIB:
1111 * This symbol, if defined, indicates that <stdlib.h> exists and should
1112 * be included.
1113 */
1114#define I_STDLIB /**/
1115
85e6fe83 1116/* I_STRING:
1117 * This symbol, if defined, indicates to the C program that it should
1118 * include <string.h> (USG systems) instead of <strings.h> (BSD systems).
fe14fcc3 1119 */
85e6fe83 1120#define I_STRING /**/
1121
1122/* I_SYS_DIR:
1123 * This symbol, if defined, indicates to the C program that it should
1124 * include <sys/dir.h>.
fe14fcc3 1125 */
20e68413 1126/*#define I_SYS_DIR / **/
a687059c 1127
85e6fe83 1128/* I_SYS_FILE:
1129 * This symbol, if defined, indicates to the C program that it should
1130 * include <sys/file.h> to get definition of R_OK and friends.
a687059c 1131 */
20e68413 1132/*#define I_SYS_FILE / **/
a687059c 1133
85e6fe83 1134/* I_SYS_IOCTL:
1135 * This symbol, if defined, indicates that <sys/ioctl.h> exists and should
1136 * be included. Otherwise, include <sgtty.h> or <termio.h>.
a687059c 1137 */
85e6fe83 1138#define I_SYS_IOCTL /**/
a687059c 1139
85e6fe83 1140/* I_SYS_NDIR:
1141 * This symbol, if defined, indicates to the C program that it should
1142 * include <sys/ndir.h>.
fe14fcc3 1143 */
20e68413 1144/*#define I_SYS_NDIR / **/
85e6fe83 1145
a0d0e21e 1146/* I_SYS_PARAM:
1147 * This symbol, if defined, indicates to the C program that it should
1148 * include <sys/param.h>.
1149 */
1150#define I_SYS_PARAM /**/
1151
9003a523 1152/* I_SYS_RESOURCE:
1153 * This symbol, if defined, indicates to the C program that it should
1154 * include <sys/resource.h>.
1155 */
1156#define I_SYS_RESOURCE /**/
1157
85e6fe83 1158/* I_SYS_SELECT:
1159 * This symbol, if defined, indicates to the C program that it should
1160 * include <sys/select.h> in order to get definition of struct timeval.
fe14fcc3 1161 */
4633a7c4 1162#define I_SYS_SELECT /**/
85e6fe83 1163
a0d0e21e 1164/* I_SYS_TIMES:
85e6fe83 1165 * This symbol, if defined, indicates to the C program that it should
a0d0e21e 1166 * include <sys/times.h>.
fe14fcc3 1167 */
a0d0e21e 1168#define I_SYS_TIMES /**/
1169
fed7345c 1170/* I_SYS_TYPES:
1171 * This symbol, if defined, indicates to the C program that it should
1172 * include <sys/types.h>.
1173 */
1174#define I_SYS_TYPES /**/
1175
fbfd4aab 1176/* I_SYS_UN:
1177 * This symbol, if defined, indicates to the C program that it should
1178 * include <sys/un.h> to get UNIX domain socket definitions.
1179 */
1180#define I_SYS_UN /**/
1181
9003a523 1182/* I_SYS_WAIT:
1183 * This symbol, if defined, indicates to the C program that it should
1184 * include <sys/wait.h>.
1185 */
1186#define I_SYS_WAIT /**/
1187
a0d0e21e 1188/* I_TERMIO:
1189 * This symbol, if defined, indicates that the program should include
1190 * <termio.h> rather than <sgtty.h>. There are also differences in
1191 * the ioctl() calls that depend on the value of this symbol.
1192 */
1193/* I_TERMIOS:
1194 * This symbol, if defined, indicates that the program should include
1195 * the POSIX termios.h rather than sgtty.h or termio.h.
1196 * There are also differences in the ioctl() calls that depend on the
1197 * value of this symbol.
1198 */
1199/* I_SGTTY:
1200 * This symbol, if defined, indicates that the program should include
1201 * <sgtty.h> rather than <termio.h>. There are also differences in
1202 * the ioctl() calls that depend on the value of this symbol.
1203 */
20e68413 1204/*#define I_TERMIO / **/
a0d0e21e 1205#define I_TERMIOS /**/
20e68413 1206/*#define I_SGTTY / **/
a0d0e21e 1207
1208/* I_TIME:
1209 * This symbol, if defined, indicates to the C program that it should
1210 * include <time.h>.
1211 */
1212/* I_SYS_TIME:
1213 * This symbol, if defined, indicates to the C program that it should
1214 * include <sys/time.h>.
1215 */
1216/* I_SYS_TIME_KERNEL:
fe14fcc3 1217 * This symbol, if defined, indicates to the C program that it should
85e6fe83 1218 * include <sys/time.h> with KERNEL defined.
fe14fcc3 1219 */
20e68413 1220/*#define I_TIME / **/
85e6fe83 1221#define I_SYS_TIME /**/
20e68413 1222/*#define I_SYS_TIME_KERNEL / **/
fe14fcc3 1223
a0d0e21e 1224/* I_UNISTD:
1225 * This symbol, if defined, indicates to the C program that it should
1226 * include <unistd.h>.
1227 */
1228#define I_UNISTD /**/
1229
85e6fe83 1230/* I_UTIME:
a687059c 1231 * This symbol, if defined, indicates to the C program that it should
85e6fe83 1232 * include <utime.h>.
a687059c 1233 */
85e6fe83 1234#define I_UTIME /**/
a687059c 1235
9003a523 1236/* I_STDARG:
1237 * This symbol, if defined, indicates that <stdarg.h> exists and should
1238 * be included.
1239 */
1240/* I_VARARGS:
1241 * This symbol, if defined, indicates to the C program that it should
1242 * include <varargs.h>.
1243 */
1244#define I_STDARG /**/
20e68413 1245/*#define I_VARARGS / **/
9003a523 1246
a0d0e21e 1247/* I_VFORK:
1248 * This symbol, if defined, indicates to the C program that it should
1249 * include vfork.h.
1250 */
20e68413 1251/*#define I_VFORK / **/
fe14fcc3 1252
9003a523 1253/* INTSIZE:
1254 * This symbol contains the size of an int, so that the C preprocessor
1255 * can make decisions based on it.
1256 */
1257#define INTSIZE 4 /**/
1258
85e6fe83 1259/* Off_t:
1260 * This symbol holds the type used to declare offsets in the kernel.
1261 * It can be int, long, off_t, etc... It may be necessary to include
1262 * <sys/types.h> to get any typedef'ed information.
fe14fcc3 1263 */
85e6fe83 1264#define Off_t off_t /* <offset> type */
1265
ecfc5424 1266/* Mode_t:
1267 * This symbol holds the type used to declare file modes
1268 * for systems calls. It is usually mode_t, but may be
1269 * int or unsigned short. It may be necessary to include <sys/types.h>
1270 * to get any typedef'ed information.
1271 */
1272#define Mode_t mode_t /* file mode parameter for system calls */
1273
a0d0e21e 1274/* CAN_PROTOTYPE:
1275 * If defined, this macro indicates that the C compiler can handle
1276 * function prototypes.
1277 */
1278/* _:
1279 * This macro is used to declare function parameters for folks who want
1280 * to make declarations with prototypes using a different style than
1281 * the above macros. Use double parentheses. For example:
1282 *
1283 * int main _((int argc, char *argv[]));
1284 */
4633a7c4 1285#define CAN_PROTOTYPE /**/
a0d0e21e 1286#ifdef CAN_PROTOTYPE
1287#define _(args) args
1288#else
1289#define _(args) ()
1290#endif
85e6fe83 1291
1292/* RANDBITS:
1293 * This symbol contains the number of bits of random number the rand()
1294 * function produces. Usual values are 15, 16, and 31.
fe14fcc3 1295 */
a0d0e21e 1296#define RANDBITS 15 /**/
85e6fe83 1297
1298/* SCRIPTDIR:
1299 * This symbol holds the name of the directory in which the user wants
1300 * to put publicly executable scripts for the package in question. It
1301 * is often a directory that is mounted across diverse architectures.
1302 * Programs must be prepared to deal with ~name expansion.
fe14fcc3 1303 */
9003a523 1304#define SCRIPTDIR "/opt/perl/script" /**/
85e6fe83 1305
a0d0e21e 1306/* Select_fd_set_t:
1307 * This symbol holds the type used for the 2nd, 3rd, and 4th
1308 * arguments to select. Usually, this is 'fd_set *', if HAS_FD_SET
1309 * is defined, and 'int *' otherwise. This is only useful if you
1310 * have select(), of course.
1311 */
1312#define Select_fd_set_t fd_set * /**/
1313
a0d0e21e 1314/* Size_t:
1315 * This symbol holds the type used to declare length parameters
1316 * for string functions. It is usually size_t, but may be
1317 * unsigned long, int, etc. It may be necessary to include
1318 * <sys/types.h> to get any typedef'ed information.
1319 */
1320#define Size_t size_t /* length paramater for string functions */
1321
85e6fe83 1322/* STDCHAR:
1323 * This symbol is defined to be the type of char used in stdio.h.
1324 * It has the values "unsigned char" or "char".
fe14fcc3 1325 */
85e6fe83 1326#define STDCHAR unsigned char /**/
1327
1328/* Uid_t:
1329 * This symbol holds the type used to declare user ids in the kernel.
1330 * It can be int, ushort, uid_t, etc... It may be necessary to include
1331 * <sys/types.h> to get any typedef'ed information.
fe14fcc3 1332 */
85e6fe83 1333#define Uid_t uid_t /* UID type */
fe14fcc3 1334
a0d0e21e 1335/* LOC_SED:
1336 * This symbol holds the complete pathname to the sed program.
85e6fe83 1337 */
a0d0e21e 1338#define LOC_SED "/bin/sed" /**/
1339
36d1a04a 1340/* OSNAME:
1341 * This symbol contains the name of the operating system, as determined
9003a523 1342 * by Configure. You shouldn't rely on it too much; the specific
1343 * feature tests from Configure are generally more reliable.
36d1a04a 1344 */
1345#define OSNAME "solaris" /**/
1346
9003a523 1347/* ARCHLIB:
1348 * This variable, if defined, holds the name of the directory in
1349 * which the user wants to put architecture-dependent public
1350 * library files for perl5. It is most often a local directory
1351 * such as /usr/local/lib. Programs using this variable must be
1352 * prepared to deal with filename expansion. If ARCHLIB is the
1353 * same as PRIVLIB, it is not defined, since presumably the
1354 * program already searches PRIVLIB.
1355 */
1356/* ARCHLIB_EXP:
1357 * This symbol contains the ~name expanded version of ARCHLIB, to be used
1358 * in programs that are not prepared to deal with ~ expansion at run-time.
1359 */
20e68413 1360#define ARCHLIB "/opt/perl/lib/i86pc-solaris/5.00304" /**/
1361#define ARCHLIB_EXP "/opt/perl/lib/i86pc-solaris/5.00304" /**/
9003a523 1362
4633a7c4 1363/* BYTEORDER:
9003a523 1364 * This symbol holds the hexadecimal constant defined in byteorder,
4633a7c4 1365 * i.e. 0x1234 or 0x4321, etc...
9003a523 1366 * On NeXT 4 (and greater), you can build "Fat" Multiple Architecture
1367 * Binaries (MAB) on either big endian or little endian machines.
1368 * The endian-ness is available at compile-time. This only matters
1369 * for perl, where the config.h can be generated and installed on
1370 * one system, and used by a different architecture to build an
1371 * extension. Older versions of NeXT that might not have
1372 * defined either *_ENDIAN__ were all on Motorola 680x0 series,
1373 * so the default case (for NeXT) is big endian to catch them.
1374 * This might matter for NeXT 3.0.
1375 */
1376#ifndef NeXT
4633a7c4 1377#define BYTEORDER 0x1234 /* large digits for MSB */
9003a523 1378#else /* NeXT */
1379#ifdef __LITTLE_ENDIAN__
1380#define BYTEORDER 0x1234
1381#else /* __BIG_ENDIAN__ */
1382#define BYTEORDER 0x4321
1383#endif /* ENDIAN CHECK */
1384#endif /* NeXT */
4633a7c4 1385
1aef975c 1386/* CSH:
1387 * This symbol, if defined, indicates that the C-shell exists.
1388 * If defined, contains the full pathname of csh.
1389 */
1390#define CSH "/bin/csh" /**/
1391
a0d0e21e 1392/* DLSYM_NEEDS_UNDERSCORE:
1393 * This symbol, if defined, indicates that we need to prepend an
1394 * underscore to the symbol name before calling dlsym(). This only
1395 * makes sense if you *have* dlsym, which we will presume is the
1396 * case if you're using dl_dlopen.xs.
85e6fe83 1397 */
20e68413 1398/*#define DLSYM_NEEDS_UNDERSCORE / * */
a0d0e21e 1399
fbfd4aab 1400/* SETUID_SCRIPTS_ARE_SECURE_NOW:
1401 * This symbol, if defined, indicates that the bug that prevents
1402 * setuid scripts from being secure is not present in this kernel.
1403 */
1404/* DOSUID:
1405 * This symbol, if defined, indicates that the C program should
1406 * check the script that it is executing for setuid/setgid bits, and
1407 * attempt to emulate setuid/setgid on systems that have disabled
1408 * setuid #! scripts because the kernel can't do it securely.
1409 * It is up to the package designer to make sure that this emulation
1410 * is done securely. Among other things, it should do an fstat on
1411 * the script it just opened to make sure it really is a setuid/setgid
1412 * script, it should make sure the arguments passed correspond exactly
1413 * to the argument on the #! line, and it should not trust any
1414 * subprocesses to which it must pass the filename rather than the
1415 * file descriptor of the script to be executed.
1416 */
1417#define SETUID_SCRIPTS_ARE_SECURE_NOW /**/
20e68413 1418/*#define DOSUID / **/
fbfd4aab 1419
4633a7c4 1420/* Gconvert:
1421 * This preprocessor macro is defined to convert a floating point
1422 * number to a string without a trailing decimal point. This
1423 * emulates the behavior of sprintf("%g"), but is sometimes much more
1424 * efficient. If gconvert() is not available, but gcvt() drops the
1425 * trailing decimal point, then gcvt() is used. If all else fails,
1426 * a macro using sprintf("%g") is used. Arguments for the Gconvert
1427 * macro are: value, number of digits, whether trailing zeros should
1428 * be retained, and the output buffer.
1429 * Possible values are:
1430 * d_Gconvert='gconvert((x),(n),(t),(b))'
1431 * d_Gconvert='gcvt((x),(n),(b))'
1432 * d_Gconvert='sprintf((b),"%.*g",(n),(x))'
1433 * The last two assume trailing zeros should not be kept.
1434 */
1435#define Gconvert(x,n,t,b) gconvert((x),(n),(t),(b))
1436
9003a523 1437/* USE_SFIO:
1438 * This symbol, if defined, indicates that sfio should
1439 * be used.
1440 */
20e68413 1441/*#define USE_SFIO / **/
9003a523 1442
36d1a04a 1443/* Sigjmp_buf:
9003a523 1444 * This is the buffer type to be used with Sigsetjmp and Siglongjmp.
36d1a04a 1445 */
1446/* Sigsetjmp:
9003a523 1447 * This macro is used in the same way as sigsetjmp(), but will invoke
1448 * traditional setjmp() if sigsetjmp isn't available.
1449 * See HAS_SIGSETJMP.
36d1a04a 1450 */
1451/* Siglongjmp:
9003a523 1452 * This macro is used in the same way as siglongjmp(), but will invoke
1453 * traditional longjmp() if siglongjmp isn't available.
1454 * See HAS_SIGSETJMP.
36d1a04a 1455 */
1456#define HAS_SIGSETJMP /**/
1457#ifdef HAS_SIGSETJMP
1458#define Sigjmp_buf sigjmp_buf
9003a523 1459#define Sigsetjmp(buf,save_mask) sigsetjmp((buf),(save_mask))
1460#define Siglongjmp(buf,retval) siglongjmp((buf),(retval))
36d1a04a 1461#else
1462#define Sigjmp_buf jmp_buf
9003a523 1463#define Sigsetjmp(buf,save_mask) setjmp((buf))
1464#define Siglongjmp(buf,retval) longjmp((buf),(retval))
36d1a04a 1465#endif
1466
85e6fe83 1467/* USE_DYNAMIC_LOADING:
1468 * This symbol, if defined, indicates that dynamic loading of
1469 * some sort is available.
1470 */
4633a7c4 1471#define USE_DYNAMIC_LOADING /**/
1472
1473/* I_DBM:
1474 * This symbol, if defined, indicates that <dbm.h> exists and should
1475 * be included.
1476 */
1477/* I_RPCSVC_DBM:
1478 * This symbol, if defined, indicates that <rpcsvc/dbm.h> exists and
1479 * should be included.
1480 */
20e68413 1481/*#define I_DBM / **/
4633a7c4 1482#define I_RPCSVC_DBM /**/
1483
1484/* I_LOCALE:
1485 * This symbol, if defined, indicates to the C program that it should
1486 * include <locale.h>.
1487 */
1488#define I_LOCALE /**/
85e6fe83 1489
9003a523 1490/* I_SFIO:
1491 * This symbol, if defined, indicates to the C program that it should
1492 * include <sfio.h>.
1493 */
20e68413 1494/*#define I_SFIO / **/
9003a523 1495
1aef975c 1496/* I_SYS_STAT:
1497 * This symbol, if defined, indicates to the C program that it should
1498 * include <sys/stat.h>.
1499 */
1500#define I_SYS_STAT /**/
1501
9003a523 1502/* I_VALUES:
fbfd4aab 1503 * This symbol, if defined, indicates to the C program that it should
9003a523 1504 * include <values.h> to get definition of symbols like MINFLOAT or
1505 * MAXLONG, i.e. machine dependant limitations. Probably, you
1506 * should use <limits.h> instead, if it is available.
fbfd4aab 1507 */
9003a523 1508#define I_VALUES /**/
4633a7c4 1509
94b6baf5 1510/* Free_t:
1511 * This variable contains the return type of free(). It is usually
1512 * void, but occasionally int.
1513 */
85e6fe83 1514/* Malloc_t:
1515 * This symbol is the type of pointer returned by malloc and realloc.
1516 */
4633a7c4 1517#define Malloc_t void * /**/
94b6baf5 1518#define Free_t void /**/
85e6fe83 1519
1520/* MYMALLOC:
1521 * This symbol, if defined, indicates that we're using our own malloc.
1522 */
1523#define MYMALLOC /**/
1524
fbfd4aab 1525/* VAL_O_NONBLOCK:
1526 * This symbol is to be used during open() or fcntl(F_SETFL) to turn on
1527 * non-blocking I/O for the file descriptor. Note that there is no way
1528 * back, i.e. you cannot turn it blocking again this way. If you wish to
1529 * alternatively switch between blocking and non-blocking, use the
1530 * ioctl(FIOSNBIO) call instead, but that is not supported by all devices.
1531 */
1532/* VAL_EAGAIN:
1533 * This symbol holds the errno error code set by read() when no data was
1534 * present on the non-blocking file descriptor.
1535 */
1536/* RD_NODATA:
1537 * This symbol holds the return code from read() when no data is present
1538 * on the non-blocking file descriptor. Be careful! If EOF_NONBLOCK is
1539 * not defined, then you can't distinguish between no data and EOF by
1540 * issuing a read(). You'll have to find another way to tell for sure!
1541 */
1542/* EOF_NONBLOCK:
1543 * This symbol, if defined, indicates to the C program that a read() on
1544 * a non-blocking file descriptor will return 0 on EOF, and not the value
1545 * held in RD_NODATA (-1 usually, in that case!).
1546 */
1547#define VAL_O_NONBLOCK O_NONBLOCK
1548#define VAL_EAGAIN EAGAIN
1549#define RD_NODATA -1
1550#define EOF_NONBLOCK
1551
9003a523 1552/* OLDARCHLIB:
1553 * This variable, if defined, holds the name of the directory in
1554 * which the user has perl5.000 or perl5.001 architecture-dependent
1555 * public library files for perl5. For the most part, these
1556 * files will work with 5.002 (and later), but that is not
1557 * guaranteed.
1558 */
4633a7c4 1559/* OLDARCHLIB_EXP:
1560 * This symbol contains the ~name expanded version of OLDARCHLIB, to be
1561 * used in programs that are not prepared to deal with ~ expansion at
1562 * run-time.
1563 */
20e68413 1564/*#define OLDARCHLIB "" / **/
1565/*#define OLDARCHLIB_EXP "" / **/
4633a7c4 1566
9003a523 1567/* PRIVLIB:
1568 * This symbol contains the name of the private library for this package.
1569 * The library is private in the sense that it needn't be in anyone's
1570 * execution path, but it should be accessible by the world. The program
1571 * should be prepared to do ~ expansion.
1572 */
4633a7c4 1573/* PRIVLIB_EXP:
1574 * This symbol contains the ~name expanded version of PRIVLIB, to be used
16d20bd9 1575 * in programs that are not prepared to deal with ~ expansion at run-time.
1576 */
9003a523 1577#define PRIVLIB "/opt/perl/lib" /**/
1578#define PRIVLIB_EXP "/opt/perl/lib" /**/
1579
1580/* SH_PATH:
1581 * This symbol contains the full pathname to the shell used on this
1582 * on this system to execute Bourne shell scripts. Usually, this will be
1583 * /bin/sh, though it's possible that some systems will have /bin/ksh,
1584 * /bin/pdksh, /bin/ash, /bin/bash, or even something such as D:/bin/sh.
1585 */
1586#define SH_PATH "/bin/sh" /**/
4633a7c4 1587
1588/* SIG_NAME:
1589 * This symbol contains a list of signal names in order of
1590 * signal number. This is intended
1591 * to be used as a static array initialization, like this:
1592 * char *sig_name[] = { SIG_NAME };
1593 * The signals in the list are separated with commas, and each signal
1594 * is surrounded by double quotes. There is no leading SIG in the signal
1595 * name, i.e. SIGQUIT is known as "QUIT".
1596 * Gaps in the signal numbers (up to NSIG) are filled in with NUMnn,
1597 * etc., where nn is the actual signal number (e.g. NUM37).
1598 * The signal number for sig_name[i] is stored in sig_num[i].
1599 * The last element is 0 to terminate the list with a NULL. This
1600 * corresponds to the 0 at the end of the sig_num list.
1601 */
1602/* SIG_NUM:
1603 * This symbol contains a list of signal numbers, in the same order as the
1604 * SIG_NAME list. It is suitable for static array initialization, as in:
1605 * int sig_num[] = { SIG_NUM };
1606 * The signals in the list are separated with commas, and the indices
1607 * within that list and the SIG_NAME list match, so it's easy to compute
1608 * the signal name from a number or vice versa at the price of a small
1609 * dynamic linear lookup.
1610 * Duplicates are allowed, but are moved to the end of the list.
1611 * The signal number corresponding to sig_name[i] is sig_number[i].
1612 * if (i < NSIG) then sig_number[i] == i.
1613 * The last element is 0, corresponding to the 0 at the end of
1614 * the sig_name list.
1615 */
9003a523 1616#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 /**/
1617#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 /**/
4633a7c4 1618
9003a523 1619/* SITEARCH:
1620 * This symbol contains the name of the private library for this package.
1621 * The library is private in the sense that it needn't be in anyone's
1622 * execution path, but it should be accessible by the world. The program
1623 * should be prepared to do ~ expansion.
1624 * The standard distribution will put nothing in this directory.
1625 * Individual sites may place their own extensions and modules in
1626 * this directory.
1627 */
4633a7c4 1628/* SITEARCH_EXP:
1629 * This symbol contains the ~name expanded version of SITEARCH, to be used
1630 * in programs that are not prepared to deal with ~ expansion at run-time.
1631 */
9003a523 1632#define SITEARCH "/opt/perl/lib/site_perl/i86pc-solaris" /**/
1633#define SITEARCH_EXP "/opt/perl/lib/site_perl/i86pc-solaris" /**/
fbfd4aab 1634
9003a523 1635/* SITELIB:
1636 * This symbol contains the name of the private library for this package.
1637 * The library is private in the sense that it needn't be in anyone's
1638 * execution path, but it should be accessible by the world. The program
1639 * should be prepared to do ~ expansion.
1640 * The standard distribution will put nothing in this directory.
1641 * Individual sites may place their own extensions and modules in
1642 * this directory.
1643 */
fbfd4aab 1644/* SITELIB_EXP:
1645 * This symbol contains the ~name expanded version of SITELIB, to be used
1646 * in programs that are not prepared to deal with ~ expansion at run-time.
1647 */
9003a523 1648#define SITELIB "/opt/perl/lib/site_perl" /**/
1649#define SITELIB_EXP "/opt/perl/lib/site_perl" /**/
1650
1651/* SSize_t:
1652 * This symbol holds the type used by functions that return
1653 * a count of bytes or an error condition. It must be a signed type.
1654 * It is usually ssize_t, but may be long or int, etc.
1655 * It may be necessary to include <sys/types.h> or <unistd.h>
1656 * to get any typedef'ed information.
1657 * We will pick a type such that sizeof(SSize_t) == sizeof(Size_t).
1658 */
1659#define SSize_t ssize_t /* signed count of bytes */
fbfd4aab 1660
1661/* STARTPERL:
1662 * This variable contains the string to put in front of a perl
1663 * script to make sure (one hopes) that it runs with perl and not
1664 * some shell.
1665 */
9003a523 1666#define STARTPERL "#!/opt/perl/bin/perl" /**/
4633a7c4 1667
9003a523 1668/* USE_PERLIO:
1669 * This symbol, if defined, indicates that the PerlIO abstraction should
1670 * be used throughout. If not defined, stdio should be
1671 * used in a fully backward compatible manner.
ce4a058e 1672 */
20e68413 1673/*#define USE_PERLIO / **/
ce4a058e 1674
4633a7c4 1675/* VOIDFLAGS:
1676 * This symbol indicates how much support of the void type is given by this
1677 * compiler. What various bits mean:
1678 *
1679 * 1 = supports declaration of void
1680 * 2 = supports arrays of pointers to functions returning void
1681 * 4 = supports comparisons between pointers to void functions and
1682 * addresses of void functions
1683 * 8 = suports declaration of generic void pointers
1684 *
1685 * The package designer should define VOIDUSED to indicate the requirements
1686 * of the package. This can be done either by #defining VOIDUSED before
1687 * including config.h, or by defining defvoidused in Myinit.U. If the
1688 * latter approach is taken, only those flags will be tested. If the
1689 * level of void support necessary is not present, defines void to int.
1690 */
1691#ifndef VOIDUSED
1692#define VOIDUSED 15
1693#endif
1694#define VOIDFLAGS 15
1695#if (VOIDFLAGS & VOIDUSED) != VOIDUSED
1696#define void int /* is void to be avoided? */
1697#define M_VOID /* Xenix strikes again */
1698#endif
16d20bd9 1699
fe14fcc3 1700#endif