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