]> git.lizzy.rs Git - rust.git/commitdiff
auto merge of #8602 : sanxiyn/rust/sysconf, r=graydon
authorbors <bors@rust-lang.org>
Wed, 21 Aug 2013 13:31:44 +0000 (06:31 -0700)
committerbors <bors@rust-lang.org>
Wed, 21 Aug 2013 13:31:44 +0000 (06:31 -0700)
Linux and Android share the kernel, but not the C library, so sysconf constants are different. For example, _SC_PAGESIZE is 30 on Linux, but 39 on Android.

This patch
* splits sysconf constants to sysconf module
* merges non-MIPS and MIPS sysconf constants (they are same)
* adds Android sysconf constants

This patch also lets mmap tests to pass on Android.

1  2 
src/libstd/libc.rs

diff --combined src/libstd/libc.rs
index d3e0c88e5dff7e78bad2ed3543178ca89767ebd3,4226502dc156c241d069b6ea12b6a745b77564dc..26b4f15f3e99f4d7fc31b9747d0c3ec800acfad4
@@@ -92,6 -92,7 +92,7 @@@ pub use libc::consts::os::posix01::*
  pub use libc::consts::os::posix08::*;
  pub use libc::consts::os::bsd44::*;
  pub use libc::consts::os::extra::*;
+ pub use libc::consts::os::sysconf::*;
  
  pub use libc::funcs::c95::ctype::*;
  pub use libc::funcs::c95::stdio::*;
@@@ -1123,6 -1124,8 +1124,8 @@@ pub mod consts 
              pub static PROCESSOR_ARCHITECTURE_AMD64 : WORD = 9;
              pub static PROCESSOR_ARCHITECTURE_UNKNOWN : WORD = 0xffff;
          }
+         pub mod sysconf {
+         }
      }
  
  
              pub static MS_INVALIDATE : c_int = 0x0002;
              pub static MS_SYNC : c_int = 0x0004;
  
-             pub static _SC_ARG_MAX : c_int = 0;
-             pub static _SC_CHILD_MAX : c_int = 1;
-             pub static _SC_CLK_TCK : c_int = 2;
-             pub static _SC_NGROUPS_MAX : c_int = 3;
-             pub static _SC_OPEN_MAX : c_int = 4;
-             pub static _SC_STREAM_MAX : c_int = 5;
-             pub static _SC_TZNAME_MAX : c_int = 6;
-             pub static _SC_JOB_CONTROL : c_int = 7;
-             pub static _SC_SAVED_IDS : c_int = 8;
-             pub static _SC_REALTIME_SIGNALS : c_int = 9;
-             pub static _SC_PRIORITY_SCHEDULING : c_int = 10;
-             pub static _SC_TIMERS : c_int = 11;
-             pub static _SC_ASYNCHRONOUS_IO : c_int = 12;
-             pub static _SC_PRIORITIZED_IO : c_int = 13;
-             pub static _SC_SYNCHRONIZED_IO : c_int = 14;
-             pub static _SC_FSYNC : c_int = 15;
-             pub static _SC_MAPPED_FILES : c_int = 16;
-             pub static _SC_MEMLOCK : c_int = 17;
-             pub static _SC_MEMLOCK_RANGE : c_int = 18;
-             pub static _SC_MEMORY_PROTECTION : c_int = 19;
-             pub static _SC_MESSAGE_PASSING : c_int = 20;
-             pub static _SC_SEMAPHORES : c_int = 21;
-             pub static _SC_SHARED_MEMORY_OBJECTS : c_int = 22;
-             pub static _SC_AIO_LISTIO_MAX : c_int = 23;
-             pub static _SC_AIO_MAX : c_int = 24;
-             pub static _SC_AIO_PRIO_DELTA_MAX : c_int = 25;
-             pub static _SC_DELAYTIMER_MAX : c_int = 26;
-             pub static _SC_MQ_OPEN_MAX : c_int = 27;
-             pub static _SC_VERSION : c_int = 29;
-             pub static _SC_PAGESIZE : c_int = 30;
-             pub static _SC_RTSIG_MAX : c_int = 31;
-             pub static _SC_SEM_NSEMS_MAX : c_int = 32;
-             pub static _SC_SEM_VALUE_MAX : c_int = 33;
-             pub static _SC_SIGQUEUE_MAX : c_int = 34;
-             pub static _SC_TIMER_MAX : c_int = 35;
-             pub static _SC_BC_BASE_MAX : c_int = 36;
-             pub static _SC_BC_DIM_MAX : c_int = 37;
-             pub static _SC_BC_SCALE_MAX : c_int = 38;
-             pub static _SC_BC_STRING_MAX : c_int = 39;
-             pub static _SC_COLL_WEIGHTS_MAX : c_int = 40;
-             pub static _SC_EXPR_NEST_MAX : c_int = 42;
-             pub static _SC_LINE_MAX : c_int = 43;
-             pub static _SC_RE_DUP_MAX : c_int = 44;
-             pub static _SC_2_VERSION : c_int = 46;
-             pub static _SC_2_C_BIND : c_int = 47;
-             pub static _SC_2_C_DEV : c_int = 48;
-             pub static _SC_2_FORT_DEV : c_int = 49;
-             pub static _SC_2_FORT_RUN : c_int = 50;
-             pub static _SC_2_SW_DEV : c_int = 51;
-             pub static _SC_2_LOCALEDEF : c_int = 52;
-             pub static _SC_2_CHAR_TERM : c_int = 95;
-             pub static _SC_2_C_VERSION : c_int = 96;
-             pub static _SC_2_UPE : c_int = 97;
-             pub static _SC_XBS5_ILP32_OFF32 : c_int = 125;
-             pub static _SC_XBS5_ILP32_OFFBIG : c_int = 126;
-             pub static _SC_XBS5_LPBIG_OFFBIG : c_int = 128;
              pub static EPERM : c_int = 1;
              pub static ENOENT : c_int = 2;
              pub static ESRCH : c_int = 3;
              pub static MS_INVALIDATE : c_int = 0x0002;
              pub static MS_SYNC : c_int = 0x0004;
  
