From: Tanaka Akira Date: 2006-05-21T01:52:01+09:00 Subject: [ruby-dev:28659] Re: create header (Re: Re: ossl_cipher.c:124: warning: control reaches end of non-void function) In article , "Nobuyoshi Nakada" 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]