From: Yutaka Kanemoto Date: 2006-10-27T02:47:47+09:00 Subject: [ruby-dev:29698] *LDFLAGSについて ------=_Part_46337_10574652.1161884861760 Content-Type: text/plain; charset=ISO-2022-JP; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline 金本ともうします。 おせわになっています。 すこし前の以下のパッチ * lib/mkmf.rb (init_mkmf): set default $LDFLAGS. Patch by Michal  Suchanek . [ruby-talk:216256] により、AIXで拡張ライブラリのcompileが通らなくなったので調べました。 ひとつおたずねしたいのですが、*FLAGSという 変数について以下のように解釈したのですが、意図されているように 理解できていますでしょうか? DLDFLAGS *.soの共有ライブラリを作る時にリンカにわたしたいもの XLDFLAGS rubyコマンドをつくるとき"だけ"にリンカにわたしたいもの LDFLAGS いつでもわたしたいもの といいますのも、以前configure.inで、AIXでは、 LDFLAGS="-brtl -bE:ruby.imp" とさせていただいたのですが、上記のパッチでこのパラメータが拡張ライブラリの リンクにわたるようになりました。ruby.impはソースを展開したディレクトリに ありますので、拡張ライブラリのリンク時にみつからないといわれるように なってしまいました。 # Linuxの場合ですと、このpatchの影響で、拡張ライブラリのリンク時にも # -rdynamic -Wl,-export-dynamicがわたるようになりました。 AIXでは拡張ライブラリのコンパイルにこれらのパラメータは必要ないので、 いままでLDFLAGSとしていたものを、XLDFLAGSにすればコンパイルはとおります。 ところが、今度はこのパラメータがminirubyにわたらなくなります。 この-bE:ruby.impオプションは、ruby.impというファイルに列挙された関数を 他のライブラリからみえるようにエクスポートするというものです。 これがないと、libruby-static.aのなかの関数を、拡張ライブラリが アクセスできなくなります。 XLDFLAGSをminirubyにわたせばいいかと思ったのですが、 過去ログをみると、やはり、XLDFLAGSはrubyをリンクするときのみのためのもの のようです。 http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/19723 http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/23588 minirubyにこのオプションがわたらない場合の現象としましては、 make installの途中でcoreを吐いてしまいます。 minirubyがetc.soのInit_etcにはいった中でおちています。 dbxでInit_etcにはいった時点でとめて、stepするとcoreになります。 minirubyの作成時に上記のオプションをつけますと、rb_define_moduleなどが 正常に呼べてこの問題が解消します。 このetc.soは、fileutils経由で呼ばれているようです。 etc.soがなければloadに失敗して、なくてもすむような処理が走り、 installは途中までうまくいくのですが、その後のドキュメントの 生成のときにinstruby.rbが呼んでいるfileutilsがetc.soを発見してしまって、 結局上述の理由でcoreを吐いてしまいます。 あるいは、すでにrubyがinstallしてあった場合はext/dlのコンパイルの 途中でやはりminirubyがcore dumpしてしまいます。 まとめますと、rubyとminirubyのリンク時にだけわたしたい オプションがあるのでなんとかしたい。ということになります。 そこで提案なのですが、現在miniruby専用のLDFLAGSがありませんので、 MLDFLAGSなどとして、定義できるようにさせていただけませんでしょうか? 一応この案のパッチを添付します。 この方法なら他のplatformにご迷惑をおかけすることもないかなと思いました。 ただ、MLDFLAGSという名前がわかりにくいかもしれませんので、適切な名前を 命名していただきたいと思います。 あるいは、もしほかになにか方法があれば、方針をいただければ、 自分で作業したいと思います。 長々とどうもすいません。 よろしくおねがいいたします。 -- Yutaka KANEMOTO http://d.hatena.ne.jp/kinpoco/ ------=_Part_46337_10574652.1161884861760 Content-Type: application/octet-stream; name=mldflags.diff Content-Transfer-Encoding: base64 X-Attachment-Id: f_etrfyxgi Content-Disposition: attachment; filename="mldflags.diff" SW5kZXg6IE1ha2VmaWxlLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9zcmMvcnVieS9NYWtlZmls ZS5pbix2CnJldHJpZXZpbmcgcmV2aXNpb24gMS41NS4yLjE4CmRpZmYgLXUgLXIxLjU1LjIuMTgg TWFrZWZpbGUuaW4KLS0tIE1ha2VmaWxlLmluCTEgT2N0IDIwMDYgMTU6MDA6MzIgLTAwMDAJMS41 NS4yLjE4CisrKyBNYWtlZmlsZS5pbgkyNiBPY3QgMjAwNiAxNzozMDoxOCAtMDAwMApAQCAtMzgs NiArMzgsNyBAQAogTERGTEFHUyA9IEBTVEFUSUNAICQoQ0ZMQUdTKSBATERGTEFHU0AKIEVYVExE RkxBR1MgPSAKIFhMREZMQUdTID0gQFhMREZMQUdTQCAkKEVYVExERkxBR1MpCitNTERGTEFHUyA9 IEBNTERGTEFHU0AKIEVYVExJQlMgPSAKIExJQlMgPSBATElCU0AgJChFWFRMSUJTKQogTUlTU0lO RyA9IEBMSUJPQkpTQCBAQUxMT0NBQApAQCAtOTcsNyArOTgsNyBAQAogCiBtaW5pcnVieSQoRVhF RVhUKToKIAkJQCQoUk0pICRACi0JCSQoUFVSSUZZKSAkKENDKSAkKE1BSU5PQkopICQoTUlOSU9C SlMpICQoTElCUlVCWV9BKSAkKExJQlMpICQoT1VURkxBRykkQCAkKExERkxBR1MpICQoTUFJTkxJ QlMpCisJCSQoUFVSSUZZKSAkKENDKSAkKE1BSU5PQkopICQoTUlOSU9CSlMpICQoTElCUlVCWV9B KSAkKExJQlMpICQoT1VURkxBRykkQCAkKExERkxBR1MpICQoTUxERkxBR1MpICQoTUFJTkxJQlMp CiAKICQoUFJPR1JBTSk6CiAJCUAkKFJNKSAkQApJbmRleDogY29uZmlndXJlLmluCj09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KUkNTIGZpbGU6IC9zcmMvcnVieS9jb25maWd1cmUuaW4sdgpyZXRyaWV2aW5nIHJldmlzaW9u IDEuMjEyLjIuNjIKZGlmZiAtdSAtcjEuMjEyLjIuNjIgY29uZmlndXJlLmluCi0tLSBjb25maWd1 cmUuaW4JMSBTZXAgMjAwNiAxODo1ODo0NCAtMDAwMAkxLjIxMi4yLjYyCisrKyBjb25maWd1cmUu aW4JMjYgT2N0IDIwMDYgMTc6MzA6MTkgLTAwMDAKQEAgLTEwMzcsMTEgKzEwMzcsMTMgQEAKICAg ICAgICAgYWl4KikgICAgICAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICA6ICR7TERTSEFSRUQ9J2djYyAtc2hhcmVkJ30KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIERMREZMQUdTPSctV2wsLUcgLWVJbml0XyQoVEFSR0VUKScKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgIExERkxBR1M9Jy1XbCwtYnJ0bCAtV2wsLWJFOnJ1Ynku aW1wJworICAgICAgICAgICAgICAgICAgICAgICAgICAgWExERkxBR1M9Jy1XbCwtYnJ0bCAtV2ws LWJFOnJ1YnkuaW1wJworICAgICAgICAgICAgICAgICAgICAgICAgICAgTUxERkxBR1M9JFhMREZM QUdTCiAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAg ICAgIDogJHtMRFNIQVJFRD0nL3Vzci9jY3MvYmluL2xkJ30KICAgICAgICAgICAgICAgICAgICAg ICAgICAgRExERkxBR1M9Jy1HIC1lSW5pdF8kKFRBUkdFVCknCi0gICAgICAgICAgICAgICAgICAg ICAgICAgIExERkxBR1M9Ii1icnRsIC1iRTpydWJ5LmltcCIKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgWExERkxBR1M9Jy1icnRsIC1iRTpydWJ5LmltcCcKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgTUxERkxBR1M9JFhMREZMQUdTCiAgICAgICAgICAgICAgICAgICAgICAgICBmaQogICAg ICAgICAgICAgICAgICAgICAgICAgOiAke0FSQ0hGSUxFPSJydWJ5LmltcCJ9CiAgICAgICAgICAg ICAgICAgICAgICAgICBUUllfTElOSz0nJChDQykgJChMREZMQUdTKSAtb2NvbmZ0ZXN0ICQoSU5D RkxBR1MpIC1JJChoZHJkaXIpICQoQ1BQRkxBR1MpJwpAQCAtMTUwMyw2ICsxNTA1LDcgQEAKIAog QUNfU1VCU1QoWENGTEFHUylkbmwKIEFDX1NVQlNUKFhMREZMQUdTKWRubAorQUNfU1VCU1QoTUxE RkxBR1MpCiBBQ19TVUJTVChMSUJSVUJZX0xEU0hBUkVEKQogQUNfU1VCU1QoTElCUlVCWV9ETERG TEFHUykKIEFDX1NVQlNUKFJVQllfSU5TVEFMTF9OQU1FKQo= ------=_Part_46337_10574652.1161884861760--