1# Posix detect program 2# (c) 2010 Andreas Rumpf 3 4# This program generates: 5# * A c program that prints a nim file containing constant variables holding the 6# value of many C #define's, on the platform it's currently running at 7# * A nim file that contains the same contants, but as nim var:s that fetch the 8# value of the constant using importc/header during the C compile phase. 9# 10# The first file allows nim to know the value of the constant at nim 11# compile time, but since the values differ across platform, isn't as portable. 12# The second one is more portable, and less semantically correct. It only works 13# when there's a backing C compiler available as well, preventing standalone 14# compilation. 15import os, strutils 16 17when defined(openbsd) or defined(freebsd) or defined(netbsd): 18 const 19 cc = "cc -o $# $#.c" 20 cpp = "cc -E -o $#.i $#.c" 21 ccLinkMath = "cc -lm -o $# $#.c" 22 cppLinkMath = "cc -lm -E -o $#.i $#.c" 23else: 24 const 25 cc = "gcc -o $# $#.c" 26 cpp = "gcc -E -o $#.i $#.c" 27 28const 29 cfile = """ 30/* Generated by detect.nim */ 31#define _GNU_SOURCE 32#define _POSIX_C_SOURCE 200809L 33 34#include <stdlib.h> 35#include <stdio.h> 36$1 37 38int main() { 39 FILE* f; 40 f = fopen("$3_$4_consts.nim", "w+"); 41 fputs("# Generated by detect.nim\n\n", f); 42 $2 43 fclose(f); 44} 45""" 46 ifile = """ 47/* Generated by detect.nim */ 48 49$1 50""" 51 nimfile = """ 52# Generated by detect.nim 53$1 54""" 55 56var 57 cur = "" 58 found = false 59 hd = "" 60 tl = "" 61 other = "" 62 63proc myExec(cmd: string): bool = 64 echo "CMD ", cmd 65 return execShellCmd(cmd) == 0 66 67proc header(s: string) = 68 cur = s 69 const testh = "testh" 70 var f: File 71 if open(f, addFileExt(testh, "c"), fmWrite): 72 f.write("#include $1\n" % s) 73 f.write("int main() { return 0; }\n") 74 close(f) 75 found = myExec(cc % [testh.addFileExt(ExeExt), testh]) 76 removeFile(addFileExt(testh, "c")) 77 78 addf(other, "\n# $1\n", cur) 79 80 if found: 81 addf(hd, "#include $1\n", cur) 82 addf(tl, " fprintf(f, \"\\n# $1\\n\");\n", cur) 83 echo("Found: ", s) 84 else: 85 echo("Not found: ", s) 86 87proc main = 88 const gen = "genconsts" 89 const pre = "pre" 90 var f: File 91 if open(f, addFileExt(gen, "c"), fmWrite): 92 f.write(cfile % [hd, tl, system.hostOS, system.hostCPU]) 93 close(f) 94 if open(f, addFileExt(pre, "c"), fmWrite): 95 f.write(cfile % [hd, tl, system.hostOS, system.hostCPU]) 96 close(f) 97 if open(f, "other_consts.nim", fmWrite): 98 f.write(nimfile % [other]) 99 close(f) 100 101 let cCompile = when defined(openbsd) or defined(freebsd) or defined(netbsd): ccLinkMath else: cc 102 let cppCompile = when defined(openbsd) or defined(freebsd) or defined(netbsd): cppLinkMath else: cpp 103 if not myExec(cCompile % [gen.addFileExt(ExeExt), gen]): quit(1) 104 if not myExec(cppCompile % [pre.addFileExt(ExeExt), pre]): quit(1) 105 when defined(windows): 106 if not myExec(gen.addFileExt(ExeExt)): quit(1) 107 else: 108 if not myExec("./" & gen): quit(1) 109 #removeFile(addFileExt(gen, "c")) 110 echo("Success") 111 112proc v(name: string, typ = "cint", no_other = false) = 113 var n = if name[0] == '_': substr(name, 1) else: name 114 var t = $typ 115 116 if not no_other: 117 addf(other, 118 "var $1* {.importc: \"$2\", header: \"$3\".}: $4\n", n, name, cur, t) 119 120 if not found: return 121 122 case typ 123 of "pointer": 124 addf(tl, 125 "#ifdef $3\n fprintf(f, \"const $1* = cast[$2](%p)\\n\", $3);\n#endif\n", 126 n, t, name) 127 of "cstring": 128 addf(tl, 129 "#ifdef $3\n fprintf(f, \"const $1* = $2(\\\"%s\\\")\\n\", $3);\n#endif\n", 130 n, t, name) 131 of "clong": 132 addf(tl, 133 "#ifdef $3\n fprintf(f, \"const $1* = $2(%ld)\\n\", $3);\n#endif\n", 134 n, t, name) 135 of "cint", "cshort", "TSa_Family": 136 addf(tl, 137 "#ifdef $3\n fprintf(f, \"const $1* = $2(%d)\\n\", $3);\n#endif\n", 138 n, t, name) 139 of "InAddrScalar": 140 addf(tl, 141 "#ifdef $3\n fprintf(f, \"const $1* = $2(%u)\\n\", $3);\n#endif\n", 142 n, t, name) 143 else: 144 addf(tl, 145 "#ifdef $3\n fprintf(f, \"const $1* = cast[$2](%d)\\n\", $3);\n#endif\n", 146 n, t, name) 147 148 149header("<aio.h>") 150v("AIO_ALLDONE") 151v("AIO_CANCELED") 152v("AIO_NOTCANCELED") 153v("LIO_NOP") 154v("LIO_NOWAIT") 155v("LIO_READ") 156v("LIO_WAIT") 157v("LIO_WRITE") 158 159header("<dlfcn.h>") 160v("RTLD_LAZY") 161v("RTLD_NOW") 162v("RTLD_GLOBAL") 163v("RTLD_LOCAL") 164 165header("<errno.h>") 166v("E2BIG") 167v("EACCES") 168v("EADDRINUSE") 169v("EADDRNOTAVAIL") 170v("EAFNOSUPPORT") 171v("EAGAIN") 172v("EALREADY") 173v("EBADF") 174v("EBADMSG") 175v("EBUSY") 176v("ECANCELED") 177v("ECHILD") 178v("ECONNABORTED") 179v("ECONNREFUSED") 180v("ECONNRESET") 181v("EDEADLK") 182v("EDESTADDRREQ") 183v("EDOM") 184v("EDQUOT") 185v("EEXIST") 186v("EFAULT") 187v("EFBIG") 188v("EHOSTUNREACH") 189v("EIDRM") 190v("EILSEQ") 191v("EINPROGRESS") 192v("EINTR") 193v("EINVAL") 194v("EIO") 195v("EISCONN") 196v("EISDIR") 197v("ELOOP") 198v("EMFILE") 199v("EMLINK") 200v("EMSGSIZE") 201v("EMULTIHOP") 202v("ENAMETOOLONG") 203v("ENETDOWN") 204v("ENETRESET") 205v("ENETUNREACH") 206v("ENFILE") 207v("ENOBUFS") 208v("ENODATA") 209v("ENODEV") 210v("ENOENT") 211v("ENOEXEC") 212v("ENOLCK") 213v("ENOLINK") 214v("ENOMEM") 215v("ENOMSG") 216v("ENOPROTOOPT") 217v("ENOSPC") 218v("ENOSR") 219v("ENOSTR") 220v("ENOSYS") 221v("ENOTCONN") 222v("ENOTDIR") 223v("ENOTEMPTY") 224v("ENOTSOCK") 225v("ENOTSUP") 226v("ENOTTY") 227v("ENXIO") 228v("EOPNOTSUPP") 229v("EOVERFLOW") 230v("EPERM") 231v("EPIPE") 232v("EPROTO") 233v("EPROTONOSUPPORT") 234v("EPROTOTYPE") 235v("ERANGE") 236v("EROFS") 237v("ESPIPE") 238v("ESRCH") 239v("ESTALE") 240v("ETIME") 241v("ETIMEDOUT") 242v("ETXTBSY") 243v("EWOULDBLOCK") 244v("EXDEV") 245 246header("<fcntl.h>") 247v("F_DUPFD") 248v("F_DUPFD_CLOEXEC") 249v("F_GETFD") 250v("F_SETFD") 251v("F_GETFL") 252v("F_SETFL") 253v("F_GETLK") 254v("F_SETLK") 255v("F_SETLKW") 256v("F_GETOWN") 257v("F_SETOWN") 258v("FD_CLOEXEC") 259v("F_RDLCK") 260v("F_UNLCK") 261v("F_WRLCK") 262v("O_CREAT") 263v("O_EXCL") 264v("O_NOCTTY") 265v("O_TRUNC") 266v("O_APPEND") 267v("O_DSYNC") 268v("O_NONBLOCK") 269v("O_RSYNC") 270v("O_SYNC") 271v("O_ACCMODE") 272v("O_RDONLY") 273v("O_RDWR") 274v("O_WRONLY") 275v("O_CLOEXEC") 276v("O_DIRECT") 277v("O_PATH") 278v("O_NOATIME") 279v("O_TMPFILE") 280v("POSIX_FADV_NORMAL") 281v("POSIX_FADV_SEQUENTIAL") 282v("POSIX_FADV_RANDOM") 283v("POSIX_FADV_WILLNEED") 284v("POSIX_FADV_DONTNEED") 285v("POSIX_FADV_NOREUSE") 286 287header("<fenv.h>") 288v("FE_DIVBYZERO") 289v("FE_INEXACT") 290v("FE_INVALID") 291v("FE_OVERFLOW") 292v("FE_UNDERFLOW") 293v("FE_ALL_EXCEPT") 294v("FE_DOWNWARD") 295v("FE_TONEAREST") 296v("FE_TOWARDZERO") 297v("FE_UPWARD") 298v("FE_DFL_ENV") 299 300header("<fmtmsg.h>") 301v("MM_HARD") 302v("MM_SOFT") 303v("MM_FIRM") 304v("MM_APPL") 305v("MM_UTIL") 306v("MM_OPSYS") 307v("MM_RECOVER") 308v("MM_NRECOV") 309v("MM_HALT") 310v("MM_ERROR") 311v("MM_WARNING") 312v("MM_INFO") 313v("MM_NOSEV") 314v("MM_PRINT") 315v("MM_CONSOLE") 316v("MM_OK") 317v("MM_NOTOK") 318v("MM_NOMSG") 319v("MM_NOCON") 320 321header("<fnmatch.h>") 322v("FNM_NOMATCH") 323v("FNM_PATHNAME") 324v("FNM_PERIOD") 325v("FNM_NOESCAPE") 326v("FNM_NOSYS") 327 328header("<ftw.h>") 329v("FTW_F") 330v("FTW_D") 331v("FTW_DNR") 332v("FTW_DP") 333v("FTW_NS") 334v("FTW_SL") 335v("FTW_SLN") 336v("FTW_PHYS") 337v("FTW_MOUNT") 338v("FTW_DEPTH") 339v("FTW_CHDIR") 340 341header("<glob.h>") 342v("GLOB_APPEND") 343v("GLOB_DOOFFS") 344v("GLOB_ERR") 345v("GLOB_MARK") 346v("GLOB_NOCHECK") 347v("GLOB_NOESCAPE") 348v("GLOB_NOSORT") 349v("GLOB_ABORTED") 350v("GLOB_NOMATCH") 351v("GLOB_NOSPACE") 352v("GLOB_NOSYS") 353 354header("<langinfo.h>") 355v("CODESET") 356v("D_T_FMT") 357v("D_FMT") 358v("T_FMT") 359v("T_FMT_AMPM") 360v("AM_STR") 361v("PM_STR") 362v("DAY_1") 363v("DAY_2") 364v("DAY_3") 365v("DAY_4") 366v("DAY_5") 367v("DAY_6") 368v("DAY_7") 369v("ABDAY_1") 370v("ABDAY_2") 371v("ABDAY_3") 372v("ABDAY_4") 373v("ABDAY_5") 374v("ABDAY_6") 375v("ABDAY_7") 376v("MON_1") 377v("MON_2") 378v("MON_3") 379v("MON_4") 380v("MON_5") 381v("MON_6") 382v("MON_7") 383v("MON_8") 384v("MON_9") 385v("MON_10") 386v("MON_11") 387v("MON_12") 388v("ABMON_1") 389v("ABMON_2") 390v("ABMON_3") 391v("ABMON_4") 392v("ABMON_5") 393v("ABMON_6") 394v("ABMON_7") 395v("ABMON_8") 396v("ABMON_9") 397v("ABMON_10") 398v("ABMON_11") 399v("ABMON_12") 400v("ERA") 401v("ERA_D_FMT") 402v("ERA_D_T_FMT") 403v("ERA_T_FMT") 404v("ALT_DIGITS") 405v("RADIXCHAR") 406v("THOUSEP") 407v("YESEXPR") 408v("NOEXPR") 409v("CRNCYSTR") 410 411header("<locale.h>") 412v("LC_ALL") 413v("LC_COLLATE") 414v("LC_CTYPE") 415v("LC_MESSAGES") 416v("LC_MONETARY") 417v("LC_NUMERIC") 418v("LC_TIME") 419 420header("<netdb.h>") 421v("IPPORT_RESERVED") 422v("HOST_NOT_FOUND") 423v("NO_DATA") 424v("NO_RECOVERY") 425v("TRY_AGAIN") 426v("AI_PASSIVE") 427v("AI_CANONNAME") 428v("AI_NUMERICHOST") 429v("AI_NUMERICSERV") 430v("AI_V4MAPPED") 431v("AI_ALL") 432v("AI_ADDRCONFIG") 433v("NI_NOFQDN") 434v("NI_NUMERICHOST") 435v("NI_NAMEREQD") 436v("NI_NUMERICSERV") 437v("NI_NUMERICSCOPE") 438v("NI_DGRAM") 439v("EAI_AGAIN") 440v("EAI_BADFLAGS") 441v("EAI_FAIL") 442v("EAI_FAMILY") 443v("EAI_MEMORY") 444v("EAI_NONAME") 445v("EAI_SERVICE") 446v("EAI_SOCKTYPE") 447v("EAI_SYSTEM") 448v("EAI_OVERFLOW") 449 450header("<net/if.h>") 451v("IF_NAMESIZE") 452 453header("<netinet/in.h>") 454v("IPPROTO_IP") 455v("IPPROTO_IPV6") 456v("IPPROTO_ICMP") 457v("IPPROTO_ICMPV6") 458v("IPPROTO_RAW") 459v("IPPROTO_TCP") 460v("IPPROTO_UDP") 461v("INADDR_ANY", "InAddrScalar") 462v("INADDR_LOOPBACK", "InAddrScalar") 463v("INADDR_BROADCAST", "InAddrScalar") 464v("INET_ADDRSTRLEN") 465v("INET6_ADDRSTRLEN") 466v("IPV6_JOIN_GROUP") 467v("IPV6_LEAVE_GROUP") 468v("IPV6_MULTICAST_HOPS") 469v("IPV6_MULTICAST_IF") 470v("IPV6_MULTICAST_LOOP") 471v("IPV6_UNICAST_HOPS") 472v("IPV6_V6ONLY") 473 474header("<netinet/tcp.h>") 475v("TCP_NODELAY") 476 477header("<nl_types.h>") 478v("NL_SETD") 479v("NL_CAT_LOCALE") 480 481header("<poll.h>") 482v("POLLIN", "cshort") 483v("POLLRDNORM", "cshort") 484v("POLLRDBAND", "cshort") 485v("POLLPRI", "cshort") 486v("POLLOUT", "cshort") 487v("POLLWRNORM", "cshort") 488v("POLLWRBAND", "cshort") 489v("POLLERR", "cshort") 490v("POLLHUP", "cshort") 491v("POLLNVAL", "cshort") 492 493header("<pthread.h>") 494v("PTHREAD_BARRIER_SERIAL_THREAD") 495v("PTHREAD_CANCEL_ASYNCHRONOUS") 496v("PTHREAD_CANCEL_ENABLE") 497v("PTHREAD_CANCEL_DEFERRED") 498v("PTHREAD_CANCEL_DISABLE") 499 #v("PTHREAD_CANCELED") 500 #v("PTHREAD_COND_INITIALIZER") 501v("PTHREAD_CREATE_DETACHED") 502v("PTHREAD_CREATE_JOINABLE") 503v("PTHREAD_EXPLICIT_SCHED") 504v("PTHREAD_INHERIT_SCHED") 505v("PTHREAD_MUTEX_DEFAULT") 506v("PTHREAD_MUTEX_ERRORCHECK") 507 #v("PTHREAD_MUTEX_INITIALIZER") 508v("PTHREAD_MUTEX_NORMAL") 509v("PTHREAD_MUTEX_RECURSIVE") 510 #v("PTHREAD_ONCE_INIT") 511v("PTHREAD_PRIO_INHERIT") 512v("PTHREAD_PRIO_NONE") 513v("PTHREAD_PRIO_PROTECT") 514v("PTHREAD_PROCESS_SHARED") 515v("PTHREAD_PROCESS_PRIVATE") 516v("PTHREAD_SCOPE_PROCESS") 517v("PTHREAD_SCOPE_SYSTEM") 518 519header("<sched.h>") 520v("SCHED_FIFO") 521v("SCHED_RR") 522v("SCHED_SPORADIC") 523v("SCHED_OTHER") 524 525header("<semaphore.h>") 526v("SEM_FAILED", "pointer") 527 528header("<signal.h>") 529v("SIGEV_NONE") 530v("SIGEV_SIGNAL") 531v("SIGEV_THREAD") 532v("SIGABRT") 533v("SIGALRM") 534v("SIGBUS") 535v("SIGCHLD") 536v("SIGCONT") 537v("SIGFPE") 538v("SIGHUP") 539v("SIGILL") 540v("SIGINT") 541v("SIGKILL") 542v("SIGPIPE") 543v("SIGQUIT") 544v("SIGSEGV") 545v("SIGSTOP") 546v("SIGTERM") 547v("SIGTSTP") 548v("SIGTTIN") 549v("SIGTTOU") 550v("SIGUSR1") 551v("SIGUSR2") 552v("SIGPOLL") 553v("SIGPROF") 554v("SIGSYS") 555v("SIGTRAP") 556v("SIGURG") 557v("SIGVTALRM") 558v("SIGXCPU") 559v("SIGXFSZ") 560v("SA_NOCLDSTOP") 561v("SIG_BLOCK") 562v("SIG_UNBLOCK") 563v("SIG_SETMASK") 564v("SA_ONSTACK") 565v("SA_RESETHAND") 566v("SA_RESTART") 567v("SA_SIGINFO") 568v("SA_NOCLDWAIT") 569v("SA_NODEFER") 570v("SS_ONSTACK") 571v("SS_DISABLE") 572v("MINSIGSTKSZ") 573v("SIGSTKSZ") 574 575v("SIG_HOLD", "Sighandler") 576v("SIG_DFL", "Sighandler") 577v("SIG_ERR", "Sighandler") 578v("SIG_IGN", "Sighandler") 579 580header("<sys/ipc.h>") 581v("IPC_CREAT") 582v("IPC_EXCL") 583v("IPC_NOWAIT") 584v("IPC_PRIVATE") 585v("IPC_RMID") 586v("IPC_SET") 587v("IPC_STAT") 588 589header("<sys/mman.h>") 590v("PROT_READ") 591v("PROT_WRITE") 592v("PROT_EXEC") 593v("PROT_NONE") 594v("MAP_ANONYMOUS") 595v("MAP_FIXED_NOREPLACE") 596v("MAP_NORESERVE") 597v("MAP_SHARED") 598v("MAP_PRIVATE") 599v("MAP_FIXED") 600v("MS_ASYNC") 601v("MS_SYNC") 602v("MS_INVALIDATE") 603v("MCL_CURRENT") 604v("MCL_FUTURE") 605v("MAP_FAILED", "pointer") 606v("POSIX_MADV_NORMAL") 607v("POSIX_MADV_SEQUENTIAL") 608v("POSIX_MADV_RANDOM") 609v("POSIX_MADV_WILLNEED") 610v("POSIX_MADV_DONTNEED") 611v("POSIX_TYPED_MEM_ALLOCATE") 612v("POSIX_TYPED_MEM_ALLOCATE_CONTIG") 613v("POSIX_TYPED_MEM_MAP_ALLOCATABLE") 614v("MAP_POPULATE", no_other = true) 615 616header("<sys/resource.h>") 617v("RLIMIT_NOFILE") 618 619header("<sys/select.h>") 620v("FD_SETSIZE") 621 622header("<sys/socket.h>") 623v("MSG_CTRUNC") 624v("MSG_DONTROUTE") 625v("MSG_EOR") 626v("MSG_OOB") 627v("SCM_RIGHTS") 628v("SO_ACCEPTCONN") 629v("SO_BROADCAST") 630v("SO_DEBUG") 631v("SO_DONTROUTE") 632v("SO_ERROR") 633v("SO_KEEPALIVE") 634v("SO_LINGER") 635v("SO_OOBINLINE") 636v("SO_RCVBUF") 637v("SO_RCVLOWAT") 638v("SO_RCVTIMEO") 639v("SO_REUSEADDR") 640v("SO_SNDBUF") 641v("SO_SNDLOWAT") 642v("SO_SNDTIMEO") 643v("SO_TYPE") 644v("SOCK_DGRAM") 645v("SOCK_RAW") 646v("SOCK_SEQPACKET") 647v("SOCK_STREAM") 648v("SOCK_CLOEXEC", no_other = true) 649v("SOL_SOCKET") 650v("SOMAXCONN") 651v("SO_REUSEPORT", no_other = true) 652v("MSG_NOSIGNAL", no_other = true) 653v("MSG_PEEK") 654v("MSG_TRUNC") 655v("MSG_WAITALL") 656v("AF_INET") 657v("AF_INET6") 658v("AF_UNIX") 659v("AF_UNSPEC") 660v("SHUT_RD") 661v("SHUT_RDWR") 662v("SHUT_WR") 663 664header("<sys/stat.h>") 665v("S_IFBLK") 666v("S_IFCHR") 667v("S_IFDIR") 668v("S_IFIFO") 669v("S_IFLNK") 670v("S_IFMT") 671v("S_IFREG") 672v("S_IFSOCK") 673v("S_IRGRP") 674v("S_IROTH") 675v("S_IRUSR") 676v("S_IRWXG") 677v("S_IRWXO") 678v("S_IRWXU") 679v("S_ISGID") 680v("S_ISUID") 681v("S_ISVTX") 682v("S_IWGRP") 683v("S_IWOTH") 684v("S_IWUSR") 685v("S_IXGRP") 686v("S_IXOTH") 687v("S_IXUSR") 688 689header("<sys/statvfs.h>") 690v("ST_RDONLY") 691v("ST_NOSUID") 692 693header("<sys/wait.h>") 694v("WNOHANG") 695v("WUNTRACED") 696 #v("WEXITSTATUS") 697 #v("WSTOPSIG") 698 #v("WTERMSIG") 699v("WEXITED") 700v("WSTOPPED") 701v("WCONTINUED") 702v("WNOWAIT") 703v("P_ALL") 704v("P_PID") 705v("P_PGID") 706 707header("<spawn.h>") 708v("POSIX_SPAWN_RESETIDS") 709v("POSIX_SPAWN_SETPGROUP") 710v("POSIX_SPAWN_SETSCHEDPARAM") 711v("POSIX_SPAWN_SETSCHEDULER") 712v("POSIX_SPAWN_SETSIGDEF") 713v("POSIX_SPAWN_SETSIGMASK") 714v("POSIX_SPAWN_USEVFORK", no_other = true) 715 716header("<stdio.h>") 717v("_IOFBF") 718v("_IONBF") 719 720header("<time.h>") 721v("CLOCKS_PER_SEC", "clong") 722v("CLOCK_PROCESS_CPUTIME_ID") 723v("CLOCK_THREAD_CPUTIME_ID") 724v("CLOCK_REALTIME") 725v("TIMER_ABSTIME") 726v("CLOCK_MONOTONIC") 727 728header("<unistd.h>") 729v("_POSIX_ASYNC_IO") 730v("_POSIX_PRIO_IO") 731v("_POSIX_SYNC_IO") 732v("F_OK") 733v("R_OK") 734v("W_OK") 735v("X_OK") 736v("_CS_PATH") 737v("_CS_POSIX_V6_ILP32_OFF32_CFLAGS") 738v("_CS_POSIX_V6_ILP32_OFF32_LDFLAGS") 739v("_CS_POSIX_V6_ILP32_OFF32_LIBS") 740v("_CS_POSIX_V6_ILP32_OFFBIG_CFLAGS") 741v("_CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS") 742v("_CS_POSIX_V6_ILP32_OFFBIG_LIBS") 743v("_CS_POSIX_V6_LP64_OFF64_CFLAGS") 744v("_CS_POSIX_V6_LP64_OFF64_LDFLAGS") 745v("_CS_POSIX_V6_LP64_OFF64_LIBS") 746v("_CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS") 747v("_CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS") 748v("_CS_POSIX_V6_LPBIG_OFFBIG_LIBS") 749v("_CS_POSIX_V6_WIDTH_RESTRICTED_ENVS") 750v("F_LOCK") 751v("F_TEST") 752v("F_TLOCK") 753v("F_ULOCK") 754v("_PC_2_SYMLINKS") 755v("_PC_ALLOC_SIZE_MIN") 756v("_PC_ASYNC_IO") 757v("_PC_CHOWN_RESTRICTED") 758v("_PC_FILESIZEBITS") 759v("_PC_LINK_MAX") 760v("_PC_MAX_CANON") 761v("_PC_MAX_INPUT") 762v("_PC_NAME_MAX") 763v("_PC_NO_TRUNC") 764v("_PC_PATH_MAX") 765v("_PC_PIPE_BUF") 766v("_PC_PRIO_IO") 767v("_PC_REC_INCR_XFER_SIZE") 768v("_PC_REC_MIN_XFER_SIZE") 769v("_PC_REC_XFER_ALIGN") 770v("_PC_SYMLINK_MAX") 771v("_PC_SYNC_IO") 772v("_PC_VDISABLE") 773v("_SC_2_C_BIND") 774v("_SC_2_C_DEV") 775v("_SC_2_CHAR_TERM") 776v("_SC_2_FORT_DEV") 777v("_SC_2_FORT_RUN") 778v("_SC_2_LOCALEDEF") 779v("_SC_2_PBS") 780v("_SC_2_PBS_ACCOUNTING") 781v("_SC_2_PBS_CHECKPOINT") 782v("_SC_2_PBS_LOCATE") 783v("_SC_2_PBS_MESSAGE") 784v("_SC_2_PBS_TRACK") 785v("_SC_2_SW_DEV") 786v("_SC_2_UPE") 787v("_SC_2_VERSION") 788v("_SC_ADVISORY_INFO") 789v("_SC_AIO_LISTIO_MAX") 790v("_SC_AIO_MAX") 791v("_SC_AIO_PRIO_DELTA_MAX") 792v("_SC_ARG_MAX") 793v("_SC_ASYNCHRONOUS_IO") 794v("_SC_ATEXIT_MAX") 795v("_SC_BARRIERS") 796v("_SC_BC_BASE_MAX") 797v("_SC_BC_DIM_MAX") 798v("_SC_BC_SCALE_MAX") 799v("_SC_BC_STRING_MAX") 800v("_SC_CHILD_MAX") 801v("_SC_CLK_TCK") 802v("_SC_CLOCK_SELECTION") 803v("_SC_COLL_WEIGHTS_MAX") 804v("_SC_CPUTIME") 805v("_SC_DELAYTIMER_MAX") 806v("_SC_EXPR_NEST_MAX") 807v("_SC_FSYNC") 808v("_SC_GETGR_R_SIZE_MAX") 809v("_SC_GETPW_R_SIZE_MAX") 810v("_SC_HOST_NAME_MAX") 811v("_SC_IOV_MAX") 812v("_SC_IPV6") 813v("_SC_JOB_CONTROL") 814v("_SC_LINE_MAX") 815v("_SC_LOGIN_NAME_MAX") 816v("_SC_MAPPED_FILES") 817v("_SC_MEMLOCK") 818v("_SC_MEMLOCK_RANGE") 819v("_SC_MEMORY_PROTECTION") 820v("_SC_MESSAGE_PASSING") 821v("_SC_MONOTONIC_CLOCK") 822v("_SC_MQ_OPEN_MAX") 823v("_SC_MQ_PRIO_MAX") 824v("_SC_NGROUPS_MAX") 825v("_SC_OPEN_MAX") 826v("_SC_PAGESIZE") # Synonym for _SC_PAGE_SIZE 827v("_SC_PRIORITIZED_IO") 828v("_SC_PRIORITY_SCHEDULING") 829v("_SC_RAW_SOCKETS") 830v("_SC_RE_DUP_MAX") 831v("_SC_READER_WRITER_LOCKS") 832v("_SC_REALTIME_SIGNALS") 833v("_SC_REGEXP") 834v("_SC_RTSIG_MAX") 835v("_SC_SAVED_IDS") 836v("_SC_SEM_NSEMS_MAX") 837v("_SC_SEM_VALUE_MAX") 838v("_SC_SEMAPHORES") 839v("_SC_SHARED_MEMORY_OBJECTS") 840v("_SC_SHELL") 841v("_SC_SIGQUEUE_MAX") 842v("_SC_SPAWN") 843v("_SC_SPIN_LOCKS") 844v("_SC_SPORADIC_SERVER") 845v("_SC_SS_REPL_MAX") 846v("_SC_STREAM_MAX") 847v("_SC_SYMLOOP_MAX") 848v("_SC_SYNCHRONIZED_IO") 849v("_SC_THREAD_ATTR_STACKADDR") 850v("_SC_THREAD_ATTR_STACKSIZE") 851v("_SC_THREAD_CPUTIME") 852v("_SC_THREAD_DESTRUCTOR_ITERATIONS") 853v("_SC_THREAD_KEYS_MAX") 854v("_SC_THREAD_PRIO_INHERIT") 855v("_SC_THREAD_PRIO_PROTECT") 856v("_SC_THREAD_PRIORITY_SCHEDULING") 857v("_SC_THREAD_PROCESS_SHARED") 858v("_SC_THREAD_SAFE_FUNCTIONS") 859v("_SC_THREAD_SPORADIC_SERVER") 860v("_SC_THREAD_STACK_MIN") 861v("_SC_THREAD_THREADS_MAX") 862v("_SC_THREADS") 863v("_SC_TIMEOUTS") 864v("_SC_TIMER_MAX") 865v("_SC_TIMERS") 866v("_SC_TRACE") 867v("_SC_TRACE_EVENT_FILTER") 868v("_SC_TRACE_EVENT_NAME_MAX") 869v("_SC_TRACE_INHERIT") 870v("_SC_TRACE_LOG") 871v("_SC_TRACE_NAME_MAX") 872v("_SC_TRACE_SYS_MAX") 873v("_SC_TRACE_USER_EVENT_MAX") 874v("_SC_TTY_NAME_MAX") 875v("_SC_TYPED_MEMORY_OBJECTS") 876v("_SC_TZNAME_MAX") 877v("_SC_V6_ILP32_OFF32") 878v("_SC_V6_ILP32_OFFBIG") 879v("_SC_V6_LP64_OFF64") 880v("_SC_V6_LPBIG_OFFBIG") 881v("_SC_VERSION") 882v("_SC_XBS5_ILP32_OFF32") 883v("_SC_XBS5_ILP32_OFFBIG") 884v("_SC_XBS5_LP64_OFF64") 885v("_SC_XBS5_LPBIG_OFFBIG") 886v("_SC_XOPEN_CRYPT") 887v("_SC_XOPEN_ENH_I18N") 888v("_SC_XOPEN_LEGACY") 889v("_SC_XOPEN_REALTIME") 890v("_SC_XOPEN_REALTIME_THREADS") 891v("_SC_XOPEN_SHM") 892v("_SC_XOPEN_STREAMS") 893v("_SC_XOPEN_UNIX") 894v("_SC_XOPEN_VERSION") 895v("_SC_NPROCESSORS_ONLN") 896v("SEEK_SET") 897v("SEEK_CUR") 898v("SEEK_END") 899 900main() 901