diff --git a/repos/libports/include/libc/allocator.h b/repos/libports/include/libc/allocator.h
new file mode 100644
index 0000000000..eb67284033
--- /dev/null
+++ b/repos/libports/include/libc/allocator.h
@@ -0,0 +1,43 @@
+/*
+ * \brief Genode::Allocator that uses the libc's global heap
+ * \author Norman Feske
+ * \date 2017-01-31
+ */
+
+/*
+ * Copyright (C) 2017 Genode Labs GmbH
+ *
+ * This file is part of the Genode OS framework, which is distributed
+ * under the terms of the GNU General Public License version 2.
+ */
+
+#ifndef _INCLUDE__LIBC__ALLOCATOR_H_
+#define _INCLUDE__LIBC__ALLOCATOR_H_
+
+/* Genode includes */
+#include
+
+/* libc includes */
+#include
+
+namespace Libc { struct Allocator; }
+
+
+struct Libc::Allocator : Genode::Allocator
+{
+ typedef Genode::size_t size_t;
+
+ bool alloc(size_t size, void **out_addr) override
+ {
+ *out_addr = malloc(size);
+ return true;
+ }
+
+ void free(void *addr, size_t size) override { ::free(addr); }
+
+ bool need_size_for_free() const override { return false; }
+
+ size_t overhead(size_t size) const override { return 0; }
+};
+
+#endif /* _INCLUDE__LIBC__ALLOCATOR_H_ */