From: Katsuyuki Komatsu Date: 1999-04-27T22:00:04+09:00 Subject: [ruby-dev:6670] Re: [PATCH] AIX CONFIG["LDSHARED"] and installation 小松です。 In the message of [ruby-dev:6669] on Apr 27 12:34:01 Katsuyuki Komatsu wrote: > 動作チェックは今日か明日の夜にはできると思います。 もうすこしですね。 まず、minirubyの作成でひっかかりました。 minirubyの作成時には、ruby.impはまだできていないのです。 @XLDFLAGS@の追加は$(PROGRAM)の作成だけでいいのですが、他の プラットフォームではminiruby$(binsuffix)にもいるんでしょうか? そうすると、@XLDFLAGS@をminiruby$(binsuffix)用と$(PROGRAM)用に 分ける必要が出てきます。 % env CFLAGS=-O2 ./configure --with-readline-dir=/usr/local …… % make …… gcc -O2 -I. -I. -I/usr/local/include -Wl,-bE:ruby.imp main.o dmyext.o libruby.a -lm -o miniruby collect2: ld returned 255 exit status ld: 0706-004 Cannot find or read export file: ruby.imp ld:accessx(): No such file or directory make: The error code from the last command is 1. Stop. % 後は、下のようになってしまうので、configure.inで-eInit_$(TARGET)は -eInit_$(TARGET:.so=)にする必要があります。 % ruby extconf.rb creating Makefile % make /usr/ccs/bin/ld -eInit_uconv.so -bI:/usr/local/lib/ruby/1.3/rs6000-aix4.1.3.0/ruby.imp -bM:SRE -T512 -H512 -lc -o uconv.so e2u.o ustring.o u2e.o uconv.o -lc ld: 0711-327 WARNING: Entry point not found: Init_uconv.so ld: 0711-244 ERROR: No csects or exported symbols have been saved. make: The error code from the last command is 8. Stop. % それから、よくみるとruby.impがインストールされてませんでした。 前のディレクトリの内容を消していなかったのでinstallされたもの と思ってたらしい。 まとめて、以下のようなパッチにしてみましたが…… 他のプラットフォームとのかねあいで@XLDFLAGS@の処理は変える必要が あるかもしれません。 diff -u Makefile.in.dist Makefile.in --- Makefile.in.dist Tue Apr 27 11:56:25 1999 +++ Makefile.in Tue Apr 27 21:12:03 1999 @@ -13,7 +13,7 @@ prefix = @prefix@ CFLAGS = @CFLAGS@ -I. -I@srcdir@ -I@includedir@ -LDFLAGS = @STATIC@ $(CFLAGS) @LDFLAGS@ @XLDFLAGS@ +LDFLAGS = @STATIC@ $(CFLAGS) @LDFLAGS@ EXTLIBS = LIBS = @LIBS@ $(EXTLIBS) MISSING = @LIBOBJS@ @ALLOCA@ @@ -89,7 +89,7 @@ $(PROGRAM): $(LIBRUBY) $(MAINOBJ) $(EXTOBJS) @rm -f $@ - $(PURIFY) $(CC) $(LDFLAGS) $(MAINOBJ) $(EXTOBJS) $(LIBRUBYARG) $(LIBS) -o $@ + $(PURIFY) $(CC) $(LDFLAGS) @XLDFLAGS@ $(MAINOBJ) $(EXTOBJS) $(LIBRUBYARG) $(LIBS) -o $@ $(LIBRUBY_A): $(OBJS) dmyext.o @AR@ rcu $@ $(OBJS) dmyext.o diff -u configure.in.dist configure.in --- configure.in.dist Tue Apr 27 14:11:12 1999 +++ configure.in Tue Apr 27 21:15:38 1999 @@ -450,7 +450,7 @@ rb_cv_dlopen=yes ;; aix*) LDSHARED='/usr/ccs/bin/ld' XLDFLAGS='-Wl,-bE:ruby.imp' - DLDFLAGS='-eInit_$(TARGET) -bI:$(ruby_inc)/ruby.imp -bM:SRE -T512 -H512 -lc' + DLDFLAGS='-eInit_$(TARGET:.so=) -bI:$(ruby_inc)/ruby.imp -bM:SRE -T512 -H512 -lc' rb_cv_dlopen=yes ;; human*) DLDFLAGS='' diff -u instruby.rb.dist instruby.rb --- instruby.rb.dist Mon Apr 26 18:42:31 1999 +++ instruby.rb Tue Apr 27 21:10:32 1999 @@ -60,7 +60,7 @@ File.install f, dir, 0644, true end -if PLATFORM =~ /ibm-aix/ +if PLATFORM =~ /-aix/ File.install "ruby.imp", archdir, 0644, true end for f in Dir["*.h"] -- 小松克行 (株)サリオンシステムズリサーチ ソフトウェア開発部 Katsuyuki Komatsu