ext/date/extconf.rb: check for timezone and altzone

Instead of in configure.in. As of r28592 the HAVE_VAR_TIMEZONE and
HAVE_VAR_ALTZONE macros are only used by ext/date. ext/date doesn't care
whether they are int or long, so just check for the existence.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59939 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
rhe 2017-09-17 04:26:51 +00:00
Родитель 06af07dd7b
Коммит e2cb0eded4
3 изменённых файлов: 7 добавлений и 31 удалений

Просмотреть файл

@ -2805,35 +2805,6 @@ AC_CACHE_CHECK(for external int daylight, rb_cv_have_daylight,
AS_IF([test "$rb_cv_have_daylight" = yes], [
AC_DEFINE(HAVE_DAYLIGHT)
])
AC_DEFUN([RUBY_CHECK_VARTYPE], [dnl
AC_CACHE_CHECK([for external $1], AS_TR_SH(rb_cv_var_$1),
[AS_TR_SH(rb_cv_var_$1)=no
AC_TRY_COMPILE([
#ifndef _XOPEN_SOURCE
#define _XOPEN_SOURCE 1
#endif
$2
;
const volatile void *volatile t;],
[t = &(&$1)[0];],
[for t in $3; do
AC_TRY_COMPILE([
#ifndef _XOPEN_SOURCE
#define _XOPEN_SOURCE 1
#endif
$2
;
extern $t $1;
const volatile void *volatile t;],
[t = &(&$1)[0];],
[AS_TR_SH(rb_cv_var_$1)=$t; break])
done])])
AS_IF([test "${AS_TR_SH(rb_cv_var_$1)}" != no], [
AC_DEFINE(AS_TR_CPP(HAVE_VAR_$1))
AC_DEFINE_UNQUOTED(AS_TR_CPP(TYPEOF_VAR_$1), ${AS_TR_SH(rb_cv_var_$1)})
])])
RUBY_CHECK_VARTYPE(timezone, [@%:@include <time.h>], [long int])
RUBY_CHECK_VARTYPE(altzone, [@%:@include <time.h>], [long int])
AC_CACHE_CHECK(for negative time_t for gmtime(3), rb_cv_negative_time_t,
[AC_TRY_RUN([

Просмотреть файл

@ -7710,8 +7710,8 @@ datetime_s_now(int argc, VALUE *argv, VALUE klass)
s = 59;
#ifdef HAVE_STRUCT_TM_TM_GMTOFF
of = tm.tm_gmtoff;
#elif defined(HAVE_VAR_TIMEZONE)
#ifdef HAVE_VAR_ALTZONE
#elif defined(HAVE_TIMEZONE)
#ifdef HAVE_ALTZONE
of = (long)-((tm.tm_isdst > 0) ? altzone : timezone);
#else
of = (long)-timezone;

Просмотреть файл

@ -1,4 +1,9 @@
# frozen_string_literal: true
require 'mkmf'
config_string("strict_warnflags") {|w| $warnflags += " #{w}"}
have_var("timezone", "time.h")
have_var("altzone", "time.h")
create_makefile('date_core')