diff options
Diffstat (limited to 'tools/detect')
-rw-r--r-- | tools/detect/.gitignore | 5 | ||||
-rw-r--r-- | tools/detect/detect.nim | 905 | ||||
-rw-r--r-- | tools/detect/macosx_consts.nim | 629 | ||||
-rw-r--r-- | tools/detect/timesize.c | 9 | ||||
-rw-r--r-- | tools/detect/windows_amd64_consts.nim | 152 | ||||
-rw-r--r-- | tools/detect/windows_i386_consts.nim | 96 |
6 files changed, 1796 insertions, 0 deletions
diff --git a/tools/detect/.gitignore b/tools/detect/.gitignore new file mode 100644 index 000000000..4a32aee50 --- /dev/null +++ b/tools/detect/.gitignore @@ -0,0 +1,5 @@ +pre.c +pre.i +genconsts.c +other_consts.nim +linux_amd64_consts.nim diff --git a/tools/detect/detect.nim b/tools/detect/detect.nim new file mode 100644 index 000000000..ed9438494 --- /dev/null +++ b/tools/detect/detect.nim @@ -0,0 +1,905 @@ +# Posix detect program +# (c) 2010 Andreas Rumpf + +# This program generates: +# * A c program that prints a nim file containing constant variables holding the +# value of many C #define's, on the platform it's currently running at +# * A nim file that contains the same contants, but as nim var:s that fetch the +# value of the constant using importc/header during the C compile phase. +# +# The first file allows nim to know the value of the constant at nim +# compile time, but since the values differ across platform, isn't as portable. +# The second one is more portable, and less semantically correct. It only works +# when there's a backing C compiler available as well, preventing standalone +# compilation. +import std/[os, strutils] + +when defined(nimPreviewSlimSystem): + import std/syncio + +when defined(openbsd) or defined(freebsd) or defined(netbsd): + const + cc = "cc -o $# $#.c" + cpp = "cc -E -o $#.i $#.c" + ccLinkMath = "cc -lm -o $# $#.c" + cppLinkMath = "cc -lm -E -o $#.i $#.c" +else: + const + cc = "gcc -o $# $#.c" + cpp = "gcc -E -o $#.i $#.c" + +const + cfile = """ +/* Generated by detect.nim */ +#define _GNU_SOURCE +#define _POSIX_C_SOURCE 200809L + +#include <stdlib.h> +#include <stdio.h> +$1 + +int main() { + FILE* f; + f = fopen("$3_$4_consts.nim", "w+"); + fputs("# Generated by detect.nim\n\n", f); + $2 + fclose(f); +} +""" + ifile = """ +/* Generated by detect.nim */ + +$1 +""" + nimfile = """ +# Generated by detect.nim +$1 +""" + +var + cur = "" + found = false + hd = "" + tl = "" + other = "" + +proc myExec(cmd: string): bool = + echo "CMD ", cmd + return execShellCmd(cmd) == 0 + +proc header(s: string) = + cur = s + const testh = "testh" + var f: File + if open(f, addFileExt(testh, "c"), fmWrite): + f.write("#include $1\n" % s) + f.write("int main() { return 0; }\n") + close(f) + found = myExec(cc % [testh.addFileExt(ExeExt), testh]) + removeFile(addFileExt(testh, "c")) + + addf(other, "\n# $1\n", cur) + + if found: + addf(hd, "#include $1\n", cur) + addf(tl, " fprintf(f, \"\\n# $1\\n\");\n", cur) + echo("Found: ", s) + else: + echo("Not found: ", s) + +proc main = + const gen = "genconsts" + const pre = "pre" + var f: File + if open(f, addFileExt(gen, "c"), fmWrite): + f.write(cfile % [hd, tl, system.hostOS, system.hostCPU]) + close(f) + if open(f, addFileExt(pre, "c"), fmWrite): + f.write(cfile % [hd, tl, system.hostOS, system.hostCPU]) + close(f) + if open(f, "other_consts.nim", fmWrite): + f.write(nimfile % [other]) + close(f) + + let cCompile = when defined(openbsd) or defined(freebsd) or defined(netbsd): ccLinkMath else: cc + let cppCompile = when defined(openbsd) or defined(freebsd) or defined(netbsd): cppLinkMath else: cpp + if not myExec(cCompile % [gen.addFileExt(ExeExt), gen]): quit(1) + if not myExec(cppCompile % [pre.addFileExt(ExeExt), pre]): quit(1) + when defined(windows): + if not myExec(gen.addFileExt(ExeExt)): quit(1) + else: + if not myExec("./" & gen): quit(1) + #removeFile(addFileExt(gen, "c")) + echo("Success") + +proc v(name: string, typ = "cint", no_other = false) = + var n = if name[0] == '_': substr(name, 1) else: name + var t = $typ + + if not no_other: + addf(other, + "var $1* {.importc: \"$2\", header: \"$3\".}: $4\n", n, name, cur, t) + + if not found: return + + case typ + of "pointer": + addf(tl, + "#ifdef $3\n fprintf(f, \"const $1* = cast[$2](%p)\\n\", $3);\n#endif\n", + n, t, name) + of "cstring": + addf(tl, + "#ifdef $3\n fprintf(f, \"const $1* = $2(\\\"%s\\\")\\n\", $3);\n#endif\n", + n, t, name) + of "clong": + addf(tl, + "#ifdef $3\n fprintf(f, \"const $1* = $2(%ld)\\n\", $3);\n#endif\n", + n, t, name) + of "cint", "cshort", "TSa_Family": + addf(tl, + "#ifdef $3\n fprintf(f, \"const $1* = $2(%d)\\n\", $3);\n#endif\n", + n, t, name) + of "InAddrScalar": + addf(tl, + "#ifdef $3\n fprintf(f, \"const $1* = $2(%u)\\n\", $3);\n#endif\n", + n, t, name) + else: + addf(tl, + "#ifdef $3\n fprintf(f, \"const $1* = cast[$2](%d)\\n\", $3);\n#endif\n", + n, t, name) + + +header("<aio.h>") +v("AIO_ALLDONE") +v("AIO_CANCELED") +v("AIO_NOTCANCELED") +v("LIO_NOP") +v("LIO_NOWAIT") +v("LIO_READ") +v("LIO_WAIT") +v("LIO_WRITE") + +header("<dlfcn.h>") +v("RTLD_LAZY") +v("RTLD_NOW") +v("RTLD_GLOBAL") +v("RTLD_LOCAL") + +header("<errno.h>") +v("E2BIG") +v("EACCES") +v("EADDRINUSE") +v("EADDRNOTAVAIL") +v("EAFNOSUPPORT") +v("EAGAIN") +v("EALREADY") +v("EBADF") +v("EBADMSG") +v("EBUSY") +v("ECANCELED") +v("ECHILD") +v("ECONNABORTED") +v("ECONNREFUSED") +v("ECONNRESET") +v("EDEADLK") +v("EDESTADDRREQ") +v("EDOM") +v("EDQUOT") +v("EEXIST") +v("EFAULT") +v("EFBIG") +v("EHOSTUNREACH") +v("EIDRM") +v("EILSEQ") +v("EINPROGRESS") +v("EINTR") +v("EINVAL") +v("EIO") +v("EISCONN") +v("EISDIR") +v("ELOOP") +v("EMFILE") +v("EMLINK") +v("EMSGSIZE") +v("EMULTIHOP") +v("ENAMETOOLONG") +v("ENETDOWN") +v("ENETRESET") +v("ENETUNREACH") +v("ENFILE") +v("ENOBUFS") +v("ENODATA") +v("ENODEV") +v("ENOENT") +v("ENOEXEC") +v("ENOLCK") +v("ENOLINK") +v("ENOMEM") +v("ENOMSG") +v("ENOPROTOOPT") +v("ENOSPC") +v("ENOSR") +v("ENOSTR") +v("ENOSYS") +v("ENOTCONN") +v("ENOTDIR") +v("ENOTEMPTY") +v("ENOTSOCK") +v("ENOTSUP") +v("ENOTTY") +v("ENXIO") +v("EOPNOTSUPP") +v("EOVERFLOW") +v("EPERM") +v("EPIPE") +v("EPROTO") +v("EPROTONOSUPPORT") +v("EPROTOTYPE") +v("ERANGE") +v("EROFS") +v("ESPIPE") +v("ESRCH") +v("ESTALE") +v("ETIME") +v("ETIMEDOUT") +v("ETXTBSY") +v("EWOULDBLOCK") +v("EXDEV") + +header("<fcntl.h>") +v("F_DUPFD") +v("F_DUPFD_CLOEXEC") +v("F_GETFD") +v("F_SETFD") +v("F_GETFL") +v("F_SETFL") +v("F_GETLK") +v("F_SETLK") +v("F_SETLKW") +v("F_GETOWN") +v("F_SETOWN") +v("FD_CLOEXEC") +v("F_RDLCK") +v("F_UNLCK") +v("F_WRLCK") +v("O_CREAT") +v("O_EXCL") +v("O_NOCTTY") +v("O_TRUNC") +v("O_APPEND") +v("O_DSYNC") +v("O_NONBLOCK") +v("O_RSYNC") +v("O_SYNC") +v("O_ACCMODE") +v("O_RDONLY") +v("O_RDWR") +v("O_WRONLY") +v("O_CLOEXEC") +v("O_DIRECT") +v("O_PATH") +v("O_NOATIME") +v("O_TMPFILE") +v("POSIX_FADV_NORMAL") +v("POSIX_FADV_SEQUENTIAL") +v("POSIX_FADV_RANDOM") +v("POSIX_FADV_WILLNEED") +v("POSIX_FADV_DONTNEED") +v("POSIX_FADV_NOREUSE") + +header("<fenv.h>") +v("FE_DIVBYZERO") +v("FE_INEXACT") +v("FE_INVALID") +v("FE_OVERFLOW") +v("FE_UNDERFLOW") +v("FE_ALL_EXCEPT") +v("FE_DOWNWARD") +v("FE_TONEAREST") +v("FE_TOWARDZERO") +v("FE_UPWARD") +v("FE_DFL_ENV") + +header("<fmtmsg.h>") +v("MM_HARD") +v("MM_SOFT") +v("MM_FIRM") +v("MM_APPL") +v("MM_UTIL") +v("MM_OPSYS") +v("MM_RECOVER") +v("MM_NRECOV") +v("MM_HALT") +v("MM_ERROR") +v("MM_WARNING") +v("MM_INFO") +v("MM_NOSEV") +v("MM_PRINT") +v("MM_CONSOLE") +v("MM_OK") +v("MM_NOTOK") +v("MM_NOMSG") +v("MM_NOCON") + +header("<fnmatch.h>") +v("FNM_NOMATCH") +v("FNM_PATHNAME") +v("FNM_PERIOD") +v("FNM_NOESCAPE") +v("FNM_NOSYS") + +header("<ftw.h>") +v("FTW_F") +v("FTW_D") +v("FTW_DNR") +v("FTW_DP") +v("FTW_NS") +v("FTW_SL") +v("FTW_SLN") +v("FTW_PHYS") +v("FTW_MOUNT") +v("FTW_DEPTH") +v("FTW_CHDIR") + +header("<glob.h>") +v("GLOB_APPEND") +v("GLOB_DOOFFS") +v("GLOB_ERR") +v("GLOB_MARK") +v("GLOB_NOCHECK") +v("GLOB_NOESCAPE") +v("GLOB_NOSORT") +v("GLOB_ABORTED") +v("GLOB_NOMATCH") +v("GLOB_NOSPACE") +v("GLOB_NOSYS") + +header("<langinfo.h>") +v("CODESET") +v("D_T_FMT") +v("D_FMT") +v("T_FMT") +v("T_FMT_AMPM") +v("AM_STR") +v("PM_STR") +v("DAY_1") +v("DAY_2") +v("DAY_3") +v("DAY_4") +v("DAY_5") +v("DAY_6") +v("DAY_7") +v("ABDAY_1") +v("ABDAY_2") +v("ABDAY_3") +v("ABDAY_4") +v("ABDAY_5") +v("ABDAY_6") +v("ABDAY_7") +v("MON_1") +v("MON_2") +v("MON_3") +v("MON_4") +v("MON_5") +v("MON_6") +v("MON_7") +v("MON_8") +v("MON_9") +v("MON_10") +v("MON_11") +v("MON_12") +v("ABMON_1") +v("ABMON_2") +v("ABMON_3") +v("ABMON_4") +v("ABMON_5") +v("ABMON_6") +v("ABMON_7") +v("ABMON_8") +v("ABMON_9") +v("ABMON_10") +v("ABMON_11") +v("ABMON_12") +v("ERA") +v("ERA_D_FMT") +v("ERA_D_T_FMT") +v("ERA_T_FMT") +v("ALT_DIGITS") +v("RADIXCHAR") +v("THOUSEP") +v("YESEXPR") +v("NOEXPR") +v("CRNCYSTR") + +header("<locale.h>") +v("LC_ALL") +v("LC_COLLATE") +v("LC_CTYPE") +v("LC_MESSAGES") +v("LC_MONETARY") +v("LC_NUMERIC") +v("LC_TIME") + +header("<netdb.h>") +v("IPPORT_RESERVED") +v("HOST_NOT_FOUND") +v("NO_DATA") +v("NO_RECOVERY") +v("TRY_AGAIN") +v("AI_PASSIVE") +v("AI_CANONNAME") +v("AI_NUMERICHOST") +v("AI_NUMERICSERV") +v("AI_V4MAPPED") +v("AI_ALL") +v("AI_ADDRCONFIG") +v("NI_NOFQDN") +v("NI_NUMERICHOST") +v("NI_NAMEREQD") +v("NI_NUMERICSERV") +v("NI_NUMERICSCOPE") +v("NI_DGRAM") +v("EAI_AGAIN") +v("EAI_BADFLAGS") +v("EAI_FAIL") +v("EAI_FAMILY") +v("EAI_MEMORY") +v("EAI_NONAME") +v("EAI_SERVICE") +v("EAI_SOCKTYPE") +v("EAI_SYSTEM") +v("EAI_OVERFLOW") + +header("<net/if.h>") +v("IF_NAMESIZE") + +header("<netinet/in.h>") +v("IPPROTO_IP") +v("IPPROTO_IPV6") +v("IPPROTO_ICMP") +v("IPPROTO_ICMPV6") +v("IPPROTO_RAW") +v("IPPROTO_TCP") +v("IPPROTO_UDP") +v("INADDR_ANY", "InAddrScalar") +v("INADDR_LOOPBACK", "InAddrScalar") +v("INADDR_BROADCAST", "InAddrScalar") +v("INET_ADDRSTRLEN") +v("INET6_ADDRSTRLEN") +v("IPV6_JOIN_GROUP") +v("IPV6_LEAVE_GROUP") +v("IPV6_MULTICAST_HOPS") +v("IPV6_MULTICAST_IF") +v("IPV6_MULTICAST_LOOP") +v("IPV6_UNICAST_HOPS") +v("IPV6_V6ONLY") + +header("<netinet/tcp.h>") +v("TCP_NODELAY") + +header("<nl_types.h>") +v("NL_SETD") +v("NL_CAT_LOCALE") + +header("<poll.h>") +v("POLLIN", "cshort") +v("POLLRDNORM", "cshort") +v("POLLRDBAND", "cshort") +v("POLLPRI", "cshort") +v("POLLOUT", "cshort") +v("POLLWRNORM", "cshort") +v("POLLWRBAND", "cshort") +v("POLLERR", "cshort") +v("POLLHUP", "cshort") +v("POLLNVAL", "cshort") + +header("<pthread.h>") +v("PTHREAD_BARRIER_SERIAL_THREAD") +v("PTHREAD_CANCEL_ASYNCHRONOUS") +v("PTHREAD_CANCEL_ENABLE") +v("PTHREAD_CANCEL_DEFERRED") +v("PTHREAD_CANCEL_DISABLE") + #v("PTHREAD_CANCELED") + #v("PTHREAD_COND_INITIALIZER") +v("PTHREAD_CREATE_DETACHED") +v("PTHREAD_CREATE_JOINABLE") +v("PTHREAD_EXPLICIT_SCHED") +v("PTHREAD_INHERIT_SCHED") +v("PTHREAD_MUTEX_DEFAULT") +v("PTHREAD_MUTEX_ERRORCHECK") + #v("PTHREAD_MUTEX_INITIALIZER") +v("PTHREAD_MUTEX_NORMAL") +v("PTHREAD_MUTEX_RECURSIVE") + #v("PTHREAD_ONCE_INIT") +v("PTHREAD_PRIO_INHERIT") +v("PTHREAD_PRIO_NONE") +v("PTHREAD_PRIO_PROTECT") +v("PTHREAD_PROCESS_SHARED") +v("PTHREAD_PROCESS_PRIVATE") +v("PTHREAD_SCOPE_PROCESS") +v("PTHREAD_SCOPE_SYSTEM") + +header("<sched.h>") +v("SCHED_FIFO") +v("SCHED_RR") +v("SCHED_SPORADIC") +v("SCHED_OTHER") + +header("<semaphore.h>") +v("SEM_FAILED", "pointer") + +header("<signal.h>") +v("SIGEV_NONE") +v("SIGEV_SIGNAL") +v("SIGEV_THREAD") +v("SIGABRT") +v("SIGALRM") +v("SIGBUS") +v("SIGCHLD") +v("SIGCONT") +v("SIGFPE") +v("SIGHUP") +v("SIGILL") +v("SIGINT") +v("SIGKILL") +v("SIGPIPE") +v("SIGQUIT") +v("SIGSEGV") +v("SIGSTOP") +v("SIGTERM") +v("SIGTSTP") +v("SIGTTIN") +v("SIGTTOU") +v("SIGUSR1") +v("SIGUSR2") +v("SIGPOLL") +v("SIGPROF") +v("SIGSYS") +v("SIGTRAP") +v("SIGURG") +v("SIGVTALRM") +v("SIGXCPU") +v("SIGXFSZ") +v("SA_NOCLDSTOP") +v("SIG_BLOCK") +v("SIG_UNBLOCK") +v("SIG_SETMASK") +v("SA_ONSTACK") +v("SA_RESETHAND") +v("SA_RESTART") +v("SA_SIGINFO") +v("SA_NOCLDWAIT") +v("SA_NODEFER") +v("SS_ONSTACK") +v("SS_DISABLE") +v("MINSIGSTKSZ") +v("SIGSTKSZ") + +v("SIG_HOLD", "Sighandler") +v("SIG_DFL", "Sighandler") +v("SIG_ERR", "Sighandler") +v("SIG_IGN", "Sighandler") + +header("<sys/ipc.h>") +v("IPC_CREAT") +v("IPC_EXCL") +v("IPC_NOWAIT") +v("IPC_PRIVATE") +v("IPC_RMID") +v("IPC_SET") +v("IPC_STAT") + +header("<sys/mman.h>") +v("PROT_READ") +v("PROT_WRITE") +v("PROT_EXEC") +v("PROT_NONE") +v("MAP_ANONYMOUS") +v("MAP_FIXED_NOREPLACE") +v("MAP_NORESERVE") +v("MAP_SHARED") +v("MAP_PRIVATE") +v("MAP_FIXED") +v("MS_ASYNC") +v("MS_SYNC") +v("MS_INVALIDATE") +v("MCL_CURRENT") +v("MCL_FUTURE") +v("MAP_FAILED", "pointer") +v("POSIX_MADV_NORMAL") +v("POSIX_MADV_SEQUENTIAL") +v("POSIX_MADV_RANDOM") +v("POSIX_MADV_WILLNEED") +v("POSIX_MADV_DONTNEED") +v("POSIX_TYPED_MEM_ALLOCATE") +v("POSIX_TYPED_MEM_ALLOCATE_CONTIG") +v("POSIX_TYPED_MEM_MAP_ALLOCATABLE") +v("MAP_POPULATE", no_other = true) + +header("<sys/resource.h>") +v("RLIMIT_NOFILE") +v("RLIMIT_STACK") + +header("<sys/select.h>") +v("FD_SETSIZE") + +header("<sys/socket.h>") +v("MSG_CTRUNC") +v("MSG_DONTROUTE") +v("MSG_EOR") +v("MSG_OOB") +v("SCM_RIGHTS") +v("SO_ACCEPTCONN") +v("SO_BINDTODEVICE") +v("SO_BROADCAST") +v("SO_DEBUG") +v("SO_DONTROUTE") +v("SO_ERROR") +v("SO_KEEPALIVE") +v("SO_LINGER") +v("SO_OOBINLINE") +v("SO_RCVBUF") +v("SO_RCVLOWAT") +v("SO_RCVTIMEO") +v("SO_REUSEADDR") +v("SO_SNDBUF") +v("SO_SNDLOWAT") +v("SO_SNDTIMEO") +v("SO_TYPE") +v("SOCK_DGRAM") +v("SOCK_RAW") +v("SOCK_SEQPACKET") +v("SOCK_STREAM") +v("SOCK_CLOEXEC", no_other = true) +v("SOL_SOCKET") +v("SOMAXCONN") +v("SO_REUSEPORT", no_other = true) +v("MSG_NOSIGNAL", no_other = true) +v("MSG_PEEK") +v("MSG_TRUNC") +v("MSG_WAITALL") +v("AF_INET") +v("AF_INET6") +v("AF_UNIX") +v("AF_UNSPEC") +v("SHUT_RD") +v("SHUT_RDWR") +v("SHUT_WR") + +header("<sys/stat.h>") +v("S_IFBLK") +v("S_IFCHR") +v("S_IFDIR") +v("S_IFIFO") +v("S_IFLNK") +v("S_IFMT") +v("S_IFREG") +v("S_IFSOCK") +v("S_IRGRP") +v("S_IROTH") +v("S_IRUSR") +v("S_IRWXG") +v("S_IRWXO") +v("S_IRWXU") +v("S_ISGID") +v("S_ISUID") +v("S_ISVTX") +v("S_IWGRP") +v("S_IWOTH") +v("S_IWUSR") +v("S_IXGRP") +v("S_IXOTH") +v("S_IXUSR") + +header("<sys/statvfs.h>") +v("ST_RDONLY") +v("ST_NOSUID") + +header("<sys/wait.h>") +v("WNOHANG") +v("WUNTRACED") + #v("WEXITSTATUS") + #v("WSTOPSIG") + #v("WTERMSIG") +v("WEXITED") +v("WSTOPPED") +v("WCONTINUED") +v("WNOWAIT") +v("P_ALL") +v("P_PID") +v("P_PGID") + +header("<spawn.h>") +v("POSIX_SPAWN_RESETIDS") +v("POSIX_SPAWN_SETPGROUP") +v("POSIX_SPAWN_SETSCHEDPARAM") +v("POSIX_SPAWN_SETSCHEDULER") +v("POSIX_SPAWN_SETSIGDEF") +v("POSIX_SPAWN_SETSIGMASK") +v("POSIX_SPAWN_USEVFORK", no_other = true) + +header("<stdio.h>") +v("_IOFBF") +v("_IONBF") + +header("<time.h>") +v("CLOCKS_PER_SEC", "clong") +v("CLOCK_PROCESS_CPUTIME_ID") +v("CLOCK_THREAD_CPUTIME_ID") +v("CLOCK_REALTIME") +v("TIMER_ABSTIME") +v("CLOCK_MONOTONIC") + +header("<unistd.h>") +v("_POSIX_ASYNC_IO") +v("_POSIX_PRIO_IO") +v("_POSIX_SYNC_IO") +v("F_OK") +v("R_OK") +v("W_OK") +v("X_OK") +v("_CS_PATH") +v("_CS_POSIX_V6_ILP32_OFF32_CFLAGS") +v("_CS_POSIX_V6_ILP32_OFF32_LDFLAGS") +v("_CS_POSIX_V6_ILP32_OFF32_LIBS") +v("_CS_POSIX_V6_ILP32_OFFBIG_CFLAGS") +v("_CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS") +v("_CS_POSIX_V6_ILP32_OFFBIG_LIBS") +v("_CS_POSIX_V6_LP64_OFF64_CFLAGS") +v("_CS_POSIX_V6_LP64_OFF64_LDFLAGS") +v("_CS_POSIX_V6_LP64_OFF64_LIBS") +v("_CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS") +v("_CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS") +v("_CS_POSIX_V6_LPBIG_OFFBIG_LIBS") +v("_CS_POSIX_V6_WIDTH_RESTRICTED_ENVS") +v("F_LOCK") +v("F_TEST") +v("F_TLOCK") +v("F_ULOCK") +v("_PC_2_SYMLINKS") +v("_PC_ALLOC_SIZE_MIN") +v("_PC_ASYNC_IO") +v("_PC_CHOWN_RESTRICTED") +v("_PC_FILESIZEBITS") +v("_PC_LINK_MAX") +v("_PC_MAX_CANON") +v("_PC_MAX_INPUT") +v("_PC_NAME_MAX") +v("_PC_NO_TRUNC") +v("_PC_PATH_MAX") +v("_PC_PIPE_BUF") +v("_PC_PRIO_IO") +v("_PC_REC_INCR_XFER_SIZE") +v("_PC_REC_MIN_XFER_SIZE") +v("_PC_REC_XFER_ALIGN") +v("_PC_SYMLINK_MAX") +v("_PC_SYNC_IO") +v("_PC_VDISABLE") +v("_SC_2_C_BIND") +v("_SC_2_C_DEV") +v("_SC_2_CHAR_TERM") +v("_SC_2_FORT_DEV") +v("_SC_2_FORT_RUN") +v("_SC_2_LOCALEDEF") +v("_SC_2_PBS") +v("_SC_2_PBS_ACCOUNTING") +v("_SC_2_PBS_CHECKPOINT") +v("_SC_2_PBS_LOCATE") +v("_SC_2_PBS_MESSAGE") +v("_SC_2_PBS_TRACK") +v("_SC_2_SW_DEV") +v("_SC_2_UPE") +v("_SC_2_VERSION") +v("_SC_ADVISORY_INFO") +v("_SC_AIO_LISTIO_MAX") +v("_SC_AIO_MAX") +v("_SC_AIO_PRIO_DELTA_MAX") +v("_SC_ARG_MAX") +v("_SC_ASYNCHRONOUS_IO") +v("_SC_ATEXIT_MAX") +v("_SC_BARRIERS") +v("_SC_BC_BASE_MAX") +v("_SC_BC_DIM_MAX") +v("_SC_BC_SCALE_MAX") +v("_SC_BC_STRING_MAX") +v("_SC_CHILD_MAX") +v("_SC_CLK_TCK") +v("_SC_CLOCK_SELECTION") +v("_SC_COLL_WEIGHTS_MAX") +v("_SC_CPUTIME") +v("_SC_DELAYTIMER_MAX") +v("_SC_EXPR_NEST_MAX") +v("_SC_FSYNC") +v("_SC_GETGR_R_SIZE_MAX") +v("_SC_GETPW_R_SIZE_MAX") +v("_SC_HOST_NAME_MAX") +v("_SC_IOV_MAX") +v("_SC_IPV6") +v("_SC_JOB_CONTROL") +v("_SC_LINE_MAX") +v("_SC_LOGIN_NAME_MAX") +v("_SC_MAPPED_FILES") +v("_SC_MEMLOCK") +v("_SC_MEMLOCK_RANGE") +v("_SC_MEMORY_PROTECTION") +v("_SC_MESSAGE_PASSING") +v("_SC_MONOTONIC_CLOCK") +v("_SC_MQ_OPEN_MAX") +v("_SC_MQ_PRIO_MAX") +v("_SC_NGROUPS_MAX") +v("_SC_OPEN_MAX") +v("_SC_PAGESIZE") # Synonym for _SC_PAGE_SIZE +v("_SC_PRIORITIZED_IO") +v("_SC_PRIORITY_SCHEDULING") +v("_SC_RAW_SOCKETS") +v("_SC_RE_DUP_MAX") +v("_SC_READER_WRITER_LOCKS") +v("_SC_REALTIME_SIGNALS") +v("_SC_REGEXP") +v("_SC_RTSIG_MAX") +v("_SC_SAVED_IDS") +v("_SC_SEM_NSEMS_MAX") +v("_SC_SEM_VALUE_MAX") +v("_SC_SEMAPHORES") +v("_SC_SHARED_MEMORY_OBJECTS") +v("_SC_SHELL") +v("_SC_SIGQUEUE_MAX") +v("_SC_SPAWN") +v("_SC_SPIN_LOCKS") +v("_SC_SPORADIC_SERVER") +v("_SC_SS_REPL_MAX") +v("_SC_STREAM_MAX") +v("_SC_SYMLOOP_MAX") +v("_SC_SYNCHRONIZED_IO") +v("_SC_THREAD_ATTR_STACKADDR") +v("_SC_THREAD_ATTR_STACKSIZE") +v("_SC_THREAD_CPUTIME") +v("_SC_THREAD_DESTRUCTOR_ITERATIONS") +v("_SC_THREAD_KEYS_MAX") +v("_SC_THREAD_PRIO_INHERIT") +v("_SC_THREAD_PRIO_PROTECT") +v("_SC_THREAD_PRIORITY_SCHEDULING") +v("_SC_THREAD_PROCESS_SHARED") +v("_SC_THREAD_SAFE_FUNCTIONS") +v("_SC_THREAD_SPORADIC_SERVER") +v("_SC_THREAD_STACK_MIN") +v("_SC_THREAD_THREADS_MAX") +v("_SC_THREADS") +v("_SC_TIMEOUTS") +v("_SC_TIMER_MAX") +v("_SC_TIMERS") +v("_SC_TRACE") +v("_SC_TRACE_EVENT_FILTER") +v("_SC_TRACE_EVENT_NAME_MAX") +v("_SC_TRACE_INHERIT") +v("_SC_TRACE_LOG") +v("_SC_TRACE_NAME_MAX") +v("_SC_TRACE_SYS_MAX") +v("_SC_TRACE_USER_EVENT_MAX") +v("_SC_TTY_NAME_MAX") +v("_SC_TYPED_MEMORY_OBJECTS") +v("_SC_TZNAME_MAX") +v("_SC_V6_ILP32_OFF32") +v("_SC_V6_ILP32_OFFBIG") +v("_SC_V6_LP64_OFF64") +v("_SC_V6_LPBIG_OFFBIG") +v("_SC_VERSION") +v("_SC_XBS5_ILP32_OFF32") +v("_SC_XBS5_ILP32_OFFBIG") +v("_SC_XBS5_LP64_OFF64") +v("_SC_XBS5_LPBIG_OFFBIG") +v("_SC_XOPEN_CRYPT") +v("_SC_XOPEN_ENH_I18N") +v("_SC_XOPEN_LEGACY") +v("_SC_XOPEN_REALTIME") +v("_SC_XOPEN_REALTIME_THREADS") +v("_SC_XOPEN_SHM") +v("_SC_XOPEN_STREAMS") +v("_SC_XOPEN_UNIX") +v("_SC_XOPEN_VERSION") +v("_SC_NPROCESSORS_ONLN") +v("SEEK_SET") +v("SEEK_CUR") +v("SEEK_END") + +main() diff --git a/tools/detect/macosx_consts.nim b/tools/detect/macosx_consts.nim new file mode 100644 index 000000000..e8be56e5f --- /dev/null +++ b/tools/detect/macosx_consts.nim @@ -0,0 +1,629 @@ +# Generated by detect.nim +const + AIO_ALLDONE* = cint(1) + AIO_CANCELED* = cint(2) + AIO_NOTCANCELED* = cint(4) + LIO_NOP* = cint(0) + LIO_NOWAIT* = cint(1) + LIO_READ* = cint(1) + LIO_WAIT* = cint(2) + LIO_WRITE* = cint(2) + RTLD_LAZY* = cint(1) + RTLD_NOW* = cint(2) + RTLD_GLOBAL* = cint(8) + RTLD_LOCAL* = cint(4) + E2BIG* = cint(7) + EACCES* = cint(13) + EADDRINUSE* = cint(48) + EADDRNOTAVAIL* = cint(49) + EAFNOSUPPORT* = cint(47) + EAGAIN* = cint(35) + EALREADY* = cint(37) + EBADF* = cint(9) + EBADMSG* = cint(94) + EBUSY* = cint(16) + ECANCELED* = cint(89) + ECHILD* = cint(10) + ECONNABORTED* = cint(53) + ECONNREFUSED* = cint(61) + ECONNRESET* = cint(54) + EDEADLK* = cint(11) + EDESTADDRREQ* = cint(39) + EDOM* = cint(33) + EDQUOT* = cint(69) + EEXIST* = cint(17) + EFAULT* = cint(14) + EFBIG* = cint(27) + EHOSTUNREACH* = cint(65) + EIDRM* = cint(90) + EILSEQ* = cint(92) + EINPROGRESS* = cint(36) + EINTR* = cint(4) + EINVAL* = cint(22) + EIO* = cint(5) + EISCONN* = cint(56) + EISDIR* = cint(21) + ELOOP* = cint(62) + EMFILE* = cint(24) + EMLINK* = cint(31) + EMSGSIZE* = cint(40) + EMULTIHOP* = cint(95) + ENAMETOOLONG* = cint(63) + ENETDOWN* = cint(50) + ENETRESET* = cint(52) + ENETUNREACH* = cint(51) + ENFILE* = cint(23) + ENOBUFS* = cint(55) + ENODATA* = cint(96) + ENODEV* = cint(19) + ENOENT* = cint(2) + ENOEXEC* = cint(8) + ENOLCK* = cint(77) + ENOLINK* = cint(97) + ENOMEM* = cint(12) + ENOMSG* = cint(91) + ENOPROTOOPT* = cint(42) + ENOSPC* = cint(28) + ENOSR* = cint(98) + ENOSTR* = cint(99) + ENOSYS* = cint(78) + ENOTCONN* = cint(57) + ENOTDIR* = cint(20) + ENOTEMPTY* = cint(66) + ENOTSOCK* = cint(38) + ENOTSUP* = cint(45) + ENOTTY* = cint(25) + ENXIO* = cint(6) + EOPNOTSUPP* = cint(102) + EOVERFLOW* = cint(84) + EPERM* = cint(1) + EPIPE* = cint(32) + EPROTO* = cint(100) + EPROTONOSUPPORT* = cint(43) + EPROTOTYPE* = cint(41) + ERANGE* = cint(34) + EROFS* = cint(30) + ESPIPE* = cint(29) + ESRCH* = cint(3) + ESTALE* = cint(70) + ETIME* = cint(101) + ETIMEDOUT* = cint(60) + ETXTBSY* = cint(26) + EWOULDBLOCK* = cint(35) + EXDEV* = cint(18) + F_DUPFD* = cint(0) + F_GETFD* = cint(1) + F_SETFD* = cint(2) + F_GETFL* = cint(3) + F_SETFL* = cint(4) + F_GETLK* = cint(7) + F_SETLK* = cint(8) + F_SETLKW* = cint(9) + F_GETOWN* = cint(5) + F_SETOWN* = cint(6) + FD_CLOEXEC* = cint(1) + F_RDLCK* = cint(1) + F_UNLCK* = cint(2) + F_WRLCK* = cint(3) + O_CREAT* = cint(512) + O_EXCL* = cint(2048) + O_NOCTTY* = cint(131072) + O_TRUNC* = cint(1024) + O_APPEND* = cint(8) + O_DSYNC* = cint(4194304) + O_NONBLOCK* = cint(4) + O_SYNC* = cint(128) + O_ACCMODE* = cint(3) + O_RDONLY* = cint(0) + O_RDWR* = cint(2) + O_WRONLY* = cint(1) + FE_DIVBYZERO* = cint(4) + FE_INEXACT* = cint(32) + FE_INVALID* = cint(1) + FE_OVERFLOW* = cint(8) + FE_UNDERFLOW* = cint(16) + FE_ALL_EXCEPT* = cint(63) + FE_DOWNWARD* = cint(1024) + FE_TONEAREST* = cint(0) + FE_TOWARDZERO* = cint(3072) + FE_UPWARD* = cint(2048) + FE_DFL_ENV* = when defined(amd64): cast[pointer](0x7fff9533b1b4) + else: cast[pointer](0x904797f4) + MM_HARD* = cint(1) + MM_SOFT* = cint(2) + MM_FIRM* = cint(4) + MM_APPL* = cint(16) + MM_UTIL* = cint(32) + MM_OPSYS* = cint(64) + MM_RECOVER* = cint(4096) + MM_NRECOV* = cint(8192) + MM_HALT* = cint(1) + MM_ERROR* = cint(2) + MM_WARNING* = cint(3) + MM_INFO* = cint(4) + MM_NOSEV* = cint(0) + MM_PRINT* = cint(256) + MM_CONSOLE* = cint(512) + MM_OK* = cint(0) + MM_NOTOK* = cint(3) + MM_NOMSG* = cint(1) + MM_NOCON* = cint(2) + FNM_NOMATCH* = cint(1) + FNM_PATHNAME* = cint(2) + FNM_PERIOD* = cint(4) + FNM_NOESCAPE* = cint(1) + FNM_NOSYS* = cint(-1) + FTW_F* = cint(0) + FTW_D* = cint(1) + FTW_DNR* = cint(2) + FTW_DP* = cint(3) + FTW_NS* = cint(4) + FTW_SL* = cint(5) + FTW_SLN* = cint(6) + FTW_PHYS* = cint(1) + FTW_MOUNT* = cint(2) + FTW_DEPTH* = cint(4) + FTW_CHDIR* = cint(8) + GLOB_APPEND* = cint(1) + GLOB_DOOFFS* = cint(2) + GLOB_ERR* = cint(4) + GLOB_MARK* = cint(8) + GLOB_NOCHECK* = cint(16) + GLOB_NOESCAPE* = cint(8192) + GLOB_NOSORT* = cint(32) + GLOB_ABORTED* = cint(-2) + GLOB_NOMATCH* = cint(-3) + GLOB_NOSPACE* = cint(-1) + GLOB_NOSYS* = cint(-4) + CODESET* = cint(0) + D_T_FMT* = cint(1) + D_FMT* = cint(2) + T_FMT* = cint(3) + T_FMT_AMPM* = cint(4) + AM_STR* = cint(5) + PM_STR* = cint(6) + DAY_1* = cint(7) + DAY_2* = cint(8) + DAY_3* = cint(9) + DAY_4* = cint(10) + DAY_5* = cint(11) + DAY_6* = cint(12) + DAY_7* = cint(13) + ABDAY_1* = cint(14) + ABDAY_2* = cint(15) + ABDAY_3* = cint(16) + ABDAY_4* = cint(17) + ABDAY_5* = cint(18) + ABDAY_6* = cint(19) + ABDAY_7* = cint(20) + MON_1* = cint(21) + MON_2* = cint(22) + MON_3* = cint(23) + MON_4* = cint(24) + MON_5* = cint(25) + MON_6* = cint(26) + MON_7* = cint(27) + MON_8* = cint(28) + MON_9* = cint(29) + MON_10* = cint(30) + MON_11* = cint(31) + MON_12* = cint(32) + ABMON_1* = cint(33) + ABMON_2* = cint(34) + ABMON_3* = cint(35) + ABMON_4* = cint(36) + ABMON_5* = cint(37) + ABMON_6* = cint(38) + ABMON_7* = cint(39) + ABMON_8* = cint(40) + ABMON_9* = cint(41) + ABMON_10* = cint(42) + ABMON_11* = cint(43) + ABMON_12* = cint(44) + ERA* = cint(45) + ERA_D_FMT* = cint(46) + ERA_D_T_FMT* = cint(47) + ERA_T_FMT* = cint(48) + ALT_DIGITS* = cint(49) + RADIXCHAR* = cint(50) + THOUSEP* = cint(51) + YESEXPR* = cint(52) + NOEXPR* = cint(53) + CRNCYSTR* = cint(56) + LC_ALL* = cint(0) + LC_COLLATE* = cint(1) + LC_CTYPE* = cint(2) + LC_MESSAGES* = cint(6) + LC_MONETARY* = cint(3) + LC_NUMERIC* = cint(4) + LC_TIME* = cint(5) + PTHREAD_CANCEL_ASYNCHRONOUS* = cint(0) + PTHREAD_CANCEL_ENABLE* = cint(1) + PTHREAD_CANCEL_DEFERRED* = cint(2) + PTHREAD_CANCEL_DISABLE* = cint(0) + PTHREAD_CREATE_DETACHED* = cint(2) + PTHREAD_CREATE_JOINABLE* = cint(1) + PTHREAD_EXPLICIT_SCHED* = cint(2) + PTHREAD_INHERIT_SCHED* = cint(1) + PTHREAD_MUTEX_DEFAULT* = cint(0) + PTHREAD_MUTEX_ERRORCHECK* = cint(1) + PTHREAD_MUTEX_NORMAL* = cint(0) + PTHREAD_MUTEX_RECURSIVE* = cint(2) + PTHREAD_PRIO_INHERIT* = cint(1) + PTHREAD_PRIO_NONE* = cint(0) + PTHREAD_PRIO_PROTECT* = cint(2) + PTHREAD_PROCESS_SHARED* = cint(1) + PTHREAD_PROCESS_PRIVATE* = cint(2) + PTHREAD_SCOPE_PROCESS* = cint(2) + PTHREAD_SCOPE_SYSTEM* = cint(1) + F_OK* = cint(0) + R_OK* = cint(4) + W_OK* = cint(2) + X_OK* = cint(1) + CS_PATH* = cint(1) + CS_POSIX_V6_ILP32_OFF32_CFLAGS* = cint(2) + CS_POSIX_V6_ILP32_OFF32_LDFLAGS* = cint(3) + CS_POSIX_V6_ILP32_OFF32_LIBS* = cint(4) + CS_POSIX_V6_ILP32_OFFBIG_CFLAGS* = cint(5) + CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS* = cint(6) + CS_POSIX_V6_ILP32_OFFBIG_LIBS* = cint(7) + CS_POSIX_V6_LP64_OFF64_CFLAGS* = cint(8) + CS_POSIX_V6_LP64_OFF64_LDFLAGS* = cint(9) + CS_POSIX_V6_LP64_OFF64_LIBS* = cint(10) + CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS* = cint(11) + CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS* = cint(12) + CS_POSIX_V6_LPBIG_OFFBIG_LIBS* = cint(13) + CS_POSIX_V6_WIDTH_RESTRICTED_ENVS* = cint(14) + F_LOCK* = cint(1) + F_TEST* = cint(3) + F_TLOCK* = cint(2) + F_ULOCK* = cint(0) + PC_2_SYMLINKS* = cint(15) + PC_ALLOC_SIZE_MIN* = cint(16) + PC_ASYNC_IO* = cint(17) + PC_CHOWN_RESTRICTED* = cint(7) + PC_FILESIZEBITS* = cint(18) + PC_LINK_MAX* = cint(1) + PC_MAX_CANON* = cint(2) + PC_MAX_INPUT* = cint(3) + PC_NAME_MAX* = cint(4) + PC_NO_TRUNC* = cint(8) + PC_PATH_MAX* = cint(5) + PC_PIPE_BUF* = cint(6) + PC_PRIO_IO* = cint(19) + PC_REC_INCR_XFER_SIZE* = cint(20) + PC_REC_MIN_XFER_SIZE* = cint(22) + PC_REC_XFER_ALIGN* = cint(23) + PC_SYMLINK_MAX* = cint(24) + PC_SYNC_IO* = cint(25) + PC_VDISABLE* = cint(9) + SC_2_C_BIND* = cint(18) + SC_2_C_DEV* = cint(19) + SC_2_CHAR_TERM* = cint(20) + SC_2_FORT_DEV* = cint(21) + SC_2_FORT_RUN* = cint(22) + SC_2_LOCALEDEF* = cint(23) + SC_2_PBS* = cint(59) + SC_2_PBS_ACCOUNTING* = cint(60) + SC_2_PBS_CHECKPOINT* = cint(61) + SC_2_PBS_LOCATE* = cint(62) + SC_2_PBS_MESSAGE* = cint(63) + SC_2_PBS_TRACK* = cint(64) + SC_2_SW_DEV* = cint(24) + SC_2_UPE* = cint(25) + SC_2_VERSION* = cint(17) + SC_ADVISORY_INFO* = cint(65) + SC_AIO_LISTIO_MAX* = cint(42) + SC_AIO_MAX* = cint(43) + SC_AIO_PRIO_DELTA_MAX* = cint(44) + SC_ARG_MAX* = cint(1) + SC_ASYNCHRONOUS_IO* = cint(28) + SC_ATEXIT_MAX* = cint(107) + SC_BARRIERS* = cint(66) + SC_BC_BASE_MAX* = cint(9) + SC_BC_DIM_MAX* = cint(10) + SC_BC_SCALE_MAX* = cint(11) + SC_BC_STRING_MAX* = cint(12) + SC_CHILD_MAX* = cint(2) + SC_CLK_TCK* = cint(3) + SC_CLOCK_SELECTION* = cint(67) + SC_COLL_WEIGHTS_MAX* = cint(13) + SC_CPUTIME* = cint(68) + SC_DELAYTIMER_MAX* = cint(45) + SC_EXPR_NEST_MAX* = cint(14) + SC_FSYNC* = cint(38) + SC_GETGR_R_SIZE_MAX* = cint(70) + SC_GETPW_R_SIZE_MAX* = cint(71) + SC_HOST_NAME_MAX* = cint(72) + SC_IOV_MAX* = cint(56) + SC_IPV6* = cint(118) + SC_JOB_CONTROL* = cint(6) + SC_LINE_MAX* = cint(15) + SC_LOGIN_NAME_MAX* = cint(73) + SC_MAPPED_FILES* = cint(47) + SC_MEMLOCK* = cint(30) + SC_MEMLOCK_RANGE* = cint(31) + SC_MEMORY_PROTECTION* = cint(32) + SC_MESSAGE_PASSING* = cint(33) + SC_MONOTONIC_CLOCK* = cint(74) + SC_MQ_OPEN_MAX* = cint(46) + SC_MQ_PRIO_MAX* = cint(75) + SC_NGROUPS_MAX* = cint(4) + SC_OPEN_MAX* = cint(5) + SC_PAGE_SIZE* = cint(29) + SC_PRIORITIZED_IO* = cint(34) + SC_PRIORITY_SCHEDULING* = cint(35) + SC_RAW_SOCKETS* = cint(119) + SC_RE_DUP_MAX* = cint(16) + SC_READER_WRITER_LOCKS* = cint(76) + SC_REALTIME_SIGNALS* = cint(36) + SC_REGEXP* = cint(77) + SC_RTSIG_MAX* = cint(48) + SC_SAVED_IDS* = cint(7) + SC_SEM_NSEMS_MAX* = cint(49) + SC_SEM_VALUE_MAX* = cint(50) + SC_SEMAPHORES* = cint(37) + SC_SHARED_MEMORY_OBJECTS* = cint(39) + SC_SHELL* = cint(78) + SC_SIGQUEUE_MAX* = cint(51) + SC_SPAWN* = cint(79) + SC_SPIN_LOCKS* = cint(80) + SC_SPORADIC_SERVER* = cint(81) + SC_SS_REPL_MAX* = cint(126) + SC_STREAM_MAX* = cint(26) + SC_SYMLOOP_MAX* = cint(120) + SC_SYNCHRONIZED_IO* = cint(40) + SC_THREAD_ATTR_STACKADDR* = cint(82) + SC_THREAD_ATTR_STACKSIZE* = cint(83) + SC_THREAD_CPUTIME* = cint(84) + SC_THREAD_DESTRUCTOR_ITERATIONS* = cint(85) + SC_THREAD_KEYS_MAX* = cint(86) + SC_THREAD_PRIO_INHERIT* = cint(87) + SC_THREAD_PRIO_PROTECT* = cint(88) + SC_THREAD_PRIORITY_SCHEDULING* = cint(89) + SC_THREAD_PROCESS_SHARED* = cint(90) + SC_THREAD_SAFE_FUNCTIONS* = cint(91) + SC_THREAD_SPORADIC_SERVER* = cint(92) + SC_THREAD_STACK_MIN* = cint(93) + SC_THREAD_THREADS_MAX* = cint(94) + SC_THREADS* = cint(96) + SC_TIMEOUTS* = cint(95) + SC_TIMER_MAX* = cint(52) + SC_TIMERS* = cint(41) + SC_TRACE* = cint(97) + SC_TRACE_EVENT_FILTER* = cint(98) + SC_TRACE_EVENT_NAME_MAX* = cint(127) + SC_TRACE_INHERIT* = cint(99) + SC_TRACE_LOG* = cint(100) + SC_TRACE_NAME_MAX* = cint(128) + SC_TRACE_SYS_MAX* = cint(129) + SC_TRACE_USER_EVENT_MAX* = cint(130) + SC_TTY_NAME_MAX* = cint(101) + SC_TYPED_MEMORY_OBJECTS* = cint(102) + SC_TZNAME_MAX* = cint(27) + SC_V6_ILP32_OFF32* = cint(103) + SC_V6_ILP32_OFFBIG* = cint(104) + SC_V6_LP64_OFF64* = cint(105) + SC_V6_LPBIG_OFFBIG* = cint(106) + SC_VERSION* = cint(8) + SC_XBS5_ILP32_OFF32* = cint(122) + SC_XBS5_ILP32_OFFBIG* = cint(123) + SC_XBS5_LP64_OFF64* = cint(124) + SC_XBS5_LPBIG_OFFBIG* = cint(125) + SC_XOPEN_CRYPT* = cint(108) + SC_XOPEN_ENH_I18N* = cint(109) + SC_XOPEN_LEGACY* = cint(110) + SC_XOPEN_REALTIME* = cint(111) + SC_XOPEN_REALTIME_THREADS* = cint(112) + SC_XOPEN_SHM* = cint(113) + SC_XOPEN_STREAMS* = cint(114) + SC_XOPEN_UNIX* = cint(115) + SC_XOPEN_VERSION* = cint(116) + SEEK_SET* = cint(0) + SEEK_CUR* = cint(1) + SEEK_END* = cint(2) + SEM_FAILED* = cast[pointer](-1) + IPC_CREAT* = cint(512) + IPC_EXCL* = cint(1024) + IPC_NOWAIT* = cint(2048) + IPC_PRIVATE* = cint(0) + IPC_RMID* = cint(0) + IPC_SET* = cint(1) + IPC_STAT* = cint(2) + S_IFMT* = cint(61440) + S_IFBLK* = cint(24576) + S_IFCHR* = cint(8192) + S_IFIFO* = cint(4096) + S_IFREG* = cint(32768) + S_IFDIR* = cint(16384) + S_IFLNK* = cint(40960) + S_IFSOCK* = cint(49152) + S_IRWXU* = cint(448) + S_IRUSR* = cint(256) + S_IWUSR* = cint(128) + S_IXUSR* = cint(64) + S_IRWXG* = cint(56) + S_IRGRP* = cint(32) + S_IWGRP* = cint(16) + S_IXGRP* = cint(8) + S_IRWXO* = cint(7) + S_IROTH* = cint(4) + S_IWOTH* = cint(2) + S_IXOTH* = cint(1) + S_ISUID* = cint(2048) + S_ISGID* = cint(1024) + S_ISVTX* = cint(512) + ST_RDONLY* = cint(1) + ST_NOSUID* = cint(2) + PROT_READ* = cint(1) + PROT_WRITE* = cint(2) + PROT_EXEC* = cint(4) + PROT_NONE* = cint(0) + MAP_SHARED* = cint(1) + MAP_PRIVATE* = cint(2) + MAP_FIXED* = cint(16) + MS_ASYNC* = cint(1) + MS_SYNC* = cint(16) + MS_INVALIDATE* = cint(2) + MCL_CURRENT* = cint(1) + MCL_FUTURE* = cint(2) + MAP_FAILED* = cast[pointer](-1) + POSIX_MADV_NORMAL* = cint(0) + POSIX_MADV_SEQUENTIAL* = cint(2) + POSIX_MADV_RANDOM* = cint(1) + POSIX_MADV_WILLNEED* = cint(3) + POSIX_MADV_DONTNEED* = cint(4) + CLOCKS_PER_SEC* = clong(1000000) + WNOHANG* = cint(1) + WUNTRACED* = cint(2) + WEXITED* = cint(4) + WSTOPPED* = cint(8) + WCONTINUED* = cint(16) + WNOWAIT* = cint(32) + SIGEV_NONE* = cint(0) + SIGEV_SIGNAL* = cint(1) + SIGEV_THREAD* = cint(3) + SIGABRT* = cint(6) + SIGALRM* = cint(14) + SIGBUS* = cint(10) + SIGCHLD* = cint(20) + SIGCONT* = cint(19) + SIGFPE* = cint(8) + SIGHUP* = cint(1) + SIGILL* = cint(4) + SIGINT* = cint(2) + SIGKILL* = cint(9) + SIGPIPE* = cint(13) + SIGQUIT* = cint(3) + SIGSEGV* = cint(11) + SIGSTOP* = cint(17) + SIGTERM* = cint(15) + SIGTSTP* = cint(18) + SIGTTIN* = cint(21) + SIGTTOU* = cint(22) + SIGUSR1* = cint(30) + SIGUSR2* = cint(31) + SIGPROF* = cint(27) + SIGSYS* = cint(12) + SIGTRAP* = cint(5) + SIGURG* = cint(16) + SIGVTALRM* = cint(26) + SIGXCPU* = cint(24) + SIGXFSZ* = cint(25) + SA_NOCLDSTOP* = cint(8) + SIG_BLOCK* = cint(1) + SIG_UNBLOCK* = cint(2) + SIG_SETMASK* = cint(3) + SA_ONSTACK* = cint(1) + SA_RESETHAND* = cint(4) + SA_RESTART* = cint(2) + SA_SIGINFO* = cint(64) + SA_NOCLDWAIT* = cint(32) + SA_NODEFER* = cint(16) + SS_ONSTACK* = cint(1) + SS_DISABLE* = cint(4) + MINSIGSTKSZ* = cint(32768) + SIGSTKSZ* = cint(131072) + NL_SETD* = cint(1) + NL_CAT_LOCALE* = cint(1) + SCHED_FIFO* = cint(4) + SCHED_RR* = cint(2) + SCHED_OTHER* = cint(1) + FD_SETSIZE* = cint(1024) + SCM_RIGHTS* = cint(1) + SOCK_DGRAM* = cint(2) + SOCK_RAW* = cint(3) + SOCK_SEQPACKET* = cint(5) + SOCK_STREAM* = cint(1) + SOL_SOCKET* = cint(65535) + SO_ACCEPTCONN* = cint(2) + SO_BROADCAST* = cint(32) + SO_DEBUG* = cint(1) + SO_DONTROUTE* = cint(16) + SO_ERROR* = cint(4103) + SO_KEEPALIVE* = cint(8) + SO_LINGER* = cint(128) + SO_OOBINLINE* = cint(256) + SO_RCVBUF* = cint(4098) + SO_RCVLOWAT* = cint(4100) + SO_RCVTIMEO* = cint(4102) + SO_REUSEADDR* = cint(4) + SO_SNDBUF* = cint(4097) + SO_SNDLOWAT* = cint(4099) + SO_SNDTIMEO* = cint(4101) + SO_TYPE* = cint(4104) + SOMAXCONN* = cint(128) + MSG_CTRUNC* = cint(32) + MSG_DONTROUTE* = cint(4) + MSG_EOR* = cint(8) + MSG_OOB* = cint(1) + MSG_PEEK* = cint(2) + MSG_TRUNC* = cint(16) + MSG_WAITALL* = cint(64) + AF_INET* = cint(2) + AF_INET6* = cint(30) + AF_UNIX* = cint(1) + AF_UNSPEC* = cint(0) + SHUT_RD* = cint(0) + SHUT_RDWR* = cint(2) + SHUT_WR* = cint(1) + IPPROTO_IP* = cint(0) + IPPROTO_IPV6* = cint(41) + IPPROTO_ICMP* = cint(1) + IPPROTO_RAW* = cint(255) + IPPROTO_TCP* = cint(6) + IPPROTO_UDP* = cint(17) + INADDR_ANY* = cint(0) + INADDR_BROADCAST* = cint(-1) + INET_ADDRSTRLEN* = cint(16) + IPV6_JOIN_GROUP* = cint(12) + IPV6_LEAVE_GROUP* = cint(13) + IPV6_MULTICAST_HOPS* = cint(10) + IPV6_MULTICAST_IF* = cint(9) + IPV6_MULTICAST_LOOP* = cint(11) + IPV6_UNICAST_HOPS* = cint(4) + IPV6_V6ONLY* = cint(27) + IPPORT_RESERVED* = cint(1024) + HOST_NOT_FOUND* = cint(1) + NO_DATA* = cint(4) + NO_RECOVERY* = cint(3) + TRY_AGAIN* = cint(2) + AI_PASSIVE* = cint(1) + AI_CANONNAME* = cint(2) + AI_NUMERICHOST* = cint(4) + AI_NUMERICSERV* = cint(4096) + AI_V4MAPPED* = cint(2048) + AI_ALL* = cint(256) + AI_ADDRCONFIG* = cint(1024) + NI_NOFQDN* = cint(1) + NI_NUMERICHOST* = cint(2) + NI_NAMEREQD* = cint(4) + NI_NUMERICSERV* = cint(8) + NI_DGRAM* = cint(16) + EAI_AGAIN* = cint(2) + EAI_BADFLAGS* = cint(3) + EAI_FAIL* = cint(4) + EAI_FAMILY* = cint(5) + EAI_MEMORY* = cint(6) + EAI_NONAME* = cint(8) + EAI_SERVICE* = cint(9) + EAI_SOCKTYPE* = cint(10) + EAI_SYSTEM* = cint(11) + EAI_OVERFLOW* = cint(14) + POLLIN* = cshort(1) + POLLRDNORM* = cshort(64) + POLLRDBAND* = cshort(128) + POLLPRI* = cshort(2) + POLLOUT* = cshort(4) + POLLWRNORM* = cshort(4) + POLLWRBAND* = cshort(256) + POLLERR* = cshort(8) + POLLHUP* = cshort(16) + POLLNVAL* = cshort(32) + POSIX_SPAWN_RESETIDS* = cint(1) + POSIX_SPAWN_SETPGROUP* = cint(2) + POSIX_SPAWN_SETSIGDEF* = cint(4) + POSIX_SPAWN_SETSIGMASK* = cint(8) + IOFBF* = cint(0) + IONBF* = cint(2) + diff --git a/tools/detect/timesize.c b/tools/detect/timesize.c new file mode 100644 index 000000000..35fc90982 --- /dev/null +++ b/tools/detect/timesize.c @@ -0,0 +1,9 @@ +#include <stdio.h> +#include <stdlib.h> +#include <time.h> + +int main(void) { + printf("%ld\n", sizeof(time_t)); + return 0; +} + diff --git a/tools/detect/windows_amd64_consts.nim b/tools/detect/windows_amd64_consts.nim new file mode 100644 index 000000000..d72c9786d --- /dev/null +++ b/tools/detect/windows_amd64_consts.nim @@ -0,0 +1,152 @@ +# Generated by detect.nim +const + E2BIG* = cint(7) + EACCES* = cint(13) + EADDRINUSE* = cint(100) + EADDRNOTAVAIL* = cint(101) + EAFNOSUPPORT* = cint(102) + EAGAIN* = cint(11) + EALREADY* = cint(103) + EBADF* = cint(9) + EBUSY* = cint(16) + ECANCELED* = cint(105) + ECHILD* = cint(10) + ECONNABORTED* = cint(106) + ECONNREFUSED* = cint(107) + ECONNRESET* = cint(108) + EDEADLK* = cint(36) + EDESTADDRREQ* = cint(109) + EDOM* = cint(33) + EEXIST* = cint(17) + EFAULT* = cint(14) + EFBIG* = cint(27) + EHOSTUNREACH* = cint(110) + EILSEQ* = cint(42) + EINPROGRESS* = cint(112) + EINTR* = cint(4) + EINVAL* = cint(22) + EIO* = cint(5) + EISCONN* = cint(113) + EISDIR* = cint(21) + ELOOP* = cint(114) + EMFILE* = cint(24) + EMLINK* = cint(31) + EMSGSIZE* = cint(115) + ENAMETOOLONG* = cint(38) + ENETDOWN* = cint(116) + ENETRESET* = cint(117) + ENETUNREACH* = cint(118) + ENFILE* = cint(23) + ENOBUFS* = cint(119) + ENODEV* = cint(19) + ENOENT* = cint(2) + ENOEXEC* = cint(8) + ENOLCK* = cint(39) + ENOMEM* = cint(12) + ENOPROTOOPT* = cint(123) + ENOSPC* = cint(28) + ENOSYS* = cint(40) + ENOTCONN* = cint(126) + ENOTDIR* = cint(20) + ENOTEMPTY* = cint(41) + ENOTSOCK* = cint(128) + ENOTSUP* = cint(129) + ENOTTY* = cint(25) + ENXIO* = cint(6) + EOPNOTSUPP* = cint(130) + EOVERFLOW* = cint(132) + EPERM* = cint(1) + EPIPE* = cint(32) + EPROTO* = cint(134) + EPROTONOSUPPORT* = cint(135) + EPROTOTYPE* = cint(136) + ERANGE* = cint(34) + EROFS* = cint(30) + ESPIPE* = cint(29) + ESRCH* = cint(3) + ETIMEDOUT* = cint(138) + EWOULDBLOCK* = cint(140) + EXDEV* = cint(18) + O_CREAT* = cint(256) + O_EXCL* = cint(1024) + O_TRUNC* = cint(512) + O_APPEND* = cint(8) + O_ACCMODE* = cint(3) + O_RDONLY* = cint(0) + O_RDWR* = cint(2) + O_WRONLY* = cint(1) + FE_DIVBYZERO* = cint(4) + FE_INEXACT* = cint(32) + FE_INVALID* = cint(1) + FE_OVERFLOW* = cint(8) + FE_UNDERFLOW* = cint(16) + FE_ALL_EXCEPT* = cint(63) + FE_DOWNWARD* = cint(1024) + FE_TONEAREST* = cint(0) + FE_TOWARDZERO* = cint(3072) + FE_UPWARD* = cint(2048) + FE_DFL_ENV* = pointer(nil) + LC_ALL* = cint(0) + LC_COLLATE* = cint(1) + LC_CTYPE* = cint(2) + LC_MONETARY* = cint(3) + LC_NUMERIC* = cint(4) + LC_TIME* = cint(5) + PTHREAD_BARRIER_SERIAL_THREAD* = cint(1) + PTHREAD_CANCEL_ASYNCHRONOUS* = cint(2) + PTHREAD_CANCEL_ENABLE* = cint(1) + PTHREAD_CANCEL_DEFERRED* = cint(0) + PTHREAD_CANCEL_DISABLE* = cint(0) + PTHREAD_CREATE_DETACHED* = cint(4) + PTHREAD_CREATE_JOINABLE* = cint(0) + PTHREAD_EXPLICIT_SCHED* = cint(0) + PTHREAD_INHERIT_SCHED* = cint(8) + PTHREAD_MUTEX_DEFAULT* = cint(0) + PTHREAD_MUTEX_ERRORCHECK* = cint(1) + PTHREAD_MUTEX_NORMAL* = cint(0) + PTHREAD_MUTEX_RECURSIVE* = cint(2) + PTHREAD_PRIO_INHERIT* = cint(8) + PTHREAD_PRIO_NONE* = cint(0) + PTHREAD_PRIO_PROTECT* = cint(16) + PTHREAD_PROCESS_SHARED* = cint(1) + PTHREAD_PROCESS_PRIVATE* = cint(0) + PTHREAD_SCOPE_PROCESS* = cint(0) + PTHREAD_SCOPE_SYSTEM* = cint(16) + F_OK* = cint(0) + R_OK* = cint(4) + W_OK* = cint(2) + X_OK* = cint(1) + SEEK_SET* = cint(0) + SEEK_CUR* = cint(1) + SEEK_END* = cint(2) + SEM_FAILED* = pointer(nil) + S_IFMT* = cint(61440) + S_IFBLK* = cint(12288) + S_IFCHR* = cint(8192) + S_IFIFO* = cint(4096) + S_IFREG* = cint(32768) + S_IFDIR* = cint(16384) + S_IRWXU* = cint(448) + S_IRUSR* = cint(256) + S_IWUSR* = cint(128) + S_IXUSR* = cint(64) + CLOCKS_PER_SEC* = clong(1000) + CLOCK_PROCESS_CPUTIME_ID* = cint(2) + CLOCK_THREAD_CPUTIME_ID* = cint(3) + CLOCK_REALTIME* = cint(0) + TIMER_ABSTIME* = cint(1) + CLOCK_MONOTONIC* = cint(1) + SIGABRT* = cint(22) + SIGFPE* = cint(8) + SIGILL* = cint(4) + SIGINT* = cint(2) + SIGSEGV* = cint(11) + SIGTERM* = cint(15) + SIG_BLOCK* = cint(0) + SIG_UNBLOCK* = cint(1) + SIG_SETMASK* = cint(2) + SCHED_FIFO* = cint(1) + SCHED_RR* = cint(2) + SCHED_OTHER* = cint(0) + IOFBF* = cint(0) + IONBF* = cint(4) diff --git a/tools/detect/windows_i386_consts.nim b/tools/detect/windows_i386_consts.nim new file mode 100644 index 000000000..221251f81 --- /dev/null +++ b/tools/detect/windows_i386_consts.nim @@ -0,0 +1,96 @@ +# Generated by detect.nim +const + E2BIG* = cint(7) + EACCES* = cint(13) + EAGAIN* = cint(11) + EBADF* = cint(9) + EBUSY* = cint(16) + ECHILD* = cint(10) + EDEADLK* = cint(36) + EDOM* = cint(33) + EEXIST* = cint(17) + EFAULT* = cint(14) + EFBIG* = cint(27) + EILSEQ* = cint(42) + EINTR* = cint(4) + EINVAL* = cint(22) + EIO* = cint(5) + EISDIR* = cint(21) + EMFILE* = cint(24) + EMLINK* = cint(31) + ENAMETOOLONG* = cint(38) + ENFILE* = cint(23) + ENODEV* = cint(19) + ENOENT* = cint(2) + ENOEXEC* = cint(8) + ENOLCK* = cint(39) + ENOMEM* = cint(12) + ENOSPC* = cint(28) + ENOSYS* = cint(40) + ENOTDIR* = cint(20) + ENOTEMPTY* = cint(41) + ENOTSUP* = cint(48) + ENOTTY* = cint(25) + ENXIO* = cint(6) + EPERM* = cint(1) + EPIPE* = cint(32) + ERANGE* = cint(34) + EROFS* = cint(30) + ESPIPE* = cint(29) + ESRCH* = cint(3) + ETIMEDOUT* = cint(10060) + EXDEV* = cint(18) + O_CREAT* = cint(256) + O_EXCL* = cint(1024) + O_TRUNC* = cint(512) + O_APPEND* = cint(8) + O_ACCMODE* = cint(3) + O_RDONLY* = cint(0) + O_RDWR* = cint(2) + O_WRONLY* = cint(1) + FE_DIVBYZERO* = cint(4) + FE_INEXACT* = cint(32) + FE_INVALID* = cint(1) + FE_OVERFLOW* = cint(8) + FE_UNDERFLOW* = cint(16) + FE_ALL_EXCEPT* = cint(63) + FE_DOWNWARD* = cint(1024) + FE_TONEAREST* = cint(0) + FE_TOWARDZERO* = cint(3072) + FE_UPWARD* = cint(2048) + FE_DFL_ENV* = pointer(nil) + LC_ALL* = cint(0) + LC_COLLATE* = cint(1) + LC_CTYPE* = cint(2) + LC_MONETARY* = cint(3) + LC_NUMERIC* = cint(4) + LC_TIME* = cint(5) + F_OK* = cint(0) + R_OK* = cint(4) + W_OK* = cint(2) + X_OK* = cint(1) + SEEK_SET* = cint(0) + SEEK_CUR* = cint(1) + SEEK_END* = cint(2) + S_IFMT* = cint(61440) + S_IFBLK* = cint(12288) + S_IFCHR* = cint(8192) + S_IFIFO* = cint(4096) + S_IFREG* = cint(32768) + S_IFDIR* = cint(16384) + S_IRWXU* = cint(448) + S_IRUSR* = cint(256) + S_IWUSR* = cint(128) + S_IXUSR* = cint(64) + CLOCKS_PER_SEC* = clong(1000) + SIGABRT* = cint(22) + SIGFPE* = cint(8) + SIGILL* = cint(4) + SIGINT* = cint(2) + SIGSEGV* = cint(11) + SIGTERM* = cint(15) + SIG_BLOCK* = cint(0) + SIG_UNBLOCK* = cint(1) + SIG_SETMASK* = cint(2) + IOFBF* = cint(0) + IONBF* = cint(4) |