Skip to content

Commit da0ca7e

Browse files
committed
Avoid warning on 32bit
On 32bit arches where time_t is defined as long int and where sizeof(long)==sizeof(int), PRI_TIME is PRIu32 which is "u" and gcc warns about ignoring the long part of the integer type. There is no problem besides the warning. Upcast time_t to 64bit and get rid of PRI_TIME and configure checks udevadm-monitor.c: In function ‘print_device’: udevadm-monitor.c:49:16: warning: format ‘%u’ expects argument of type ‘unsigned int’, but argument 3 has type ‘__time_t’ {aka ‘long int’} [-Wformat=] 49 | printf("%-6s[%"PRI_TIME".%06ld] %-8s %s (%s)\n", | ^~~~~~~~ 50 | source, 51 | ts.tv_sec, ts.tv_nsec/1000, | ~~~~~~~~~ | | | __time_t {aka long int} In file included from ../../src/shared/macro.h:26, from udev.h:26, from udevadm-monitor.c:35: /usr/include/inttypes.h:104:19: note: format string is defined here 104 | # define PRIu32 "u"
1 parent 2c969a3 commit da0ca7e

3 files changed

Lines changed: 2 additions & 11 deletions

File tree

configure.ac

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,6 @@ AC_CHECK_SIZEOF(pid_t)
7979
AC_CHECK_SIZEOF(uid_t)
8080
AC_CHECK_SIZEOF(gid_t)
8181
AC_CHECK_SIZEOF(dev_t)
82-
AC_CHECK_SIZEOF(time_t)
8382
AC_CHECK_SIZEOF(rlim_t,,[[
8483
#include <sys/time.h>
8584
#include <sys/resource.h>]])

src/shared/formats-util.h

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -46,14 +46,6 @@
4646
# error Unknown gid_t size
4747
#endif
4848

49-
#if SIZEOF_TIME_T == 8
50-
# define PRI_TIME PRIi64
51-
#elif SIZEOF_TIME_T == 4
52-
# define PRI_TIME PRIu32
53-
#else
54-
# error Unknown time_t size
55-
#endif
56-
5749
#if SIZEOF_RLIM_T == 8
5850
# define RLIM_FMT "%" PRIu64
5951
#elif SIZEOF_RLIM_T == 4

src/udev/udevadm-monitor.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,9 @@ static void print_device(struct udev_device *device, const char *source, int pro
4646
struct timespec ts;
4747

4848
clock_gettime(CLOCK_MONOTONIC, &ts);
49-
printf("%-6s[%"PRI_TIME".%06ld] %-8s %s (%s)\n",
49+
printf("%-6s[%"PRIi64".%06ld] %-8s %s (%s)\n",
5050
source,
51-
ts.tv_sec, ts.tv_nsec/1000,
51+
(int64_t)ts.tv_sec, ts.tv_nsec/1000,
5252
udev_device_get_action(device),
5353
udev_device_get_devpath(device),
5454
udev_device_get_subsystem(device));

0 commit comments

Comments
 (0)