[CRIU] [PATCH 16/23] restorer.c: rm unneded struct init

Kir Kolyshkin kir at openvz.org
Tue Oct 11 18:46:54 PDT 2016


This 'struct timespec' initialization is non needed as we call
clock_gettime() right away which is supposed to fill it in.

The real reason of removing this init is when compiled by clang
with -O0 etc (i.e. compiler flags set when GCOV=1 env var is present),
clang inserts a call to memset to initialize the structure. This,
of course, leads to "compel piegen" complaining:

	Unexpected undefined symbol: `memset'. External symbol in PIE?

One way of solving it would be to provide a memset() which will call
builtin_memset(), or a simple C implemenation. But as this is the only
place that triggers such a call to memset(), and this initialization
is not really needed, it's easier just to remove it.

Now, there might be more cases like this in the future, but for now
we are good.

Signed-off-by: Kir Kolyshkin <kir at openvz.org>
---
 criu/pie/restorer.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/criu/pie/restorer.c b/criu/pie/restorer.c
index 37e9500..3ac34f5 100644
--- a/criu/pie/restorer.c
+++ b/criu/pie/restorer.c
@@ -865,7 +865,7 @@ static int timerfd_arm(struct task_restore_args *args)
 		pr_debug("timerfd: arm for fd %d (%d)\n", t->fd, i);
 
 		if (t->settime_flags & TFD_TIMER_ABSTIME) {
-			struct timespec ts = { };
+			struct timespec ts;
 
 			/*
 			 * We might need to adjust value because the checkpoint
-- 
2.7.4



More information about the CRIU mailing list