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