@@ -145,7 +145,7 @@ perf_counter(_Py_clock_info_t *info)
145145 return _PyFloat_FromPyTime (t );
146146}
147147
148- #if defined(MS_WINDOWS ) || defined(HAVE_CLOCK )
148+ #if ( defined(MS_WINDOWS ) || defined(HAVE_CLOCK )) && !defined( __VXWORKS__ )
149149#define PYCLOCK
150150static PyObject *
151151pyclock (_Py_clock_info_t * info )
@@ -765,7 +765,7 @@ time_strftime(PyObject *self, PyObject *args)
765765 return NULL ;
766766 }
767767
768- #if defined(_MSC_VER ) || (defined(__sun ) && defined(__SVR4 )) || defined(_AIX )
768+ #if defined(_MSC_VER ) || (defined(__sun ) && defined(__SVR4 )) || defined(_AIX ) || defined( __VXWORKS__ )
769769 if (buf .tm_year + 1900 < 1 || 9999 < buf .tm_year + 1900 ) {
770770 PyErr_SetString (PyExc_ValueError ,
771771 "strftime() requires year in [1; 9999]" );
@@ -1001,18 +1001,21 @@ time_mktime(PyObject *self, PyObject *tm_tuple)
10011001 return NULL ;
10021002 }
10031003
1004- #ifdef _AIX
1004+ #if defined( _AIX ) || (defined( __VXWORKS__ ) && !defined( _WRS_CONFIG_LP64 ))
10051005 /* bpo-19748: AIX mktime() valid range is 00:00:00 UTC, January 1, 1970
10061006 to 03:14:07 UTC, January 19, 2038. Thanks to the workaround below,
10071007 it is possible to support years in range [1902; 2037] */
10081008 if (tm .tm_year < 2 || tm .tm_year > 137 ) {
10091009 /* bpo-19748: On AIX, mktime() does not report overflow error
1010- for timestamp < -2^31 or timestamp > 2**31-1. */
1010+ for timestamp < -2^31 or timestamp > 2**31-1. VxWorks has the
1011+ same issue when working in 32 bit mode. */
10111012 PyErr_SetString (PyExc_OverflowError ,
10121013 "mktime argument out of range" );
10131014 return NULL ;
10141015 }
1016+ #endif
10151017
1018+ #ifdef _AIX
10161019 /* bpo-34373: AIX mktime() has an integer overflow for years in range
10171020 [1902; 1969]. Workaround the issue by using a year greater or equal than
10181021 1970 (tm_year >= 70): mktime() behaves correctly in that case
0 commit comments