diff --git a/libc-test/build.rs b/libc-test/build.rs
index a975b4d49f5404f068df9f6c5f4c23ad97458f26..57ae4aa19ca9fb7a7800bd21ded1ed0cdb735290 100644
--- a/libc-test/build.rs
+++ b/libc-test/build.rs
@@ -1300,6 +1300,7 @@ fn test_android(target: &str) {
                "sys/time.h",
                "sys/times.h",
                "sys/types.h",
+               "sys/ucontext.h",
                "sys/uio.h",
                "sys/un.h",
                "sys/utsname.h",
@@ -1390,10 +1391,15 @@ fn test_android(target: &str) {
     });
 
     cfg.skip_struct(move |ty| {
+        if ty.starts_with("__c_anonymous_") {
+            return true;
+        }
         match ty {
             // These are tested as part of the linux_fcntl tests since there are
             // header conflicts when including them with all the other structs.
             "termios2" => true,
+            // uc_sigmask and uc_sigmask64 of ucontext_t are an anonymous union
+            "ucontext_t" => true,
 
             _ => false,
         }