mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-09 14:50:05 +00:00
time: Fix compile error in itimer test affecting hurd
The recent change to use __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 to avoid
doing 64-bit checks on some platforms broke the test for hurd where
__KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 is not defined. With error:
tst-itimer.c: In function 'do_test':
tst-itimer.c:103:11: error: '__KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64' undeclared (first use in this function)
103 | if (__KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
tst-itimer.c:103:11: note: each undeclared identifier is reported only once for each function it appears in
Define a support helper to detect when setitimer and getitimer support
64-bit time_t.
Fixes commit 6e8a0aac2f
("time: Fix overflow itimer tests on 32-bit
systems").
Cc: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Cc: Joseph Myers <joseph@codesourcery.com>
This commit is contained in:
parent
2444ce5421
commit
5604830dea
@ -152,6 +152,18 @@ static __inline bool support_path_support_time64 (const char *path)
|
||||
0x80000002ULL);
|
||||
}
|
||||
|
||||
/* Return true if the setitimer and getitimer syscalls support 64-bit time_t
|
||||
values without resulting in overflow. This is not true on some linux systems
|
||||
which have 64-bit time_t due to legacy kernel API's. */
|
||||
static __inline bool support_itimer_support_time64 (void)
|
||||
{
|
||||
#ifdef __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64
|
||||
return __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64;
|
||||
#else
|
||||
return sizeof (__time_t) == 8;
|
||||
#endif
|
||||
}
|
||||
|
||||
/* Return true if stat supports nanoseconds resolution. PATH is used
|
||||
for tests and its ctime may change. */
|
||||
extern bool support_stat_nanoseconds (const char *path);
|
||||
|
@ -21,6 +21,7 @@
|
||||
#include <stdlib.h>
|
||||
#include <sys/time.h>
|
||||
#include <support/check.h>
|
||||
#include <support/support.h>
|
||||
#include <support/xsignal.h>
|
||||
#include <unistd.h>
|
||||
#include <time.h>
|
||||
@ -100,7 +101,7 @@ do_test (void)
|
||||
|
||||
/* Linux does not provide 64 bit time_t support for getitimer and
|
||||
setitimer on architectures with 32 bit time_t support. */
|
||||
if (__KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64)
|
||||
if (support_itimer_support_time64())
|
||||
{
|
||||
TEST_COMPARE (setitimer (timers[i], &it, NULL), 0);
|
||||
TEST_COMPARE (setitimer (timers[i], &(struct itimerval) { 0 },
|
||||
@ -131,7 +132,7 @@ do_test (void)
|
||||
it.it_interval.tv_usec = 20;
|
||||
it.it_value.tv_sec = 30;
|
||||
it.it_value.tv_usec = 40;
|
||||
if (__KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64)
|
||||
if (support_itimer_support_time64())
|
||||
{
|
||||
TEST_COMPARE (setitimer (timers[i], &it, NULL), 0);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user