diff --git a/repos/base-foc/src/core/include/platform_pd.h b/repos/base-foc/src/core/include/platform_pd.h
index 67754eb082..e15496c4fc 100644
--- a/repos/base-foc/src/core/include/platform_pd.h
+++ b/repos/base-foc/src/core/include/platform_pd.h
@@ -31,6 +31,7 @@
/* base-internal includes */
#include
+#include
/* Fiasco.OC includes */
namespace Fiasco {
@@ -57,7 +58,7 @@ namespace Genode {
addr_t utcb_area_start()
{
- return stack_area_virtual_base() +
+ return NON_CORE_STACK_AREA_ADDR +
THREAD_MAX*stack_virtual_size();
}
diff --git a/repos/base/src/include/base/internal/non_core_stack_area_addr.h b/repos/base/src/include/base/internal/non_core_stack_area_addr.h
new file mode 100644
index 0000000000..1cd52f6a3e
--- /dev/null
+++ b/repos/base/src/include/base/internal/non_core_stack_area_addr.h
@@ -0,0 +1,23 @@
+/*
+ * \brief Definition of the stack area outside of core
+ * \author Norman Feske
+ * \date 2019-01-09
+ */
+
+/*
+ * Copyright (C) 2019 Genode Labs GmbH
+ *
+ * This file is part of the Genode OS framework, which is distributed
+ * under the terms of the GNU Affero General Public License version 3.
+ */
+
+#ifndef _INCLUDE__BASE__INTERNAL__NON_CORE_STACK_AREA_ADDR_H_
+#define _INCLUDE__BASE__INTERNAL__NON_CORE_STACK_AREA_ADDR_H_
+
+namespace Genode
+{
+ static constexpr addr_t NON_CORE_STACK_AREA_ADDR = 0x40000000UL;
+}
+
+#endif /* _INCLUDE__BASE__INTERNAL__NON_CORE_STACK_AREA_ADDR_H_ */
+
diff --git a/repos/base/src/lib/base/stack_area_addr.cc b/repos/base/src/lib/base/stack_area_addr.cc
index 11f7333e71..f919db92fb 100644
--- a/repos/base/src/lib/base/stack_area_addr.cc
+++ b/repos/base/src/lib/base/stack_area_addr.cc
@@ -13,5 +13,6 @@
/* base-internal includes */
#include
+#include
-Genode::addr_t Genode::stack_area_virtual_base() { return 0x40000000UL; }
+Genode::addr_t Genode::stack_area_virtual_base() { return NON_CORE_STACK_AREA_ADDR; }