#include #include "options.h" #define T(t) (t*)0; #define F(t,n) {t *y = &x.n;} #define C(n) switch(n){case n:;} #define A(n) {char p[n];} static void f() { A(_POSIX_VERSION >= 200809L) A(_POSIX2_VERSION >= 200809L) #ifdef _XOPEN_SOURCE A(_XOPEN_VERSION >= 700) // A(_XOPEN_CRYPT >= 0) A(_XOPEN_ENH_I18N > 0) // A(_XOPEN_REALTIME >= 0) // A(_XOPEN_REALTIME_THREADS >= 0) // A(_XOPEN_SHM >= 0) A(_XOPEN_UNIX >= 0) #endif A(_POSIX_ASYNCHRONOUS_IO >= 200809L) A(_POSIX_BARRIERS >= 200809L) A(_POSIX_CHOWN_RESTRICTED >= 0) A(_POSIX_CLOCK_SELECTION >= 200809L) A(_POSIX_JOB_CONTROL > 0) A(_POSIX_MAPPED_FILES >= 200809L) A(_POSIX_MEMORY_PROTECTION >= 200809L) A(_POSIX_NO_TRUNC >= 0) A(_POSIX_READER_WRITER_LOCKS >= 200809L) A(_POSIX_REALTIME_SIGNALS >= 200809L) A(_POSIX_REGEXP > 0) A(_POSIX_SAVED_IDS > 0) A(_POSIX_SEMAPHORES >= 200809L) A(_POSIX_SHELL > 0) A(_POSIX_SPIN_LOCKS >= 200809L) A(_POSIX_THREAD_SAFE_FUNCTIONS >= 200809L) A(_POSIX_THREADS >= 200809L) A(_POSIX_TIMEOUTS >= 200809L) A(_POSIX_TIMERS >= 200809L) #if _POSIX_V7_ILP32_OFFBIG<=0 && _POSIX_V7_LP64_OFF64<=0 && _POSIX_V7_LPBIG_OFFBIG<=0 #error _POSIX_V7_ILP32_OFFBIG<=0 && _POSIX_V7_LP64_OFF64<=0 && _POSIX_V7_LPBIG_OFFBIG<=0 #endif A(_POSIX2_C_BIND >= 200809L) // not required by the standard A(_POSIX_ADVISORY_INFO >= 0) A(_POSIX_CPUTIME >= 0) A(_POSIX_FSYNC >= 0) A(_POSIX_IPV6 >= 0) A(_POSIX_MEMLOCK >= 0) A(_POSIX_MEMLOCK_RANGE >= 0) A(_POSIX_MESSAGE_PASSING >= 0) A(_POSIX_MONOTONIC_CLOCK >= 0) // A(_POSIX_PRIORITIZED_IO >= 0) // A(_POSIX_PRIORITY_SCHEDULING >= 0) A(_POSIX_RAW_SOCKETS >= 0) // A(_POSIX_SHARED_MEMORY_OBJECTS >= 0) A(_POSIX_SPAWN >= 0) // A(_POSIX_SPORADIC_SERVER >= 0) // A(_POSIX_SYNCHRONIZED_IO >= 0) A(_POSIX_THREAD_ATTR_STACKADDR >= 0) A(_POSIX_THREAD_ATTR_STACKSIZE >= 0) A(_POSIX_THREAD_CPUTIME >= 0) // A(_POSIX_THREAD_PRIO_INHERIT >= 0) // A(_POSIX_THREAD_PRIO_PROTECT >= 0) A(_POSIX_THREAD_PRIORITY_SCHEDULING >= 0) A(_POSIX_THREAD_PROCESS_SHARED >= 0) // A(_POSIX_THREAD_ROBUST_PRIO_INHERIT >= 0) // A(_POSIX_THREAD_ROBUST_PRIO_PROTECT >= 0) // A(_POSIX_THREAD_SPORADIC_SERVER >= 0) // A(_POSIX_TYPED_MEMORY_OBJECTS >= 0) C(F_OK) C(R_OK) C(W_OK) C(X_OK) C(_CS_PATH) C(_CS_POSIX_V7_ILP32_OFF32_CFLAGS) C(_CS_POSIX_V7_ILP32_OFF32_LDFLAGS) C(_CS_POSIX_V7_ILP32_OFF32_LIBS) C(_CS_POSIX_V7_ILP32_OFFBIG_CFLAGS) C(_CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS) C(_CS_POSIX_V7_ILP32_OFFBIG_LIBS) C(_CS_POSIX_V7_LP64_OFF64_CFLAGS) C(_CS_POSIX_V7_LP64_OFF64_LDFLAGS) C(_CS_POSIX_V7_LP64_OFF64_LIBS) C(_CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS) C(_CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS) C(_CS_POSIX_V7_LPBIG_OFFBIG_LIBS) C(_CS_POSIX_V7_THREADS_CFLAGS) C(_CS_POSIX_V7_THREADS_LDFLAGS) C(_CS_POSIX_V7_WIDTH_RESTRICTED_ENVS) C(_CS_V7_ENV) C(SEEK_CUR) C(SEEK_END) C(SEEK_SET) C(F_LOCK) C(F_TEST) C(F_TLOCK) C(F_ULOCK) C(_PC_2_SYMLINKS) C(_PC_ALLOC_SIZE_MIN) C(_PC_ASYNC_IO) C(_PC_CHOWN_RESTRICTED) C(_PC_FILESIZEBITS) C(_PC_LINK_MAX) C(_PC_MAX_CANON) C(_PC_MAX_INPUT) C(_PC_NAME_MAX) C(_PC_NO_TRUNC) C(_PC_PATH_MAX) C(_PC_PIPE_BUF) C(_PC_PRIO_IO) C(_PC_REC_INCR_XFER_SIZE) C(_PC_REC_MAX_XFER_SIZE) C(_PC_REC_MIN_XFER_SIZE) C(_PC_REC_XFER_ALIGN) C(_PC_SYMLINK_MAX) C(_PC_SYNC_IO) C(_PC_TIMESTAMP_RESOLUTION) C(_PC_VDISABLE) C(_SC_2_C_BIND) C(_SC_2_C_DEV) C(_SC_2_CHAR_TERM) C(_SC_2_FORT_DEV) C(_SC_2_FORT_RUN) C(_SC_2_LOCALEDEF) C(_SC_2_PBS) C(_SC_2_PBS_ACCOUNTING) C(_SC_2_PBS_CHECKPOINT) C(_SC_2_PBS_LOCATE) C(_SC_2_PBS_MESSAGE) C(_SC_2_PBS_TRACK) C(_SC_2_SW_DEV) C(_SC_2_UPE) C(_SC_2_VERSION) C(_SC_ADVISORY_INFO) C(_SC_AIO_LISTIO_MAX) C(_SC_AIO_MAX) C(_SC_AIO_PRIO_DELTA_MAX) C(_SC_ARG_MAX) C(_SC_ASYNCHRONOUS_IO) C(_SC_ATEXIT_MAX) C(_SC_BARRIERS) C(_SC_BC_BASE_MAX) C(_SC_BC_DIM_MAX) C(_SC_BC_SCALE_MAX) C(_SC_BC_STRING_MAX) C(_SC_CHILD_MAX) C(_SC_CLK_TCK) C(_SC_CLOCK_SELECTION) C(_SC_COLL_WEIGHTS_MAX) C(_SC_CPUTIME) C(_SC_DELAYTIMER_MAX) C(_SC_EXPR_NEST_MAX) C(_SC_FSYNC) C(_SC_GETGR_R_SIZE_MAX) C(_SC_GETPW_R_SIZE_MAX) C(_SC_HOST_NAME_MAX) C(_SC_IOV_MAX) C(_SC_IPV6) C(_SC_JOB_CONTROL) C(_SC_LINE_MAX) C(_SC_LOGIN_NAME_MAX) C(_SC_MAPPED_FILES) C(_SC_MEMLOCK) C(_SC_MEMLOCK_RANGE) C(_SC_MEMORY_PROTECTION) C(_SC_MESSAGE_PASSING) C(_SC_MONOTONIC_CLOCK) C(_SC_MQ_OPEN_MAX) C(_SC_MQ_PRIO_MAX) C(_SC_NGROUPS_MAX) C(_SC_OPEN_MAX) C(_SC_PAGE_SIZE) C(_SC_PAGESIZE) C(_SC_PRIORITIZED_IO) C(_SC_PRIORITY_SCHEDULING) C(_SC_RAW_SOCKETS) C(_SC_RE_DUP_MAX) C(_SC_READER_WRITER_LOCKS) C(_SC_REALTIME_SIGNALS) C(_SC_REGEXP) C(_SC_RTSIG_MAX) C(_SC_SAVED_IDS) C(_SC_SEM_NSEMS_MAX) C(_SC_SEM_VALUE_MAX) C(_SC_SEMAPHORES) C(_SC_SHARED_MEMORY_OBJECTS) C(_SC_SHELL) C(_SC_SIGQUEUE_MAX) C(_SC_SPAWN) C(_SC_SPIN_LOCKS) C(_SC_SPORADIC_SERVER) C(_SC_SS_REPL_MAX) C(_SC_STREAM_MAX) C(_SC_SYMLOOP_MAX) C(_SC_SYNCHRONIZED_IO) C(_SC_THREAD_ATTR_STACKADDR) C(_SC_THREAD_ATTR_STACKSIZE) C(_SC_THREAD_CPUTIME) C(_SC_THREAD_DESTRUCTOR_ITERATIONS) C(_SC_THREAD_KEYS_MAX) C(_SC_THREAD_PRIO_INHERIT) C(_SC_THREAD_PRIO_PROTECT) C(_SC_THREAD_PRIORITY_SCHEDULING) C(_SC_THREAD_PROCESS_SHARED) C(_SC_THREAD_ROBUST_PRIO_INHERIT) C(_SC_THREAD_ROBUST_PRIO_PROTECT) C(_SC_THREAD_SAFE_FUNCTIONS) C(_SC_THREAD_SPORADIC_SERVER) C(_SC_THREAD_STACK_MIN) C(_SC_THREAD_THREADS_MAX) C(_SC_THREADS) C(_SC_TIMEOUTS) C(_SC_TIMER_MAX) C(_SC_TIMERS) C(_SC_TRACE) C(_SC_TRACE_EVENT_FILTER) C(_SC_TRACE_EVENT_NAME_MAX) C(_SC_TRACE_INHERIT) C(_SC_TRACE_LOG) C(_SC_TRACE_NAME_MAX) C(_SC_TRACE_SYS_MAX) C(_SC_TRACE_USER_EVENT_MAX) C(_SC_TTY_NAME_MAX) C(_SC_TYPED_MEMORY_OBJECTS) C(_SC_TZNAME_MAX) C(_SC_V7_ILP32_OFF32) C(_SC_V7_ILP32_OFFBIG) C(_SC_V7_LP64_OFF64) C(_SC_V7_LPBIG_OFFBIG) C(_SC_VERSION) C(_SC_XOPEN_CRYPT) C(_SC_XOPEN_ENH_I18N) C(_SC_XOPEN_REALTIME) C(_SC_XOPEN_REALTIME_THREADS) C(_SC_XOPEN_SHM) C(_SC_XOPEN_STREAMS) C(_SC_XOPEN_UNIX) C(_SC_XOPEN_UUCP) C(_SC_XOPEN_VERSION) C(STDERR_FILENO) C(STDIN_FILENO) C(STDOUT_FILENO) C(_POSIX_VDISABLE) T(size_t) T(ssize_t) T(uid_t) T(gid_t) T(off_t) T(pid_t) T(intptr_t) {void(*p)(int) = _exit;} {int(*p)(const char*,int) = access;} {unsigned(*p)(unsigned) = alarm;} {int(*p)(const char*) = chdir;} {int(*p)(const char*,uid_t,gid_t) = chown;} {int(*p)(int) = close;} {size_t(*p)(int,char*,size_t) = confstr;} {int(*p)(int) = dup;} {int(*p)(int,int) = dup2;} {extern char **environ; char **x = environ;}; {int(*p)(const char*,const char*,...) = execl;} {int(*p)(const char*,const char*,...) = execle;} {int(*p)(const char*,const char*,...) = execlp;} {int(*p)(const char*,char*const[]) = execv;} {int(*p)(const char*,char*const[],char*const[]) = execve;} {int(*p)(const char*,char*const[]) = execvp;} {int(*p)(int,const char*,int,int) = faccessat;} {int(*p)(int) = fchdir;} {int(*p)(int,uid_t,gid_t) = fchown;} {int(*p)(int,const char*,uid_t,gid_t,int) = fchownat;} #ifdef POSIX_SYNCHRONIZED_IO {int(*p)(int) = fdatasync;} #endif {int(*p)(int,char*const[],char*const[]) = fexecve;} {pid_t(*p)(void) = fork;} {long(*p)(int,int) = fpathconf;} {int(*p)(int) = fsync;} {int(*p)(int,off_t) = ftruncate;} {char*(*p)(char*,size_t) = getcwd;} {gid_t(*p)(void) = getegid;} {uid_t(*p)(void) = geteuid;} {gid_t(*p)(void) = getgid;} {int(*p)(int,gid_t[]) = getgroups;} {int(*p)(char*,size_t) = gethostname;} {char*(*p)(void) = getlogin;} {int(*p)(char*,size_t) = getlogin_r;} {int(*p)(int,char*const[],const char*) = getopt;} {pid_t(*p)(pid_t) = getpgid;} {pid_t(*p)(void) = getpgrp;} {pid_t(*p)(void) = getpid;} {pid_t(*p)(void) = getppid;} {pid_t(*p)(pid_t) = getsid;} {uid_t(*p)(void) = getuid;} {int(*p)(int) = isatty;} {int(*p)(const char*,uid_t,gid_t) = lchown;} {int(*p)(const char*,const char*) = link;} {int(*p)(int,const char*,int,const char*,int) = linkat;} {off_t(*p)(int,off_t,int) = lseek;} {char *x = optarg;} {int i = opterr;} {int i = optind;} {int i = optopt;} {long(*p)(const char*,int) = pathconf;} {int(*p)(void) = pause;} {int(*p)(int[]) = pipe;} {ssize_t(*p)(int,void*,size_t,off_t) = pread;} {ssize_t(*p)(int,const void*,size_t,off_t) = pwrite;} {ssize_t(*p)(int,void*,size_t) = read;} {ssize_t(*p)(const char*restrict,char*restrict,size_t) = readlink;} {ssize_t(*p)(int,const char*restrict,char*restrict,size_t) = readlinkat;} {int(*p)(const char*) = rmdir;} {int(*p)(gid_t) = setegid;} {int(*p)(uid_t) = seteuid;} {int(*p)(gid_t) = setgid;} {int(*p)(pid_t,pid_t) = setpgid;} {pid_t(*p)(void) = setsid;} {int(*p)(uid_t) = setuid;} {unsigned(*p)(unsigned) = sleep;} {int(*p)(const char*,const char*) = symlink;} {int(*p)(const char*,int,const char*) = symlinkat;} {long(*p)(int) = sysconf;} {pid_t(*p)(int) = tcgetpgrp;} {int(*p)(int,pid_t) = tcsetpgrp;} {int(*p)(const char*,off_t) = truncate;} {char*(*p)(int) = ttyname;} {int(*p)(int,char*,size_t) = ttyname_r;} {int(*p)(const char*) = unlink;} {int(*p)(int,const char*,int) = unlinkat;} {ssize_t(*p)(int,const void*,size_t) = write;} #ifdef _XOPEN_SOURCE {char*(*p)(const char*,const char*) = crypt;} {void(*p)(char[],int) = encrypt;} {long(*p)(void) = gethostid;} {int(*p)(int,int,off_t) = lockf;} {int(*p)(int) = nice;} {int(*p)(gid_t,gid_t) = setregid;} {int(*p)(uid_t,uid_t) = setreuid;} {void(*p)(const void*restrict,void*restrict,ssize_t) = swab;} {void(*p)(void) = sync;} #endif }