+--- mrd6-0.9.6.orig/src/log.cpp
++++ mrd6-0.9.6/src/log.cpp
+@@ -667,3 +667,12 @@
+ os.nprintf(32, "%p", val);
+ }
+
++#ifdef __s390__
++const char *stream_type_format_parameter(size_t) {
++ return "u";
++}
++
++void stream_push_formated_type(base_stream &os, size_t val) {
++ os.nprintf(32, "%z", val);
++}
++#endif
+--- mrd6-0.9.6.orig/src/mrd.cpp
++++ mrd6-0.9.6/src/mrd.cpp
+@@ -44,6 +44,7 @@
+ #include <cstdarg>
+ #include <cstdlib>
+ #include <errno.h>
++#include <climits>
+
+ #include <unistd.h>
+ #include <fcntl.h>
+@@ -2338,7 +2339,8 @@
+
+ out.xprintf("Uptime: %{duration}\n", time_duration((time(0) - m_startup) * 1000));
+ out.xprintf("Performed tasks: %u (spent %llu ms)\n", m_tasks_stat, m_tasks_time_spent);
+- out.xprintf("Registered sockets: %u reading, %u writing\n", m_read.size(), m_write.size());
++ out.xprintf("Registered sockets: %u reading, %u writing\n",
++ (uint32_t)m_read.size(), (uint32_t)m_write.size());
+ out.xprintf("MRIB prefix count: %u\n", mrib().registry_prefix_count());
+ out.xprintf("Interface count: %u\n", m_intflist.size());
+ out.xprintf("Group state count: %u\n", m_grplist.size());
+--- mrd6-0.9.6.orig/src/bgp/bgp.cpp
++++ mrd6-0.9.6/src/bgp/bgp.cpp
+@@ -35,6 +35,7 @@
+ #include <fcntl.h>
+ #include <errno.h>
+ #include <unistd.h>
++#include <limits.h>
+
+ #include <map>
+
+--- mrd6-0.9.6.orig/src/linux/mrd_components.cpp
++++ mrd6-0.9.6/src/linux/mrd_components.cpp
+@@ -92,8 +92,6 @@
+ #if defined(__GLIBC__)
+ #if defined(__i386__)
+ return (void *)base->uc_mcontext.gregs[REG_EIP];
+-#elif defined(__mips__)
+- return (void *)base->uc_mcontext.gpregs[CTX_EPC];
+ #endif
+ #endif
+ return 0;
+--- mrd6-0.9.6.orig/include/mrd/log.h
++++ mrd6-0.9.6/include/mrd/log.h
+@@ -53,6 +53,12 @@
+ void stream_push_formated_type(base_stream &, const char *val);
+ void stream_push_formated_type(base_stream &, const void *val);
+
++
++#ifdef __s390__
++const char *stream_type_format_parameter(size_t);
++void stream_push_formated_type(base_stream &, size_t val);
++#endif
++
+ /*!
+ * base log stream
+ */