Index: ChangeLog =================================================================== RCS file: /cvs/src/src/newlib/ChangeLog,v retrieving revision 1.1224 diff -u -p -r1.1224 ChangeLog --- ChangeLog 20 Nov 2008 20:23:24 -0000 1.1224 +++ ChangeLog 22 Nov 2008 02:01:24 -0000 @@ -1,3 +1,13 @@ +2008-11-21 Craig Howland + + * libc/sys/linux/sysconf.c: add many cases that were missing from + POSIX 200112 definition. (Re-generated main case from list at + opengroup.org. All cases are there, but 2 commented out because do + not have number to return, and 3 commented out because of + compilation problem with defines aliasing.) + * libc/include/sys/unistd.h: Change 3 _SC_ defines that had the + same values as 3 others. + 2008-11-20 Ken Werner * libc/machine/spu/sys/linux_syscalls.h: Additional syscall defines to Index: libc/include/sys/unistd.h =================================================================== RCS file: /cvs/src/src/newlib/libc/include/sys/unistd.h,v retrieving revision 1.68 diff -u -p -r1.68 unistd.h --- libc/include/sys/unistd.h 16 Oct 2008 23:03:40 -0000 1.68 +++ libc/include/sys/unistd.h 22 Nov 2008 02:01:24 -0000 @@ -357,13 +357,9 @@ int _EXFUN(symlink, (const char *__n #define _SC_TRACE_USER_EVENT_MAX 90 #define _SC_TYPED_MEMORY_OBJECTS 91 #define _SC_V6_ILP32_OFF32 92 -#define _SC_XBS5_ILP32_OFF32 _SC_V6_ILP32_OFF32 #define _SC_V6_ILP32_OFFBIG 93 -#define _SC_XBS5_ILP32_OFFBIG _SC_V6_ILP32_OFFBIG #define _SC_V6_LP64_OFF64 94 -#define _SC_XBS5_LP64_OFF64 _SC_V6_LP64_OFF64 #define _SC_V6_LPBIG_OFFBIG 95 -#define _SC_XBS5_LPBIG_OFFBIG _SC_V6_LPBIG_OFFBIG #define _SC_XOPEN_CRYPT 96 #define _SC_XOPEN_ENH_I18N 97 #define _SC_XOPEN_LEGACY 98 @@ -390,6 +386,10 @@ int _EXFUN(symlink, (const char *__n #define _SC_2_SW_DEV 119 #define _SC_2_UPE 120 #define _SC_2_VERSION 121 +#define _SC_XBS5_ILP32_OFF32 122 +#define _SC_XBS5_ILP32_OFFBIG 123 +#define _SC_XBS5_LP64_OFF64 124 +#define _SC_XBS5_LPBIG_OFFBIG 125 /* * pathconf values per IEEE Std 1003.1, 2004 Edition Index: libc/sys/linux/sysconf.c =================================================================== RCS file: /cvs/src/src/newlib/libc/sys/linux/sysconf.c,v retrieving revision 1.2 diff -u -p -r1.2 sysconf.c --- libc/sys/linux/sysconf.c 27 Jun 2002 20:09:24 -0000 1.2 +++ libc/sys/linux/sysconf.c 22 Nov 2008 02:01:24 -0000 @@ -7,377 +7,900 @@ #include #include #include -#include long int sysconf (int name) { switch (name) - { - case _SC_AIO_LISTIO_MAX: -#ifdef AIO_LISTIO_MAX - return AIO_LISTIO_MAX; -#else - return -1; -#endif - - case _SC_AIO_MAX: -#ifdef AIO_MAX - return AIO_MAX; -#else - return -1; -#endif - - case _SC_AIO_PRIO_DELTA_MAX: -#ifdef AIO_PRIO_DELTA_MAX - return AIO_PRIO_DELTA_MAX; -#else - return -1; -#endif - - case _SC_ARG_MAX: -#ifdef ARG_MAX - return ARG_MAX; -#else - return -1; -#endif - - case _SC_CHILD_MAX: -#ifdef CHILD_MAX - return CHILD_MAX; -#else - return -1; -#endif - - case _SC_CLK_TCK: - return CLK_TCK; - - case _SC_DELAYTIMER_MAX: -#ifdef DELAYTIMER_MAX - return DELAYTIMER_MAX; -#else - return -1; -#endif - - case _SC_GETGR_R_SIZE_MAX: -#ifdef _GETGR_R_SIZE_MAX - return _GETGR_R_SIZE_MAX; -#else - return -1; -#endif - - case _SC_GETPW_R_SIZE_MAX: -#ifdef _GETPW_R_SIZE_MAX - return _GETPW_R_SIZE_MAX; -#else - return -1; -#endif - - case _SC_LOGIN_NAME_MAX: -#ifdef LOGIN_NAME_MAX - return LOGIN_NAME_MAX; -#else - return -1; -#endif - - case _SC_MQ_OPEN_MAX: -#ifdef MQ_OPEN_MAX - return MQ_OPEN_MAX; -#else - return -1; -#endif - - case _SC_MQ_PRIO_MAX: -#ifdef MQ_PRIO_MAX - return MQ_PRIO_MAX; -#else - return -1; -#endif - - case _SC_NGROUPS_MAX: -#ifdef NGROUPS_MAX - return NGROUPS_MAX; -#else - return -1; -#endif - - case _SC_OPEN_MAX: -#ifdef OPEN_MAX - return OPEN_MAX; -#else - return -1; -#endif - - case _SC_PAGESIZE: -#ifdef PAGESIZE - return PAGESIZE; -#else - return -1; -#endif - - case _SC_RTSIG_MAX: -#ifdef RTSIG_MAX - return RTSIG_MAX; -#else - return -1; -#endif - - case _SC_SEM_NSEMS_MAX: -#ifdef SEM_NSEMS_MAX - return SEM_NSEMS_MAX; -#else - return -1; -#endif - - case _SC_SEM_VALUE_MAX: -#ifdef SEM_VALUE_MAX - return SEM_VALUE_MAX; -#else - return -1; -#endif - - case _SC_SIGQUEUE_MAX: -#ifdef SIGQUEUE_MAX - return SIGQUEUE_MAX; -#else - return -1; -#endif - - case _SC_STREAM_MAX: -#ifdef STREAM_MAX - return STREAM_MAX; -#else - return -1; -#endif - - case _SC_THREAD_DESTRUCTOR_ITERATIONS: -#ifdef PTHREAD_DESTRUCTOR_ITERATIONS - return PTHREAD_DESTRUCTOR_ITERATIONS; -#else - return -1; -#endif - - case _SC_THREAD_KEYS_MAX: -#ifdef PTHREAD_KEYS_MAX - return PTHREAD_KEYS_MAX; -#else - return -1; -#endif - - case _SC_THREAD_STACK_MIN: -#ifdef PTHREAD_STACK_MIN - return PTHREAD_STACK_MIN; -#else - return -1; -#endif - - case _SC_THREAD_THREADS_MAX: -#ifdef PTHREAD_THREADS_MAX - return PTHREAD_THREADS_MAX; -#else - return -1; -#endif - - case _SC_TIMER_MAX: -#ifdef TIMER_MAX - return TIMER_MAX; -#else - return -1; -#endif - - case _SC_TTY_NAME_MAX: -#ifdef TTY_NAME_MAX - return TTY_NAME_MAX; -#else - return -1; -#endif - - case _SC_TZNAME_MAX: -#ifdef TZNAME_MAX - return TZNAME_MAX; -#else - return -1; -#endif - - case _SC_ASYNCHRONOUS_IO: -#ifdef _POSIX_ASYNCHRONOUS_IO - return 1; -#else - return -1; -#endif - - case _SC_FSYNC: -#ifdef _POSIX_FSYNC - return 1; -#else - return -1; -#endif - - case _SC_JOB_CONTROL: -#ifdef _POSIX_JOB_CONTROL - return 1; -#else - return -1; -#endif - - case _SC_MAPPED_FILES: -#ifdef _POSIX_MAPPED_FILES - return 1; -#else - return -1; -#endif - - case _SC_MEMLOCK: -#ifdef _POSIX_MEMLOCK - return 1; -#else - return -1; -#endif - - case _SC_MEMLOCK_RANGE: -#ifdef _POSIX_MEMLOCK_RANGE - return _POSIX_MEMLOCK_RANGE; -#else - return -1; -#endif - - case _SC_MEMORY_PROTECTION: -#ifdef _POSIX_MEMORY_PROTECTION - return 1; -#else - return -1; -#endif - - case _SC_MESSAGE_PASSING: -#ifdef _POSIX_MESSAGE_PASSING - return 1; -#else - return -1; -#endif - - case _SC_PRIORITIZED_IO: -#ifdef _POSIX_PRIORITIZED_IO - return 1; -#else - return -1; -#endif - - case _SC_PRIORITY_SCHEDULING: -#ifdef _POSIX_PRIORITY_SCHEDULING - return 1; -#else - return -1; -#endif - - case _SC_REALTIME_SIGNALS: -#ifdef _POSIX_REALTIME_SIGNALS - return 1; -#else - return -1; -#endif - - case _SC_SAVED_IDS: -#ifdef _POSIX_SAVED_IDS - return 1; -#else - return -1; -#endif - - case _SC_SEMAPHORES: -#ifdef _POSIX_SEMAPHORES - return 1; -#else - return -1; -#endif - - case _SC_SHARED_MEMORY_OBJECTS: -#ifdef _POSIX_SHARED_MEMORY_OBJECTS - return 1; -#else - return -1; -#endif - - case _SC_SYNCHRONIZED_IO: -#ifdef _POSIX_SYNCHRONIZED_IO - return 1; -#else - return -1; -#endif - - case _SC_TIMERS: -#ifdef _POSIX_TIMERS - return 1; -#else - return -1; -#endif - - case _SC_THREADS: -#ifdef _POSIX_THREADS - return 1; -#else - return -1; -#endif - - case _SC_THREAD_ATTR_STACKADDR: -#ifdef _POSIX_THREAD_ATTR_STACKADDR - return 1; -#else - return -1; -#endif - - case _SC_THREAD_ATTR_STACKSIZE: -#ifdef _POSIX_THREAD_ATTR_STACKSIZE - return 1; -#else - return -1; -#endif - - case _SC_THREAD_PRIORITY_SCHEDULING: -#ifdef _POSIX_THREAD_PRIORITY_SCHEDULING - return 1; -#else - return -1; -#endif - - case _SC_THREAD_PRIO_INHERIT: -#ifdef _POSIX_THREAD_PRIO_INHERIT - return 1; -#else - return -1; -#endif - - case _SC_THREAD_PRIO_PROTECT: -#ifdef _POSIX_THREAD_PRIO_PROTECT - return 1; -#else - return -1; -#endif - - case _SC_THREAD_PROCESS_SHARED: -#ifdef _POSIX_THREAD_PROCESS_SHARED - return 1; -#else - return -1; -#endif - - case _SC_THREAD_SAFE_FUNCTIONS: -#ifdef _POSIX_THREAD_SAFE_FUNCTIONS - return 1; -#else - return -1; -#endif - - case _SC_VERSION: -#ifdef _POSIX_VERSION - return _POSIX_VERSION; -#else - return -1; -#endif - - default: - errno = EINVAL; - return -1; - } + { + case _SC_AIO_LISTIO_MAX: +#if defined(AIO_LISTIO_MAX) + return AIO_LISTIO_MAX; +# else + return -1; +#endif + + case _SC_AIO_MAX: +#if defined(AIO_MAX) + return AIO_MAX; +# else + return -1; +#endif + + case _SC_AIO_PRIO_DELTA_MAX: +#if defined(AIO_PRIO_DELTA_MAX) + return AIO_PRIO_DELTA_MAX; +# else + return -1; +#endif + + case _SC_ARG_MAX: +#if defined(ARG_MAX) + return ARG_MAX; +# else + return -1; +#endif + + case _SC_ATEXIT_MAX: +#if defined(ATEXIT_MAX) + return ATEXIT_MAX; +# else + return -1; +#endif + + case _SC_BC_BASE_MAX: +#if defined(BC_BASE_MAX) + return BC_BASE_MAX; +# else + return -1; +#endif + + case _SC_BC_DIM_MAX: +#if defined(BC_DIM_MAX) + return BC_DIM_MAX; +# else + return -1; +#endif + + case _SC_BC_SCALE_MAX: +#if defined(BC_SCALE_MAX) + return BC_SCALE_MAX; +# else + return -1; +#endif + + case _SC_BC_STRING_MAX: +#if defined(BC_STRING_MAX) + return BC_STRING_MAX; +# else + return -1; +#endif + + case _SC_CHILD_MAX: +#if defined(CHILD_MAX) + return CHILD_MAX; +# else + return -1; +#endif + + case _SC_CLK_TCK: + return CLK_TCK; + + case _SC_COLL_WEIGHTS_MAX: +#if defined(COLL_WEIGHTS_MAX) + return COLL_WEIGHTS_MAX; +# else + return -1; +#endif + + case _SC_DELAYTIMER_MAX: +#if defined(DELAYTIMER_MAX) + return DELAYTIMER_MAX; +# else + return -1; +#endif + + case _SC_EXPR_NEST_MAX: +#if defined(EXPR_NEST_MAX) + return EXPR_NEST_MAX; +# else + return -1; +#endif + + case _SC_HOST_NAME_MAX: +#if defined(HOST_NAME_MAX) + return HOST_NAME_MAX; +# else + return -1; +#endif + + case _SC_IOV_MAX: +#if defined(IOV_MAX) + return IOV_MAX; +# else + return -1; +#endif + + case _SC_LINE_MAX: +#if defined(LINE_MAX) + return LINE_MAX; +# else + return -1; +#endif + + case _SC_LOGIN_NAME_MAX: +#if defined(LOGIN_NAME_MAX) + return LOGIN_NAME_MAX; +# else + return -1; +#endif + + case _SC_NGROUPS_MAX: +#if defined(NGROUPS_MAX) + return NGROUPS_MAX; +# else + return -1; +#endif + +#if 0 +In the POSIX list, but do not have + case _SC_GETGR_R_SIZE_MAX: +#if something + return Maximum size of getgrgid_r() and getgrnam_r() data buffers; +# else + return -1; +#endif +#endif + +#if 0 +In the POSIX list, but do not have + case _SC_GETPW_R_SIZE_MAX: +#if something + return Maximum size of getpwuid_r() and getpwnam_r() data buffers; +# else + return -1; +#endif +#endif + + case _SC_MQ_OPEN_MAX: +#if defined(MQ_OPEN_MAX) + return MQ_OPEN_MAX; +# else + return -1; +#endif + + case _SC_MQ_PRIO_MAX: +#if defined(MQ_PRIO_MAX) + return MQ_PRIO_MAX; +# else + return -1; +#endif + + case _SC_OPEN_MAX: +#if defined(OPEN_MAX) + return OPEN_MAX; +# else + return -1; +#endif + + case _SC_ADVISORY_INFO: +#if defined(_POSIX_ADVISORY_INFO) + return _POSIX_ADVISORY_INFO; +# else + return -1; +#endif + + case _SC_BARRIERS: +#if defined(_POSIX_BARRIERS) + return _POSIX_BARRIERS; +# else + return -1; +#endif + + case _SC_ASYNCHRONOUS_IO: +#if defined(_POSIX_ASYNCHRONOUS_IO) + return _POSIX_ASYNCHRONOUS_IO; +# else + return -1; +#endif + + case _SC_CLOCK_SELECTION: +#if defined(_POSIX_CLOCK_SELECTION) + return _POSIX_CLOCK_SELECTION; +# else + return -1; +#endif + + case _SC_CPUTIME: +#if defined(_POSIX_CPUTIME) + return _POSIX_CPUTIME; +# else + return -1; +#endif + + case _SC_FSYNC: +#if defined(_POSIX_FSYNC) + return _POSIX_FSYNC; +# else + return -1; +#endif + + case _SC_IPV6: +#if defined(_POSIX_IPV6) + return _POSIX_IPV6; +# else + return -1; +#endif + + case _SC_JOB_CONTROL: +#if defined(_POSIX_JOB_CONTROL) + return _POSIX_JOB_CONTROL; +# else + return -1; +#endif + + case _SC_MAPPED_FILES: +#if defined(_POSIX_MAPPED_FILES) + return _POSIX_MAPPED_FILES; +# else + return -1; +#endif + + case _SC_MEMLOCK: +#if defined(_POSIX_MEMLOCK) + return _POSIX_MEMLOCK; +# else + return -1; +#endif + + case _SC_MEMLOCK_RANGE: +#if defined(_POSIX_MEMLOCK_RANGE) + return _POSIX_MEMLOCK_RANGE; +# else + return -1; +#endif + + case _SC_MEMORY_PROTECTION: +#if defined(_POSIX_MEMORY_PROTECTION) + return _POSIX_MEMORY_PROTECTION; +# else + return -1; +#endif + + case _SC_MESSAGE_PASSING: +#if defined(_POSIX_MESSAGE_PASSING) + return _POSIX_MESSAGE_PASSING; +# else + return -1; +#endif + + case _SC_MONOTONIC_CLOCK: +#if defined(_POSIX_MONOTONIC_CLOCK) + return _POSIX_MONOTONIC_CLOCK; +# else + return -1; +#endif + + case _SC_PRIORITIZED_IO: +#if defined(_POSIX_PRIORITIZED_IO) + return _POSIX_PRIORITIZED_IO; +# else + return -1; +#endif + + case _SC_PRIORITY_SCHEDULING: +#if defined(_POSIX_PRIORITY_SCHEDULING) + return _POSIX_PRIORITY_SCHEDULING; +# else + return -1; +#endif + + case _SC_RAW_SOCKETS: +#if defined(_POSIX_RAW_SOCKETS) + return _POSIX_RAW_SOCKETS; +# else + return -1; +#endif + + case _SC_READER_WRITER_LOCKS: +#if defined(_POSIX_READER_WRITER_LOCKS) + return _POSIX_READER_WRITER_LOCKS; +# else + return -1; +#endif + + case _SC_REALTIME_SIGNALS: +#if defined(_POSIX_REALTIME_SIGNALS) + return _POSIX_REALTIME_SIGNALS; +# else + return -1; +#endif + + case _SC_REGEXP: +#if defined(_POSIX_REGEXP) + return _POSIX_REGEXP; +# else + return -1; +#endif + + case _SC_SAVED_IDS: +#if defined(_POSIX_SAVED_IDS) + return _POSIX_SAVED_IDS; +# else + return -1; +#endif + + case _SC_SEMAPHORES: +#if defined(_POSIX_SEMAPHORES) + return _POSIX_SEMAPHORES; +# else + return -1; +#endif + + case _SC_SHARED_MEMORY_OBJECTS: +#if defined(_POSIX_SHARED_MEMORY_OBJECTS) + return _POSIX_SHARED_MEMORY_OBJECTS; +# else + return -1; +#endif + + case _SC_SHELL: +#if defined(_POSIX_SHELL) + return _POSIX_SHELL; +# else + return -1; +#endif + + case _SC_SPAWN: +#if defined(_POSIX_SPAWN) + return _POSIX_SPAWN; +# else + return -1; +#endif + + case _SC_SPIN_LOCKS: +#if defined(_POSIX_SPIN_LOCKS) + return _POSIX_SPIN_LOCKS; +# else + return -1; +#endif + + case _SC_SPORADIC_SERVER: +#if defined(_POSIX_SPORADIC_SERVER) + return _POSIX_SPORADIC_SERVER; +# else + return -1; +#endif + + case _SC_SS_REPL_MAX: +#if defined(_POSIX_SS_REPL_MAX) + return _POSIX_SS_REPL_MAX; +# else + return -1; +#endif + + case _SC_SYNCHRONIZED_IO: +#if defined(_POSIX_SYNCHRONIZED_IO) + return _POSIX_SYNCHRONIZED_IO; +# else + return -1; +#endif + + case _SC_THREAD_ATTR_STACKADDR: +#if defined(_POSIX_THREAD_ATTR_STACKADDR) + return _POSIX_THREAD_ATTR_STACKADDR; +# else + return -1; +#endif + + case _SC_THREAD_ATTR_STACKSIZE: +#if defined(_POSIX_THREAD_ATTR_STACKSIZE) + return _POSIX_THREAD_ATTR_STACKSIZE; +# else + return -1; +#endif + + case _SC_THREAD_CPUTIME: +#if defined(_POSIX_THREAD_CPUTIME) + return _POSIX_THREAD_CPUTIME; +# else + return -1; +#endif + + case _SC_THREAD_PRIO_INHERIT: +#if defined(_POSIX_THREAD_PRIO_INHERIT) + return _POSIX_THREAD_PRIO_INHERIT; +# else + return -1; +#endif + + case _SC_THREAD_PRIO_PROTECT: +#if defined(_POSIX_THREAD_PRIO_PROTECT) + return _POSIX_THREAD_PRIO_PROTECT; +# else + return -1; +#endif + + case _SC_THREAD_PRIORITY_SCHEDULING: +#if defined(_POSIX_THREAD_PRIORITY_SCHEDULING) + return _POSIX_THREAD_PRIORITY_SCHEDULING; +# else + return -1; +#endif + + case _SC_THREAD_PROCESS_SHARED: +#if defined(_POSIX_THREAD_PROCESS_SHARED) + return _POSIX_THREAD_PROCESS_SHARED; +# else + return -1; +#endif + + case _SC_THREAD_SAFE_FUNCTIONS: +#if defined(_POSIX_THREAD_SAFE_FUNCTIONS) + return _POSIX_THREAD_SAFE_FUNCTIONS; +# else + return -1; +#endif + + case _SC_THREAD_SPORADIC_SERVER: +#if defined(_POSIX_THREAD_SPORADIC_SERVER) + return _POSIX_THREAD_SPORADIC_SERVER; +# else + return -1; +#endif + + case _SC_THREADS: +#if defined(_POSIX_THREADS) + return _POSIX_THREADS; +# else + return -1; +#endif + + case _SC_TIMEOUTS: +#if defined(_POSIX_TIMEOUTS) + return _POSIX_TIMEOUTS; +# else + return -1; +#endif + + case _SC_TIMERS: +#if defined(_POSIX_TIMERS) + return _POSIX_TIMERS; +# else + return -1; +#endif + + case _SC_TRACE: +#if defined(_POSIX_TRACE) + return _POSIX_TRACE; +# else + return -1; +#endif + + case _SC_TRACE_EVENT_FILTER: +#if defined(_POSIX_TRACE_EVENT_FILTER) + return _POSIX_TRACE_EVENT_FILTER; +# else + return -1; +#endif + + case _SC_TRACE_EVENT_NAME_MAX: +#if defined(_POSIX_TRACE_EVENT_NAME_MAX) + return _POSIX_TRACE_EVENT_NAME_MAX; +# else + return -1; +#endif + + case _SC_TRACE_INHERIT: +#if defined(_POSIX_TRACE_INHERIT) + return _POSIX_TRACE_INHERIT; +# else + return -1; +#endif + + case _SC_TRACE_LOG: +#if defined(_POSIX_TRACE_LOG) + return _POSIX_TRACE_LOG; +# else + return -1; +#endif + + case _SC_TRACE_NAME_MAX: +#if defined(_POSIX_TRACE_NAME_MAX) + return _POSIX_TRACE_NAME_MAX; +# else + return -1; +#endif + + case _SC_TRACE_SYS_MAX: +#if defined(_POSIX_TRACE_SYS_MAX) + return _POSIX_TRACE_SYS_MAX; +# else + return -1; +#endif + + case _SC_TRACE_USER_EVENT_MAX: +#if defined(_POSIX_TRACE_USER_EVENT_MAX) + return _POSIX_TRACE_USER_EVENT_MAX; +# else + return -1; +#endif + + case _SC_TYPED_MEMORY_OBJECTS: +#if defined(_POSIX_TYPED_MEMORY_OBJECTS) + return _POSIX_TYPED_MEMORY_OBJECTS; +# else + return -1; +#endif + + case _SC_VERSION: +#if defined(_POSIX_VERSION) + return _POSIX_VERSION; +# else + return -1; +#endif + + case _SC_V6_ILP32_OFF32: +#if defined(_POSIX_V6_ILP32_OFF32) + return _POSIX_V6_ILP32_OFF32; +# else + return -1; +#endif + + case _SC_V6_ILP32_OFFBIG: +#if defined(_POSIX_V6_ILP32_OFFBIG) + return _POSIX_V6_ILP32_OFFBIG; +# else + return -1; +#endif + + case _SC_V6_LP64_OFF64: +#if defined(_POSIX_V6_LP64_OFF64) + return _POSIX_V6_LP64_OFF64; +# else + return -1; +#endif + + case _SC_V6_LPBIG_OFFBIG: +#if defined(_POSIX_V6_LPBIG_OFFBIG) + return _POSIX_V6_LPBIG_OFFBIG; +# else + return -1; +#endif + + case _SC_2_C_BIND: +#if defined(_POSIX2_C_BIND) + return _POSIX2_C_BIND; +# else + return -1; +#endif + + case _SC_2_C_DEV: +#if defined(_POSIX2_C_DEV) + return _POSIX2_C_DEV; +# else + return -1; +#endif + + case _SC_2_CHAR_TERM: +#if defined(_POSIX2_CHAR_TERM) + return _POSIX2_CHAR_TERM; +# else + return -1; +#endif + + case _SC_2_FORT_DEV: +#if defined(_POSIX2_FORT_DEV) + return _POSIX2_FORT_DEV; +# else + return -1; +#endif + + case _SC_2_FORT_RUN: +#if defined(_POSIX2_FORT_RUN) + return _POSIX2_FORT_RUN; +# else + return -1; +#endif + + case _SC_2_LOCALEDEF: +#if defined(_POSIX2_LOCALEDEF) + return _POSIX2_LOCALEDEF; +# else + return -1; +#endif + + case _SC_2_PBS: +#if defined(_POSIX2_PBS) + return _POSIX2_PBS; +# else + return -1; +#endif + + case _SC_2_PBS_ACCOUNTING: +#if defined(_POSIX2_PBS_ACCOUNTING) + return _POSIX2_PBS_ACCOUNTING; +# else + return -1; +#endif + + case _SC_2_PBS_CHECKPOINT: +#if defined(_POSIX2_PBS_CHECKPOINT) + return _POSIX2_PBS_CHECKPOINT; +# else + return -1; +#endif + + case _SC_2_PBS_LOCATE: +#if defined(_POSIX2_PBS_LOCATE) + return _POSIX2_PBS_LOCATE; +# else + return -1; +#endif + + case _SC_2_PBS_MESSAGE: +#if defined(_POSIX2_PBS_MESSAGE) + return _POSIX2_PBS_MESSAGE; +# else + return -1; +#endif + + case _SC_2_PBS_TRACK: +#if defined(_POSIX2_PBS_TRACK) + return _POSIX2_PBS_TRACK; +# else + return -1; +#endif + + case _SC_2_SW_DEV: +#if defined(_POSIX2_SW_DEV) + return _POSIX2_SW_DEV; +# else + return -1; +#endif + + case _SC_2_UPE: +#if defined(_POSIX2_UPE) + return _POSIX2_UPE; +# else + return -1; +#endif + + case _SC_2_VERSION: +#if defined(_POSIX2_VERSION) + return _POSIX2_VERSION; +# else + return -1; +#endif + +/* _SC_PAGE_SIZE and _SC_PAGESIZE are permitted by POSIX to be the same value. + * The prior version of sysconf had _SC_PAGESIZE, but not _SC_PAGE_SIZE, so + * choose the former when they are the same. + * NOTE: PAGE_SIZE and PAGESIZE really ought to be the same, and this might + * be a good place to enforce it, but it was not done for fear of breaking + * things. */ +#if _SC_PAGE_SIZE != _SC_PAGESIZE + case _SC_PAGE_SIZE: +#if defined(PAGE_SIZE) + return PAGE_SIZE; +# else + return -1; +#endif +#endif + + case _SC_PAGESIZE: +#if defined(PAGESIZE) + return PAGESIZE; +# else + return -1; +#endif + + case _SC_THREAD_DESTRUCTOR_ITERATIONS: +#if defined(PTHREAD_DESTRUCTOR_ITERATIONS) + return PTHREAD_DESTRUCTOR_ITERATIONS; +# else + return -1; +#endif + + case _SC_THREAD_KEYS_MAX: +#if defined(PTHREAD_KEYS_MAX) + return PTHREAD_KEYS_MAX; +# else + return -1; +#endif + + case _SC_THREAD_STACK_MIN: +#if defined(PTHREAD_STACK_MIN) + return PTHREAD_STACK_MIN; +# else + return -1; +#endif + + case _SC_THREAD_THREADS_MAX: +#if defined(PTHREAD_THREADS_MAX) + return PTHREAD_THREADS_MAX; +# else + return -1; +#endif + + case _SC_RE_DUP_MAX: +#if defined(RE_DUP_MAX) + return RE_DUP_MAX; +# else + return -1; +#endif + + case _SC_RTSIG_MAX: +#if defined(RTSIG_MAX) + return RTSIG_MAX; +# else + return -1; +#endif + + case _SC_SEM_NSEMS_MAX: +#if defined(SEM_NSEMS_MAX) + return SEM_NSEMS_MAX; +# else + return -1; +#endif + + case _SC_SEM_VALUE_MAX: +#if defined(SEM_VALUE_MAX) + return SEM_VALUE_MAX; +# else + return -1; +#endif + + case _SC_SIGQUEUE_MAX: +#if defined(SIGQUEUE_MAX) + return SIGQUEUE_MAX; +# else + return -1; +#endif + + case _SC_STREAM_MAX: +#if defined(STREAM_MAX) + return STREAM_MAX; +# else + return -1; +#endif + + case _SC_SYMLOOP_MAX: +#if defined(SYMLOOP_MAX) + return SYMLOOP_MAX; +# else + return -1; +#endif + + case _SC_TIMER_MAX: +#if defined(TIMER_MAX) + return TIMER_MAX; +# else + return -1; +#endif + + case _SC_TTY_NAME_MAX: +#if defined(TTY_NAME_MAX) + return TTY_NAME_MAX; +# else + return -1; +#endif + + case _SC_TZNAME_MAX: +#if defined(TZNAME_MAX) + return TZNAME_MAX; +# else + return -1; +#endif + +#if 0 +TAKE OUT BECAUSE _XBS5_ILP32_OFF32 ALIASES TO SOMETHING ELSE THAT MAKES +COMPILE FAIL: FIX ME + case _SC_XBS5_ILP32_OFF32: +#if defined(_XBS5_ILP32_OFF32) + return _XBS5_ILP32_OFF32; +# else + return -1; +#endif +#endif + + case _SC_XBS5_ILP32_OFFBIG: +#if defined(_XBS5_ILP32_OFFBIG) + return _XBS5_ILP32_OFFBIG; +# else + return -1; +#endif + +#if 0 +TAKE OUT BECAUSE _XBS5_LP64_OFF64 ALIASES TO SOMETHING ELSE THAT MAKES +COMPILE FAIL: FIX ME + case _SC_XBS5_LP64_OFF64: +#if defined(_XBS5_LP64_OFF64) + return _XBS5_LP64_OFF64; +# else + return -1; +#endif +#endif + +#if 0 +TAKE OUT BECAUSE _XBS5_LPBIG_OFFBIG ALIASES TO SOMETHING ELSE THAT MAKES +COMPILE FAIL: FIX ME + case _SC_XBS5_LPBIG_OFFBIG: +#if defined(_XBS5_LPBIG_OFFBIG) + return _XBS5_LPBIG_OFFBIG; +# else + return -1; +#endif +#endif + + case _SC_XOPEN_CRYPT: +#if defined(_XOPEN_CRYPT) + return _XOPEN_CRYPT; +# else + return -1; +#endif + + case _SC_XOPEN_ENH_I18N: +#if defined(_XOPEN_ENH_I18N) + return _XOPEN_ENH_I18N; +# else + return -1; +#endif + + case _SC_XOPEN_LEGACY: +#if defined(_XOPEN_LEGACY) + return _XOPEN_LEGACY; +# else + return -1; +#endif + + case _SC_XOPEN_REALTIME: +#if defined(_XOPEN_REALTIME) + return _XOPEN_REALTIME; +# else + return -1; +#endif + + case _SC_XOPEN_REALTIME_THREADS: +#if defined(_XOPEN_REALTIME_THREADS) + return _XOPEN_REALTIME_THREADS; +# else + return -1; +#endif + + case _SC_XOPEN_SHM: +#if defined(_XOPEN_SHM) + return _XOPEN_SHM; +# else + return -1; +#endif + + case _SC_XOPEN_STREAMS: +#if defined(_XOPEN_STREAMS) + return _XOPEN_STREAMS; +# else + return -1; +#endif + + case _SC_XOPEN_UNIX: +#if defined(_XOPEN_UNIX) + return _XOPEN_UNIX; +# else + return -1; +#endif + + case _SC_XOPEN_VERSION: +#if defined(_XOPEN_VERSION) + return _XOPEN_VERSION; +# else + return -1; +#endif + + + default: + errno = EINVAL; + return -1; + } return -1; /* can't get here */ }