diff --git a/libc/include/signal.h b/libc/include/signal.h
index 6432c18..bcb58c2 100644
--- a/libc/include/signal.h
+++ b/libc/include/signal.h
@@ -29,29 +29,61 @@
 #define _SIGNAL_H_
 
 #include <sys/cdefs.h>
-#include <limits.h>		/* For LONG_BIT */
-#include <string.h>		/* For memset() */
 #include <sys/types.h>
-#include <asm/signal.h>
+#include <machine/signal.h>
+#include <machine/ucontext.h>
 
-#define __ARCH_SI_UID_T __kernel_uid32_t
-#include <asm/siginfo.h>
-#undef __ARCH_SI_UID_T
+#include <limits.h>             /* For LONG_BIT */
+#include <string.h>             /* For memset() */
 
 __BEGIN_DECLS
 
-typedef int sig_atomic_t;
-
-/* _NSIG is used by the SIGRTMAX definition under <asm/signal.h>, however
- * its definition is part of a #if __KERNEL__ .. #endif block in the original
- * kernel headers and is thus not part of our cleaned-up versions.
+/* Previous versions of <signal.h> didn't define 'struct sigcontext'. This
+ * has led client code to redefine the structure, sometimes in a custom and
+ * incompatible way.
  *
- * Looking at the current kernel sources, it is defined as 64 for all
- * architectures except for the 'mips' one which set it to 128.
+ * The __BIONIC_HAVE_STRUCT_SIGCONTEXT macro is defined in <sys/cdefs.h>
+ * to indicate that <signal.h> does indeed define the structure. For
+ * maximum source compatibility, client code should follow these guidelines:
+ *
+ *  - If client code is guaranteed to build against a recent NDK/platform
+ *    version, just include <signal.h> as usual, and use the
+ *    'struct sigcontext'.
+ *
+ *  - If client code wants to build against older NDK/platform versions,
+ *    and only uses 'struct sigcontext' without accessing _any_
+ *    of its fields, just always include <asm/sigcontext.h> on Android
+ *    to ensure maximum portability (i.e. to old platform/NDK releases).
+ *    As in:
+ *
+ *        #include <signal.h>
+ *        #ifdef __BIONIC__
+ *        #include <asm/sigcontext.h>
+ *        #endif
+ *
+ *  - Otherwise, if the client has a custom sigcontext definition and wants to
+ *    keep it to minimize source changes, use a macro trick as below to avoid
+ *    naming conflicts:
+ *
+ *        #include <signal.h>
+ *        #ifdef __BIONIC__
+ *        #  include <asm/sigcontext.h>
+ *        #  ifdef __BIONIC_HAVE_STRUCT_SIGCONTEXT
+ *        #    undef sigcontext
+ *        #    define sigcontext  my_custom_sigcontext
+ *        #  endif
+ *        #endif
  */
-#ifndef _NSIG
-#  define _NSIG  64
-#endif
+
+/* Similarly, previous versions of the C library didn't define ucontext_t
+ * and mcontext_t in <signal.h>, or <sys/ucontext.h>. Client code can check
+ * against the macro __BIONIC_HAVE_UCONTEXT_T to determine if it does.
+ *
+ * Beware, that does _not_ mean that <ucontext.h> and related functions are
+ * available.
+ */
+
+typedef int sig_atomic_t;
 
 extern const char * const sys_siglist[];
 extern const char * const sys_signame[];
diff --git a/libc/include/sys/cdefs.h b/libc/include/sys/cdefs.h
index ca81cb6..6bae25c 100644
--- a/libc/include/sys/cdefs.h
+++ b/libc/include/sys/cdefs.h
@@ -510,4 +510,12 @@
 #define __BIONIC_FORTIFY_UNKNOWN_SIZE ((size_t) -1)
 #endif
 
+/* Indicates to client code that <signal.h> now defines 'struct sigcontext'
+ * properly. See comments in <signal.h> */
+#define __BIONIC_HAVE_STRUCT_SIGCONTEXT  1
+
+/* Indicates to client code that <signal.h> now defines 'ucontext_t' */
+/* NOTE: That does not mean that <ucontext.h> is available! */
+#define __BIONIC_HAVE_UCONTEXT_T  1
+
 #endif /* !_SYS_CDEFS_H_ */
diff --git a/libc/include/sys/ucontext.h b/libc/include/sys/ucontext.h
new file mode 100644
index 0000000..8c7b3d7
--- /dev/null
+++ b/libc/include/sys/ucontext.h
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+#ifndef _SYS_UCONTEXT_H_
+#define _SYS_UCONTEXT_H_
+
+/* While not standard, this header is typically provided by GLibc and the
+ * BSD C library to provide for the definition of ucontext_t and mcontext_t,
+ * without the declarations of the deprecated *context() functions in
+ * <ucontext.h>.
+ *
+ * Client code that directly includes this file exists. Note that
+ * the better, POSIX-compliant, way to get these declarations is to include
+ * <signal.h>.
+ */
+
+#include <machine/ucontext.h>
+
+#endif /* _SYS_UCONTEXT_H_ */
diff --git a/libc/include/time.h b/libc/include/time.h
index e280e0a..f65ac4e 100644
--- a/libc/include/time.h
+++ b/libc/include/time.h
@@ -30,10 +30,7 @@
 
 #include <sys/cdefs.h>
 #include <sys/time.h>
-
-#define __ARCH_SI_UID_T __kernel_uid32_t
-#include <asm/siginfo.h>
-#undef __ARCH_SI_UID_T
+#include <machine/signal.h>  /* for struct sigevent */
 
 __BEGIN_DECLS
 
