Make sig_atomic_t() a global declaration

diff --git a/include/arch/ia64/klibc/archsignal.h b/include/arch/ia64/klibc/archsignal.h
index 9ab0ed7..5b01f19 100644
--- a/include/arch/ia64/klibc/archsignal.h
+++ b/include/arch/ia64/klibc/archsignal.h
@@ -28,6 +28,4 @@
 #define sa_handler      _u._sa_handler
 #define sa_sigaction    _u._sa_sigaction
 
-typedef int sig_atomic_t;
-
 #endif
diff --git a/include/signal.h b/include/signal.h
index 62c5083..f9eebb2 100644
--- a/include/signal.h
+++ b/include/signal.h
@@ -13,6 +13,12 @@
 
 #include <klibc/archsignal.h>
 
+/* glibc seems to use sig_atomic_t as "int" pretty much on all architectures.
+   Do the same, but allow the architecture to override. */
+#ifdef _KLIBC_HAS_ARCH_SIG_ATOMIC_T
+typedef int sig_atomic_t;
+#endif
+
 /* Some architectures don't define these */
 #ifndef SA_RESETHAND
 # define SA_RESETHAND SA_ONESHOT
diff --git a/klibc/arch/ia64/include/klibc/archsignal.h b/klibc/arch/ia64/include/klibc/archsignal.h
index 9ab0ed7..5b01f19 100644
--- a/klibc/arch/ia64/include/klibc/archsignal.h
+++ b/klibc/arch/ia64/include/klibc/archsignal.h
@@ -28,6 +28,4 @@
 #define sa_handler      _u._sa_handler
 #define sa_sigaction    _u._sa_sigaction
 
-typedef int sig_atomic_t;
-
 #endif
diff --git a/klibc/include/signal.h b/klibc/include/signal.h
index 62c5083..f9eebb2 100644
--- a/klibc/include/signal.h
+++ b/klibc/include/signal.h
@@ -13,6 +13,12 @@
 
 #include <klibc/archsignal.h>
 
+/* glibc seems to use sig_atomic_t as "int" pretty much on all architectures.
+   Do the same, but allow the architecture to override. */
+#ifdef _KLIBC_HAS_ARCH_SIG_ATOMIC_T
+typedef int sig_atomic_t;
+#endif
+
 /* Some architectures don't define these */
 #ifndef SA_RESETHAND
 # define SA_RESETHAND SA_ONESHOT