[#28653] create header (Re: Re: ossl_cipher.c:124: warning: control reaches end of non-void function) — "Nobuyoshi Nakada" <nobu@...>

なかだです。

8 messages 2006/05/18

[ruby-dev:28659] Re: create header (Re: Re: ossl_cipher.c:124: warning: control reaches end of non-void function)

From: Tanaka Akira <akr@...17n.org>
Date: 2006-05-20 16:52:01 UTC
List: ruby-dev #28659
In article <cebd6fd10605180214i2ae903b7ja489be82184cc58c@mail.gmail.com>,
  "Nobuyoshi Nakada" <nobu@ruby-lang.org> writes:

> それが、他のコードよりも必ず先に定義される一番確実な方法だからです。

まぁ、たしかにそうではありますが。

> 常にファイルに保存するようにしたほうが、条件が変わったときに再コンパイルされてうれしいかもしれません。

試してみました。

パッチをきれいに当てるには 3行 fold されてたのを修正する必要
がありましたが、それはそれとして make すると bigdecimal のと
ころで

> Index: lib/mkmf.rb

> +  open(header, "r+") do |hfile|

が Errno::ENOENT になりましたので、とりあえず w+ にしました。

そうすると、install まではいくのですが、check で digest/md5
をrequire するのに失敗します。

% ./ruby -v -rdigest/md5 -e ''
ruby 1.9.0 (2006-05-18) [i686-linux]
/tmp/b/lib/ruby/1.9/i686-linux/digest/md5.so: /tmp/b/lib/ruby/1.9/i686-linux/digest/md5.so: undefined symbol: rb_Digest_MD5_Init - /tmp/b/lib/ruby/1.9/i686-linux/digest/md5.so (LoadError)

どうやら、

gcc -fPIC -g -O2 -DHAVE_CONFIG_H -I../../.././ext/digest/md5/..  -I. -I../../.. -I../../../. -I../../.././ext/digest/md5 -DRUBY_EXTCONF_H=\"extconf.h\"  -c md5init.c
gcc -fPIC -g -O2 -DHAVE_CONFIG_H -I../../.././ext/digest/md5/..  -I. -I../../.. -I../../../. -I../../.././ext/digest/md5 -DRUBY_EXTCONF_H=\"extconf.h\"  -c md5ossl.c

というようコンパイルして、openssl を使おうと判断して md5ossl.c
を使ったが、md5init.c をコンパイルした時に
-I../../.././ext/digest/md5/.. が -I. より先にあるので
digest/md5/extconf.h でなく digest/extconf.h を読んだあげく
にそこには HAVE_OPENSSL_MD5_H がないので問題が起こる、という
ことのようです。うぅむ。
-- 
[田中 哲][たなか あきら][Tanaka Akira]

In This Thread