summaryrefslogtreecommitdiff
path: root/src/basic/format-util.h
diff options
context:
space:
mode:
authorMatija Skala <mskala@gmx.com>2017-05-19 14:36:12 +0200
committerSven Eden <yamakuzure@gmx.net>2017-07-25 09:46:52 +0200
commitbb81dc92d38d5b1336ad842ef5f43f178aafcbb5 (patch)
tree01e16825ace1340bbe65f679165c0e5b57007533 /src/basic/format-util.h
parentf014d825983d55ade9a6edf2cf46c4b20b636234 (diff)
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.
Diffstat (limited to 'src/basic/format-util.h')
-rw-r--r--src/basic/format-util.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/basic/format-util.h b/src/basic/format-util.h
index 39a185f59..ae42a8f89 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