From: Takahiro Kambe Date: 2003-06-27T02:08:46+09:00 Subject: [ruby-dev:20466] Ruby OpenSSL and MS_CALLBACK cpp(1) macro. こんばんは。 ruby-opensslという名前でNetBSDのpkgsrcになっているOSSLが、NetBSD 1.6.1 ではだいじょうぶですが、NetBSD currentでは壊れていることに気づきまし た。 http://www.freesoftware.fsf.org/rubypki/ これは、OpenSSLのヘッダのうちe_os.hは、/usr/include/opensslにNetBSD currentではインストールされなくなったためです。理由はOpenSSLのinternal なヘッダで、OpenSSL以外のプログラムは参照するものではないから、という ことらしいです。 OSSL 0.1.3までは、e_os.hで(UNIX系では空に)定義されているMS_CALLBACKと いうcpp(1)のマクロがソースコードに使用されいるため、単にe_os.hのインク ルードを止めるだけでは済みませんでした。乱暴ですが、 --- ossl.h.orig 2002-07-23 19:45:25.000000000 +0900 +++ ossl.h @@ -25,9 +25,11 @@ extern "C" { #include #include #include -#include #if defined(NT) +# include # undef OpenFile +#else +# define MS_CALLBACK #endif #include "openssl_missing.h" なんてことをすると回避できます。 一方、上記のURLにある 0.2.0-pre2あたりでは、MS_CALLBACKのマクロも使っ ていませんし、e_os.hも使用していないようにソースコードが変更されている ようです。 0.1.3の方は、同様な修正がされたリリースがされることは、もうないのでしょ うか? -- 神戸 隆博 / Takahiro Kambe