-             pub static _SC_ARG_MAX : c_int = 0;
-             pub static _SC_CHILD_MAX : c_int = 1;
-             pub static _SC_CLK_TCK : c_int = 2;
-             pub static _SC_NGROUPS_MAX : c_int = 3;
-             pub static _SC_OPEN_MAX : c_int = 4;
-             pub static _SC_STREAM_MAX : c_int = 5;
-             pub static _SC_TZNAME_MAX : c_int = 6;
-             pub static _SC_JOB_CONTROL : c_int = 7;
-             pub static _SC_SAVED_IDS : c_int = 8;
-             pub static _SC_REALTIME_SIGNALS : c_int = 9;
-             pub static _SC_PRIORITY_SCHEDULING : c_int = 10;
-             pub static _SC_TIMERS : c_int = 11;
-             pub static _SC_ASYNCHRONOUS_IO : c_int = 12;
-             pub static _SC_PRIORITIZED_IO : c_int = 13;
-             pub static _SC_SYNCHRONIZED_IO : c_int = 14;
-             pub static _SC_FSYNC : c_int = 15;
-             pub static _SC_MAPPED_FILES : c_int = 16;
-             pub static _SC_MEMLOCK : c_int = 17;
-             pub static _SC_MEMLOCK_RANGE : c_int = 18;
-             pub static _SC_MEMORY_PROTECTION : c_int = 19;
-             pub static _SC_MESSAGE_PASSING : c_int = 20;
-             pub static _SC_SEMAPHORES : c_int = 21;
-             pub static _SC_SHARED_MEMORY_OBJECTS : c_int = 22;
-             pub static _SC_AIO_LISTIO_MAX : c_int = 23;
-             pub static _SC_AIO_MAX : c_int = 24;
-             pub static _SC_AIO_PRIO_DELTA_MAX : c_int = 25;
-             pub static _SC_DELAYTIMER_MAX : c_int = 26;
-             pub static _SC_MQ_OPEN_MAX : c_int = 27;
-             pub static _SC_VERSION : c_int = 29;
-             pub static _SC_PAGESIZE : c_int = 30;
-             pub static _SC_RTSIG_MAX : c_int = 31;
-             pub static _SC_SEM_NSEMS_MAX : c_int = 32;
-             pub static _SC_SEM_VALUE_MAX : c_int = 33;
-             pub static _SC_SIGQUEUE_MAX : c_int = 34;
-             pub static _SC_TIMER_MAX : c_int = 35;
-             pub static _SC_BC_BASE_MAX : c_int = 36;
-             pub static _SC_BC_DIM_MAX : c_int = 37;
-             pub static _SC_BC_SCALE_MAX : c_int = 38;
-             pub static _SC_BC_STRING_MAX : c_int = 39;
-             pub static _SC_COLL_WEIGHTS_MAX : c_int = 40;
-             pub static _SC_EXPR_NEST_MAX : c_int = 42;
-             pub static _SC_LINE_MAX : c_int = 43;
-             pub static _SC_RE_DUP_MAX : c_int = 44;
-             pub static _SC_2_VERSION : c_int = 46;
-             pub static _SC_2_C_BIND : c_int = 47;
-             pub static _SC_2_C_DEV : c_int = 48;
-             pub static _SC_2_FORT_DEV : c_int = 49;
-             pub static _SC_2_FORT_RUN : c_int = 50;
-             pub static _SC_2_SW_DEV : c_int = 51;
-             pub static _SC_2_LOCALEDEF : c_int = 52;
-             pub static _SC_2_CHAR_TERM : c_int = 95;
-             pub static _SC_2_C_VERSION : c_int = 96;
-             pub static _SC_2_UPE : c_int = 97;
-             pub static _SC_XBS5_ILP32_OFF32 : c_int = 125;
-             pub static _SC_XBS5_ILP32_OFFBIG : c_int = 126;
-             pub static _SC_XBS5_LPBIG_OFFBIG : c_int = 128;
              pub static EPERM : c_int = 1;
              pub static ENOENT : c_int = 2;
              pub static ESRCH : c_int = 3;
              pub static MAP_NONBLOCK : c_int = 0x010000;
              pub static MAP_STACK : c_int = 0x020000;
          }
