diff --git a/repos/dde_rump/include/util/random.h b/repos/dde_rump/include/util/random.h
index 56e6433a6..5e4672ec0 100644
--- a/repos/dde_rump/include/util/random.h
+++ b/repos/dde_rump/include/util/random.h
@@ -16,6 +16,6 @@
#include
-int rumpuser_getrandom_backend(void *buf, Genode::size_t buflen, int flags, __SIZE_TYPE__ *retp);
+int rumpuser_getrandom_backend(void *buf, Genode::size_t buflen, int flags, Genode::size_t *retp);
#endif /* _INCLUDE__UTIL__RANDOM_H_ */
diff --git a/repos/dde_rump/run/libc_vfs_ext2.run b/repos/dde_rump/run/libc_vfs_ext2.run
index 415eaa42e..e931005c1 100644
--- a/repos/dde_rump/run/libc_vfs_ext2.run
+++ b/repos/dde_rump/run/libc_vfs_ext2.run
@@ -60,12 +60,11 @@ append config {
-
-
-
-
-
-
+
+
+
+
+
}
diff --git a/repos/dde_rump/run/libc_vfs_fs_ext2.run b/repos/dde_rump/run/libc_vfs_fs_ext2.run
index e074fe618..1a6f2cca8 100644
--- a/repos/dde_rump/run/libc_vfs_fs_ext2.run
+++ b/repos/dde_rump/run/libc_vfs_fs_ext2.run
@@ -69,12 +69,11 @@ append config {
-
-
-
-
-
-
+
+
+
+
+
}
diff --git a/repos/dde_rump/src/lib/rump/hypercall.cc b/repos/dde_rump/src/lib/rump/hypercall.cc
index e6a3b980f..b66fb1a11 100644
--- a/repos/dde_rump/src/lib/rump/hypercall.cc
+++ b/repos/dde_rump/src/lib/rump/hypercall.cc
@@ -318,9 +318,14 @@ int rumpuser_clock_sleep(int enum_rumpclock, int64_t sec, long nsec)
** Random pool **
*****************/
-int rumpuser_getrandom(void *buf, size_t buflen, int flags, __SIZE_TYPE__ *retp)
+int rumpuser_getrandom(void *buf, size_t buflen, int flags, size_t *retp)
{
- return rumpuser_getrandom_backend(buf, buflen, flags, retp);
+ /*
+ * Cast retp to Genode::size_t to prevent compiler error because
+ * the type of rump's size_t is int on 32 bit and long 64 bit archs.
+ */
+ return rumpuser_getrandom_backend(buf, buflen, flags,
+ (Genode::size_t *)retp);
}
diff --git a/repos/dde_rump/src/server/rump_cgd/random.cc b/repos/dde_rump/src/server/rump_cgd/random.cc
index 18a55b3e2..7ee4b23d9 100644
--- a/repos/dde_rump/src/server/rump_cgd/random.cc
+++ b/repos/dde_rump/src/server/rump_cgd/random.cc
@@ -56,9 +56,8 @@ struct Entropy
};
-int rumpuser_getrandom_backend(void *buf, size_t buflen, int flags, __SIZE_TYPE__ *retp)
+int rumpuser_getrandom_backend(void *buf, size_t buflen, int flags, Genode::size_t *retp)
{
*retp = Entropy::e()->read((char *)buf, buflen);
- *retp = buflen;
return 0;
}
diff --git a/repos/dde_rump/src/server/rump_fs/random.cc b/repos/dde_rump/src/server/rump_fs/random.cc
index 4658a07b1..142de81d2 100644
--- a/repos/dde_rump/src/server/rump_fs/random.cc
+++ b/repos/dde_rump/src/server/rump_fs/random.cc
@@ -14,7 +14,7 @@
#include
-int rumpuser_getrandom_backend(void *buf, Genode::size_t buflen, int flags, __SIZE_TYPE__ *retp)
+int rumpuser_getrandom_backend(void *buf, Genode::size_t buflen, int flags, Genode::size_t *retp)
{
*retp = buflen;
return 0;