diff --git a/changes/bug18184 b/changes/bug18184 new file mode 100644 index 0000000000..af493df75f --- /dev/null +++ b/changes/bug18184 @@ -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. + diff --git a/configure.ac b/configure.ac index 8892486eea..85fc500964 100644 --- a/configure.ac +++ b/configure.ac @@ -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 @@ -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], diff --git a/src/common/torint.h b/src/common/torint.h index 418fe0fabf..480ba1a596 100644 --- a/src/common/torint.h +++ b/src/common/torint.h @@ -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 diff --git a/src/test/test_dir.c b/src/test/test_dir.c index 4824a94132..83a8b8ccc6 100644 --- a/src/test/test_dir.c +++ b/src/test/test_dir.c @@ -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, diff --git a/src/win32/orconfig.h b/src/win32/orconfig.h index 0c02b19de1..407ffc00fc 100644 --- a/src/win32/orconfig.h +++ b/src/win32/orconfig.h @@ -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