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