diff --git a/include/bits/assert.h b/include/bits/assert.h
index ff1cad697eb458722ae4d303e14d748d5c265fd1..e415cdc80e7dc6204e7b7163e1723430a35c23ca 100644
--- a/include/bits/assert.h
+++ b/include/bits/assert.h
@@ -1,5 +1,7 @@
-#ifndef _BITS_ASSERT_H
-#define _BITS_ASSERT_H
+// Do not use include guard, to ensure assert is always defined
+#ifdef assert
+#undef assert
+#endif
 
 #ifdef NDEBUG
 # define assert(cond) (void) 0
@@ -7,5 +9,3 @@
 # define assert(cond) \
   ((void)((cond) || (__assert_fail(__func__, __FILE__, __LINE__, #cond), 0)))
 #endif
-
-#endif
diff --git a/src/header/assert/cbindgen.toml b/src/header/assert/cbindgen.toml
index d11acbb86afec947d4f545f41b7494bad7d986d7..2db3f66e2ccdb38d23b088864fd40c34490e406d 100644
--- a/src/header/assert/cbindgen.toml
+++ b/src/header/assert/cbindgen.toml
@@ -1,5 +1,6 @@
-sys_includes = ["bits/assert.h"]
+sys_includes = []
 include_guard = "_RELIBC_ASSERT_H"
+trailer = "#include <bits/assert.h>"
 language = "C"
 style = "Tag"
 no_includes = true