From 5fc1459eb9c9fef377c4bed3260384a526cb38b5 Mon Sep 17 00:00:00 2001
From: jD91mZM2 <me@krake.one>
Date: Tue, 26 Jun 2018 11:23:22 +0200
Subject: [PATCH] signal: Make constants visible from C

---
 src/signal/src/lib.rs   |  4 ++
 src/signal/src/linux.rs | 84 ++++++++++++++++++++---------------------
 src/signal/src/redox.rs | 76 ++++++++++++++++++-------------------
 3 files changed, 84 insertions(+), 80 deletions(-)

diff --git a/src/signal/src/lib.rs b/src/signal/src/lib.rs
index 031b8e48..a59a1369 100644
--- a/src/signal/src/lib.rs
+++ b/src/signal/src/lib.rs
@@ -12,6 +12,10 @@ pub mod sys;
 #[path = "redox.rs"]
 pub mod sys;
 
+#[no_mangle] pub static SIG_BLOCK: c_int = 0;
+#[no_mangle] pub static SIG_UNBLOCK: c_int = 1;
+#[no_mangle] pub static SIG_SETMASK: c_int = 2;
+
 pub use sys::*;
 
 use platform::types::*;
diff --git a/src/signal/src/linux.rs b/src/signal/src/linux.rs
index 628e8133..d5ebf092 100644
--- a/src/signal/src/linux.rs
+++ b/src/signal/src/linux.rs
@@ -3,46 +3,46 @@ pub struct sys_sigset_t {
     pub bits: [u64; 16],
 }
 
-pub const SIGHUP: usize = 1;
-pub const SIGINT: usize = 2;
-pub const SIGQUIT: usize = 3;
-pub const SIGILL: usize = 4;
-pub const SIGTRAP: usize = 5;
-pub const SIGABRT: usize = 6;
-pub const SIGIOT: usize = SIGABRT;
-pub const SIGBUS: usize = 7;
-pub const SIGFPE: usize = 8;
-pub const SIGKILL: usize = 9;
-pub const SIGUSR1: usize = 10;
-pub const SIGSEGV: usize = 11;
-pub const SIGUSR2: usize = 12;
-pub const SIGPIPE: usize = 13;
-pub const SIGALRM: usize = 14;
-pub const SIGTERM: usize = 15;
-pub const SIGSTKFLT: usize = 16;
-pub const SIGCHLD: usize = 17;
-pub const SIGCONT: usize = 18;
-pub const SIGSTOP: usize = 19;
-pub const SIGTSTP: usize = 20;
-pub const SIGTTIN: usize = 21;
-pub const SIGTTOU: usize = 22;
-pub const SIGURG: usize = 23;
-pub const SIGXCPU: usize = 24;
-pub const SIGXFSZ: usize = 25;
-pub const SIGVTALRM: usize = 26;
-pub const SIGPROF: usize = 27;
-pub const SIGWINCH: usize = 28;
-pub const SIGIO: usize = 29;
-pub const SIGPOLL: usize = 29;
-pub const SIGPWR: usize = 30;
-pub const SIGSYS: usize = 31;
-pub const SIGUNUSED: usize = SIGSYS;
+#[no_mangle] pub static SIGHUP: usize = 1;
+#[no_mangle] pub static SIGINT: usize = 2;
+#[no_mangle] pub static SIGQUIT: usize = 3;
+#[no_mangle] pub static SIGILL: usize = 4;
+#[no_mangle] pub static SIGTRAP: usize = 5;
+#[no_mangle] pub static SIGABRT: usize = 6;
+#[no_mangle] pub static SIGIOT: usize = 6;
+#[no_mangle] pub static SIGBUS: usize = 7;
+#[no_mangle] pub static SIGFPE: usize = 8;
+#[no_mangle] pub static SIGKILL: usize = 9;
+#[no_mangle] pub static SIGUSR1: usize = 10;
+#[no_mangle] pub static SIGSEGV: usize = 11;
+#[no_mangle] pub static SIGUSR2: usize = 12;
+#[no_mangle] pub static SIGPIPE: usize = 13;
+#[no_mangle] pub static SIGALRM: usize = 14;
+#[no_mangle] pub static SIGTERM: usize = 15;
+#[no_mangle] pub static SIGSTKFLT: usize = 16;
+#[no_mangle] pub static SIGCHLD: usize = 17;
+#[no_mangle] pub static SIGCONT: usize = 18;
+#[no_mangle] pub static SIGSTOP: usize = 19;
+#[no_mangle] pub static SIGTSTP: usize = 20;
+#[no_mangle] pub static SIGTTIN: usize = 21;
+#[no_mangle] pub static SIGTTOU: usize = 22;
+#[no_mangle] pub static SIGURG: usize = 23;
+#[no_mangle] pub static SIGXCPU: usize = 24;
+#[no_mangle] pub static SIGXFSZ: usize = 25;
+#[no_mangle] pub static SIGVTALRM: usize = 26;
+#[no_mangle] pub static SIGPROF: usize = 27;
+#[no_mangle] pub static SIGWINCH: usize = 28;
+#[no_mangle] pub static SIGIO: usize = 29;
+#[no_mangle] pub static SIGPOLL: usize = 29;
+#[no_mangle] pub static SIGPWR: usize = 30;
+#[no_mangle] pub static SIGSYS: usize = 31;
+#[no_mangle] pub static SIGUNUSED: usize = 31;
 
