diff --git a/libc/sem.cc b/libc/sem.cc
index 6801f8ef838d7bd0a3fc2211d4ffa2ff23131606..dcc10d88572cdc87623081ca86ad4d4a0caa9362 100644
--- a/libc/sem.cc
+++ b/libc/sem.cc
@@ -29,6 +29,12 @@ int sem_init(sem_t* s, int pshared, unsigned val)
     return 0;
 }
 
+int sem_destroy(sem_t *s)
+{
+    from_libc(s).~indirect_semaphore();
+    return 0;
+}
+
 int sem_post(sem_t* s)
 {
     from_libc(s)->post();