Remove support for unsigned time_t
We've never actually tested this support, and we should probably assume it's broken. To the best of my knowledge, only OpenVMS has this, and even on OpenVMS it's a compile-time option to disable it. And I don't think we build on openvms anyway. (Everybody else seems to be working around the 2038 problem by using a 64-bit time_t, which won't expire for roughly 292 billion years.) Closes ticket 18184.
This commit is contained in:
parent
a5bed4dab2
commit
5f7df92571
|
@ -0,0 +1,5 @@
|
|||
o Removed platform support:
|
||||
- Tor no longer attempts to support platforms where the "time_t" type
|
||||
is unsigned. (To the best of our knowledge, only OpenVMS does this,
|
||||
and Tor has never actually built on OpenVMS.) Closes ticket 18184.
|
||||
|
|
@ -1176,7 +1176,7 @@ AC_CHECK_TYPES([rlim_t], , ,
|
|||
])
|
||||
|
||||
AX_CHECK_SIGN([time_t],
|
||||
[ AC_DEFINE(TIME_T_IS_SIGNED, 1, [Define if time_t is signed]) ],
|
||||
[ : ],
|
||||
[ : ], [
|
||||
#ifdef HAVE_SYS_TYPES_H
|
||||
#include <sys/types.h>
|
||||
|
@ -1190,7 +1190,7 @@ AX_CHECK_SIGN([time_t],
|
|||
])
|
||||
|
||||
if test "$ax_cv_decl_time_t_signed" = no; then
|
||||
AC_MSG_WARN([You have an unsigned time_t; some things will probably break. Please tell the Tor developers about your interesting platform.])
|
||||
AC_MSG_ERROR([You have an unsigned time_t; Tor does not support that. Please tell the Tor developers about your interesting platform.])
|
||||
fi
|
||||
|
||||
AX_CHECK_SIGN([size_t],
|
||||
|
|
|
@ -312,8 +312,6 @@ typedef uint32_t uintptr_t;
|
|||
|
||||
#ifndef TIME_MAX
|
||||
|
||||
#ifdef TIME_T_IS_SIGNED
|
||||
|
||||
#if (SIZEOF_TIME_T == SIZEOF_INT)
|
||||
#define TIME_MAX ((time_t)INT_MAX)
|
||||
#elif (SIZEOF_TIME_T == SIZEOF_LONG)
|
||||
|
@ -321,25 +319,13 @@ typedef uint32_t uintptr_t;
|
|||
#elif (SIZEOF_TIME_T == 8)
|
||||
#define TIME_MAX ((time_t)INT64_MAX)
|
||||
#else
|
||||
#error "Can't define (signed) TIME_MAX"
|
||||
#error "Can't define TIME_MAX"
|
||||
#endif
|
||||
|
||||
#else
|
||||
/* Unsigned case */
|
||||
#if (SIZEOF_TIME_T == 4)
|
||||
#define TIME_MAX ((time_t)UINT32_MAX)
|
||||
#elif (SIZEOF_TIME_T == 8)
|
||||
#define TIME_MAX ((time_t)UINT64_MAX)
|
||||
#else
|
||||
#error "Can't define (unsigned) TIME_MAX"
|
||||
#endif
|
||||
#endif /* time_t_is_signed */
|
||||
#endif /* ifndef(TIME_MAX) */
|
||||
|
||||
#ifndef TIME_MIN
|
||||
|
||||
#ifdef TIME_T_IS_SIGNED
|
||||
|
||||
#if (SIZEOF_TIME_T == SIZEOF_INT)
|
||||
#define TIME_MIN ((time_t)INT_MIN)
|
||||
#elif (SIZEOF_TIME_T == SIZEOF_LONG)
|
||||
|
@ -347,19 +333,9 @@ typedef uint32_t uintptr_t;
|
|||
#elif (SIZEOF_TIME_T == 8)
|
||||
#define TIME_MIN ((time_t)INT64_MIN)
|
||||
#else
|
||||
#error "Can't define (signed) TIME_MIN"
|
||||
#error "Can't define TIME_MIN"
|
||||
#endif
|
||||
|
||||
#else
|
||||
/* Unsigned case */
|
||||
#if (SIZEOF_TIME_T == 4)
|
||||
#define TIME_MIN ((time_t)UINT32_MIN)
|
||||
#elif (SIZEOF_TIME_T == 8)
|
||||
#define TIME_MIN ((time_t)UINT64_MIN)
|
||||
#else
|
||||
#error "Can't define (unsigned) TIME_MIN"
|
||||
#endif
|
||||
#endif /* time_t_is_signed */
|
||||
#endif /* ifndef(TIME_MIN) */
|
||||
|
||||
#ifndef SIZE_MAX
|
||||
|
|
|
@ -3312,7 +3312,6 @@ test_dir_download_status_schedule(void *arg)
|
|||
tt_assert(increment == expected_increment);
|
||||
tt_assert(dls_failure.next_attempt_at == TIME_MIN + expected_increment);
|
||||
|
||||
#if TIME_T_IS_SIGNED
|
||||
delay1 = INT_MAX;
|
||||
increment = download_status_schedule_get_delay(&dls_failure,
|
||||
schedule,
|
||||
|
@ -3320,7 +3319,6 @@ test_dir_download_status_schedule(void *arg)
|
|||
expected_increment = delay1;
|
||||
tt_assert(increment == expected_increment);
|
||||
tt_assert(dls_failure.next_attempt_at == TIME_MAX);
|
||||
#endif
|
||||
|
||||
delay1 = 0;
|
||||
increment = download_status_schedule_get_delay(&dls_attempt,
|
||||
|
|
|
@ -220,9 +220,6 @@
|
|||
/* Define to 1 if you have the ANSI C header files. */
|
||||
#define STDC_HEADERS
|
||||
|
||||
/* Define to 1 if time_t is signed. */
|
||||
#define TIME_T_IS_SIGNED
|
||||
|
||||
/* Define to 1 iff unaligned int access is allowed */
|
||||
#define UNALIGNED_INT_ACCESS_OK
|
||||
|
||||
|
|
Loading…
Reference in New Issue