2020 年から、32bit OS で 古い Perl (5.12 か 5.10 より前ぐらいのバージョン)を使っていると、mknmz 実行時に “Day too big – 36536 > 24853” エラーが発生してインデックスの作成に失敗するそうです。
pl/time.pl の gettimezone を以下のものに置き換えると 期待した動作になることを確認しました。 (linux 32bit, Perl 5.8.8)
sub gettimezone {
my ($t0, $t1);
{
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =
localtime(1000000);
$year += 1900;
$t0 =
timelocal($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst);
}
{
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =
gmtime(1000000);
$year += 1900;
$t1 =
timelocal($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst);
}
return $t0 - $t1;
}
コメントを投稿するにはログインしてください。