From 463c9f386c1b0ba8edc56b809c641391c1123d09 Mon Sep 17 00:00:00 2001
From: Jeremy Soller <jackpot51@gmail.com>
Date: Thu, 12 Jul 2018 09:49:53 -0600
Subject: [PATCH] Fix issue with RUSAGE constants not being in C headers if
 negative

---
 include/bits/sys/resource.h    | 9 +++++++++
 src/sys_resource/cbindgen.toml | 1 +
 src/sys_resource/src/lib.rs    | 9 +++++----
 3 files changed, 15 insertions(+), 4 deletions(-)
 create mode 100644 include/bits/sys/resource.h

diff --git a/include/bits/sys/resource.h b/include/bits/sys/resource.h
new file mode 100644
index 00000000..3786ea33
--- /dev/null
+++ b/include/bits/sys/resource.h
@@ -0,0 +1,9 @@
+#ifndef _BITS_SYS_RESOURCE_H
+#define _BITS_SYS_RESOURCE_H
+
+#define	RUSAGE_SELF 0
+#define	RUSAGE_CHILDREN (-1)
+#define RUSAGE_BOTH (-2)
+#define	RUSAGE_THREAD 1
+
+#endif /* _BITS_SYS_RESOURCE_H */
diff --git a/src/sys_resource/cbindgen.toml b/src/sys_resource/cbindgen.toml
index 3ed0b2f5..606e604b 100644
--- a/src/sys_resource/cbindgen.toml
+++ b/src/sys_resource/cbindgen.toml
@@ -1,5 +1,6 @@
 sys_includes = ["sys/types.h", "stdint.h", "sys/time.h"]
 include_guard = "_SYS_RESOURCE_H"
+trailer = "#include <bits/sys/resource.h>"
 language = "C"
 
 # WORKAROUND:
diff --git a/src/sys_resource/src/lib.rs b/src/sys_resource/src/lib.rs
index 7ff90bc2..7b20d0f7 100644
--- a/src/sys_resource/src/lib.rs
+++ b/src/sys_resource/src/lib.rs
@@ -9,10 +9,11 @@ extern crate sys_time;
 use platform::types::*;
 use sys_time::timeval;
 
-pub const RUSAGE_SELF: c_int = 0;
-pub const RUSAGE_CHILDREN: c_int = -1;
-pub const RUSAGE_BOTH: c_int = -2;
-pub const RUSAGE_THREAD: c_int = 1;
+// Exported in bits file
+const RUSAGE_SELF: c_int = 0;
+const RUSAGE_CHILDREN: c_int = -1;
+const RUSAGE_BOTH: c_int = -2;
+const RUSAGE_THREAD: c_int = 1;
 
 type rlim_t = u64;
 
-- 
GitLab