diff --git a/repos/base-hw/lib/mk/base-hw.mk b/repos/base-hw/lib/mk/base-hw.mk
index 9657280da..dae3cbdfc 100644
--- a/repos/base-hw/lib/mk/base-hw.mk
+++ b/repos/base-hw/lib/mk/base-hw.mk
@@ -4,5 +4,6 @@ SRC_CC += thread_start.cc
SRC_CC += env.cc
SRC_CC += capability.cc
SRC_CC += cache.cc
+SRC_CC += raw_write_string.cc
LIBS += startup-hw base-hw-common
diff --git a/repos/base-hw/src/core/core_log.cc b/repos/base-hw/src/core/core_log.cc
index 6db0596d1..b42becce2 100644
--- a/repos/base-hw/src/core/core_log.cc
+++ b/repos/base-hw/src/core/core_log.cc
@@ -17,6 +17,7 @@
/* base-internal includes */
#include
+#include
#include
#include
@@ -44,3 +45,7 @@ void Genode::Core_log::out(char const c) { out_char(c); }
void Kernel::log(char const c) { out_char(c); }
+
+
+void Genode::raw_write_string(char const *str) {
+ while (char c = *str++) out_char(c); }
diff --git a/repos/base-hw/src/include/base/internal/raw_write_string.h b/repos/base-hw/src/include/base/internal/raw_write_string.h
index eb95bc999..2fddf8abe 100644
--- a/repos/base-hw/src/include/base/internal/raw_write_string.h
+++ b/repos/base-hw/src/include/base/internal/raw_write_string.h
@@ -14,15 +14,6 @@
#ifndef _INCLUDE__BASE__INTERNAL__RAW_WRITE_STRING_H_
#define _INCLUDE__BASE__INTERNAL__RAW_WRITE_STRING_H_
-#include
-
-namespace Genode {
-
- void raw_write_string(char const *str)
- {
- while (char c = *str++)
- Kernel::print_char(c);
- }
-}
+namespace Genode { void raw_write_string(char const *str); }
#endif /* _INCLUDE__BASE__INTERNAL__RAW_WRITE_STRING_H_ */
diff --git a/repos/base-hw/src/lib/base/raw_write_string.cc b/repos/base-hw/src/lib/base/raw_write_string.cc
new file mode 100644
index 000000000..726f7f6ab
--- /dev/null
+++ b/repos/base-hw/src/lib/base/raw_write_string.cc
@@ -0,0 +1,18 @@
+/*
+ * \brief Kernel-specific raw-output back end
+ * \author Norman Feske
+ * \date 2016-03-08
+ */
+
+/*
+ * Copyright (C) 2016 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.
+ */
+
+#include
+#include
+
+void Genode::raw_write_string(char const *str) {
+ while (char c = *str++) Kernel::print_char(c); }