diff --git a/third_party/ulib/musl/include/signal.h b/third_party/ulib/musl/include/signal.h
index c701f6d..b26c9b0 100644
--- a/third_party/ulib/musl/include/signal.h
+++ b/third_party/ulib/musl/include/signal.h
@@ -216,12 +216,8 @@
 #if defined(_XOPEN_SOURCE) || defined(_BSD_SOURCE) || defined(_GNU_SOURCE)
 int killpg(pid_t, int);
 int sigaltstack(const stack_t* __restrict, stack_t* __restrict);
-int sighold(int);
-int sigignore(int);
 int siginterrupt(int, int);
 int sigpause(int);
-int sigrelse(int);
-void (*sigset(int, void (*)(int)))(int);
 #define TRAP_BRKPT 1
 #define TRAP_TRACE 2
 #define POLL_IN 1
diff --git a/third_party/ulib/musl/musl-rules.mk b/third_party/ulib/musl/musl-rules.mk
index 0531569..25f789d 100644
--- a/third_party/ulib/musl/musl-rules.mk
+++ b/third_party/ulib/musl/musl-rules.mk
@@ -610,8 +610,6 @@
     $(LOCAL_DIR)/src/signal/sigdelset.c \
     $(LOCAL_DIR)/src/signal/sigemptyset.c \
     $(LOCAL_DIR)/src/signal/sigfillset.c \
-    $(LOCAL_DIR)/src/signal/sighold.c \
-    $(LOCAL_DIR)/src/signal/sigignore.c \
     $(LOCAL_DIR)/src/signal/siginterrupt.c \
     $(LOCAL_DIR)/src/signal/sigisemptyset.c \
     $(LOCAL_DIR)/src/signal/sigismember.c \
@@ -621,10 +619,8 @@
     $(LOCAL_DIR)/src/signal/sigpending.c \
     $(LOCAL_DIR)/src/signal/sigprocmask.c \
     $(LOCAL_DIR)/src/signal/sigqueue.c \
-    $(LOCAL_DIR)/src/signal/sigrelse.c \
     $(LOCAL_DIR)/src/signal/sigrtmax.c \
     $(LOCAL_DIR)/src/signal/sigrtmin.c \
-    $(LOCAL_DIR)/src/signal/sigset.c \
     $(LOCAL_DIR)/src/signal/sigsuspend.c \
     $(LOCAL_DIR)/src/signal/sigtimedwait.c \
     $(LOCAL_DIR)/src/signal/sigwait.c \
diff --git a/third_party/ulib/musl/src/signal/sighold.c b/third_party/ulib/musl/src/signal/sighold.c
deleted file mode 100644
index 5bdbd2c..0000000
--- a/third_party/ulib/musl/src/signal/sighold.c
+++ /dev/null
@@ -1,10 +0,0 @@
-#include <signal.h>
-
-int sighold(int sig) {
-    sigset_t mask;
-
-    sigemptyset(&mask);
-    if (sigaddset(&mask, sig) < 0)
-        return -1;
-    return sigprocmask(SIG_BLOCK, &mask, 0);
-}
diff --git a/third_party/ulib/musl/src/signal/sigignore.c b/third_party/ulib/musl/src/signal/sigignore.c
deleted file mode 100644
index 0e89778..0000000
--- a/third_party/ulib/musl/src/signal/sigignore.c
+++ /dev/null
@@ -1,10 +0,0 @@
-#include <signal.h>
-
-int sigignore(int sig) {
-    struct sigaction sa;
-
-    sigemptyset(&sa.sa_mask);
-    sa.sa_handler = SIG_IGN;
-    sa.sa_flags = 0;
-    return sigaction(sig, &sa, 0);
-}
diff --git a/third_party/ulib/musl/src/signal/sigrelse.c b/third_party/ulib/musl/src/signal/sigrelse.c
deleted file mode 100644
index 4840043..0000000
--- a/third_party/ulib/musl/src/signal/sigrelse.c
+++ /dev/null
@@ -1,10 +0,0 @@
-#include <signal.h>
-
-int sigrelse(int sig) {
-    sigset_t mask;
-
-    sigemptyset(&mask);
-    if (sigaddset(&mask, sig) < 0)
-        return -1;
-    return sigprocmask(SIG_UNBLOCK, &mask, 0);
-}
diff --git a/third_party/ulib/musl/src/signal/sigset.c b/third_party/ulib/musl/src/signal/sigset.c
deleted file mode 100644
index 4eefe53..0000000
--- a/third_party/ulib/musl/src/signal/sigset.c
+++ /dev/null
@@ -1,26 +0,0 @@
-#include <signal.h>
-
-void (*sigset(int sig, void (*handler)(int)))(int) {
-    struct sigaction sa, sa_old;
-    sigset_t mask;
-
-    sigemptyset(&mask);
-    if (sigaddset(&mask, sig) < 0)
-        return SIG_ERR;
-
-    if (handler == SIG_HOLD) {
-        if (sigaction(sig, 0, &sa_old) < 0)
-            return SIG_ERR;
-        if (sigprocmask(SIG_BLOCK, &mask, &mask) < 0)
-            return SIG_ERR;
-    } else {
-        sa.sa_handler = handler;
-        sa.sa_flags = 0;
-        sigemptyset(&sa.sa_mask);
-        if (sigaction(sig, &sa, &sa_old) < 0)
-            return SIG_ERR;
-        if (sigprocmask(SIG_UNBLOCK, &mask, &mask) < 0)
-            return SIG_ERR;
-    }
-    return sigismember(&mask, sig) ? SIG_HOLD : sa_old.sa_handler;
-}