+         #[cfg(target_os = "linux")]
+         pub mod sysconf {
+             use libc::types::os::arch::c95::c_int;
+             pub static _SC_ARG_MAX : c_int = 0;
+             pub static _SC_CHILD_MAX : c_int = 1;
+             pub static _SC_CLK_TCK : c_int = 2;
+             pub static _SC_NGROUPS_MAX : c_int = 3;
+             pub static _SC_OPEN_MAX : c_int = 4;
+             pub static _SC_STREAM_MAX : c_int = 5;
+             pub static _SC_TZNAME_MAX : c_int = 6;
+             pub static _SC_JOB_CONTROL : c_int = 7;
+             pub static _SC_SAVED_IDS : c_int = 8;
+             pub static _SC_REALTIME_SIGNALS : c_int = 9;
+             pub static _SC_PRIORITY_SCHEDULING : c_int = 10;
+             pub static _SC_TIMERS : c_int = 11;
+             pub static _SC_ASYNCHRONOUS_IO : c_int = 12;
+             pub static _SC_PRIORITIZED_IO : c_int = 13;
+             pub static _SC_SYNCHRONIZED_IO : c_int = 14;
+             pub static _SC_FSYNC : c_int = 15;
+             pub static _SC_MAPPED_FILES : c_int = 16;
+             pub static _SC_MEMLOCK : c_int = 17;
+             pub static _SC_MEMLOCK_RANGE : c_int = 18;
+             pub static _SC_MEMORY_PROTECTION : c_int = 19;
+             pub static _SC_MESSAGE_PASSING : c_int = 20;
+             pub static _SC_SEMAPHORES : c_int = 21;
+             pub static _SC_SHARED_MEMORY_OBJECTS : c_int = 22;
+             pub static _SC_AIO_LISTIO_MAX : c_int = 23;
+             pub static _SC_AIO_MAX : c_int = 24;
+             pub static _SC_AIO_PRIO_DELTA_MAX : c_int = 25;
+             pub static _SC_DELAYTIMER_MAX : c_int = 26;
+             pub static _SC_MQ_OPEN_MAX : c_int = 27;
+             pub static _SC_VERSION : c_int = 29;
+             pub static _SC_PAGESIZE : c_int = 30;
+             pub static _SC_RTSIG_MAX : c_int = 31;
+             pub static _SC_SEM_NSEMS_MAX : c_int = 32;
+             pub static _SC_SEM_VALUE_MAX : c_int = 33;
+             pub static _SC_SIGQUEUE_MAX : c_int = 34;
+             pub static _SC_TIMER_MAX : c_int = 35;
+             pub static _SC_BC_BASE_MAX : c_int = 36;
+             pub static _SC_BC_DIM_MAX : c_int = 37;
+             pub static _SC_BC_SCALE_MAX : c_int = 38;
+             pub static _SC_BC_STRING_MAX : c_int = 39;
+             pub static _SC_COLL_WEIGHTS_MAX : c_int = 40;
+             pub static _SC_EXPR_NEST_MAX : c_int = 42;
+             pub static _SC_LINE_MAX : c_int = 43;
+             pub static _SC_RE_DUP_MAX : c_int = 44;
+             pub static _SC_2_VERSION : c_int = 46;
+             pub static _SC_2_C_BIND : c_int = 47;
+             pub static _SC_2_C_DEV : c_int = 48;
+             pub static _SC_2_FORT_DEV : c_int = 49;
+             pub static _SC_2_FORT_RUN : c_int = 50;
+             pub static _SC_2_SW_DEV : c_int = 51;
+             pub static _SC_2_LOCALEDEF : c_int = 52;
+             pub static _SC_2_CHAR_TERM : c_int = 95;
+             pub static _SC_2_C_VERSION : c_int = 96;
+             pub static _SC_2_UPE : c_int = 97;
+             pub static _SC_XBS5_ILP32_OFF32 : c_int = 125;
+             pub static _SC_XBS5_ILP32_OFFBIG : c_int = 126;
+             pub static _SC_XBS5_LPBIG_OFFBIG : c_int = 128;
+         }
+         #[cfg(target_os = "android")]
+         pub mod sysconf {
+             use libc::types::os::arch::c95::c_int;
+             pub static _SC_ARG_MAX : c_int = 0;
+             pub static _SC_BC_BASE_MAX : c_int = 1;
+             pub static _SC_BC_DIM_MAX : c_int = 2;
+             pub static _SC_BC_SCALE_MAX : c_int = 3;
+             pub static _SC_BC_STRING_MAX : c_int = 4;
+             pub static _SC_CHILD_MAX : c_int = 5;
+             pub static _SC_CLK_TCK : c_int = 6;
+             pub static _SC_COLL_WEIGHTS_MAX : c_int = 7;
+             pub static _SC_EXPR_NEST_MAX : c_int = 8;
+             pub static _SC_LINE_MAX : c_int = 9;
+             pub static _SC_NGROUPS_MAX : c_int = 10;
+             pub static _SC_OPEN_MAX : c_int = 11;
+             pub static _SC_2_C_BIND : c_int = 13;
+             pub static _SC_2_C_DEV : c_int = 14;
+             pub static _SC_2_C_VERSION : c_int = 15;
+             pub static _SC_2_CHAR_TERM : c_int = 16;
+             pub static _SC_2_FORT_DEV : c_int = 17;
+             pub static _SC_2_FORT_RUN : c_int = 18;
+             pub static _SC_2_LOCALEDEF : c_int = 19;
+             pub static _SC_2_SW_DEV : c_int = 20;
+             pub static _SC_2_UPE : c_int = 21;
+             pub static _SC_2_VERSION : c_int = 22;
+             pub static _SC_JOB_CONTROL : c_int = 23;
+             pub static _SC_SAVED_IDS : c_int = 24;
+             pub static _SC_VERSION : c_int = 25;
+             pub static _SC_RE_DUP_MAX : c_int = 26;
+             pub static _SC_STREAM_MAX : c_int = 27;
+             pub static _SC_TZNAME_MAX : c_int = 28;
+             pub static _SC_PAGESIZE : c_int = 39;
+         }
      }
  
      #[cfg(target_os = "freebsd")]
              pub static MS_ASYNC : c_int = 0x0001;
              pub static MS_INVALIDATE : c_int = 0x0002;
  
