丁稚な日々

Rubyで遊んだ日々の記録。あくまで著者視点の私的な記録なので、正確さを求めないように。
Rubyと関係ない話題にはその旨注記しているはず。なので、一見関係無いように見える話題もどこかで関係あるのかもしれません。または、注記の書き忘れかもしれません...

[直前] [最新] [直後] [Top]

Jun.11,2002 (Tue)

Revision: 1.3 (Jun.11,2002 21:26)

私家版パッチ

_ bccwin32でもコンパイルは通るようになったけど、make testが通らない。
うー、pipe周りかぁ... bccwin32版でどうすりゃいいのかちっともわからんなぁ。
ソースを読み込んでなんとかするほどの暇はないので、今日は更新せず。

_ はっ、ということは、これでcommitのタイミングを失ってしまったということ?
まぁ、どーせたらたらやってんだから同じことなんだけど。

ruby-dev

_ [ruby-dev:17387]。あぁそういえば。
このところ、1.6でしか拡張ライブラリをいぢってないからすっかり忘れてた<言い訳

Jun.12,2002 (Wed)

Revision: 1.5 (Jun.12,2002 18:51)

mswin32

_ [ruby-dev:17401]みたいなことを書きつつ、昼休みを利用して自分でも拡張ライブラリのstatic linkに挑戦。
んー、ext/extmk.rb.in の修正って実はあまりいらんな(例のシングルクォート→ダブルクォートくらい)。で、win32/Makefile.sub をいじって extmk.rb の実行時引数に static を加えるくらいか。
問題になってる$(RUBY_SO_NAME).libがいっぱい指定されちゃうってのは、実害ないんじゃないかなぁ(直した方がいい気はするけど)。

_ で、実験。
...
なぜか miniruby.exe を作り直そうとしやがるな。win32/Makefile.sub の関係箇所をコメントアウト。
...
あぅ、miniruby.exe が落ちる。なんでやねん。
たまたま実験に使ったバージョン(1.6の数日前のもの)がまずいだけかなぁ。1.6.7で試すか。
...
1.6.7でもダメ。win32/resource.rb を実行すると落ちるんか。なじぇ?
Windowsもcoredumpしてくれんかのぅ。

_ あ、わかった。win32/config.status.in をヘンにいじったのが敗因。rbconfig.rb の中で無限ループしてるよ。
これで先に進むかな。

_ できた。[ruby-dev:17402]参照。
って、昼休みを1時間オーバーしてるやん。ぐへ。

_ 1.7の方をいじりながら、いろいろ考え直してみる。
miniruby.exe を作り直そうとする件は、miniruby.exe の依存条件から$(EXTOBJS)を削除して、代わりにdmyext.objを加えることで解消された。$(LIBRUBY_A) のルールでも同じようになってるから、たぶんこれが正しいんだろう。
$(RUBY_SO_NAME).libがいっぱい指定される件は、やっぱりダメだ。
つーか、「いっぱい」には問題はないけど、「指定される」ことが問題だった(前者を問題だと思っていた)。結局、もともとの指摘が正しいのねん。
これを回避しようとしたら... 直前でRUBY_PLATFORMで場合分けしてgsub!しちゃうのが簡単ではあるんだけど、もっと抜本的な対応を考えた方がいいのかなぁ。他のプラットフォームへの影響を考えると、頭が痛い。
ま、とりあえず、こんなとこで。

Index: ext/extmk.rb.in
===================================================================
RCS file: /home/cvs/ruby/ext/extmk.rb.in,v
retrieving revision 1.75
diff -u -2 -p -w -r1.75 extmk.rb.in
--- ext/extmk.rb.in	2002/06/11 01:27:46	1.75
+++ ext/extmk.rb.in	2002/06/12 09:43:41
@@ -832,6 +832,13 @@ if $extlist.size > 0
   if RUBY_PLATFORM =~ /m68k-human|beos/
     $extlibs.gsub!("-L/usr/local/lib", "") if $extlibs
