diff options
author | Patrik Nyblom <[email protected]> | 2010-06-10 15:53:19 +0200 |
---|---|---|
committer | Patrik Nyblom <[email protected]> | 2010-06-23 14:54:43 +0200 |
commit | 7e6fe78278c203c3756ce0d6bf23a6bd6cf7bb5d (patch) | |
tree | a58173e9f6773e43a6a41c1db5d5ed69077ba9b4 /erts/configure.in | |
parent | c1e94fa9a6fe4ae717d35dfbd1b628dc2e06d26a (diff) | |
download | otp-7e6fe78278c203c3756ce0d6bf23a6bd6cf7bb5d.tar.gz otp-7e6fe78278c203c3756ce0d6bf23a6bd6cf7bb5d.tar.bz2 otp-7e6fe78278c203c3756ce0d6bf23a6bd6cf7bb5d.zip |
Teach erl_time_sup to handle timezones w/o DST on FreeBSD as on other platforms
This change handles erlang:localtime_to_universaltime(...,true) in timezones
without DST in a consistent way over platforms. Specifically BSD did return
an (accurate) -1 from mktime, which blew things up. Now all platforms regard
no DST as a DST with delta zero. Linux, SunOS, MacOS etc already did this,
why the behaviour on BSD was updated to the slightly incorrect one instead
of breaking backward compatibility on most other platforms.
Before this change, erlang:localtime_to_universaltime({{2008, 8, 1},
{0, 0, 0}},true) would return {1969, 12, 31}, {23, 59, 59}} when
TZ=UTC on FreeBSD, now it mimics the behaviour of other systems and returns
{{2008, 8, 1},{0, 0, 0}}.
The problem was originally reported by Paul Guyot on erlang-bugs mailing list:
http://www.erlang.org/pipermail/erlang-bugs/2008-November/001077.html
This correction replaces earlier BSD specific open source patches for this
problem.
Diffstat (limited to 'erts/configure.in')
-rw-r--r-- | erts/configure.in | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/erts/configure.in b/erts/configure.in index 63bf548c89..bfbed302e3 100644 --- a/erts/configure.in +++ b/erts/configure.in @@ -1698,6 +1698,9 @@ AC_CHECK_FUNCS([ieee_handler fpsetmask finite isnan isinf res_gethostbyname dlop gethrtime localtime_r gmtime_r mmap mremap memcpy mallopt \ sbrk _sbrk __sbrk brk _brk __brk \ flockfile fstat strlcpy strlcat setsid posix2time setlocale nl_langinfo poll]) + +AC_CHECK_DECLS([posix2time],,,[#include <time.h>]) + if test "X$host" = "Xwin32"; then ac_cv_func_setvbuf_reversed=yes fi |