-pub const SA_NOCLDSTOP: usize = 1;
-pub const SA_NOCLDWAIT: usize = 2;
-pub const SA_SIGINFO: usize = 4;
-pub const SA_ONSTACK: usize = 0x08000000;
-pub const SA_RESTART: usize = 0x10000000;
-pub const SA_NODEFER: usize = 0x40000000;
-pub const SA_RESETHAND: usize = 0x80000000;
-pub const SA_RESTORER: usize = 0x04000000;
+#[no_mangle] pub static SA_NOCLDSTOP: usize = 1;
+#[no_mangle] pub static SA_NOCLDWAIT: usize = 2;
+#[no_mangle] pub static SA_SIGINFO: usize = 4;
+#[no_mangle] pub static SA_ONSTACK: usize = 0x08000000;
+#[no_mangle] pub static SA_RESTART: usize = 0x10000000;
+#[no_mangle] pub static SA_NODEFER: usize = 0x40000000;
+#[no_mangle] pub static SA_RESETHAND: usize = 0x80000000;
+#[no_mangle] pub static SA_RESTORER: usize = 0x04000000;
diff --git a/src/signal/src/redox.rs b/src/signal/src/redox.rs
index b5108b5a..6abede5f 100644
--- a/src/signal/src/redox.rs
+++ b/src/signal/src/redox.rs
@@ -3,42 +3,42 @@ pub struct sys_sigset_t {
     pub bits: [u64; 2],
 }
 
-pub const SIGHUP: usize = 1;
-pub const SIGINT: usize = 2;
-pub const SIGQUIT: usize = 3;
-pub const SIGILL: usize = 4;
-pub const SIGTRAP: usize = 5;
-pub const SIGBUS: usize = 7;
-pub const SIGFPE: usize = 8;
-pub const SIGKILL: usize = 9;
-pub const SIGUSR1: usize = 10;
-pub const SIGSEGV: usize = 11;
-pub const SIGUSR2: usize = 12;
-pub const SIGPIPE: usize = 13;
-pub const SIGALRM: usize = 14;
-pub const SIGTERM: usize = 15;
-pub const SIGSTKFLT: usize = 16;
-pub const SIGCHLD: usize = 17;
-pub const SIGCONT: usize = 18;
-pub const SIGSTOP: usize = 19;
-pub const SIGTSTP: usize = 20;
-pub const SIGTTIN: usize = 21;
-pub const SIGTTOU: usize = 22;
-pub const SIGURG: usize = 23;
-pub const SIGXCPU: usize = 24;
-pub const SIGXFSZ: usize = 25;
-pub const SIGVTALRM: usize = 26;
-pub const SIGPROF: usize = 27;
-pub const SIGWINCH: usize = 28;
-pub const SIGIO: usize = 29;
-pub const SIGPWR: usize = 30;
-pub const SIGSYS: usize = 31;
+#[no_mangle] pub static SIGHUP: usize = 1;
+#[no_mangle] pub static SIGINT: usize = 2;
+#[no_mangle] pub static SIGQUIT: usize = 3;
+#[no_mangle] pub static SIGILL: usize = 4;
+#[no_mangle] pub static SIGTRAP: usize = 5;
+#[no_mangle] pub static SIGBUS: usize = 7;
+#[no_mangle] pub static SIGFPE: usize = 8;
+#[no_mangle] pub static SIGKILL: usize = 9;
+#[no_mangle] pub static SIGUSR1: usize = 10;
+#[no_mangle] pub static SIGSEGV: usize = 11;
+#[no_mangle] pub static SIGUSR2: usize = 12;
+#[no_mangle] pub static SIGPIPE: usize = 13;
+#[no_mangle] pub static SIGALRM: usize = 14;
+#[no_mangle] pub static SIGTERM: usize = 15;
+#[no_mangle] pub static SIGSTKFLT: usize = 16;
+#[no_mangle] pub static SIGCHLD: usize = 17;
+#[no_mangle] pub static SIGCONT: usize = 18;
+#[no_mangle] pub static SIGSTOP: usize = 19;
+#[no_mangle] pub static SIGTSTP: usize = 20;
+#[no_mangle] pub static SIGTTIN: usize = 21;
+#[no_mangle] pub static SIGTTOU: usize = 22;
+#[no_mangle] pub static SIGURG: usize = 23;
+#[no_mangle] pub static SIGXCPU: usize = 24;
+#[no_mangle] pub static SIGXFSZ: usize = 25;
+#[no_mangle] pub static SIGVTALRM: usize = 26;
+#[no_mangle] pub static SIGPROF: usize = 27;
+#[no_mangle] pub static SIGWINCH: usize = 28;
+#[no_mangle] pub static SIGIO: usize = 29;
+#[no_mangle] pub static SIGPWR: usize = 30;
+#[no_mangle] pub static SIGSYS: usize = 31;
 
-pub const SA_NOCLDSTOP: usize = 0x00000001;
-pub const SA_NOCLDWAIT: usize = 0x00000002;
-pub const SA_SIGINFO: usize = 0x00000004;
-pub const SA_RESTORER: usize = 0x04000000;
-pub const SA_ONSTACK: usize = 0x08000000;
-pub const SA_RESTART: usize = 0x10000000;
-pub const SA_NODEFER: usize = 0x40000000;
-pub const SA_RESETHAND: usize = 0x80000000;
+#[no_mangle] pub static SA_NOCLDSTOP: usize = 0x00000001;
+#[no_mangle] pub static SA_NOCLDWAIT: usize = 0x00000002;
+#[no_mangle] pub static SA_SIGINFO: usize = 0x00000004;
+#[no_mangle] pub static SA_RESTORER: usize = 0x04000000;
+#[no_mangle] pub static SA_ONSTACK: usize = 0x08000000;
+#[no_mangle] pub static SA_RESTART: usize = 0x10000000;
+#[no_mangle] pub static SA_NODEFER: usize = 0x40000000;
+#[no_mangle] pub static SA_RESETHAND: usize = 0x80000000;
-- 
GitLab