diff --git a/aio/lib.rs b/aio/lib.rs
new file mode 100644
index 0000000000000000000000000000000000000000..8ad4a310e2f192ca5d27bb2133731c5bd3440bc9
--- /dev/null
+++ b/aio/lib.rs
@@ -0,0 +1,57 @@
+pub struct aiocb {
+    pub aio_fildes: libc::c_int,
+    pub aio_lio_opcode: libc::c_int,
+    pub aio_reqprio: libc::c_int,
+    pub aio_buf: *mut libc::c_void,
+    pub aio_nbytes: usize,
+    pub aio_sigevent: sigevent,
+}
+
+#[no_mangle]
+pub extern "C" fn aio_read(aiocbp: *mut aiocb) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn aio_write(aiocbp: *mut aiocb) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn lio_listio(
+    mode: libc::c_int,
+    list: *const *const aiocb,
+    nent: libc::c_int,
+    sig: *mut sigevent,
+) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn aio_error(aiocbp: *const aiocb) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn aio_return(aiocbp: *mut aiocb) -> usize {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn aio_cancel(fildes: libc::c_int, aiocbp: *mut aiocb) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn aio_suspend(
+    list: *const *const aiocb,
+    nent: libc::c_int,
+    timeout: *const timespec,
+) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn aio_fsync(operation: libc::c_int, aiocbp: *mut aiocb) -> libc::c_int {
+    unimplemented!();
+}
diff --git a/bindgen_transform.sh b/bindgen_transform.sh
new file mode 100755
index 0000000000000000000000000000000000000000..a5ddde9fbbed90f12efac15637e8e7759725127b
--- /dev/null
+++ b/bindgen_transform.sh
@@ -0,0 +1,4 @@
+sed -i 's/::std::os::raw::/libc::/g' $1
+perl -i -p0e 's/extern "C" \{\n    pub fn/#[no_mangle]\npub extern "C" fn/g' $1 
+perl -i -p0e 's/;\n\}/ {\n    unimplemented!();\n\}\n/g' $1
+rustfmt $1
diff --git a/ctype/lib.rs b/ctype/lib.rs
new file mode 100644
index 0000000000000000000000000000000000000000..4d83de3f899d5167f5bbc914285ba533931a2d54
--- /dev/null
+++ b/ctype/lib.rs
@@ -0,0 +1,76 @@
+/* automatically generated by rust-bindgen */
+
+#[no_mangle]
+pub extern "C" fn isalnum(c: libc::c_int) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn isalpha(c: libc::c_int) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn isascii(c: libc::c_int) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn iscntrl(c: libc::c_int) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn isdigit(c: libc::c_int) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn isgraph(c: libc::c_int) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn islower(c: libc::c_int) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn isprint(c: libc::c_int) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn ispunct(c: libc::c_int) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn isspace(c: libc::c_int) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn isupper(c: libc::c_int) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn isxdigit(c: libc::c_int) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn toascii(c: libc::c_int) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn tolower(c: libc::c_int) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn toupper(c: libc::c_int) -> libc::c_int {
+    unimplemented!();
+}
diff --git a/grp/lib.rs b/grp/lib.rs
new file mode 100644
index 0000000000000000000000000000000000000000..3b7bbd403482f6a81f5a255720079a76c1876e7d
--- /dev/null
+++ b/grp/lib.rs
@@ -0,0 +1,60 @@
+/* automatically generated by rust-bindgen */
+#[repr(C)]
+#[derive(Debug, Copy)]
+pub struct group {
+    pub gr_name: *mut libc::c_char,
+    pub gr_passwd: *mut libc::c_char,
+    pub gr_gid: gid_t,
+    pub gr_mem: *mut *mut libc::c_char,
+}
+impl Clone for group {
+    fn clone(&self) -> Self {
+        *self
+    }
+}
+#[no_mangle]
+pub extern "C" fn getgrgid(gid: gid_t) -> *mut group {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn getgrnam(name: *const libc::c_char) -> *mut group {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn getgrgid_r(
+    gid: gid_t,
+    grp: *mut group,
+    buffer: *mut libc::c_char,
+    bufsize: usize,
+    result: *mut *mut group,
+) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn getgrnam_r(
+    name: *const libc::c_char,
+    grp: *mut group,
+    buffer: *mut libc::c_char,
+    bufsize: usize,
+    result: *mut *mut group,
+) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn getgrent() -> *mut group {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn endgrent() {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn setgrent() {
+    unimplemented!();
+}
diff --git a/mman/lib.rs b/mman/lib.rs
new file mode 100644
index 0000000000000000000000000000000000000000..4d6f76a369a5080d2fcacb5078cc6c0b50e49e24
--- /dev/null
+++ b/mman/lib.rs
@@ -0,0 +1,60 @@
+#[no_mangle]
+pub extern "C" fn mlock(addr: *const libc::c_void, len: usize) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn mlockall(flags: libc::c_int) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn mmap(
+    addr: *mut libc::c_void,
+    len: usize,
+    prot: libc::c_int,
+    flags: libc::c_int,
+    fildes: libc::c_int,
+    off: off_t,
+) -> *mut libc::c_void {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn mprotect(addr: *mut libc::c_void, len: usize, prot: libc::c_int) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn msync(addr: *mut libc::c_void, len: usize, flags: libc::c_int) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn munlock(addr: *const libc::c_void, len: usize) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn munlockall() -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn munmap(addr: *mut libc::c_void, len: usize) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn shm_open(
+    name: *const libc::c_char,
+    oflag: libc::c_int,
+    mode: mode_t,
+) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn shm_unlink(name: *const libc::c_char) -> libc::c_int {
+    unimplemented!();
+}
diff --git a/pthread/lib.rs b/pthread/lib.rs
new file mode 100644
index 0000000000000000000000000000000000000000..d616ab9008a66fe02ba9559487c38e50602b4046
--- /dev/null
+++ b/pthread/lib.rs
@@ -0,0 +1,548 @@
+#[no_mangle]
+pub extern "C" fn pthread_attr_destroy(attr: *mut pthread_attr_t) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_attr_getdetachstate(
+    attr: *const pthread_attr_t,
+    detachstate: *mut libc::c_int,
+) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_attr_getguardsize(
+    attr: *const pthread_attr_t,
+    guardsize: *mut usize,
+) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_attr_getinheritsched(
+    attr: *const pthread_attr_t,
+    inheritsched: *mut libc::c_int,
+) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_attr_getschedparam(
+    attr: *const pthread_attr_t,
+    param: *mut sched_param,
+) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_attr_getschedpolicy(
+    attr: *const pthread_attr_t,
+    policy: *mut libc::c_int,
+) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_attr_getscope(
+    attr: *const pthread_attr_t,
+    contentionscope: *mut libc::c_int,
+) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_attr_getstackaddr(
+    attr: *const pthread_attr_t,
+    stackaddr: *mut *mut libc::c_void,
+) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_attr_getstacksize(
+    attr: *const pthread_attr_t,
+    stacksize: *mut usize,
+) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_attr_init(arg1: *mut pthread_attr_t) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_attr_setdetachstate(
+    attr: *mut pthread_attr_t,
+    detachstate: libc::c_int,
+) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_attr_setguardsize(arg1: *mut pthread_attr_t, arg2: usize) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_attr_setinheritsched(
+    attr: *mut pthread_attr_t,
+    inheritsched: libc::c_int,
+) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_attr_setschedparam(
+    attr: *mut pthread_attr_t,
+    param: *mut sched_param,
+) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_attr_setschedpolicy(
+    attr: *mut pthread_attr_t,
+    policy: libc::c_int,
+) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_attr_setscope(
+    attr: *mut pthread_attr_t,
+    contentionscope: libc::c_int,
+) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_attr_setstackaddr(
+    attr: *mut pthread_attr_t,
+    stackaddr: *mut libc::c_void,
+) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_attr_setstacksize(attr: *mut pthread_attr_t, stacksize: usize) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_cancel(thread: pthread_t) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_cleanup_push(routine: *mut libc::c_void, arg: *mut libc::c_void) {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_cleanup_pop(execute: libc::c_int) {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_cond_broadcast(cond: *mut pthread_cond_t) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_cond_destroy(cond: *mut pthread_cond_t) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_cond_init(
+    cond: *mut pthread_cond_t,
+    attr: *const pthread_condattr_t,
+) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_cond_signal(cond: *mut pthread_cond_t) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_cond_timedwait(
+    cond: *mut pthread_cond_t,
+    mutex: *mut pthread_mutex_t,
+    abstime: *const timespec,
+) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_cond_wait(
+    cond: *mut pthread_cond_t,
+    mutex: *mut pthread_mutex_t,
+) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_condattr_destroy(attr: *mut pthread_condattr_t) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_condattr_getpshared(
+    attr: *const pthread_condattr_t,
+    pshared: *mut libc::c_int,
+) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_condattr_init(attr: *mut pthread_condattr_t) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_condattr_setpshared(
+    attr: *mut pthread_condattr_t,
+    pshared: libc::c_int,
+) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_create(
+    thread: *mut pthread_t,
+    attr: *const pthread_attr_t,
+    start_routine: ::std::option::Option<unsafe extern "C" fn(arg1: *mut libc::c_void) -> *mut libc::c_void>,
+    arg: *mut libc::c_void,
+) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_detach(thread: pthread_t) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_equal(t1: pthread_t, t2: pthread_t) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_exit(value_ptr: *mut libc::c_void) {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_getconcurrency() -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_getschedparam(
+    thread: pthread_t,
+    policy: *mut libc::c_int,
+    param: *mut sched_param,
+) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_getspecific(key: pthread_key_t) -> *mut libc::c_void {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_join(thread: pthread_t, value_ptr: *mut *mut libc::c_void) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_key_create(
+    key: *mut pthread_key_t,
+    destructor: ::std::option::Option<unsafe extern "C" fn(arg1: *mut libc::c_void)>,
+) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_key_delete(key: pthread_key_t) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_mutex_destroy(mutex: *mut pthread_mutex_t) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_mutex_getprioceiling(
+    mutex: *const pthread_mutex_t,
+    prioceiling: *mut libc::c_int,
+) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_mutex_init(
+    mutex: *mut pthread_mutex_t,
+    attr: *const pthread_mutexattr_t,
+) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_mutex_lock(mutex: *mut pthread_mutex_t) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_mutex_setprioceiling(
+    mutex: *mut pthread_mutex_t,
+    prioceiling: libc::c_int,
+    old_ceiling: *mut libc::c_int,
+) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_mutex_trylock(mutex: *mut pthread_mutex_t) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_mutex_unlock(mutex: *mut pthread_mutex_t) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_mutexattr_destroy(attr: *mut pthread_mutexattr_t) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_mutexattr_getprioceiling(
+    attr: *const pthread_mutexattr_t,
+    prioceiling: *mut libc::c_int,
+) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_mutexattr_getprotocol(
+    attr: *const pthread_mutexattr_t,
+    protocol: *mut libc::c_int,
+) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_mutexattr_getpshared(
+    attr: *const pthread_mutexattr_t,
+    pshared: *mut libc::c_int,
+) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_mutexattr_gettype(
+    attr: *const pthread_mutexattr_t,
+    type_: *mut libc::c_int,
+) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_mutexattr_init(attr: *mut pthread_mutexattr_t) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_mutexattr_setprioceiling(
+    attr: *mut pthread_mutexattr_t,
+    prioceiling: libc::c_int,
+) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_mutexattr_setprotocol(
+    attr: *mut pthread_mutexattr_t,
+    protocol: libc::c_int,
+) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_mutexattr_setpshared(
+    attr: *mut pthread_mutexattr_t,
+    pshared: libc::c_int,
+) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_mutexattr_settype(
+    attr: *mut pthread_mutexattr_t,
+    type_: libc::c_int,
+) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_once(
+    once_control: *mut pthread_once_t,
+    init_routine: ::std::option::Option<unsafe extern "C" fn()>,
+) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_rwlock_destroy(rwlock: *mut pthread_rwlock_t) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_rwlock_init(
+    rwlock: *mut pthread_rwlock_t,
+    attr: *const pthread_rwlockattr_t,
+) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_rwlock_rdlock(rwlock: *mut pthread_rwlock_t) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_rwlock_tryrdlock(rwlock: *mut pthread_rwlock_t) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_rwlock_trywrlock(rwlock: *mut pthread_rwlock_t) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_rwlock_unlock(rwlock: *mut pthread_rwlock_t) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_rwlock_wrlock(rwlock: *mut pthread_rwlock_t) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_rwlockattr_destroy(rwlock: *mut pthread_rwlockattr_t) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_rwlockattr_getpshared(
+    rwlock: *const pthread_rwlockattr_t,
+    pshared: *mut libc::c_int,
+) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_rwlockattr_init(rwlock: *mut pthread_rwlockattr_t) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_rwlockattr_setpshared(
+    rwlock: *mut pthread_rwlockattr_t,
+    pshared: libc::c_int,
+) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_self() -> pthread_t {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_setcancelstate(state: libc::c_int, oldstate: *mut libc::c_int) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_setcanceltype(type_: libc::c_int, oldtype: *mut libc::c_int) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_setconcurrency(new_level: libc::c_int) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_setschedparam(
+    thread: pthread_t,
+    policy: libc::c_int,
+    param: *mut sched_param,
+) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_setspecific(
+    key: pthread_key_t,
+    value: *const libc::c_void,
+) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pthread_testcancel() {
+    unimplemented!();
+}
+
+#[repr(C)]
+#[derive(Debug, Copy)]
+pub struct sched_param {
+    pub _address: u8,
+}
+impl Clone for sched_param {
+    fn clone(&self) -> Self {
+        *self
+    }
+}
+#[repr(C)]
+#[derive(Debug, Copy)]
+pub struct sched_param {
+    pub _address: u8,
+}
+impl Clone for sched_param {
+    fn clone(&self) -> Self {
+        *self
+    }
+}
+#[repr(C)]
+#[derive(Debug, Copy)]
+pub struct sched_param {
+    pub _address: u8,
+}
+impl Clone for sched_param {
+    fn clone(&self) -> Self {
+        *self
+    }
+}
+#[repr(C)]
+#[derive(Debug, Copy)]
+pub struct sched_param {
+    pub _address: u8,
+}
+impl Clone for sched_param {
+    fn clone(&self) -> Self {
+        *self
+    }
+}
diff --git a/semaphore/lib.rs b/semaphore/lib.rs
new file mode 100644
index 0000000000000000000000000000000000000000..c047a45fc9d15dd278ec054a22dd34addad3f2dc
--- /dev/null
+++ b/semaphore/lib.rs
@@ -0,0 +1,65 @@
+#[repr(C)]
+#[derive(Copy)]
+pub union sem_t {
+    pub size: [libc::c_char; 32usize],
+    pub align: libc::c_long,
+    _bindgen_union_align: [u64; 4usize],
+}
+impl Clone for sem_t {
+    fn clone(&self) -> Self { *self }
+}
+#[no_mangle]
+pub extern "C" fn sem_init(sem: *mut sem_t, pshared: libc::c_int,
+                    value: libc::c_uint) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn sem_destroy(sem: *mut sem_t) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn sem_open(name: *const libc::c_char,
+                    oflag: libc::c_int, ...) -> *mut sem_t {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn sem_close(sem: *mut sem_t) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn sem_unlink(name: *const libc::c_char)
+     -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn sem_wait(sem: *mut sem_t) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn sem_timedwait(sem: *mut sem_t, abstime: *const timespec)
+     -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn sem_trywait(sem: *mut sem_t) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn sem_post(sem: *mut sem_t) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn sem_getvalue(sem: *mut sem_t, sval: *mut libc::c_int)
+     -> libc::c_int {
+    unimplemented!();
+}
+
diff --git a/stdio/lib.rs b/stdio/lib.rs
new file mode 100644
index 0000000000000000000000000000000000000000..6aab77602d4b9da2d68e6cfdd56f9ad5261b988f
--- /dev/null
+++ b/stdio/lib.rs
@@ -0,0 +1,359 @@
+#[no_mangle]
+pub extern "C" fn clearerr(stream: *mut FILE) {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn ctermid(s: *mut libc::c_char)
+     -> *mut libc::c_char {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn cuserid(s: *mut libc::c_char)
+     -> *mut libc::c_char {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn fclose(stream: *mut FILE) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn fdopen(fildes: libc::c_int,
+                  mode: *const libc::c_char) -> *mut FILE {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn feof(stream: *mut FILE) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn ferror(stream: *mut FILE) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn fflush(stream: *mut FILE) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn fgetc(stream: *mut FILE) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn fgetpos(stream: *mut FILE, pos: *mut fpos_t)
+     -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn fgets(s: *mut libc::c_char,
+                 n: libc::c_int, stream: *mut FILE)
+     -> *mut libc::c_char {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn fileno(stream: *mut FILE) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn flockfile(file: *mut FILE) {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn fopen(filename: *const libc::c_char,
+                 mode: *const libc::c_char) -> *mut FILE {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn fprintf(stream: *mut FILE, format: *const libc::c_char, ...)
+     -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn fputc(c: libc::c_int, stream: *mut FILE)
+     -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn fputs(s: *const libc::c_char, stream: *mut FILE)
+     -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn fread(ptr: *mut libc::c_void, size: usize, nitems: usize,
+                 stream: *mut FILE) -> usize {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn freopen(filename: *const libc::c_char,
+                   mode: *const libc::c_char, stream: *mut FILE)
+     -> *mut FILE {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn fscanf(stream: *mut FILE, format: *const libc::c_char, ...)
+     -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn fseek(stream: *mut FILE, offset: libc::c_long,
+                 whence: libc::c_int) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn fseeko(stream: *mut FILE, offset: off_t, whence: libc::c_int)
+     -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn fsetpos(stream: *mut FILE, pos: *const fpos_t)
+     -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn ftell(stream: *mut FILE) -> libc::c_long {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn ftello(stream: *mut FILE) -> off_t {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn ftrylockfile(file: *mut FILE) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn funlockfile(file: *mut FILE) {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn fwrite(ptr: *const libc::c_void, size: usize,
+                  nitems: usize, stream: *mut FILE) -> usize {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn getc(stream: *mut FILE) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn getchar() -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn getc_unlocked(stream: *mut FILE) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn getchar_unlocked() -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn getopt(argc: libc::c_int,
+                  argv: *const *const libc::c_char,
+                  optstring: libc::c_char) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn gets(s: *mut libc::c_char)
+     -> *mut libc::c_char {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn getw(stream: *mut FILE) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn pclose(stream: *mut FILE) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn perror(s: *const libc::c_char) {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn popen(command: *const libc::c_char,
+                 mode: *const libc::c_char) -> *mut FILE {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn printf(format: *const libc::c_char, ...)
+     -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn putc(c: libc::c_int, stream: *mut FILE)
+     -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn putchar(c: libc::c_int) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn putc_unlocked(c: libc::c_int, stream: *mut FILE)
+     -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn putchar_unlocked(c: libc::c_int)
+     -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn puts(s: *const libc::c_char) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn putw(w: libc::c_int, stream: *mut FILE)
+     -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn remove(path: *const libc::c_char)
+     -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn rename(old: *const libc::c_char,
+                  new: *const libc::c_char)
+     -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn rewind(stream: *mut FILE) {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn scanf(format: *const libc::c_char, ...)
+     -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn setbuf(stream: *mut FILE, buf: *mut libc::c_char) {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn setvbuf(stream: *mut FILE, buf: *mut libc::c_char,
+                   _IOBUF: libc::c_int, BUFSIZ: usize)
+     -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn snprintf(arg1: *mut libc::c_char, arg2: usize,
+                    arg3: *const libc::c_char, ...)
+     -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn sprintf(s: *mut libc::c_char,
+                   format: *const libc::c_char, ...)
+     -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn sscanf(s: *const libc::c_char,
+                  format: *const libc::c_char, ...)
+     -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn tempnam(dir: *const libc::c_char,
+                   pfx: *const libc::c_char)
+     -> *mut libc::c_char {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn tmpfile() -> *mut FILE {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn tmpnam(s: *mut libc::c_char)
+     -> *mut libc::c_char {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn ungetc(c: libc::c_int, stream: *mut FILE)
+     -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn vfprintf(stream: *mut FILE, format: *const libc::c_char,
+                    ap: libc::c_int) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn vprintf(format: *const libc::c_char,
+                   ap: va_list) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn vsnprintf(s: *mut libc::c_char, n: usize,
+                     format: *const libc::c_char,
+                     ap: va_list) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn vsprintf(s: *mut libc::c_char,
+                    format: *const libc::c_char,
+                    ap: va_list) -> libc::c_int {
+    unimplemented!();
+}
+
diff --git a/stdlib/lib.rs b/stdlib/lib.rs
new file mode 100644
index 0000000000000000000000000000000000000000..e8b02abb498feeb83655c6148cdd3c1c25c3c0f3
--- /dev/null
+++ b/stdlib/lib.rs
@@ -0,0 +1,365 @@
+/* automatically generated by rust-bindgen */
+
+pub type wchar_t = libc::c_int;
+
+#[repr(C)]
+#[derive(Debug, Copy)]
+pub struct div_t {
+    pub quot: libc::c_int,
+    pub rem: libc::c_int,
+}
+
+impl Clone for div_t {
+    fn clone(&self) -> Self {
+        *self
+    }
+}
+#[repr(C)]
+#[derive(Debug, Copy)]
+pub struct ldiv_t {
+    pub quot: libc::c_long,
+    pub rem: libc::c_long,
+}
+impl Clone for ldiv_t {
+    fn clone(&self) -> Self {
+        *self
+    }
+}
+#[no_mangle]
+pub extern "C" fn a64l(s: *const char)
+#[no_mangle]
+pub extern "C" fn abort() {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn abs(i: libc::c_int) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn atexit(func: ::std::option::Option<unsafe extern "C" fn()>) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn atof(str_: *const libc::c_char) -> f64 {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn atoi(str_: *const libc::c_char) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn atol(str_: *const libc::c_char) -> libc::c_long {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn bsearch(
+    key: *const libc::c_void,
+    base: *const libc::c_void,
+    nel: usize,
+    width: usize,
+    compar: ::std::option::Option<
+        unsafe extern "C" fn(arg1: *const libc::c_void,
+                             arg2: *const libc::c_void)
+                             -> libc::c_int,
+    >,
+) -> *mut libc::c_void {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn calloc(nelem: usize, elsize: usize) -> *mut libc::c_void {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn div(numer: libc::c_int, denom: libc::c_int) -> div_t {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn drand48() -> f64 {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn ecvt(
+    value: f64,
+    ndigit: libc::c_int,
+    decept: *mut libc::c_int,
+    sign: *mut libc::c_int,
+) -> *mut libc::c_char {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn erand48(xsubi: *mut libc::c_ushort) -> f64 {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn exit(status: libc::c_int) {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn fcvt(
+    value: f64,
+    ndigit: libc::c_int,
+    decept: *mut libc::c_int,
+    sign: *mut libc::c_int,
+) -> *mut libc::c_char {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn free(ptr: *mut libc::c_void) {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn gcvt(value: f64, ndigit: libc::c_int, buf: *mut libc::c_char) -> *mut libc::c_char {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn getenv(name: *const libc::c_char) -> *mut libc::c_char {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn getsubopt(
+    optionp: *mut *mut libc::c_char,
+    tokens: *const *const libc::c_char,
+    valuep: *mut *mut libc::c_char,
+) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn grantpt(fildes: libc::c_int) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn initstate(
+    seed: libc::c_uint,
+    state: *mut libc::c_char,
+    size: usize,
+) -> *mut libc::c_char {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn jrand48(xsubi: *mut libc::c_ushort) -> libc::c_long {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn l64a(value: libc::c_long) -> *mut libc::c_char {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn labs(i: libc::c_long) -> libc::c_long {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn lcong48(param: *mut libc::c_ushort) {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn ldiv(numer: libc::c_long, denom: libc::c_long) -> ldiv_t {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn lrand48() -> libc::c_long {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn malloc(size: usize) -> *mut libc::c_void {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn mblen(s: *const libc::c_char, n: usize) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn mbstowcs(pwcs: *mut wchar_t, s: *const libc::c_char, n: usize) -> usize {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn mbtowc(
+    pwc: *mut wchar_t,
+    s: *const libc::c_char,
+    n: usize,
+) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn mktemp(template: *mut libc::c_char) -> *mut libc::c_char {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn mkstemp(template: *mut libc::c_char) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn mrand48() -> libc::c_long {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn nrand48(xsubi: *mut libc::c_ushort) -> libc::c_long {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn ptsname(fildes: libc::c_int) -> *mut libc::c_char {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn putenv(string: *mut libc::c_char) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn qsort(
+    base: *mut libc::c_void,
+    nel: usize,
+    width: usize,
+    compar: ::std::option::Option<
+        unsafe extern "C" fn(arg1: *const libc::c_void,
+                             arg2: *const libc::c_void)
+                             -> libc::c_int,
+    >,
+) {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn rand() -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn rand_r(seed: *mut libc::c_uint) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn random() -> libc::c_long {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn realloc(ptr: *mut libc::c_void, size: usize) -> *mut libc::c_void {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn realpath(
+    file_name: *const libc::c_char,
+    resolved_name: *mut libc::c_char,
+) -> *mut libc::c_char {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn seed48(seed16v: *mut libc::c_ushort) -> libc::c_ushort {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn setkey(key: *const libc::c_char) {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn setstate(state: *const libc::c_char) -> *mut libc::c_char {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn srand(seed: libc::c_uint) {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn srand48(seedval: libc::c_long) {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn srandom(seed: libc::c_uint) {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn strtod(str_: *const libc::c_char, endptr: *mut *mut libc::c_char) -> f64 {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn strtol(
+    str_: *const libc::c_char,
+    endptr: *mut *mut libc::c_char,
+    base: libc::c_int,
+) -> libc::c_long {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn strtoul(
+    str_: *const libc::c_char,
+    endptr: *mut *mut libc::c_char,
+    base: libc::c_int,
+) -> libc::c_ulong {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn system(command: *const libc::c_char) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn ttyslot() -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn unlockpt(fildes: libc::c_int) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn valloc(size: usize) -> *mut libc::c_void {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn wcstombs(s: *mut libc::c_char, pwcs: *const wchar_t, n: usize) -> usize {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn wctomb(s: *mut libc::c_char, wchar: wchar_t) -> libc::c_int {
+    unimplemented!();
+}
diff --git a/string/lib.rs b/string/lib.rs
new file mode 100644
index 0000000000000000000000000000000000000000..7e6362b80f00a2b9ad95825250451909e401f26d
--- /dev/null
+++ b/string/lib.rs
@@ -0,0 +1,177 @@
+/* automatically generated by rust-bindgen */
+
+#[no_mangle]
+pub extern "C" fn memccpy(
+    s1: *mut libc::c_void,
+    s2: *const libc::c_void,
+    c: libc::c_int,
+    n: usize,
+) -> *mut libc::c_void {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn memchr(
+    s: *const libc::c_void,
+    c: libc::c_int,
+    n: usize,
+) -> *mut libc::c_void {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn memcmp(
+    s1: *const libc::c_void,
+    s2: *const libc::c_void,
+    n: usize,
+) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn memcpy(
+    s1: *mut libc::c_void,
+    s2: *const libc::c_void,
+    n: usize,
+) -> *mut libc::c_void {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn memmove(
+    s1: *mut libc::c_void,
+    s2: *const libc::c_void,
+    n: usize,
+) -> *mut libc::c_void {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn memset(
+    s: *mut libc::c_void,
+    c: libc::c_int,
+    n: usize,
+) -> *mut libc::c_void {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn strcat(s1: *mut libc::c_char, s2: *const libc::c_char) -> *mut libc::c_char {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn strchr(s: *const libc::c_char, c: libc::c_int) -> *mut libc::c_char {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn strcmp(s1: *const libc::c_char, s2: *const libc::c_char) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn strcoll(s1: *const libc::c_char, s2: *const libc::c_char) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn strcpy(s1: *mut libc::c_char, s2: *const libc::c_char) -> *mut libc::c_char {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn strcspn(s1: *const libc::c_char, s2: *const libc::c_char) -> libc::c_ulong {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn strdup(s1: *const libc::c_char) -> *mut libc::c_char {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn strerror(errnum: libc::c_int) -> *mut libc::c_char {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn strlen(s: *const libc::c_char) -> libc::c_ulong {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn strncat(
+    s1: *mut libc::c_char,
+    s2: *const libc::c_char,
+    n: usize,
+) -> *mut libc::c_char {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn strncmp(
+    s1: *const libc::c_char,
+    s2: *const libc::c_char,
+    n: usize,
+) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn strncpy(
+    s1: *mut libc::c_char,
+    s2: *const libc::c_char,
+    n: usize,
+) -> *mut libc::c_char {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn strpbrk(
+    s1: *const libc::c_char,
+    s2: *const libc::c_char,
+) -> *mut libc::c_char {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn strrchr(s: *const libc::c_char, c: libc::c_int) -> *mut libc::c_char {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn strspn(s1: *const libc::c_char, s2: *const libc::c_char) -> libc::c_ulong {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn strstr(
+    s1: *const libc::c_char,
+    s2: *const libc::c_char,
+) -> *mut libc::c_char {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn strtok(s1: *mut libc::c_char, s2: *const libc::c_char) -> *mut libc::c_char {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn strtok_r(
+    s: *mut libc::c_char,
+    sep: *const libc::c_char,
+    lasts: *mut *mut libc::c_char,
+) -> *mut libc::c_char {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn strxfrm(
+    s1: *mut libc::c_char,
+    s2: *const libc::c_char,
+    n: usize,
+) -> libc::c_ulong {
+    unimplemented!();
+}
diff --git a/wchar/lib.rs b/wchar/lib.rs
new file mode 100644
index 0000000000000000000000000000000000000000..b760fba7aafb1f9ed785fcd6c99086d359816c3e
--- /dev/null
+++ b/wchar/lib.rs
@@ -0,0 +1,377 @@
+pub type wchar_t = libc::c_int;
+pub type wint_t = libc::c_uint;
+
+#[no_mangle]
+pub extern "C" fn btowc(c: libc::c_int) -> wint_t {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn fwprintf(stream: *mut FILE, format: *const wchar_t, ...)
+     -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn fwscanf(stream: *mut FILE, format: *const wchar_t, ...)
+     -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn iswalnum(wc: wint_t) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn iswalpha(wc: wint_t) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn iswcntrl(wc: wint_t) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn iswdigit(wc: wint_t) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn iswgraph(wc: wint_t) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn iswlower(wc: wint_t) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn iswprint(wc: wint_t) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn iswpunct(wc: wint_t) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn iswspace(wc: wint_t) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn iswupper(wc: wint_t) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn iswxdigit(wc: wint_t) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn fgetwc(stream: *mut FILE) -> wint_t {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn fgetws(ws: *mut wchar_t, n: libc::c_int,
+                  stream: *mut FILE) -> *mut wchar_t {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn fputwc(wc: wchar_t, stream: *mut FILE) -> wint_t {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn fputws(ws: *const wchar_t, stream: *mut FILE)
+     -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn fwide(stream: *mut FILE, mode: libc::c_int)
+     -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn getwc(stream: *mut FILE) -> wint_t {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn getwchar() -> wint_t {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn mbsinit(ps: *const mbstate_t) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn mbrlen(s: *const libc::c_char, n: usize,
+                  ps: *mut mbstate_t) -> usize {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn mbrtowc(pwc: *mut wchar_t, s: *const libc::c_char,
+                   n: usize, ps: *mut mbstate_t) -> usize {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn mbsrtowcs(dst: *mut wchar_t,
+                     src: *mut *const libc::c_char, len: usize,
+                     ps: *mut mbstate_t) -> usize {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn putwc(wc: wchar_t, stream: *mut FILE) -> wint_t {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn putwchar(wc: wchar_t) -> wint_t {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn swprintf(s: *mut wchar_t, n: usize,
+                    format: *const wchar_t, ...) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn swscanf(s: *const wchar_t, format: *const wchar_t, ...)
+     -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn towlower(wc: wint_t) -> wint_t {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn towupper(wc: wint_t) -> wint_t {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn ungetwc(wc: wint_t, stream: *mut FILE) -> wint_t {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn vfwprintf(stream: *mut FILE, format: *const wchar_t,
+                   arg: va_list) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn vwprintf(format: *const wchar_t, arg: va_list)
+     -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn vswprintf(s: *mut wchar_t, n: usize, format: *const wchar_t,
+                     arg: va_list) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn wcrtomb(s: *mut libc::c_char, wc: wchar_t,
+                   ps: *mut mbstate_t) -> usize {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn wcscat(ws1: *mut wchar_t, ws2: *const wchar_t) -> *mut wchar_t {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn wcschr(ws1: *const wchar_t, ws2: wchar_t)
+     -> *mut libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn wcscmp(ws1: *const wchar_t, ws2: *const wchar_t)
+     -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn wcscoll(ws1: *const wchar_t, ws2: *const wchar_t)
+     -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn wcscpy(ws1: *mut wchar_t, ws2: *const wchar_t) -> *mut wchar_t {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn wcscspn(ws1: *const wchar_t, ws2: *const wchar_t) -> usize {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn wcsftime(wcs: *mut wchar_t, maxsize: usize, format: *const wchar_t,
+                    timptr: *mut tm) -> usize {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn wcslen(ws: *const wchar_t) -> libc::c_ulong {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn wcsncat(ws1: *mut wchar_t, ws2: *const wchar_t, n: usize)
+     -> *mut wchar_t {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn wcsncmp(ws1: *const wchar_t, ws2: *const wchar_t, n: usize)
+     -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn wcsncpy(ws1: *mut wchar_t, ws2: *const wchar_t, n: usize)
+     -> *mut wchar_t {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn wcspbrk(ws1: *const wchar_t, ws2: *const wchar_t)
+     -> *mut wchar_t {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn wcsrchr(ws1: *const wchar_t, ws2: wchar_t) -> *mut wchar_t {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn wcsrtombs(dst: *mut libc::c_char,
+                     src: *mut *const wchar_t, len: usize,
+                     ps: *mut mbstate_t) -> usize {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn wcsspn(ws1: *const wchar_t, ws2: *const wchar_t) -> usize {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn wcsstr(ws1: *const wchar_t, ws2: *const wchar_t) -> *mut wchar_t {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn wcstod(nptr: *const wchar_t, endptr: *mut *mut wchar_t) -> f64 {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn wcstok(ws1: *mut wchar_t, ws2: *const wchar_t,
+                  ptr: *mut *mut wchar_t) -> *mut wchar_t {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn wcstol(nptr: *const wchar_t, endptr: *mut *mut wchar_t,
+                  base: libc::c_int) -> libc::c_long {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn wcstoul(nptr: *const wchar_t, endptr: *mut *mut wchar_t,
+                   base: libc::c_int) -> libc::c_ulong {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn wcswcs(ws1: *const wchar_t, ws2: *const wchar_t) -> *mut wchar_t {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn wcswidth(pwcs: *const wchar_t, n: usize)
+     -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn wcsxfrm(ws1: *mut wchar_t, ws2: *const wchar_t, n: usize)
+     -> usize {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn wctob(c: wint_t) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn wcwidth(wc: wchar_t) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn wmemchr(ws: *const wchar_t, wc: wchar_t, n: usize)
+     -> *mut libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn wmemcmp(ws1: *const wchar_t, ws2: *const wchar_t, n: usize)
+     -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn wmemcpy(ws1: *mut wchar_t, ws2: *const wchar_t, n: usize)
+     -> *mut wchar_t {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn wmemmove(ws1: *mut wchar_t, ws2: *const wchar_t, n: usize)
+     -> *mut wchar_t {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn wmemset(ws1: *mut wchar_t, ws2: wchar_t, n: usize)
+     -> *mut wchar_t {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn wprintf(format: *const wchar_t, ...) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn wscanf(format: *const wchar_t, ...) -> libc::c_int {
+    unimplemented!();
+}
diff --git a/wctype/lib.rs b/wctype/lib.rs
new file mode 100644
index 0000000000000000000000000000000000000000..0c338369b93d0ae8cd53217d3831da6f64c503ff
--- /dev/null
+++ b/wctype/lib.rs
@@ -0,0 +1,89 @@
+#[no_mangle]
+pub extern "C" fn iswalnum(wc: wint_t, locale: locale_t) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn iswalpha(wc: wint_t, locale: locale_t) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn iswcntrl(wc: wint_t, locale: locale_t) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn iswdigit(wc: wint_t, locale: locale_t) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn iswgraph(wc: wint_t, locale: locale_t) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn iswlower(wc: wint_t, locale: locale_t) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn iswprint(wc: wint_t, locale: locale_t) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn iswpunct(wc: wint_t, locale: locale_t) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn iswspace(wc: wint_t, locale: locale_t) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn iswupper(wc: wint_t, locale: locale_t) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn iswxdigit(wc: wint_t, locale: locale_t) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn iswblank(wc: wint_t, locale: locale_t) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn wctype(property: *const libc::c_char, locale: locale_t) -> wctype_t {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn iswctype(wc: wint_t, desc: wctype_t, locale: locale_t) -> libc::c_int {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn towlower(wc: wint_t, locale: locale_t) -> wint_t {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn towupper(wc: wint_t, locale: locale_t) -> wint_t {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn wctrans(property: *const libc::c_char, locale: locale_t) -> wctrans_t {
+    unimplemented!();
+}
+
+#[no_mangle]
+pub extern "C" fn towctrans(wc: wint_t, desc: wctrans_t, locale: locale_t) -> wint_t {
+    unimplemented!();
+}