-             pub static _SC_ARG_MAX : c_int = 1;
-             pub static _SC_CHILD_MAX : c_int = 2;
-             pub static _SC_CLK_TCK : c_int = 3;
-             pub static _SC_NGROUPS_MAX : c_int = 4;
-             pub static _SC_OPEN_MAX : c_int = 5;
-             pub static _SC_JOB_CONTROL : c_int = 6;
-             pub static _SC_SAVED_IDS : c_int = 7;
-             pub static _SC_VERSION : c_int = 8;
-             pub static _SC_BC_BASE_MAX : c_int = 9;
-             pub static _SC_BC_DIM_MAX : c_int = 10;
-             pub static _SC_BC_SCALE_MAX : c_int = 11;
-             pub static _SC_BC_STRING_MAX : c_int = 12;
-             pub static _SC_COLL_WEIGHTS_MAX : c_int = 13;
-             pub static _SC_EXPR_NEST_MAX : c_int = 14;
-             pub static _SC_LINE_MAX : c_int = 15;
-             pub static _SC_RE_DUP_MAX : c_int = 16;
-             pub static _SC_2_VERSION : c_int = 17;
-             pub static _SC_2_C_BIND : c_int = 18;
-             pub static _SC_2_C_DEV : c_int = 19;
-             pub static _SC_2_CHAR_TERM : c_int = 20;
-             pub static _SC_2_FORT_DEV : c_int = 21;
-             pub static _SC_2_FORT_RUN : c_int = 22;
-             pub static _SC_2_LOCALEDEF : c_int = 23;
-             pub static _SC_2_SW_DEV : c_int = 24;
-             pub static _SC_2_UPE : c_int = 25;
-             pub static _SC_STREAM_MAX : c_int = 26;
-             pub static _SC_TZNAME_MAX : c_int = 27;
-             pub static _SC_ASYNCHRONOUS_IO : c_int = 28;
-             pub static _SC_MAPPED_FILES : c_int = 29;
-             pub static _SC_MEMLOCK : c_int = 30;
-             pub static _SC_MEMLOCK_RANGE : c_int = 31;
-             pub static _SC_MEMORY_PROTECTION : c_int = 32;
-             pub static _SC_MESSAGE_PASSING : c_int = 33;
-             pub static _SC_PRIORITIZED_IO : c_int = 34;
-             pub static _SC_PRIORITY_SCHEDULING : c_int = 35;
-             pub static _SC_REALTIME_SIGNALS : c_int = 36;
-             pub static _SC_SEMAPHORES : c_int = 37;
-             pub static _SC_FSYNC : c_int = 38;
-             pub static _SC_SHARED_MEMORY_OBJECTS : c_int = 39;
-             pub static _SC_SYNCHRONIZED_IO : c_int = 40;
-             pub static _SC_TIMERS : c_int = 41;
-             pub static _SC_AIO_LISTIO_MAX : c_int = 42;
-             pub static _SC_AIO_MAX : c_int = 43;
-             pub static _SC_AIO_PRIO_DELTA_MAX : c_int = 44;
-             pub static _SC_DELAYTIMER_MAX : c_int = 45;
-             pub static _SC_MQ_OPEN_MAX : c_int = 46;
-             pub static _SC_PAGESIZE : c_int = 47;
-             pub static _SC_RTSIG_MAX : c_int = 48;
-             pub static _SC_SEM_NSEMS_MAX : c_int = 49;
-             pub static _SC_SEM_VALUE_MAX : c_int = 50;
-             pub static _SC_SIGQUEUE_MAX : c_int = 51;
-             pub static _SC_TIMER_MAX : c_int = 52;
              pub static EPERM : c_int = 1;
              pub static ENOENT : c_int = 2;
              pub static ESRCH : c_int = 3;
              pub static MAP_NOSYNC : c_int = 0x0800;
              pub static MAP_NOCORE : c_int = 0x020000;
          }
