From: KOSAKI Motohiro Date: 2011-02-14T21:43:39+09:00 Subject: [ruby-dev:43211] Re: [Ruby 1.9-Bug#4397][Open] test-mkmf fails due to compilation errors --0016e659ffa286bc8b049c3d65e5 Content-Type: text/plain; charset=ISO-2022-JP Content-Transfer-Encoding: 7bit >> 最後に今回問題になっているr30621により根本修正としてconftest中は >> -Werror=implicit-function-declaration が自動付加をしなくなりました。 > > r30621の問題点は >> warnflags= > としてユーザーが与えたフラグを一切無視するようになっている点なので、ようするに > 殺しすぎです。下に記したとおり私の環境ではwarnflagsでわざわざ-Wno-long-longと > して警告を抑制していたのに、その抑制まで取り去っているのが誤り。 この説明に引っかかるところがあったので調べ直しました。 なぜなら warnflags= は if test "$GCC:${warnflags+set}:no" = yes::no; then のif文の中にあるので warnflagsを指定したときは通らないはずだからです。 結論からいうと、 # もしwarnflagsが未指定でGCCなら if test "$GCC:${warnflags+set}:no" = yes::no; then # warnflagsを一時的に空にして、それをrb_cv_warningsに保存 rb_cv_warnflags="$warnflags" warnflags= fi (いろいろやって、スクリプトの最後で) warnflags="$rb_cv_warnflags" となっているのですが、warnflagsを指定するとrb_cv_warnflagsが初期化されないので、スクリプトの 最後の warnflags="$rb_cv_warnflags" でwarnflagsが空になってしまいます。よって添付のように rb_cv_warnflagsの初期化位置をずらしてやれば卜部さんの configure optionでもコンパイル出来ることを 確認しました。 コンパイル不能以外に反対理由がないのであれば、中田さんの意思を尊重して再コミットしようかとも 思うのですが、ご意見お聞かせください。 --0016e659ffa286bc8b049c3d65e5 Content-Type: application/octet-stream; name="0001-patch.patch" Content-Disposition: attachment; filename="0001-patch.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gk5dirvd0 RnJvbSBhYjdkOTE4Mjg3OTFiN2IzNzg5MmFjOWE1Y2Q3MTcyYWE2NGY0ODM0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBLT1NBS0kgTW90b2hpcm8gPGtvc2FraS5tb3RvaGlyb0BnbWFp bC5jb20+CkRhdGU6IE1vbiwgMTQgRmViIDIwMTEgMjE6MzU6MjAgKzA5MDAKU3ViamVjdDogW1BB VENIXSBwYXRjaAoKU2lnbmVkLW9mZi1ieTogS09TQUtJIE1vdG9oaXJvIDxrb3Nha2kubW90b2hp cm9AZ21haWwuY29tPgotLS0KIGNvbmZpZ3VyZS5pbiB8ICAgIDQgKysrKwogMSBmaWxlcyBjaGFu Z2VkLCA0IGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY29uZmln dXJlLmluIGIvY29uZmlndXJlLmluCmluZGV4IDI5MDA3ZjAuLmYxYTNiNWUgMTAwNjQ0Ci0tLSBh L2NvbmZpZ3VyZS5pbgorKysgYi9jb25maWd1cmUuaW4KQEAgLTQ0MSw2ICs0NDEsNyBAQCBBQ19E RUZVTihSVUJZX1RSWV9MREZMQUdTLCBbCiAgICAgc2F2ZV9MREZMQUdTPQogXSkKIAorcmJfY3Zf d2FybmZsYWdzPSIkd2FybmZsYWdzIgogaWYgdGVzdCAiJEdDQzoke3dhcm5mbGFncytzZXR9Om5v IiA9IHllczo6bm87IHRoZW4KICAgICBwYXJ0aWN1bGFyX3dlcnJvcl9mbGFncz15ZXMKICAgICBm b3Igd2ZsYWcgaW4gLVduby11bnVzZWQtcGFyYW1ldGVyIC1Xbm8tcGFyZW50aGVzZXMgLVduby1s b25nLWxvbmcgXApAQCAtNDY5LDYgKzQ3MCw4IEBAIGlmIHRlc3QgIiRHQ0M6JHt3YXJuZmxhZ3Mr c2V0fTpubyIgPSB5ZXM6Om5vOyB0aGVuCiAgICAgQVNfQ0FTRShbIiAkd2FybmZsYWdzICJdLFsq IiAtV25vLW1pc3NpbmctZmllbGQtaW5pdGlhbGl6ZXJzICIqXSwgW3dmbGFnPS1XZXh0cmFdLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbd2ZsYWc9LVdhbGxdKQogICAgIFJVQllfVFJZ X0NGTEFHUygkd2ZsYWcsIFt3YXJuZmxhZ3M9IiR3ZmxhZyR7d2FybmZsYWdzKyAkd2FybmZsYWdz fSJdKQorICAgICMgZGlzYWJsZSB3YXJuZmxhZ3MgdGVtcG9yYXJ5IHdoaWxlIGNvbmZ0ZXN0Lgor ICAgIHdhcm5mbGFncz0KIGZpCiBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgogICAgIFJVQllf VFJZX0NGTEFHUygtZnZpc2liaWxpdHk9aGlkZGVuLCBbUlVCWV9BUFBFTkRfT1BUSU9OKFhDRkxB R1MsIC1mdmlzaWJpbGl0eT1oaWRkZW4pXSkKQEAgLTI1ODAsNiArMjU4Myw3IEBAIGlmIHRlc3Qg IiR7QVJDSF9GTEFHfSI7IHRoZW4KICAgICBDWFhGTEFHUz1gZWNobyAiJENYWEZMQUdTIiB8IHNl ZCAic3wkYXJjaGZsYWdwYXQiJ3wkKEFSQ0hfRkxBRyl8J2AKICAgICBMREZMQUdTPWBlY2hvICIk TERGTEFHUyIgfCBzZWQgInN8JGFyY2hmbGFncGF0Iid8JChBUkNIX0ZMQUcpfCdgCiBmaQord2Fy bmZsYWdzPSIkcmJfY3Zfd2FybmZsYWdzIgogQUNfU1VCU1QoY3BwZmxhZ3MsIFtdKWRubAogQUNf U1VCU1QoY2ZsYWdzLCBbIiRvcmlnX2NmbGFncyAiJyR7b3B0ZmxhZ3N9ICR7ZGVidWdmbGFnc30g JHt3YXJuZmxhZ3N9J10pZG5sCiBBQ19TVUJTVChjeHhmbGFncywgWyIkb3JpZ19jeHhmbGFncyAi JyR7b3B0ZmxhZ3N9ICR7ZGVidWdmbGFnc30gJHt3YXJuZmxhZ3N9J10pZG5sCi0tIAoxLjcuMy40 Cgo= --0016e659ffa286bc8b049c3d65e5--