From 93ddcca2945630ec4fce9efab8d5145835a9d6f1 Mon Sep 17 00:00:00 2001
From: Paul Sajna <paulsajna@gmail.com>
Date: Wed, 7 Mar 2018 18:36:18 -0800
Subject: [PATCH] add test for errno

---
 include/errno.h         | 1 +
 src/platform/src/lib.rs | 1 +
 tests/error.c           | 8 ++++++++
 3 files changed, 10 insertions(+)
 create mode 100644 include/errno.h
 create mode 100644 tests/error.c

diff --git a/include/errno.h b/include/errno.h
new file mode 100644
index 000000000..f1761777c
--- /dev/null
+++ b/include/errno.h
@@ -0,0 +1 @@
+extern int errno;
diff --git a/src/platform/src/lib.rs b/src/platform/src/lib.rs
index 63fc300c1..0719f8b84 100644
--- a/src/platform/src/lib.rs
+++ b/src/platform/src/lib.rs
@@ -29,6 +29,7 @@ use core::fmt;
 use types::*;
 
 #[thread_local]
+#[no_mangle]
 pub static mut errno: c_int = 0;
 
 pub unsafe fn c_str(s: *const c_char) -> &'static [u8] {
diff --git a/tests/error.c b/tests/error.c
new file mode 100644
index 000000000..f904b7349
--- /dev/null
+++ b/tests/error.c
@@ -0,0 +1,8 @@
+#include <unistd.h>
+#include <stdio.h>
+#include <errno.h>
+
+int main(int argc, char** argv) {
+    chdir("nonexistent"); 
+    printf("errno: %d\n", errno);
+}
-- 
GitLab