+         pub mod sysconf {
+             use libc::types::os::arch::c95::c_int;
+             pub static _SC_ARG_MAX : c_int = 1;
+             pub static _SC_CHILD_MAX : c_int = 2;
+             pub static _SC_CLK_TCK : c_int = 3;
+             pub static _SC_NGROUPS_MAX : c_int = 4;
+             pub static _SC_OPEN_MAX : c_int = 5;
+             pub static _SC_JOB_CONTROL : c_int = 6;
+             pub static _SC_SAVED_IDS : c_int = 7;
+             pub static _SC_VERSION : c_int = 8;
+             pub static _SC_BC_BASE_MAX : c_int = 9;
+             pub static _SC_BC_DIM_MAX : c_int = 10;
+             pub static _SC_BC_SCALE_MAX : c_int = 11;
+             pub static _SC_BC_STRING_MAX : c_int = 12;
+             pub static _SC_COLL_WEIGHTS_MAX : c_int = 13;
+             pub static _SC_EXPR_NEST_MAX : c_int = 14;
+             pub static _SC_LINE_MAX : c_int = 15;
+             pub static _SC_RE_DUP_MAX : c_int = 16;
+             pub static _SC_2_VERSION : c_int = 17;
+             pub static _SC_2_C_BIND : c_int = 18;
+             pub static _SC_2_C_DEV : c_int = 19;
+             pub static _SC_2_CHAR_TERM : c_int = 20;
+             pub static _SC_2_FORT_DEV : c_int = 21;
+             pub static _SC_2_FORT_RUN : c_int = 22;
+             pub static _SC_2_LOCALEDEF : c_int = 23;
+             pub static _SC_2_SW_DEV : c_int = 24;
+             pub static _SC_2_UPE : c_int = 25;
+             pub static _SC_STREAM_MAX : c_int = 26;
+             pub static _SC_TZNAME_MAX : c_int = 27;
+             pub static _SC_ASYNCHRONOUS_IO : c_int = 28;
+             pub static _SC_MAPPED_FILES : c_int = 29;
+             pub static _SC_MEMLOCK : c_int = 30;
+             pub static _SC_MEMLOCK_RANGE : c_int = 31;
+             pub static _SC_MEMORY_PROTECTION : c_int = 32;
+             pub static _SC_MESSAGE_PASSING : c_int = 33;
+             pub static _SC_PRIORITIZED_IO : c_int = 34;
+             pub static _SC_PRIORITY_SCHEDULING : c_int = 35;
+             pub static _SC_REALTIME_SIGNALS : c_int = 36;
+             pub static _SC_SEMAPHORES : c_int = 37;
+             pub static _SC_FSYNC : c_int = 38;
+             pub static _SC_SHARED_MEMORY_OBJECTS : c_int = 39;
+             pub static _SC_SYNCHRONIZED_IO : c_int = 40;
+             pub static _SC_TIMERS : c_int = 41;
+             pub static _SC_AIO_LISTIO_MAX : c_int = 42;
+             pub static _SC_AIO_MAX : c_int = 43;
+             pub static _SC_AIO_PRIO_DELTA_MAX : c_int = 44;
+             pub static _SC_DELAYTIMER_MAX : c_int = 45;
+             pub static _SC_MQ_OPEN_MAX : c_int = 46;
+             pub static _SC_PAGESIZE : c_int = 47;
+             pub static _SC_RTSIG_MAX : c_int = 48;
+             pub static _SC_SEM_NSEMS_MAX : c_int = 49;
+             pub static _SC_SEM_VALUE_MAX : c_int = 50;
+             pub static _SC_SIGQUEUE_MAX : c_int = 51;
+             pub static _SC_TIMER_MAX : c_int = 52;
+         }
      }
  
      #[cfg(target_os = "macos")]
              pub static MS_KILLPAGES : c_int = 0x0004;
              pub static MS_DEACTIVATE : c_int = 0x0008;
  
