From: Matija Skala Date: Fri, 19 May 2017 12:36:12 +0000 (+0200) Subject: timesync/timesyncd-manager: fix format-specifier issues X-Git-Tag: v234~185^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3bd7ef833caae7431a9c50450ce7b303234d45eb;p=thirdparty%2Fsystemd.git timesync/timesyncd-manager: fix format-specifier issues timex::time::tv_usec and timex::freq can have different sizes depending on the host architecture. On x32 in particular, it is 8 bytes long while the long int type is only 4 bytes long. Hence, using li as a format specifier will trigger a format error. Thus, introduce a new format specifier PRI_TIMEX which is defined as PRIi64 on x32 and li everywhere else. --- diff --git a/src/basic/format-util.h b/src/basic/format-util.h index 39a185f59b4..ae42a8f89e8 100644 --- a/src/basic/format-util.h +++ b/src/basic/format-util.h @@ -54,6 +54,12 @@ # error Unknown time_t size #endif +#if defined __x86_64__ && defined __ILP32__ +# define PRI_TIMEX PRIi64 +#else +# define PRI_TIMEX "li" +#endif + #if SIZEOF_RLIM_T == 8 # define RLIM_FMT "%" PRIu64 #elif SIZEOF_RLIM_T == 4 diff --git a/src/timesync/timesyncd-manager.c b/src/timesync/timesyncd-manager.c index 6a6c1577c64..11c495e2918 100644 --- a/src/timesync/timesyncd-manager.c +++ b/src/timesync/timesyncd-manager.c @@ -379,9 +379,9 @@ static int manager_adjust_clock(Manager *m, double offset, int leap_sec) { log_debug(" status : %04i %s\n" " time now : %li.%03"PRI_USEC"\n" - " constant : %li\n" + " constant : %"PRI_TIMEX"\n" " offset : %+.3f sec\n" - " freq offset : %+li (%i ppm)\n", + " freq offset : %+"PRI_TIMEX" (%i ppm)\n", tmx.status, tmx.status & STA_UNSYNC ? "unsync" : "sync", tmx.time.tv_sec, tmx.time.tv_usec / NSEC_PER_MSEC, tmx.constant,