OpenBSD is pernickerty about struct_tm in mktime. Setting tm_isdst to -1 prior to calling mktime (which is what timelocal does) makes mktime less pedantic.
Use timelocal instead of mktime in timelocal64 in OpenBSD
Isn't a better fix then to explicitly set tm_isdst to -1 before we call the timelocal64 function in other places? That should work across all platforms then and that way we don't have to conditionalize code based on the platform.
I'll go with whatever other developers want. I only know that using mktime here is a bug in OpenBSD. The cause of the test spec failure appears to be a use of the PST timezone with is_dst set to 0 and a date in December. Since timelocal is listed as deprecated in any case, perhaps explicitly setting tm.is_dst to -1 is the best way to go.
Explicitly set tm_isdst before using timelocal64
When using timelocal64, we always want it to compute the DST and not use
what we provide. This happens on all platforms except OpenBSD by