-             pub static _SC_ARG_MAX : c_int = 1;
-             pub static _SC_CHILD_MAX : c_int = 2;
-             pub static _SC_CLK_TCK : c_int = 3;
-             pub static _SC_NGROUPS_MAX : c_int = 4;
-             pub static _SC_OPEN_MAX : c_int = 5;
-             pub static _SC_JOB_CONTROL : c_int = 6;
-             pub static _SC_SAVED_IDS : c_int = 7;
-             pub static _SC_VERSION : c_int = 8;
-             pub static _SC_BC_BASE_MAX : c_int = 9;
-             pub static _SC_BC_DIM_MAX : c_int = 10;
-             pub static _SC_BC_SCALE_MAX : c_int = 11;
-             pub static _SC_BC_STRING_MAX : c_int = 12;
-             pub static _SC_COLL_WEIGHTS_MAX : c_int = 13;
-             pub static _SC_EXPR_NEST_MAX : c_int = 14;
-             pub static _SC_LINE_MAX : c_int = 15;
-             pub static _SC_RE_DUP_MAX : c_int = 16;
-             pub static _SC_2_VERSION : c_int = 17;
-             pub static _SC_2_C_BIND : c_int = 18;
-             pub static _SC_2_C_DEV : c_int = 19;
-             pub static _SC_2_CHAR_TERM : c_int = 20;
-             pub static _SC_2_FORT_DEV : c_int = 21;
-             pub static _SC_2_FORT_RUN : c_int = 22;
-             pub static _SC_2_LOCALEDEF : c_int = 23;
-             pub static _SC_2_SW_DEV : c_int = 24;
-             pub static _SC_2_UPE : c_int = 25;
-             pub static _SC_STREAM_MAX : c_int = 26;
-             pub static _SC_TZNAME_MAX : c_int = 27;
-             pub static _SC_ASYNCHRONOUS_IO : c_int = 28;
-             pub static _SC_PAGESIZE : c_int = 29;
-             pub static _SC_MEMLOCK : c_int = 30;
-             pub static _SC_MEMLOCK_RANGE : c_int = 31;
-             pub static _SC_MEMORY_PROTECTION : c_int = 32;
-             pub static _SC_MESSAGE_PASSING : c_int = 33;
-             pub static _SC_PRIORITIZED_IO : c_int = 34;
-             pub static _SC_PRIORITY_SCHEDULING : c_int = 35;
-             pub static _SC_REALTIME_SIGNALS : c_int = 36;
-             pub static _SC_SEMAPHORES : c_int = 37;
-             pub static _SC_FSYNC : c_int = 38;
-             pub static _SC_SHARED_MEMORY_OBJECTS : c_int = 39;
-             pub static _SC_SYNCHRONIZED_IO : c_int = 40;
-             pub static _SC_TIMERS : c_int = 41;
-             pub static _SC_AIO_LISTIO_MAX : c_int = 42;
-             pub static _SC_AIO_MAX : c_int = 43;
-             pub static _SC_AIO_PRIO_DELTA_MAX : c_int = 44;
-             pub static _SC_DELAYTIMER_MAX : c_int = 45;
-             pub static _SC_MQ_OPEN_MAX : c_int = 46;
-             pub static _SC_MAPPED_FILES : c_int = 47;
-             pub static _SC_RTSIG_MAX : c_int = 48;
-             pub static _SC_SEM_NSEMS_MAX : c_int = 49;
-             pub static _SC_SEM_VALUE_MAX : c_int = 50;
-             pub static _SC_SIGQUEUE_MAX : c_int = 51;
-             pub static _SC_TIMER_MAX : c_int = 52;
-             pub static _SC_XBS5_ILP32_OFF32 : c_int = 122;
-             pub static _SC_XBS5_ILP32_OFFBIG : c_int = 123;
-             pub static _SC_XBS5_LP64_OFF64 : c_int = 124;
-             pub static _SC_XBS5_LPBIG_OFFBIG : c_int = 125;
              pub static EPERM : c_int = 1;
              pub static ENOENT : c_int = 2;
              pub static ESRCH : c_int = 3;
              pub static MAP_NOCACHE : c_int = 0x0400;
              pub static MAP_JIT : c_int = 0x0800;
          }
