#NetBSD が default の 387 のモードを 63bit precision にしようとしているのですが, http://blog.practical-scheme.net/gauche/20130128-ratnum-bignum の話って,53bit precision の値同士の割り算を 63bit precision で計算した結果を 53bit に戻すこと自体が問題という理解であってますよね? #だから volatile double r = x; r /= y; とかは効かなくて,387 のモードを変えて割り算命令を 53bit precsion でするしか対策はない,ですよね.
#二重丸めが発生する状況が問題なので、その式でも r /= y の中間結果がFPUレジスタに拡張精度で載って、それを変数にストアする時点で倍精度に丸められたら、問題が発生します。
#時間がたっちゃいましたが、CentOS の環境で上の OpenSSL のコマンドをためしてみました。
#$ openssl s_server -tls1 -accept 19002 -quiet -cert ../.././axTLS/ssl/test/axTLS.x509_512.pem -key ../.././axTLS/ssl/test/axTLS.key_512.pem
getaddrinfo: Name or service not known
#野良ビルドした openssl だと、上のコマンドで入力待ち状態になったので、yum がなんかおかしいんでしょうねぇ。
#yumで入ってるopensslのバージョンはいくつですか。 (openssl version で表示)
#>enami ああ、これですね http://mail-index.netbsd.org/port-amd64/2013/11/12/msg001977.html Joergさんに通じてないのかな? 二重丸めが原因なので、メモリへの53bit precision storeを強制するだけではだめです。-mfpmath=sse ならいけますがSSE必須になっちゃうので (今時心配の必要はないかもしれないけど一応…)、FPUレジスタモードをいじる手段は提供されてて欲しい