From 1a298045b67c257df5263498da5e5f58c2193bd7 Mon Sep 17 00:00:00 2001
From: Paul Sajna <paulsajna@gmail.com>
Date: Fri, 2 Mar 2018 21:27:35 -0800
Subject: [PATCH] #[no_mangle]

---
 aio/lib.rs           |  8 +++++
 bindgen_transform.sh |  2 +-
 ctype/lib.rs         | 15 ++++++++
 grp/lib.rs           |  7 ++++
 mman/lib.rs          | 10 ++++++
 pthread/lib.rs       | 77 ++++++++++++++++++++++++++++++++++++++++
 semaphore/lib.rs     | 10 ++++++
 stdio/lib.rs         | 62 ++++++++++++++++++++++++++++++++
 stdlib/lib.rs        | 57 ++++++++++++++++++++++++++++++
 string/lib.rs        | 25 +++++++++++++
 unistd/src/lib.rs    | 84 ++++++++++++++++++++++++++++++++++++++++++++
 wchar/lib.rs         | 55 +++++++++++++++++++++++++++++
 wctype/lib.rs        | 18 ++++++++++
 13 files changed, 429 insertions(+), 1 deletion(-)

diff --git a/aio/lib.rs b/aio/lib.rs
index a8df9d82..5e7873bb 100644
--- a/aio/lib.rs
+++ b/aio/lib.rs
@@ -7,14 +7,17 @@ pub struct aiocb {
     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,
@@ -24,18 +27,22 @@ pub extern "C" fn lio_listio(
     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) -> __ssize_t {
     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,
@@ -44,6 +51,7 @@ pub extern "C" fn aio_suspend(
     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
index 471e9883..22486d16 100755
--- a/bindgen_transform.sh
+++ b/bindgen_transform.sh
@@ -1,4 +1,4 @@
 sed -i 's/::std::os::raw::/libc::/g' $1
-perl -i -p0e 's/extern "C" \{\n    pub fn/pub extern "C" fn/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
 
diff --git a/ctype/lib.rs b/ctype/lib.rs
index 136b9804..b0105c1c 100644
--- a/ctype/lib.rs
+++ b/ctype/lib.rs
@@ -1,61 +1,76 @@
 /* automatically generated by rust-bindgen */
 
+#[no_mangle]
 pub extern "C" fn isalnum(arg1: libc::c_int) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn isalpha(arg1: libc::c_int) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn isascii(arg1: libc::c_int) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn iscntrl(arg1: libc::c_int) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn isdigit(arg1: libc::c_int) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn isgraph(arg1: libc::c_int) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn islower(arg1: libc::c_int) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn isprint(arg1: libc::c_int) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn ispunct(arg1: libc::c_int) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn isspace(arg1: libc::c_int) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn isupper(arg1: libc::c_int) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn isxdigit(arg1: libc::c_int) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn toascii(arg1: libc::c_int) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn tolower(arg1: libc::c_int) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn toupper(arg1: libc::c_int) -> libc::c_int {
     unimplemented!();
 }
diff --git a/grp/lib.rs b/grp/lib.rs
index 45332dbd..64beb92a 100644
--- a/grp/lib.rs
+++ b/grp/lib.rs
@@ -12,14 +12,17 @@ impl Clone for group {
         *self
     }
 }
+#[no_mangle]
 pub extern "C" fn getgrgid(arg1: gid_t) -> *mut group {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn getgrnam(arg1: *const libc::c_char) -> *mut group {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn getgrgid_r(
     arg1: gid_t,
     arg2: *mut group,
@@ -30,6 +33,7 @@ pub extern "C" fn getgrgid_r(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn getgrnam_r(
     arg1: *const libc::c_char,
     arg2: *mut group,
@@ -40,14 +44,17 @@ pub extern "C" fn getgrnam_r(
     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
index defce31e..bf394c1f 100644
--- a/mman/lib.rs
+++ b/mman/lib.rs
@@ -1,11 +1,14 @@
+#[no_mangle]
 pub extern "C" fn mlock(arg1: *const libc::c_void, arg2: usize) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn mlockall(arg1: libc::c_int) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn mmap(
     arg1: *mut libc::c_void,
     arg2: usize,
@@ -17,26 +20,32 @@ pub extern "C" fn mmap(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn mprotect(arg1: *mut libc::c_void, arg2: usize, arg3: libc::c_int) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn msync(arg1: *mut libc::c_void, arg2: usize, arg3: libc::c_int) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn munlock(arg1: *const libc::c_void, arg2: usize) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn munlockall() -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn munmap(arg1: *mut libc::c_void, arg2: usize) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn shm_open(
     arg1: *const libc::c_char,
     arg2: libc::c_int,
@@ -45,6 +54,7 @@ pub extern "C" fn shm_open(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn shm_unlink(arg1: *const libc::c_char) -> libc::c_int {
     unimplemented!();
 }
diff --git a/pthread/lib.rs b/pthread/lib.rs
index f7370233..94a5d0ec 100644
--- a/pthread/lib.rs
+++ b/pthread/lib.rs
@@ -1,7 +1,9 @@
+#[no_mangle]
 pub extern "C" fn pthread_attr_destroy(arg1: *mut pthread_attr_t) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_attr_getdetachstate(
     arg1: *const pthread_attr_t,
     arg2: *mut libc::c_int,
@@ -9,6 +11,7 @@ pub extern "C" fn pthread_attr_getdetachstate(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_attr_getguardsize(
     arg1: *const pthread_attr_t,
     arg2: *mut usize,
@@ -16,6 +19,7 @@ pub extern "C" fn pthread_attr_getguardsize(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_attr_getinheritsched(
     arg1: *const pthread_attr_t,
     arg2: *mut libc::c_int,
@@ -23,6 +27,7 @@ pub extern "C" fn pthread_attr_getinheritsched(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_attr_getschedparam(
     arg1: *const pthread_attr_t,
     arg2: *mut sched_param,
@@ -30,6 +35,7 @@ pub extern "C" fn pthread_attr_getschedparam(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_attr_getschedpolicy(
     arg1: *const pthread_attr_t,
     arg2: *mut libc::c_int,
@@ -37,6 +43,7 @@ pub extern "C" fn pthread_attr_getschedpolicy(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_attr_getscope(
     arg1: *const pthread_attr_t,
     arg2: *mut libc::c_int,
@@ -44,6 +51,7 @@ pub extern "C" fn pthread_attr_getscope(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_attr_getstackaddr(
     arg1: *const pthread_attr_t,
     arg2: *mut *mut libc::c_void,
@@ -51,6 +59,7 @@ pub extern "C" fn pthread_attr_getstackaddr(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_attr_getstacksize(
     arg1: *const pthread_attr_t,
     arg2: *mut usize,
@@ -58,10 +67,12 @@ pub extern "C" fn pthread_attr_getstacksize(
     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(
     arg1: *mut pthread_attr_t,
     arg2: libc::c_int,
@@ -69,10 +80,12 @@ pub extern "C" fn pthread_attr_setdetachstate(
     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(
     arg1: *mut pthread_attr_t,
     arg2: libc::c_int,
@@ -80,6 +93,7 @@ pub extern "C" fn pthread_attr_setinheritsched(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_attr_setschedparam(
     arg1: *mut pthread_attr_t,
     arg2: *mut sched_param,
@@ -87,6 +101,7 @@ pub extern "C" fn pthread_attr_setschedparam(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_attr_setschedpolicy(
     arg1: *mut pthread_attr_t,
     arg2: libc::c_int,
@@ -94,6 +109,7 @@ pub extern "C" fn pthread_attr_setschedpolicy(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_attr_setscope(
     arg1: *mut pthread_attr_t,
     arg2: libc::c_int,
@@ -101,6 +117,7 @@ pub extern "C" fn pthread_attr_setscope(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_attr_setstackaddr(
     arg1: *mut pthread_attr_t,
     arg2: *mut libc::c_void,
@@ -108,30 +125,37 @@ pub extern "C" fn pthread_attr_setstackaddr(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_attr_setstacksize(arg1: *mut pthread_attr_t, arg2: usize) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_cancel(arg1: pthread_t) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_cleanup_push(arg1: *mut libc::c_void, arg2: *mut libc::c_void) {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_cleanup_pop(arg1: libc::c_int) {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_cond_broadcast(arg1: *mut pthread_cond_t) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_cond_destroy(arg1: *mut pthread_cond_t) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_cond_init(
     arg1: *mut pthread_cond_t,
     arg2: *const pthread_condattr_t,
@@ -139,10 +163,12 @@ pub extern "C" fn pthread_cond_init(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_cond_signal(arg1: *mut pthread_cond_t) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_cond_timedwait(
     arg1: *mut pthread_cond_t,
     arg2: *mut pthread_mutex_t,
@@ -151,6 +177,7 @@ pub extern "C" fn pthread_cond_timedwait(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_cond_wait(
     arg1: *mut pthread_cond_t,
     arg2: *mut pthread_mutex_t,
@@ -158,10 +185,12 @@ pub extern "C" fn pthread_cond_wait(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_condattr_destroy(arg1: *mut pthread_condattr_t) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_condattr_getpshared(
     arg1: *const pthread_condattr_t,
     arg2: *mut libc::c_int,
@@ -169,10 +198,12 @@ pub extern "C" fn pthread_condattr_getpshared(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_condattr_init(arg1: *mut pthread_condattr_t) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_condattr_setpshared(
     arg1: *mut pthread_condattr_t,
     arg2: libc::c_int,
@@ -180,6 +211,7 @@ pub extern "C" fn pthread_condattr_setpshared(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_create(
     arg1: *mut pthread_t,
     arg2: *const pthread_attr_t,
@@ -189,22 +221,27 @@ pub extern "C" fn pthread_create(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_detach(arg1: pthread_t) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_equal(arg1: pthread_t, arg2: pthread_t) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_exit(arg1: *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(
     arg1: pthread_t,
     arg2: *mut libc::c_int,
@@ -213,14 +250,17 @@ pub extern "C" fn pthread_getschedparam(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_getspecific(arg1: pthread_key_t) -> *mut libc::c_void {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_join(arg1: pthread_t, arg2: *mut *mut libc::c_void) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_key_create(
     arg1: *mut pthread_key_t,
     arg2: ::std::option::Option<unsafe extern "C" fn(arg1: *mut libc::c_void)>,
@@ -228,14 +268,17 @@ pub extern "C" fn pthread_key_create(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_key_delete(arg1: pthread_key_t) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_mutex_destroy(arg1: *mut pthread_mutex_t) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_mutex_getprioceiling(
     arg1: *const pthread_mutex_t,
     arg2: *mut libc::c_int,
@@ -243,6 +286,7 @@ pub extern "C" fn pthread_mutex_getprioceiling(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_mutex_init(
     arg1: *mut pthread_mutex_t,
     arg2: *const pthread_mutexattr_t,
@@ -250,10 +294,12 @@ pub extern "C" fn pthread_mutex_init(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_mutex_lock(arg1: *mut pthread_mutex_t) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_mutex_setprioceiling(
     arg1: *mut pthread_mutex_t,
     arg2: libc::c_int,
@@ -262,18 +308,22 @@ pub extern "C" fn pthread_mutex_setprioceiling(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_mutex_trylock(arg1: *mut pthread_mutex_t) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_mutex_unlock(arg1: *mut pthread_mutex_t) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_mutexattr_destroy(arg1: *mut pthread_mutexattr_t) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_mutexattr_getprioceiling(
     arg1: *const pthread_mutexattr_t,
     arg2: *mut libc::c_int,
@@ -281,6 +331,7 @@ pub extern "C" fn pthread_mutexattr_getprioceiling(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_mutexattr_getprotocol(
     arg1: *const pthread_mutexattr_t,
     arg2: *mut libc::c_int,
@@ -288,6 +339,7 @@ pub extern "C" fn pthread_mutexattr_getprotocol(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_mutexattr_getpshared(
     arg1: *const pthread_mutexattr_t,
     arg2: *mut libc::c_int,
@@ -295,6 +347,7 @@ pub extern "C" fn pthread_mutexattr_getpshared(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_mutexattr_gettype(
     arg1: *const pthread_mutexattr_t,
     arg2: *mut libc::c_int,
@@ -302,10 +355,12 @@ pub extern "C" fn pthread_mutexattr_gettype(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_mutexattr_init(arg1: *mut pthread_mutexattr_t) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_mutexattr_setprioceiling(
     arg1: *mut pthread_mutexattr_t,
     arg2: libc::c_int,
@@ -313,6 +368,7 @@ pub extern "C" fn pthread_mutexattr_setprioceiling(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_mutexattr_setprotocol(
     arg1: *mut pthread_mutexattr_t,
     arg2: libc::c_int,
@@ -320,6 +376,7 @@ pub extern "C" fn pthread_mutexattr_setprotocol(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_mutexattr_setpshared(
     arg1: *mut pthread_mutexattr_t,
     arg2: libc::c_int,
@@ -327,6 +384,7 @@ pub extern "C" fn pthread_mutexattr_setpshared(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_mutexattr_settype(
     arg1: *mut pthread_mutexattr_t,
     arg2: libc::c_int,
@@ -334,6 +392,7 @@ pub extern "C" fn pthread_mutexattr_settype(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_once(
     arg1: *mut pthread_once_t,
     arg2: ::std::option::Option<unsafe extern "C" fn()>,
@@ -341,10 +400,12 @@ pub extern "C" fn pthread_once(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_rwlock_destroy(arg1: *mut pthread_rwlock_t) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_rwlock_init(
     arg1: *mut pthread_rwlock_t,
     arg2: *const pthread_rwlockattr_t,
@@ -352,30 +413,37 @@ pub extern "C" fn pthread_rwlock_init(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_rwlock_rdlock(arg1: *mut pthread_rwlock_t) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_rwlock_tryrdlock(arg1: *mut pthread_rwlock_t) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_rwlock_trywrlock(arg1: *mut pthread_rwlock_t) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_rwlock_unlock(arg1: *mut pthread_rwlock_t) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_rwlock_wrlock(arg1: *mut pthread_rwlock_t) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_rwlockattr_destroy(arg1: *mut pthread_rwlockattr_t) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_rwlockattr_getpshared(
     arg1: *const pthread_rwlockattr_t,
     arg2: *mut libc::c_int,
@@ -383,10 +451,12 @@ pub extern "C" fn pthread_rwlockattr_getpshared(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_rwlockattr_init(arg1: *mut pthread_rwlockattr_t) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_rwlockattr_setpshared(
     arg1: *mut pthread_rwlockattr_t,
     arg2: libc::c_int,
@@ -394,22 +464,27 @@ pub extern "C" fn pthread_rwlockattr_setpshared(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_self() -> pthread_t {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_setcancelstate(arg1: libc::c_int, arg2: *mut libc::c_int) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_setcanceltype(arg1: libc::c_int, arg2: *mut libc::c_int) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_setconcurrency(arg1: libc::c_int) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_setschedparam(
     arg1: pthread_t,
     arg2: libc::c_int,
@@ -418,6 +493,7 @@ pub extern "C" fn pthread_setschedparam(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_setspecific(
     arg1: pthread_key_t,
     arg2: *const libc::c_void,
@@ -425,6 +501,7 @@ pub extern "C" fn pthread_setspecific(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_testcancel() {
     unimplemented!();
 }
diff --git a/semaphore/lib.rs b/semaphore/lib.rs
index 53aea6bd..c4d0c153 100644
--- a/semaphore/lib.rs
+++ b/semaphore/lib.rs
@@ -8,46 +8,56 @@ pub union sem_t {
 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
index 25b2c28c..70d19097 100644
--- a/stdio/lib.rs
+++ b/stdio/lib.rs
@@ -1,294 +1,356 @@
+#[no_mangle]
 pub extern "C" fn clearerr(arg1: *mut FILE) {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn ctermid(arg1: *mut libc::c_char)
      -> *mut libc::c_char {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn cuserid(arg1: *mut libc::c_char)
      -> *mut libc::c_char {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn fclose(arg1: *mut FILE) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn fdopen(arg1: libc::c_int,
                   arg2: *const libc::c_char) -> *mut FILE {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn feof(arg1: *mut FILE) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn ferror(arg1: *mut FILE) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn fflush(arg1: *mut FILE) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn fgetc(arg1: *mut FILE) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn fgetpos(arg1: *mut FILE, arg2: *mut fpos_t)
      -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn fgets(arg1: *mut libc::c_char,
                  arg2: libc::c_int, arg3: *mut FILE)
      -> *mut libc::c_char {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn fileno(arg1: *mut FILE) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn flockfile(arg1: *mut FILE) {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn fopen(arg1: *const libc::c_char,
                  arg2: *const libc::c_char) -> *mut FILE {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn fprintf(arg1: *mut FILE, arg2: *const libc::c_char, ...)
      -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn fputc(arg1: libc::c_int, arg2: *mut FILE)
      -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn fputs(arg1: *const libc::c_char, arg2: *mut FILE)
      -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn fread(arg1: *mut libc::c_void, arg2: usize, arg3: usize,
                  arg4: *mut FILE) -> usize {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn freopen(arg1: *const libc::c_char,
                    arg2: *const libc::c_char, arg3: *mut FILE)
      -> *mut FILE {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn fscanf(arg1: *mut FILE, arg2: *const libc::c_char, ...)
      -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn fseek(arg1: *mut FILE, arg2: libc::c_long,
                  arg3: libc::c_int) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn fseeko(arg1: *mut FILE, arg2: off_t, arg3: libc::c_int)
      -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn fsetpos(arg1: *mut FILE, arg2: *const fpos_t)
      -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn ftell(arg1: *mut FILE) -> libc::c_long {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn ftello(arg1: *mut FILE) -> off_t {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn ftrylockfile(arg1: *mut FILE) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn funlockfile(arg1: *mut FILE) {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn fwrite(arg1: *const libc::c_void, arg2: usize,
                   arg3: usize, arg4: *mut FILE) -> usize {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn getc(arg1: *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(arg1: *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(arg1: libc::c_int,
                   arg2: *const *const libc::c_char,
                   arg3: libc::c_char) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn gets(arg1: *mut libc::c_char)
      -> *mut libc::c_char {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn getw(arg1: *mut FILE) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pclose(arg1: *mut FILE) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn perror(arg1: *const libc::c_char) {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn popen(arg1: *const libc::c_char,
                  arg2: *const libc::c_char) -> *mut FILE {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn printf(arg1: *const libc::c_char, ...)
      -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn putc(arg1: libc::c_int, arg2: *mut FILE)
      -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn putchar(arg1: libc::c_int) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn putc_unlocked(arg1: libc::c_int, arg2: *mut FILE)
      -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn putchar_unlocked(arg1: libc::c_int)
      -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn puts(arg1: *const libc::c_char) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn putw(arg1: libc::c_int, arg2: *mut FILE)
      -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn remove(arg1: *const libc::c_char)
      -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn rename(arg1: *const libc::c_char,
                   arg2: *const libc::c_char)
      -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn rewind(arg1: *mut FILE) {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn scanf(arg1: *const libc::c_char, ...)
      -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn setbuf(arg1: *mut FILE, arg2: *mut libc::c_char) {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn setvbuf(arg1: *mut FILE, arg2: *mut libc::c_char,
                    arg3: libc::c_int, arg4: 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(arg1: *mut libc::c_char,
                    arg2: *const libc::c_char, ...)
      -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn sscanf(arg1: *const libc::c_char,
                   arg2: *const libc::c_char, ...)
      -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn tempnam(arg1: *const libc::c_char,
                    arg2: *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(arg1: *mut libc::c_char)
      -> *mut libc::c_char {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn ungetc(arg1: libc::c_int, arg2: *mut FILE)
      -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn vfprintf(arg1: *mut FILE, arg2: *const libc::c_char,
                     va_list: libc::c_int) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn vprintf(arg1: *const libc::c_char,
                    va_list: libc::c_int) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn vsnprintf(arg1: *mut libc::c_char, arg2: usize,
                      arg3: *const libc::c_char,
                      va_list: libc::c_int) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn vsprintf(arg1: *mut libc::c_char,
                     arg2: *const libc::c_char,
                     va_list: libc::c_int) -> libc::c_int {
diff --git a/stdlib/lib.rs b/stdlib/lib.rs
index 0f71b9b2..c960a6bc 100644
--- a/stdlib/lib.rs
+++ b/stdlib/lib.rs
@@ -25,30 +25,37 @@ impl Clone for ldiv_t {
         *self
     }
 }
+#[no_mangle]
 pub extern "C" fn abort() {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn abs(arg1: libc::c_int) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn atexit(arg1: ::std::option::Option<unsafe extern "C" fn()>) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn atof(arg1: *const libc::c_char) -> f64 {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn atoi(arg1: *const libc::c_char) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn atol(arg1: *const libc::c_char) -> libc::c_long {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn bsearch(
     arg1: *const libc::c_void,
     arg2: *const libc::c_void,
@@ -63,18 +70,22 @@ pub extern "C" fn bsearch(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn calloc(arg1: usize, arg2: usize) -> *mut libc::c_void {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn div(arg1: libc::c_int, arg2: libc::c_int) -> div_t {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn drand48() -> f64 {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn ecvt(
     arg1: f64,
     arg2: libc::c_int,
@@ -84,14 +95,17 @@ pub extern "C" fn ecvt(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn erand48(arg1: *mut libc::c_ushort) -> f64 {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn exit(arg1: libc::c_int) {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn fcvt(
     arg1: f64,
     arg2: libc::c_int,
@@ -101,18 +115,22 @@ pub extern "C" fn fcvt(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn free(arg1: *mut libc::c_void) {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn gcvt(arg1: f64, arg2: libc::c_int, arg3: *mut libc::c_char) -> *mut libc::c_char {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn getenv(arg1: *const libc::c_char) -> *mut libc::c_char {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn getsubopt(
     arg1: *mut *mut libc::c_char,
     arg2: *const *const libc::c_char,
@@ -121,10 +139,12 @@ pub extern "C" fn getsubopt(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn grantpt(arg1: libc::c_int) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn initstate(
     arg1: libc::c_uint,
     arg2: *mut libc::c_char,
@@ -133,42 +153,52 @@ pub extern "C" fn initstate(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn jrand48(arg1: *mut libc::c_ushort) -> libc::c_long {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn l64a(arg1: libc::c_long) -> *mut libc::c_char {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn labs(arg1: libc::c_long) -> libc::c_long {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn lcong48(arg1: *mut libc::c_ushort) {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn ldiv(arg1: libc::c_long, arg2: libc::c_long) -> ldiv_t {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn lrand48() -> libc::c_long {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn malloc(arg1: usize) -> *mut libc::c_void {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn mblen(arg1: *const libc::c_char, arg2: usize) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn mbstowcs(arg1: *mut wchar_t, arg2: *const libc::c_char, arg3: usize) -> usize {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn mbtowc(
     arg1: *mut wchar_t,
     arg2: *const libc::c_char,
@@ -177,30 +207,37 @@ pub extern "C" fn mbtowc(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn mktemp(arg1: *mut libc::c_char) -> *mut libc::c_char {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn mkstemp(arg1: *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(arg1: *mut libc::c_ushort) -> libc::c_long {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn ptsname(arg1: libc::c_int) -> *mut libc::c_char {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn putenv(arg1: *mut libc::c_char) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn qsort(
     arg1: *mut libc::c_void,
     arg2: usize,
@@ -214,22 +251,27 @@ pub extern "C" fn qsort(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn rand() -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn rand_r(arg1: *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(arg1: *mut libc::c_void, arg2: usize) -> *mut libc::c_void {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn realpath(
     arg1: *const libc::c_char,
     arg2: *mut libc::c_char,
@@ -237,34 +279,42 @@ pub extern "C" fn realpath(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn seed48(arg1: *mut libc::c_ushort) -> libc::c_ushort {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn setkey(arg1: *const libc::c_char) {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn setstate(arg1: *const libc::c_char) -> *mut libc::c_char {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn srand(arg1: libc::c_uint) {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn srand48(arg1: libc::c_long) {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn srandom(arg1: libc::c_uint) {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn strtod(arg1: *const libc::c_char, arg2: *mut *mut libc::c_char) -> f64 {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn strtol(
     arg1: *const libc::c_char,
     arg2: *mut *mut libc::c_char,
@@ -273,6 +323,7 @@ pub extern "C" fn strtol(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn strtoul(
     arg1: *const libc::c_char,
     arg2: *mut *mut libc::c_char,
@@ -281,26 +332,32 @@ pub extern "C" fn strtoul(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn system(arg1: *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(arg1: libc::c_int) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn valloc(arg1: usize) -> *mut libc::c_void {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn wcstombs(arg1: *mut libc::c_char, arg2: *const wchar_t, arg3: usize) -> usize {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn wctomb(arg1: *mut libc::c_char, arg2: wchar_t) -> libc::c_int {
     unimplemented!();
 }
diff --git a/string/lib.rs b/string/lib.rs
index b0eb27cd..6e2b0c46 100644
--- a/string/lib.rs
+++ b/string/lib.rs
@@ -1,5 +1,6 @@
 /* automatically generated by rust-bindgen */
 
+#[no_mangle]
 pub extern "C" fn memccpy(
     arg1: *mut libc::c_void,
     arg2: *const libc::c_void,
@@ -9,6 +10,7 @@ pub extern "C" fn memccpy(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn memchr(
     arg1: *const libc::c_void,
     arg2: libc::c_int,
@@ -17,6 +19,7 @@ pub extern "C" fn memchr(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn memcmp(
     arg1: *const libc::c_void,
     arg2: *const libc::c_void,
@@ -25,6 +28,7 @@ pub extern "C" fn memcmp(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn memcpy(
     arg1: *mut libc::c_void,
     arg2: *const libc::c_void,
@@ -33,6 +37,7 @@ pub extern "C" fn memcpy(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn memmove(
     arg1: *mut libc::c_void,
     arg2: *const libc::c_void,
@@ -41,6 +46,7 @@ pub extern "C" fn memmove(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn memset(
     arg1: *mut libc::c_void,
     arg2: libc::c_int,
@@ -49,42 +55,52 @@ pub extern "C" fn memset(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn strcat(arg1: *mut libc::c_char, arg2: *const libc::c_char) -> *mut libc::c_char {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn strchr(arg1: *const libc::c_char, arg2: libc::c_int) -> *mut libc::c_char {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn strcmp(arg1: *const libc::c_char, arg2: *const libc::c_char) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn strcoll(arg1: *const libc::c_char, arg2: *const libc::c_char) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn strcpy(arg1: *mut libc::c_char, arg2: *const libc::c_char) -> *mut libc::c_char {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn strcspn(arg1: *const libc::c_char, arg2: *const libc::c_char) -> libc::c_ulong {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn strdup(arg1: *const libc::c_char) -> *mut libc::c_char {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn strerror(arg1: libc::c_int) -> *mut libc::c_char {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn strlen(arg1: *const libc::c_char) -> libc::c_ulong {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn strncat(
     arg1: *mut libc::c_char,
     arg2: *const libc::c_char,
@@ -93,6 +109,7 @@ pub extern "C" fn strncat(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn strncmp(
     arg1: *const libc::c_char,
     arg2: *const libc::c_char,
@@ -101,6 +118,7 @@ pub extern "C" fn strncmp(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn strncpy(
     arg1: *mut libc::c_char,
     arg2: *const libc::c_char,
@@ -109,6 +127,7 @@ pub extern "C" fn strncpy(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn strpbrk(
     arg1: *const libc::c_char,
     arg2: *const libc::c_char,
@@ -116,14 +135,17 @@ pub extern "C" fn strpbrk(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn strrchr(arg1: *const libc::c_char, arg2: libc::c_int) -> *mut libc::c_char {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn strspn(arg1: *const libc::c_char, arg2: *const libc::c_char) -> libc::c_ulong {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn strstr(
     arg1: *const libc::c_char,
     arg2: *const libc::c_char,
@@ -131,10 +153,12 @@ pub extern "C" fn strstr(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn strtok(arg1: *mut libc::c_char, arg2: *const libc::c_char) -> *mut libc::c_char {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn strtok_r(
     arg1: *mut libc::c_char,
     arg2: *const libc::c_char,
@@ -143,6 +167,7 @@ pub extern "C" fn strtok_r(
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn strxfrm(
     arg1: *mut libc::c_char,
     arg2: *const libc::c_char,
diff --git a/unistd/src/lib.rs b/unistd/src/lib.rs
index 5455473e..ef4c8afd 100644
--- a/unistd/src/lib.rs
+++ b/unistd/src/lib.rs
@@ -1,89 +1,107 @@
+#[no_mangle]
 pub extern "C" fn alarm(arg1: libc::c_uint) -> libc::c_uint {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn brk(arg1: *mut libc::c_void) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn chdir(arg1: *const libc::c_char)
      -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn chroot(arg1: *const libc::c_char)
      -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn chown(arg1: *const libc::c_char, arg2: uid_t,
                  arg3: gid_t) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn close(arg1: libc::c_int) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn confstr(arg1: libc::c_int,
                    arg2: *mut libc::c_char, arg3: usize) -> usize {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn crypt(arg1: *const libc::c_char,
                  arg2: *const libc::c_char)
      -> *mut libc::c_char {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn ctermid(arg1: *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 dup(arg1: libc::c_int) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn dup2(arg1: libc::c_int, arg2: libc::c_int)
      -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn encrypt(arg1: *mut libc::c_char,
                    arg2: libc::c_int) {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn execl(arg1: *const libc::c_char,
                  arg2: *const libc::c_char, ...)
      -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn execle(arg1: *const libc::c_char,
                   arg2: *const libc::c_char, ...)
      -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn execlp(arg1: *const libc::c_char,
                   arg2: *const libc::c_char, ...)
      -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn execv(arg1: *const libc::c_char,
                  arg2: *const *const libc::c_char)
      -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn execve(arg1: *const libc::c_char,
                   arg2: *const *const libc::c_char,
                   arg3: *const *const libc::c_char)
@@ -91,86 +109,105 @@ pub extern "C" fn execve(arg1: *const libc::c_char,
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn execvp(arg1: *const libc::c_char,
                   arg2: *const *const libc::c_char)
      -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn _exit(arg1: libc::c_int) {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn fchown(arg1: libc::c_int, arg2: uid_t, arg3: gid_t)
      -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn fchdir(arg1: libc::c_int) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn fdatasync(arg1: libc::c_int) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn fork() -> pid_t {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn fpathconf(arg1: libc::c_int, arg2: libc::c_int)
      -> libc::c_long {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn fsync(arg1: libc::c_int) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn ftruncate(arg1: libc::c_int, arg2: off_t)
      -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn getcwd(arg1: *mut libc::c_char, arg2: usize)
      -> *mut libc::c_char {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn getdtablesize() -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn getegid() -> gid_t {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn geteuid() -> uid_t {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn getgid() -> gid_t {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn getgroups(arg1: libc::c_int, arg2: *mut gid_t)
      -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn gethostid() -> libc::c_long {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn getlogin() -> *mut libc::c_char {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn getlogin_r(arg1: *mut libc::c_char, arg2: usize)
      -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn getopt(arg1: libc::c_int,
                   arg2: *const *const libc::c_char,
                   arg3: *const libc::c_char)
@@ -178,91 +215,111 @@ pub extern "C" fn getopt(arg1: libc::c_int,
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn getpagesize() -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn getpass(arg1: *const libc::c_char)
      -> *mut libc::c_char {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn getpgid(arg1: pid_t) -> pid_t {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn getpgrp() -> pid_t {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn getpid() -> pid_t {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn getppid() -> pid_t {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn getsid(arg1: pid_t) -> pid_t {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn getuid() -> uid_t {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn getwd(arg1: *mut libc::c_char)
      -> *mut libc::c_char {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn isatty(arg1: libc::c_int) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn lchown(arg1: *const libc::c_char, arg2: uid_t,
                   arg3: gid_t) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn link(arg1: *const libc::c_char,
                 arg2: *const libc::c_char) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn lockf(arg1: libc::c_int, arg2: libc::c_int,
                  arg3: off_t) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn lseek(arg1: libc::c_int, arg2: off_t,
                  arg3: libc::c_int) -> off_t {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn nice(arg1: libc::c_int) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pathconf(arg1: *const libc::c_char,
                     arg2: libc::c_int) -> libc::c_long {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pause() -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pipe(arg1: *mut libc::c_int) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pread(arg1: libc::c_int,
                  arg2: *mut libc::c_void, arg3: usize, arg4: off_t)
      -> isize {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pthread_atfork(arg1: ::std::option::Option<unsafe extern "C" fn()>,
                           arg2: ::std::option::Option<unsafe extern "C" fn()>,
                           arg3: ::std::option::Option<unsafe extern "C" fn()>)
@@ -270,125 +327,152 @@ pub extern "C" fn pthread_atfork(arg1: ::std::option::Option<unsafe extern "C" f
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn pwrite(arg1: libc::c_int,
                   arg2: *const libc::c_void, arg3: usize,
                   arg4: off_t) -> isize {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn read(arg1: libc::c_int,
                 arg2: *mut libc::c_void, arg3: usize) -> isize {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn readlink(arg1: *const libc::c_char,
                     arg2: *mut libc::c_char, arg3: usize)
      -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn rmdir(arg1: *const libc::c_char)
      -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn sbrk(arg1: isize) -> *mut libc::c_void {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn setgid(arg1: gid_t) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn setpgid(arg1: pid_t, arg2: pid_t) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn setpgrp() -> pid_t {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn setregid(arg1: gid_t, arg2: gid_t) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn setreuid(arg1: uid_t, arg2: uid_t) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn setsid() -> pid_t {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn setuid(arg1: uid_t) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn sleep(arg1: libc::c_uint) -> libc::c_uint {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn swab(arg1: *const libc::c_void,
                 arg2: *mut libc::c_void, arg3: isize) {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn symlink(arg1: *const libc::c_char,
                    arg2: *const libc::c_char)
      -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn sync() {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn sysconf(arg1: libc::c_int) -> libc::c_long {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn tcgetpgrp(arg1: libc::c_int) -> pid_t {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn tcsetpgrp(arg1: libc::c_int, arg2: pid_t)
      -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn truncate(arg1: *const libc::c_char, arg2: off_t)
      -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn ttyname(arg1: libc::c_int)
      -> *mut libc::c_char {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn ttyname_r(arg1: libc::c_int,
                      arg2: *mut libc::c_char, arg3: usize)
      -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn ualarm(arg1: useconds_t, arg2: useconds_t) -> useconds_t {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn unlink(arg1: *const libc::c_char)
      -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn usleep(arg1: useconds_t) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn vfork() -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn write(arg1: libc::c_int,
                  arg2: *const libc::c_void, arg3: usize) -> isize {
     unimplemented!();
diff --git a/wchar/lib.rs b/wchar/lib.rs
index 8e602ed4..4eb34a07 100644
--- a/wchar/lib.rs
+++ b/wchar/lib.rs
@@ -1,255 +1,310 @@
 /* automatically generated by rust-bindgen */
+#[no_mangle]
 pub extern "C" fn btowc(arg1: libc::c_int) -> wint_t {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn fwprintf(arg1: *mut FILE, arg2: *const wchar_t, ...)
      -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn fwscanf(arg1: *mut FILE, arg2: *const wchar_t, ...)
      -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn fgetwc(arg1: *mut FILE) -> wint_t {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn fgetws(arg1: *mut wchar_t, arg2: libc::c_int,
                   arg3: *mut FILE) -> *mut wchar_t {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn fputwc(arg1: wchar_t, arg2: *mut FILE) -> wint_t {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn fputws(arg1: *const wchar_t, arg2: *mut FILE)
      -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn fwide(arg1: *mut FILE, arg2: libc::c_int)
      -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn getwc(arg1: *mut FILE) -> wint_t {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn getwchar() -> wint_t {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn mbsinit(arg1: *const mbstate_t) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn mbrlen(arg1: *const libc::c_char, arg2: usize,
                   arg3: *mut mbstate_t) -> usize {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn mbrtowc(arg1: *mut wchar_t, arg2: *const libc::c_char,
                    arg3: usize, arg4: *mut mbstate_t) -> usize {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn mbsrtowcs(arg1: *mut wchar_t,
                      arg2: *mut *const libc::c_char, arg3: usize,
                      arg4: *mut mbstate_t) -> usize {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn putwc(arg1: wchar_t, arg2: *mut FILE) -> wint_t {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn putwchar(arg1: wchar_t) -> wint_t {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn swprintf(arg1: *mut wchar_t, arg2: usize,
                     arg3: *const wchar_t, ...) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn swscanf(arg1: *const wchar_t, arg2: *const wchar_t, ...)
      -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn ungetwc(arg1: wint_t, arg2: *mut FILE) -> wint_t {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn vfwprintf(arg1: *mut FILE, arg2: *const wchar_t,
                      arg3: *mut __va_list_tag) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn vwprintf(arg1: *const wchar_t, arg2: *mut __va_list_tag)
      -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn vswprintf(arg1: *mut wchar_t, arg2: usize, arg3: *const wchar_t,
                      arg4: *mut __va_list_tag) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn wcrtomb(arg1: *mut libc::c_char, arg2: wchar_t,
                    arg3: *mut mbstate_t) -> usize {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn wcscat(arg1: *mut wchar_t, arg2: *const wchar_t) -> *mut wchar_t {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn wcschr(arg1: *const wchar_t, arg2: wchar_t)
      -> *mut libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn wcscmp(arg1: *const wchar_t, arg2: *const wchar_t)
      -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn wcscoll(arg1: *const wchar_t, arg2: *const wchar_t)
      -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn wcscpy(arg1: *mut wchar_t, arg2: *const wchar_t) -> *mut wchar_t {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn wcscspn(arg1: *const wchar_t, arg2: *const wchar_t) -> usize {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn wcsftime(arg1: *mut wchar_t, arg2: usize, arg3: *const wchar_t,
                     arg4: *mut tm) -> usize {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn wcslen(arg1: *const wchar_t) -> libc::c_ulong {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn wcsncat(arg1: *mut wchar_t, arg2: *const wchar_t, arg3: usize)
      -> *mut wchar_t {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn wcsncmp(arg1: *const wchar_t, arg2: *const wchar_t, arg3: usize)
      -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn wcsncpy(arg1: *mut wchar_t, arg2: *const wchar_t, arg3: usize)
      -> *mut wchar_t {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn wcspbrk(arg1: *const wchar_t, arg2: *const wchar_t)
      -> *mut wchar_t {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn wcsrchr(arg1: *const wchar_t, arg2: wchar_t) -> *mut wchar_t {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn wcsrtombs(arg1: *mut libc::c_char,
                      arg2: *mut *const wchar_t, arg3: usize,
                      arg4: *mut mbstate_t) -> usize {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn wcsspn(arg1: *const wchar_t, arg2: *const wchar_t) -> usize {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn wcsstr(arg1: *const wchar_t, arg2: *const wchar_t) -> *mut wchar_t {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn wcstod(arg1: *const wchar_t, arg2: *mut *mut wchar_t) -> f64 {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn wcstok(arg1: *mut wchar_t, arg2: *const wchar_t,
                   arg3: *mut *mut wchar_t) -> *mut wchar_t {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn wcstol(arg1: *const wchar_t, arg2: *mut *mut wchar_t,
                   arg3: libc::c_int) -> libc::c_long {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn wcstoul(arg1: *const wchar_t, arg2: *mut *mut wchar_t,
                    arg3: libc::c_int) -> libc::c_ulong {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn wcswcs(arg1: *const wchar_t, arg2: *const wchar_t) -> *mut wchar_t {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn wcswidth(arg1: *const wchar_t, arg2: usize)
      -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn wcsxfrm(arg1: *mut wchar_t, arg2: *const wchar_t, arg3: usize)
      -> usize {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn wctob(arg1: wint_t) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn wcwidth(arg1: wchar_t) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn wmemchr(arg1: *const wchar_t, arg2: wchar_t, arg3: usize)
      -> *mut libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn wmemcmp(arg1: *const wchar_t, arg2: *const wchar_t, arg3: usize)
      -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn wmemcpy(arg1: *mut wchar_t, arg2: *const wchar_t, arg3: usize)
      -> *mut wchar_t {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn wmemmove(arg1: *mut wchar_t, arg2: *const wchar_t, arg3: usize)
      -> *mut wchar_t {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn wmemset(arg1: *mut wchar_t, arg2: wchar_t, arg3: usize)
      -> *mut wchar_t {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn wprintf(arg1: *const wchar_t, ...) -> libc::c_int {
     unimplemented!();
 }
 
+#[no_mangle]
 pub extern "C" fn wscanf(arg1: *const wchar_t, ...) -> libc::c_int {
     unimplemented!();
 }
diff --git a/wctype/lib.rs b/wctype/lib.rs
index edef3591..7edb962c 100644
--- a/wctype/lib.rs
+++ b/wctype/lib.rs
@@ -1,71 +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!();
 }
-- 
GitLab