[CRIU] [PATCH 2/3] Use rlim_t where appropriate

Kir Kolyshkin kir at openvz.org
Thu Nov 3 16:39:40 PDT 2016


I got the following then trying to compile CRIU on ARM with clang:

> criu/cr-restore.c:2476:22: error: implicit conversion from 'unsigned
> long long' to 'unsigned long' changes value from 18446744073709551615 to
> 4294967295 [-Werror,-Wconstant-conversion]
>         return ival == -1 ? RLIM_INFINITY : ival;
>         ~~~~~~              ^~~~~~~~~~~~~
> /usr/include/arm-linux-gnueabihf/bits/resource.h:117:24: note: expanded
> from macro 'RLIM_INFINITY'
> # define RLIM_INFINITY 0xffffffffffffffffuLL
>                        ^~~~~~~~~~~~~~~~~~~~~
> 1 error generated.

Fix by using provided rlim_t type in this and similar places.

Signed-off-by: Kir Kolyshkin <kir at openvz.org>
---
 criu/cr-dump.c    | 2 +-
 criu/cr-restore.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/criu/cr-dump.c b/criu/cr-dump.c
index 955ba97..f0f74c3 100644
--- a/criu/cr-dump.c
+++ b/criu/cr-dump.c
@@ -309,7 +309,7 @@ static int dump_task_fs(pid_t pid, struct parasite_dump_misc *misc, struct cr_im
 	return pb_write_one(img_from_set(imgset, CR_FD_FS), &fe, PB_FS);
 }
 
-static inline u_int64_t encode_rlim(unsigned long val)
+static inline rlim_t encode_rlim(rlim_t val)
 {
 	return val == RLIM_INFINITY ? -1 : val;
 }
diff --git a/criu/cr-restore.c b/criu/cr-restore.c
index 3abdea8..19a714f 100644
--- a/criu/cr-restore.c
+++ b/criu/cr-restore.c
@@ -2471,7 +2471,7 @@ static int prep_sched_info(struct rst_sched_param *sp, ThreadCoreEntry *tc)
 	return 0;
 }
 
-static unsigned long decode_rlim(u_int64_t ival)
+static rlim_t decode_rlim(rlim_t ival)
 {
 	return ival == -1 ? RLIM_INFINITY : ival;
 }
-- 
2.7.4



More information about the CRIU mailing list