Index: kernel/generic/include/lib/memfnc.h
===================================================================
--- kernel/generic/include/lib/memfnc.h	(revision ed88c8e9e48e792fdd0df46568e33e36eb624db3)
+++ kernel/generic/include/lib/memfnc.h	(revision 47be5121774eb4440e3c88b9bfdac20ed2c047d9)
@@ -51,4 +51,7 @@
     __attribute__((nonnull(1, 2)))
     ATTRIBUTE_OPTIMIZE("-fno-tree-loop-distribute-patterns") DO_NOT_DISCARD;
+extern int memcmp(const void *, const void *, size_t len)
+    __attribute__((nonnull(1, 2)))
+    ATTRIBUTE_OPTIMIZE("-fno-tree-loop-distribute-patterns") DO_NOT_DISCARD;
 
 #define alloca(size) __builtin_alloca((size))
Index: kernel/generic/include/mem.h
===================================================================
--- kernel/generic/include/mem.h	(revision ed88c8e9e48e792fdd0df46568e33e36eb624db3)
+++ kernel/generic/include/mem.h	(revision 47be5121774eb4440e3c88b9bfdac20ed2c047d9)
@@ -48,4 +48,5 @@
 #define memset(dst, val, cnt)  __builtin_memset((dst), (val), (cnt))
 #define memcpy(dst, src, cnt)  __builtin_memcpy((dst), (src), (cnt))
+#define memcmp(s1, s2, cnt)    __builtin_memcmp((s1), (s2), (cnt))
 
 extern void memsetb(void *, size_t, uint8_t)