+  elsif RUBY_PLATFORM =~ /mswin32/
+    $extlibs.gsub!(/#{Regexp.quote('@LIBRUBYARG@')}/o, "") if $extlibs
   end
-  system format(%[#{$make} #{ruby} EXTOBJS='%s' EXTLIBS='%s'], $extobjs, $extlibs)
+  if /nmake/i =~ $make
+    cmd = format(%[#{$make} #{ruby} EXTOBJS="%s" EXTLIBS="%s"], $extobjs, $extlibs)
+  else
+    cmd = format(%[#{$make} #{ruby} EXTOBJS='%s' EXTLIBS='%s'], $extobjs, $extlibs)
+  end
+  system cmd
 else
   Dir.chdir ".."
Index: win32/Makefile.sub
===================================================================
RCS file: /home/cvs/ruby/win32/Makefile.sub,v
retrieving revision 1.22
diff -u -2 -p -w -r1.22 Makefile.sub
--- win32/Makefile.sub	2002/06/11 04:16:58	1.22
+++ win32/Makefile.sub	2002/06/12 09:43:42
@@ -156,5 +156,5 @@ all:		miniruby$(EXEEXT) rbconfig.rb ext/
 		$(LIBRUBY) $(MISCLIBS)
 		set LIB=..\..;$(ORGLIBPATH)
-		@.\miniruby$(EXEEXT) -Cext extmk.rb 
+		@.\miniruby$(EXEEXT) -Cext extmk.rb $(EXTSTATIC)
 
 ruby: $(PROGRAM)
@@ -347,8 +347,7 @@ ext/extmk.rb:	$(srcdir)/ext/extmk.rb.in 
 			-output=$@ $(srcdir)/ext/extmk.rb.in
 
-miniruby$(EXEEXT):	$(OBJS) $(MAINOBJ) $(EXTOBJS) 
-		@echo $(EXTOBJS)
+miniruby$(EXEEXT):	$(OBJS) $(MAINOBJ) dmyext.obj
 		@echo $(LIBS)
-		$(PURIFY) $(CC) $(LDFLAGS) $(MAINOBJ) $(EXTOBJS) $(OBJS) $(LIBS) -Fe$@
+		$(PURIFY) $(CC) $(LDFLAGS) $(MAINOBJ) dmyext.obj $(OBJS) $(LIBS) -Fe$@
 
 $(PROGRAM):	$(MAINOBJ) $(LIBRUBY_SO) $*.res

nmake EXTSTATIC=static--with-static-linked-ext相当になります、たぶん。

Jun.13,2002 (Thu)

Revision: 1.2 (Jun.13,2002 12:26)

bccwin32

_ これに関しては、おそらく、小西さんとこの最初のほうに書いてある ilink32.cfg の話ではないかと。

_ 、もちろん、意図としては、「hoge\psdk を追加せよ」ではなくて、「適宜、必要なパスを追加せよ」です。
ちなみに、BCBのインストール先が違うことを除けば、私の ilink32.cfg も同じ内容です。lib と lib/obj と lib/release ですね。
うーん、なんでうまくいかないんですかねぇ。謎が多すぎ。

Jun.17,2002 (Mon)

Revision: 1.1 (Jun.17,2002 14:11)

Jun.19,2002 (Wed)

Revision: 1.1 (Jun.19,2002 13:05)

無題

_ ここ最近の騒ぎ(W杯じゃないよ)で、突然見覚えのある名前が現れた。
調べてみたら、はぁ、そういうことだったのか。
かなり脱力。

_ 意味不明でごめん。


被捕捉アンテナ類
[\ay antenna (testing)] [Ant] [Antenna-Julia] [LayserあんてなV2] [nAntenna] [nuance de Antenna] [Rabbit's Antenna] [Read List] [Ruby hotlinks 五月雨版 (るるりん。)] [してたま (私的アンテナ with たまてばこ)] [ただのあんてな] [ちゃらんぽらん] [でこぽんリンク] [なよろアンテナ] [にっきトレーサー] [偽善者あんてな - 2nd season -] [湘南日記放送局(SDB)] [はてなの各アンテナ]