From: Yutaka Kanemoto Date: 2007-08-14T03:01:39+09:00 Subject: [ruby-dev:31401] Re: Ruby load problem on AIX ------=_Part_156980_7388126.1187028103989 Content-Type: text/plain; charset=ISO-2022-JP Content-Transfer-Encoding: 7bit Content-Disposition: inline 金本ともうします。 大分時間がたってしまって恐縮なのですが、 以前、AIXの64ビットモードでのコンパイルについて、 拾っていただいた件について調査しました。 07/05/02 に Nobuyoshi Nakada さんは書きました: (中略) > > Please give me some time to make another patch? I have noticed > > the linker_flag variable you made. I will make new patch against > > ruby_1_8 branch or trunk. Since I will test on various AIX versions, > > it will take a little... > > もちろん問題ありません。調べていただければありがたいです。 結局のところ、私が以前送らせていただいたconfigure.inへの パッチでリンカを直接呼ぶようにしたときのチョンボが原因でした。 大変申し訳ありません。 #32ビットモードなら問題ないです。あとAIX5.2では起きませんでした。 とりあえず、1.8と1.9両方のパッチを添付します。 また、1.9の方はjsonライブラリのgenerator.cのstring.hの位置がAIXで 不都合があったので順番を変えたのと、.cのファイルでc++スタイルの コメントが使えるようにCFLAGSに-qcpluscmtというのを加えてあります。 大元の問題であった拡張ライブラリが呼べないのが解決できています。 % ruby -v -retc -e 'p $:, 0xffffffff.class' ruby 1.9.0 (2007-08-13 patchlevel 0) [powerpc-aix5.3.0.0] ["/home/kanemoto/r19xlc64/lib/ruby/site_ruby/1.9", "/home/kanemoto/r19xlc64/lib/ruby/site_ruby/1.9/powerpc-aix5.3.0.0", "/home/kanemoto/r19xlc64/lib/ruby/site_ruby", "/home/kanemoto/r19xlc64/lib/ruby/1.9", "/home/kanemoto/r19xlc64/lib/ruby/1.9/powerpc-aix5.3.0.0", "."] Fixnum (64ビットなので0xffffffffがFixnumということで。。。) あと、AIXで--enable-sharedをデフォルトにしてみたのですが、 何かstaticにしたほうがいい理由などはありますでしょうか? このpatchで対応できるのは、結局環境変数でOBJECT_MODE=64というのが 設定されていてIBM XL C Compilerを使っていたときだけで、 gccには対応できません。gccはOBJECT_MODEなんぞ知らないのに、 中で呼ばれるOS付属のリンカが64ビットで動いてしまいます。 また、以前 >環境変数 OBJECT_MODE=64 で一切合財設定不要になるようなのですが、 >rbconfig.rb に痕跡が残らないと後々 extconf.rb するときにハマリそうに思います。 という要望があったのが気になっていたので、両方を解決できるように ためしに--enable-aix64なるオプションを作ったりしてみたのですが、 gcc に -maix32を渡しても、アセンブラに-a32を渡してくれないので、 OBJECT_MODE=64が設定されている場合に対応できません。 仮に-Wa,-a32とオプションをつけても、asに-a32を渡してくれませんでした。 ぐだぐだかいてすみません。 これはこれで何かうまい手が思いついたら別件として投稿させていただきます。 よろしくお願いいたします。 -- Yutaka KANEMOTO http://d.hatena.ne.jp/kinpoco/ ------=_Part_156980_7388126.1187028103989 Content-Type: application/octet-stream; name=19.diff Content-Transfer-Encoding: base64 X-Attachment-Id: f_f5b8oskb Content-Disposition: attachment; filename="19.diff" SW5kZXg6IGNvbmZpZ3VyZS5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBjb25maWd1cmUuaW4JKHJldmlzaW9u IDEyOTI4KQorKysgY29uZmlndXJlLmluCSh3b3JraW5nIGNvcHkpCkBAIC0xOTgsNiArMTk4LDcg QEAKICAgICA7OwogYWl4KikKICAgICBBQ19DSEVDS19UT09MKE5NLCBubSwgL3Vzci9jY3MvYmlu L25tLCAvdXNyL2Njcy9iaW46JFBBVEgpCisgICAgOiAke2VuYWJsZV9zaGFyZWQ9eWVzfQogICAg IDs7CiBoaXV4bXBwKikKICAgICAjIGJ5IFRPWU9EQSBFaXppIDx0b3lvZGFAbnBkLmtpc2hvdS5n by5qcD4KQEAgLTEwNDAsMTMgKzEwNDEsMTMgQEAKIAkJCTogJHtMSUJQQVRIRU5WPURZTERfTElC UkFSWV9QQVRIfQogCQkJcmJfY3ZfZGxvcGVuPXllcyA7OwogICAgICAgICBhaXgqKSAgICAgICAg ICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLQkJCSAgICA6ICR7TERTSEFSRUQ9JyQoQ0Mp IC1zaGFyZWQnfQorCQkJICAgIDogJHtMRFNIQVJFRD0nJChDQykgLXNoYXJlZCAtV2wsLUcnfQog CQkJZWxzZQotCQkJICAgIDogJHtMRFNIQVJFRD0nL3Vzci9jY3MvYmluL2xkJ30KKwkJCSAgICA6 ICR7TERTSEFSRUQ9JyQoQ0MpIC1HJ30KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDRkxB R1M9IiRDRkxBR1MiJyAtcWNwbHVzY210JwogCQkJZmkKLQkJCURMREZMQUdTPSIke2xpbmtlcl9m bGFnfS1HIicgLWVJbml0XyQoVEFSR0VUKScKLQkJCUxERkxBR1M9IiR7TERGTEFHU30gJHtsaW5r ZXJfZmxhZ30tYnJ0bCIKLQkJCVhMREZMQUdTPSIke2xpbmtlcl9mbGFnfS1iRTpydWJ5LmltcCIK KyAgICAgICAgICAgICAgICAgICAgICAgIFhMREZMQUdTPSIke2xpbmtlcl9mbGFnfS1iRTpydWJ5 LmltcCAke2xpbmtlcl9mbGFnfS1icnRsIgorICAgICAgICAgICAgICAgICAgICAgICAgRExERkxB R1M9Jy1lSW5pdF8kKFRBUkdFVCknCiAJCQk6ICR7QVJDSEZJTEU9InJ1YnkuaW1wIn0KICAgICAg ICAgICAgICAgICAgICAgICAgIFRSWV9MSU5LPSckKENDKSAkKExERkxBR1MpIC1vY29uZnRlc3Qg JChJTkNGTEFHUykgLUkkKGhkcmRpcikgJChDUFBGTEFHUyknCiAgICAgICAgICAgICAgICAgICAg ICAgICBUUllfTElOSz0iJFRSWV9MSU5LIicgJChDRkxBR1MpICQoc3JjKSAkKExJQlBBVEgpICQo TE9DQUxfTElCUykgJChMSUJTKScKQEAgLTEzNTksNyArMTM2MCw3IEBACiAJTElCUlVCWV9BTElB U0VTPSdsaWIkKFJVQllfU09fTkFNRSkuc2wuJChNQUpPUikuJChNSU5PUikgbGliJChSVUJZX1NP X05BTUUpLnNsJwogCTs7CiAgICAgYWl4KikKLQlMSUJSVUJZX0RMREZMQUdTPSIke2xpbmtlcl9m bGFnfS1HICR7bGlua2VyX2ZsYWd9LWJub2VudHJ5ICRYTERGTEFHUyIKKyAgICAgICAgTElCUlVC WV9ETERGTEFHUz0iJHtsaW5rZXJfZmxhZ30tYm5vZW50cnkgJHtsaW5rZXJfZmxhZ30tYkU6cnVi eS5pbXAiCiAJTElCUlVCWUFSR19TSEFSRUQ9Jy1MJHtsaWJkaXJ9IC1sJHtSVUJZX1NPX05BTUV9 JwogCVNPTElCUz0nLWxtIC1sYycKIAk7OwpJbmRleDogZXh0L2pzb24vZXh0L2dlbmVyYXRvci9n ZW5lcmF0b3IuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLSBleHQvanNvbi9leHQvZ2VuZXJhdG9yL2dlbmVyYXRv ci5jCShyZXZpc2lvbiAxMjkyOCkKKysrIGV4dC9qc29uL2V4dC9nZW5lcmF0b3IvZ2VuZXJhdG9y LmMJKHdvcmtpbmcgY29weSkKQEAgLTEsOSArMSw5IEBACiAvKiB2aW06IHNldCBjaW4gZXQgc3c9 NCB0cz00OiAqLwogCi0jaW5jbHVkZSA8c3RyaW5nLmg+CiAjaW5jbHVkZSAicnVieS9ydWJ5Lmgi CiAjaW5jbHVkZSAicnVieS9zdC5oIgogI2luY2x1ZGUgInVuaWNvZGUuaCIKKyNpbmNsdWRlIDxz dHJpbmcuaD4KICNpbmNsdWRlIDxtYXRoLmg+CiAKICNkZWZpbmUgY2hlY2tfbWF4X25lc3Rpbmco c3RhdGUsIGRlcHRoKSBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCg== ------=_Part_156980_7388126.1187028103989 Content-Type: application/octet-stream; name=18.diff Content-Transfer-Encoding: base64 X-Attachment-Id: f_f5b8rx4j Content-Disposition: attachment; filename="18.diff" SW5kZXg6IGNvbmZpZ3VyZS5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBjb25maWd1cmUuaW4JKHJldmlzaW9u IDEyOTI4KQorKysgY29uZmlndXJlLmluCSh3b3JraW5nIGNvcHkpCkBAIC0yMTAsNiArMjEwLDcg QEAKICAgICA7OwogYWl4KikKICAgICBBQ19DSEVDS19UT09MKE5NLCBubSwgL3Vzci9jY3MvYmlu L25tLCAvdXNyL2Njcy9iaW46JFBBVEgpCisgICAgOiAke2VuYWJsZV9zaGFyZWQ9eWVzfQogICAg IDs7CiBoaXV4bXBwKikKICAgICAjIGJ5IFRPWU9EQSBFaXppIDx0b3lvZGFAbnBkLmtpc2hvdS5n by5qcD4KQEAgLTEwNTcsMTMgKzEwNTgsMTIgQEAKIAkJCTogJHtMSUJQQVRIRU5WPURZTERfTElC UkFSWV9QQVRIfQogCQkJcmJfY3ZfZGxvcGVuPXllcyA7OwogICAgICAgICBhaXgqKSAgICAgICAg ICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLQkJCSAgICA6ICR7TERTSEFSRUQ9JyQoQ0Mp IC1zaGFyZWQnfQorCQkJICAgIDogJHtMRFNIQVJFRD0nJChDQykgLXNoYXJlZCAtV2wsLUcnfQog CQkJZWxzZQotCQkJICAgIDogJHtMRFNIQVJFRD0nL3Vzci9jY3MvYmluL2xkJ30KKwkJCSAgICA6 ICR7TERTSEFSRUQ9JyQoQ0MpIC1HJ30KIAkJCWZpCi0JCQlETERGTEFHUz0iJHtsaW5rZXJfZmxh Z30tRyInIC1lSW5pdF8kKFRBUkdFVCknCi0JCQlMREZMQUdTPSIke0xERkxBR1N9ICR7bGlua2Vy X2ZsYWd9LWJydGwiCi0JCQlYTERGTEFHUz0iJHtsaW5rZXJfZmxhZ30tYkU6cnVieS5pbXAiCisJ CQlYTERGTEFHUz0iJHtsaW5rZXJfZmxhZ30tYkU6cnVieS5pbXAgJHtsaW5rZXJfZmxhZ30tYnJ0 bCIKKwkJCURMREZMQUdTPSctZUluaXRfJChUQVJHRVQpJwogICAgICAgICAgICAgICAgICAgICAg ICAgOiAke0FSQ0hGSUxFPSJydWJ5LmltcCJ9CiAgICAgICAgICAgICAgICAgICAgICAgICBUUllf TElOSz0nJChDQykgJChMREZMQUdTKSAtb2NvbmZ0ZXN0ICQoSU5DRkxBR1MpIC1JJChoZHJkaXIp ICQoQ1BQRkxBR1MpJwogICAgICAgICAgICAgICAgICAgICAgICAgVFJZX0xJTks9IiRUUllfTElO SyInICQoQ0ZMQUdTKSAkKHNyYykgJChMSUJQQVRIKSAkKExPQ0FMX0xJQlMpICQoTElCUyknCkBA IC0xMzU5LDcgKzEzNTksNyBAQAogCUxJQlJVQllfQUxJQVNFUz0nbGliJChSVUJZX1NPX05BTUUp LnNsLiQoTUFKT1IpLiQoTUlOT1IpIGxpYiQoUlVCWV9TT19OQU1FKS5zbCcKIAk7OwogICAgIGFp eCopCi0JTElCUlVCWV9ETERGTEFHUz0iJHtsaW5rZXJfZmxhZ30tRyAke2xpbmtlcl9mbGFnfS1i bm9lbnRyeSAkWExERkxBR1MiCisJTElCUlVCWV9ETERGTEFHUz0iJHtsaW5rZXJfZmxhZ30tYm5v ZW50cnkgJHtsaW5rZXJfZmxhZ30tYkU6cnVieS5pbXAiCiAJTElCUlVCWUFSR19TSEFSRUQ9Jy1M JHtsaWJkaXJ9IC1sJHtSVUJZX1NPX05BTUV9JwogCVNPTElCUz0nLWxtIC1sYycKIAk7Owo= ------=_Part_156980_7388126.1187028103989--