diff --git a/repos/libports/lib/mk/ada.mk b/repos/libports/lib/mk/ada.mk
index ee819678ad..2cad6c1e26 100644
--- a/repos/libports/lib/mk/ada.mk
+++ b/repos/libports/lib/mk/ada.mk
@@ -21,7 +21,7 @@ CUSTOM_ADA_INCLUDE = -I- -I$(REP_DIR)/src/lib/ada/runtime -I$(ADA_RTS_SOURCE) -I
SRC_CC += a-except_c.cc s-soflin_c.cc a-exctab_c.cc
# C runtime glue code
-SRC_CC += s-secsta_c.cc
+SRC_CC += s-secsta_c.cc libc.cc
# Ada packages that implement runtime functionality
SRC_ADB += ss_utils.adb
diff --git a/repos/libports/src/lib/ada/runtimelib/libc.cc b/repos/libports/src/lib/ada/runtimelib/libc.cc
new file mode 100644
index 0000000000..04ea4941b3
--- /dev/null
+++ b/repos/libports/src/lib/ada/runtimelib/libc.cc
@@ -0,0 +1,10 @@
+#include
+#include
+
+extern "C" {
+
+ int memcmp(const void *s1, const void *s2, Genode::size_t n)
+ {
+ return Genode::memcmp(s1, s2, n);
+ }
+}