The format for printing various time elements are not working for 64bit times on a 32bit compile. ../git/yavta.c:2195:51: error: format '%ld' expects argument of type 'long int', but argument 8 has type '__time64_t' {aka 'long long int'} [-Werror=format=] 2195 | printf("%u (%u) [%c] %s %u %u B %ld.%06ld %ld.%06ld %.3f fps ts %s/%s\n", i, buf.index, | ~~^ | | | long int | %lld ...... 2199 | buf.timestamp.tv_sec, buf.timestamp.tv_usec, | ~~~~~~~~~~~~~~~~~~~~ | | | __time64_t {aka long long int} Change the formats to be lld/llu to accommodate the change for 32bit compiles. Signed-off-by: Ryan Eatmon <reatmon@xxxxxx> --- yavta.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/yavta.c b/yavta.c index 3bf82b3..0655311 100644 --- a/yavta.c +++ b/yavta.c @@ -2192,12 +2192,12 @@ static int video_do_capture(struct device *dev, unsigned int nframes, clock_gettime(CLOCK_MONOTONIC, &ts); get_ts_flags(buf.flags, &ts_type, &ts_source); - printf("%u (%u) [%c] %s %u %u B %ld.%06ld %ld.%06ld %.3f fps ts %s/%s\n", i, buf.index, + printf("%u (%u) [%c] %s %u %u B %lld.%06lld %lld.%06ld %.3f fps ts %s/%s\n", i, buf.index, (buf.flags & V4L2_BUF_FLAG_ERROR) ? 'E' : '-', v4l2_field_name(buf.field), buf.sequence, video_buffer_bytes_used(dev, &buf), - buf.timestamp.tv_sec, buf.timestamp.tv_usec, - ts.tv_sec, ts.tv_nsec/1000, fps, + (long long int) buf.timestamp.tv_sec, (long long int) buf.timestamp.tv_usec, + (long long int) ts.tv_sec, ts.tv_nsec/1000, fps, ts_type, ts_source); last = buf.timestamp; @@ -2254,8 +2254,8 @@ static int video_do_capture(struct device *dev, unsigned int nframes, bps = size/(ts.tv_nsec/1000.0+1000000.0*ts.tv_sec)*1000000.0; fps = i/(ts.tv_nsec/1000.0+1000000.0*ts.tv_sec)*1000000.0; - printf("Captured %u frames in %lu.%06lu seconds (%f fps, %f B/s).\n", - i, ts.tv_sec, ts.tv_nsec/1000, fps, bps); + printf("Captured %u frames in %llu.%06lu seconds (%f fps, %f B/s).\n", + i, (long long unsigned int) ts.tv_sec, ts.tv_nsec/1000, fps, bps); done: video_free_buffers(dev); -- 2.17.1