[#31320] Import RubyGems to Ruby 1.9 — "NAKAMURA, Hiroshi" <nakahiro@...>

-----BEGIN PGP SIGNED MESSAGE-----

124 messages 2007/08/01
[#31321] Re: Import RubyGems to Ruby 1.9 — Nobuyoshi Nakada <nobu@...> 2007/08/01

なかだです。

[#31329] Re: Import RubyGems to Ruby 1.9 — "NAKAMURA, Hiroshi" <nakahiro@...> 2007/08/01

-----BEGIN PGP SIGNED MESSAGE-----

[#31918] Re: Import RubyGems to Ruby 1.9 — "NAKAMURA, Hiroshi" <nakahiro@...> 2007/09/30

-----BEGIN PGP SIGNED MESSAGE-----

[#31970] Re: Import RubyGems to Ruby 1.9 — "NAKAMURA, Hiroshi" <nakahiro@...> 2007/10/08

-----BEGIN PGP SIGNED MESSAGE-----

[#32023] Re: Import RubyGems to Ruby 1.9 — Yukihiro Matsumoto <matz@...> 2007/10/11

まつもと ゆきひろです

[#32062] Re: Import RubyGems to Ruby 1.9 — "NAKAMURA, Hiroshi" <nakahiro@...> 2007/10/15

-----BEGIN PGP SIGNED MESSAGE-----

[#32066] Re: Import RubyGems to Ruby 1.9 — Yukihiro Matsumoto <matz@...> 2007/10/15

まつもと ゆきひろです

[#32068] Re: Import RubyGems to Ruby 1.9 — "NAKAMURA, Hiroshi" <nakahiro@...> 2007/10/15

-----BEGIN PGP SIGNED MESSAGE-----

[#32069] Re: Import RubyGems to Ruby 1.9 — Yukihiro Matsumoto <matz@...> 2007/10/15

まつもと ゆきひろです

[#32070] Re: Import RubyGems to Ruby 1.9 — "NAKAMURA, Hiroshi" <nakahiro@...> 2007/10/15

-----BEGIN PGP SIGNED MESSAGE-----

[#32073] Re: Import RubyGems to Ruby 1.9 — Yukihiro Matsumoto <matz@...> 2007/10/15

まつもと ゆきひろです

[#32079] Re: Import RubyGems to Ruby 1.9 — "NAKAMURA, Hiroshi" <nakahiro@...> 2007/10/16

-----BEGIN PGP SIGNED MESSAGE-----

[#32080] Re: Import RubyGems to Ruby 1.9 — Yukihiro Matsumoto <matz@...> 2007/10/16

まつもと ゆきひろです

[#32132] Re: Import RubyGems to Ruby 1.9 — "NAKAMURA, Hiroshi" <nakahiro@...> 2007/10/23

-----BEGIN PGP SIGNED MESSAGE-----

[#32081] Re: Import RubyGems to Ruby 1.9 — Takahiro Kambe <taca@...> 2007/10/16

In message <471447D5.5050902@sarion.co.jp>

[#32087] Re: Import RubyGems to Ruby 1.9 — "Akinori MUSHA" <knu@...> 2007/10/17

 Rubygems は、基本的に他のパッケージシステムから包みやすい作り

[#32104] Re: Import RubyGems to Ruby 1.9 — akira yamada <akira@...> 2007/10/20

Tuesday 16 October 2007 14:09:13 に NAKAMURA, Hiroshi さんは書きました:

[#32109] Re: Import RubyGems to Ruby 1.9 — "NAKAMURA, Hiroshi" <nakahiro@...> 2007/10/20

-----BEGIN PGP SIGNED MESSAGE-----

[#31332] Re: Import RubyGems to Ruby 1.9 — Tadayoshi Funaba <tadf@...> 2007/08/01

> ちなみに「ruby/1.9.1の標準添付からどのライブラリを外すか?」という議論も

[#31858] Re: Import RubyGems to Ruby 1.9 — "NAKAMURA, Hiroshi" <nakahiro@...> 2007/09/25

-----BEGIN PGP SIGNED MESSAGE-----

[#31872] Re: Import RubyGems to Ruby 1.9 — "NAKAMURA, Hiroshi" <nakahiro@...> 2007/09/27

-----BEGIN PGP SIGNED MESSAGE-----

[#31905] Re: Import RubyGems to Ruby 1.9 — "NAKAMURA, Hiroshi" <nakahiro@...> 2007/09/29

-----BEGIN PGP SIGNED MESSAGE-----

[#31906] Re: Import RubyGems to Ruby 1.9 — Yukihiro Matsumoto <matz@...> 2007/09/29

まつもと ゆきひろです

[#31910] Re: Import RubyGems to Ruby 1.9 — "NAKAMURA, Hiroshi" <nakahiro@...> 2007/09/30

-----BEGIN PGP SIGNED MESSAGE-----

[#31920] Re: Import RubyGems to Ruby 1.9 — Yukihiro Matsumoto <matz@...> 2007/09/30

まつもと ゆきひろです

[#31323] Bignum#to_s の Karatsuba 基数変換による高速化 — "Kenta Murata" <muraken@...>

むらけんです.

16 messages 2007/08/01
[#31326] Re: Bignum#to_s の Karatsuba 基数変換による高速化 — Yukihiro Matsumoto <matz@...> 2007/08/01

まつもと ゆきひろです

[#31327] Re: Bignum#to_s の Karatsuba 基数変換による高速化 — "Kenta Murata" <muraken@...> 2007/08/01

むらけんです.

[#31328] Re: Bignum#to_s の Karatsuba 基数変換による高速化 — Yukihiro Matsumoto <matz@...> 2007/08/01

まつもと ゆきひろです

[#31525] いくつかのバグ報告と提案(5点) — eklerni <eklerni@...>

From:eklerni

13 messages 2007/08/20

[#31539] strtod の精度 — Satoshi Nakagawa <snakagawa@...>

中川といいます。

27 messages 2007/08/20
[#31542] Re: strtod の精度 — Yukihiro Matsumoto <matz@...> 2007/08/20

まつもと ゆきひろです

[ruby-dev:31401] Re: Ruby load problem on AIX

From: "Yutaka Kanemoto" <kinpoco@...>
Date: 2007-08-13 18:01:39 UTC
List: ruby-dev #31401
金本ともうします。

大分時間がたってしまって恐縮なのですが、
以前、AIXの64ビットモードでのコンパイルについて、
拾っていただいた件について調査しました。

07/05/02 に Nobuyoshi Nakada<nobu@ruby-lang.org> さんは書きました:
(中略)
> > 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/

Attachments (2)

19.diff (2 KB, text/x-diff)
Index: configure.in
===================================================================
--- configure.in	(revision 12928)
+++ configure.in	(working copy)
@@ -198,6 +198,7 @@
     ;;
 aix*)
     AC_CHECK_TOOL(NM, nm, /usr/ccs/bin/nm, /usr/ccs/bin:$PATH)
+    : ${enable_shared=yes}
     ;;
 hiuxmpp*)
     # by TOYODA Eizi <toyoda@npd.kishou.go.jp>
@@ -1040,13 +1041,13 @@
 			: ${LIBPATHENV=DYLD_LIBRARY_PATH}
 			rb_cv_dlopen=yes ;;
         aix*)           if test "$GCC" = yes; then
-			    : ${LDSHARED='$(CC) -shared'}
+			    : ${LDSHARED='$(CC) -shared -Wl,-G'}
 			else
-			    : ${LDSHARED='/usr/ccs/bin/ld'}
+			    : ${LDSHARED='$(CC) -G'}
+                            CFLAGS="$CFLAGS"' -qcpluscmt'
 			fi
-			DLDFLAGS="${linker_flag}-G"' -eInit_$(TARGET)'
-			LDFLAGS="${LDFLAGS} ${linker_flag}-brtl"
-			XLDFLAGS="${linker_flag}-bE:ruby.imp"
+                        XLDFLAGS="${linker_flag}-bE:ruby.imp ${linker_flag}-brtl"
+                        DLDFLAGS='-eInit_$(TARGET)'
 			: ${ARCHFILE="ruby.imp"}
                         TRY_LINK='$(CC) $(LDFLAGS) -oconftest $(INCFLAGS) -I$(hdrdir) $(CPPFLAGS)'
                         TRY_LINK="$TRY_LINK"' $(CFLAGS) $(src) $(LIBPATH) $(LOCAL_LIBS) $(LIBS)'
@@ -1359,7 +1360,7 @@
 	LIBRUBY_ALIASES='lib$(RUBY_SO_NAME).sl.$(MAJOR).$(MINOR) lib$(RUBY_SO_NAME).sl'
 	;;
     aix*)
-	LIBRUBY_DLDFLAGS="${linker_flag}-G ${linker_flag}-bnoentry $XLDFLAGS"
+        LIBRUBY_DLDFLAGS="${linker_flag}-bnoentry ${linker_flag}-bE:ruby.imp"
 	LIBRUBYARG_SHARED='-L${libdir} -l${RUBY_SO_NAME}'
 	SOLIBS='-lm -lc'
 	;;
Index: ext/json/ext/generator/generator.c
===================================================================
--- ext/json/ext/generator/generator.c	(revision 12928)
+++ ext/json/ext/generator/generator.c	(working copy)
@@ -1,9 +1,9 @@
 /* vim: set cin et sw=4 ts=4: */
 
-#include <string.h>
 #include "ruby/ruby.h"
 #include "ruby/st.h"
 #include "unicode.h"
+#include <string.h>
 #include <math.h>
 
 #define check_max_nesting(state, depth) do {                                   \
18.diff (1.44 KB, text/x-diff)
Index: configure.in
===================================================================
--- configure.in	(revision 12928)
+++ configure.in	(working copy)
@@ -210,6 +210,7 @@
     ;;
 aix*)
     AC_CHECK_TOOL(NM, nm, /usr/ccs/bin/nm, /usr/ccs/bin:$PATH)
+    : ${enable_shared=yes}
     ;;
 hiuxmpp*)
     # by TOYODA Eizi <toyoda@npd.kishou.go.jp>
@@ -1057,13 +1058,12 @@
 			: ${LIBPATHENV=DYLD_LIBRARY_PATH}
 			rb_cv_dlopen=yes ;;
         aix*)           if test "$GCC" = yes; then
-			    : ${LDSHARED='$(CC) -shared'}
+			    : ${LDSHARED='$(CC) -shared -Wl,-G'}
 			else
-			    : ${LDSHARED='/usr/ccs/bin/ld'}
+			    : ${LDSHARED='$(CC) -G'}
 			fi
-			DLDFLAGS="${linker_flag}-G"' -eInit_$(TARGET)'
-			LDFLAGS="${LDFLAGS} ${linker_flag}-brtl"
-			XLDFLAGS="${linker_flag}-bE:ruby.imp"
+			XLDFLAGS="${linker_flag}-bE:ruby.imp ${linker_flag}-brtl"
+			DLDFLAGS='-eInit_$(TARGET)'
                         : ${ARCHFILE="ruby.imp"}
                         TRY_LINK='$(CC) $(LDFLAGS) -oconftest $(INCFLAGS) -I$(hdrdir) $(CPPFLAGS)'
                         TRY_LINK="$TRY_LINK"' $(CFLAGS) $(src) $(LIBPATH) $(LOCAL_LIBS) $(LIBS)'
@@ -1359,7 +1359,7 @@
 	LIBRUBY_ALIASES='lib$(RUBY_SO_NAME).sl.$(MAJOR).$(MINOR) lib$(RUBY_SO_NAME).sl'
 	;;
     aix*)
-	LIBRUBY_DLDFLAGS="${linker_flag}-G ${linker_flag}-bnoentry $XLDFLAGS"
+	LIBRUBY_DLDFLAGS="${linker_flag}-bnoentry ${linker_flag}-bE:ruby.imp"
 	LIBRUBYARG_SHARED='-L${libdir} -l${RUBY_SO_NAME}'
 	SOLIBS='-lm -lc'
 	;;

In This Thread