kazu-yamamoto/unix-time — pull request #18 by unnohideyuki (2013-11-28 09:17:31+00:00)
Title: Embedd timegm function for Solaris that doesn't have the function.

山本さん、今日 Twitter でお話しさせていただいた @unnohideyuki です。突然失礼しました。

Solaris のように timegm を持たないプラットフォーム向けに、HAVE_TIMEGM が define されていない場合には
conv.c にうめこんだコードが用いられるようにしました。

configure.ac, cbits/config.h.in および cbits/conv.c を commit しましたが、configure は含めていません。
（Merge して頂いたあとに、山本さんの方で autoconf された結果の configure が commit されることを期待しています）

なお、Ubuntu, SPARC Solaris 11 の 2 system 上で cabal test が通ることを確認済です。

Ubuntu:
$ ghc --version
The Glorious Glasgow Haskell Compilation System, version 7.6.3
$ uname -srvmpio
Linux 2.6.38-11-generic #50-Ubuntu SMP Mon Sep 12 21:17:25 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux

SPARC Solaris 11: (カーネルは開発中のものなので表示していません)
$ ghc --version
The Glorious Glasgow Haskell Compilation System, version 7.6.3
$ uname -srmp
SunOS 5.11 sun4v sparc

お手数おかけしてしまいますが、よろしくお願いします。

以下はコミットメッセージです。
----
I modified three files - configure.ac, cbits/config.h.in and cbits/conv.c.

By the modification of configure.ac and cbits/config.h, HAVE_TIMEGM will be or not be defined depending on the presense of the function.
In cbits/conv.c, embedded timegm will be used if the HAVE_TIMEGM is not defined.

The embedded code was from the following URL:

ftp://ftp.smr.ru/pub/0/FreeBSD/releases/i386/branches/-current/src/crypto/heimdal/lib/asn1/timegm.c

The license of it is the same as that of unix-time (BSD).

embedd timegm code for Solaris.

modified to use AC_CHECK_FUNCS, not the predefined __sun__

In the first modification, I used "#if defined(__sun__)" to switch, however, it was not good.
In this revision, I put AC_CHECK_FUNCS(timegm) in the configure.ac and use "HAVE_TIMEGM" in conv.c.

I also had to modify cbits/config.h.in.