+         pub mod sysconf {
+             use libc::types::os::arch::c95::c_int;
+             pub static _SC_ARG_MAX : c_int = 1;
+             pub static _SC_CHILD_MAX : c_int = 2;
+             pub static _SC_CLK_TCK : c_int = 3;
+             pub static _SC_NGROUPS_MAX : c_int = 4;
+             pub static _SC_OPEN_MAX : c_int = 5;
+             pub static _SC_JOB_CONTROL : c_int = 6;
+             pub static _SC_SAVED_IDS : c_int = 7;
+             pub static _SC_VERSION : c_int = 8;
+             pub static _SC_BC_BASE_MAX : c_int = 9;
+             pub static _SC_BC_DIM_MAX : c_int = 10;
+             pub static _SC_BC_SCALE_MAX : c_int = 11;
+             pub static _SC_BC_STRING_MAX : c_int = 12;
+             pub static _SC_COLL_WEIGHTS_MAX : c_int = 13;
+             pub static _SC_EXPR_NEST_MAX : c_int = 14;
+             pub static _SC_LINE_MAX : c_int = 15;
+             pub static _SC_RE_DUP_MAX : c_int = 16;
+             pub static _SC_2_VERSION : c_int = 17;
+             pub static _SC_2_C_BIND : c_int = 18;
+             pub static _SC_2_C_DEV : c_int = 19;
+             pub static _SC_2_CHAR_TERM : c_int = 20;
+             pub static _SC_2_FORT_DEV : c_int = 21;
+             pub static _SC_2_FORT_RUN : c_int = 22;
+             pub static _SC_2_LOCALEDEF : c_int = 23;
+             pub static _SC_2_SW_DEV : c_int = 24;
+             pub static _SC_2_UPE : c_int = 25;
+             pub static _SC_STREAM_MAX : c_int = 26;
+             pub static _SC_TZNAME_MAX : c_int = 27;
+             pub static _SC_ASYNCHRONOUS_IO : c_int = 28;
+             pub static _SC_PAGESIZE : c_int = 29;
+             pub static _SC_MEMLOCK : c_int = 30;
+             pub static _SC_MEMLOCK_RANGE : c_int = 31;
+             pub static _SC_MEMORY_PROTECTION : c_int = 32;
+             pub static _SC_MESSAGE_PASSING : c_int = 33;
+             pub static _SC_PRIORITIZED_IO : c_int = 34;
+             pub static _SC_PRIORITY_SCHEDULING : c_int = 35;
+             pub static _SC_REALTIME_SIGNALS : c_int = 36;
+             pub static _SC_SEMAPHORES : c_int = 37;
+             pub static _SC_FSYNC : c_int = 38;
+             pub static _SC_SHARED_MEMORY_OBJECTS : c_int = 39;
+             pub static _SC_SYNCHRONIZED_IO : c_int = 40;
+             pub static _SC_TIMERS : c_int = 41;
+             pub static _SC_AIO_LISTIO_MAX : c_int = 42;
+             pub static _SC_AIO_MAX : c_int = 43;
+             pub static _SC_AIO_PRIO_DELTA_MAX : c_int = 44;
+             pub static _SC_DELAYTIMER_MAX : c_int = 45;
+             pub static _SC_MQ_OPEN_MAX : c_int = 46;
+             pub static _SC_MAPPED_FILES : c_int = 47;
+             pub static _SC_RTSIG_MAX : c_int = 48;
+             pub static _SC_SEM_NSEMS_MAX : c_int = 49;
+             pub static _SC_SEM_VALUE_MAX : c_int = 50;
+             pub static _SC_SIGQUEUE_MAX : c_int = 51;
+             pub static _SC_TIMER_MAX : c_int = 52;
+             pub static _SC_XBS5_ILP32_OFF32 : c_int = 122;
+             pub static _SC_XBS5_ILP32_OFFBIG : c_int = 123;
+             pub static _SC_XBS5_LP64_OFF64 : c_int = 124;
+             pub static _SC_XBS5_LPBIG_OFFBIG : c_int = 125;
+         }
      }
  }
  
@@@ -2762,11 -2752,9 +2752,11 @@@ pub mod funcs 
              // doesn't link it correctly on i686, so we're going
              // through a C function that mysteriously does work.
              pub unsafe fn opendir(dirname: *c_char) -> *DIR {
 +                #[fixed_stack_segment]; #[inline(never)];
                  rust_opendir(dirname)
              }
              pub unsafe fn readdir(dirp: *DIR) -> *dirent_t {
 +                #[fixed_stack_segment]; #[inline(never)];
                  rust_readdir(dirp)
              }