[#12164] patch for ext/gdbm — Koji Arai <JCA02266@...>

新井です。

24 messages 2001/02/04
[#12168] Re: patch for ext/gdbm — matz@... (Yukihiro Matsumoto) 2001/02/05

まつもと ゆきひろです

[#12176] Re: patch for ext/gdbm — Koji Arai <JCA02266@...> 2001/02/05

新井です。

[#12179] Re: patch for ext/gdbm — matz@... (Yukihiro Matsumoto) 2001/02/06

まつもと ゆきひろです

[#12219] Re: patch for ext/gdbm — Koji Arai <JCA02266@...> 2001/02/12

新井です。

[#12220] Re: patch for ext/gdbm — Koji Arai <JCA02266@...> 2001/02/12

新井です。

[#12256] set_trace_func — keiju@... (Keiju ISHITSUKA)

けいじゅ@日本ラショナルソフトウェアです.

15 messages 2001/02/17

[#12293] crash on proc without a block — Kenichi Komiya <kom@...1.accsnet.ne.jp>

15 messages 2001/02/25

[#12323] Re: [ruby-list:28364] class definition extension — "K.Kosako" <kosako@...>

ruby-listから移動しました。

13 messages 2001/02/28
[#12324] Re: [ruby-list:28364] class definition extension — matz@... (Yukihiro Matsumoto) 2001/02/28

まつもと ゆきひろです

[ruby-dev:12214] Re: Adding value in CONFIG (rbconfig.rb)

From: Takahiro Kambe <taca@...>
Date: 2001-02-12 03:26:39 UTC
List: ruby-dev #12214
In message <981934169.246959.22124.nullmailer@ev.netlab.zetabits.com>
	on Mon, 12 Feb 2001 08:30:50 +0900,
	matz@zetabits.com (Yukihiro Matsumoto) wrote:
> In message "[ruby-dev:12211] Adding value in CONFIG (rbconfig.rb)"
>     on 01/02/11, Takahiro Kambe <taca@sky.yamashina.kyoto.jp> writes:
> 
> |rbconfig.rbにconfigure時の値を追加するというのを、pkg化等で行うという
> |のは許されるのでしょうか。configure.inで言えば、
> 
> 具体的に「rbconfig.rbにconfigure時の値を追加するというのを、
> pkg化等で行う」がなにをしめすのか、よくわからなかったのです
> けど。ただ単に添付のパッチを当てるという意味じゃないですよね。
結果的にはそういうことなんです。

FreeBSDのパッケージを参考にしつつ、rubyの配布に含まれる拡張ライブラリ
を別にpkg化しています。そして、拡張ライブラリを除いたruby本体
(ruby-base)のconfigureで、netbsd 用のところに

	LIBRUBYARG='-Wl,--rpath -Wl,${prefix}/lib -L${prefix}/lib -L. -l$(RUBY_INSTALL_NAME) -Wl,--rpath -Wl,${X11BASE}/lib -L${X11BASE}/lib'

といったものを追加しています。

1. ruby-baseには X11 部分は含めていない。従って、本来は、

	-Wl,--rpath -Wl,${X11BASE}/lib -L${X11BASE}/lib

   といったものの追加は不要。

2. ruby-tcltklibといった拡張ライブラリのpkgは、その部分(ext/tcltklib)
   だけを取り出して、extconf.rbからMakefileを作成したい。このためには、
   ruby-baseのconfigure時の情報をrbconfig.rbに含めておくと都合が良い。

言い替えると、1.の部分を加えないextconf.rbの処理だけでは、-L オプショ
ンでライブラリのディレクトリを指定するといった処理が加えられますが、そ
れでは都合が悪いのです。

そこで、LIBRUBYARGを上記の様に設定する様にしたのですが、X11BASEはその
ままではrbconfig.rbに反映されません。そこでconfigure時に値を置き換える
パターンにX11BASEも加えてみたのでした。この結果、rbconfig.rbで作成する
CONFIGというハッシュに "X11BASE" をキーとする値が追加され、LIBRUBYARG
の値を完全に展開できるのでした。

参考までに加えているパッチを、configure の分は省略してつけときます。な
お、これらのパッチは暫定的なものです。

	patch-aa:	共有ライブラリの処理に関する修正
	patch-ac:	/usr/local/libが存在していると無条件に
			LIBPATHに加えているのを削除

後者は必ず必要というわけではありませんが、全体的なconfigureの方で配慮
されるべきものではないかと思います。

--
神戸 隆博(かんべ たかひろ) at home

Attachments (2)

patch-aa (1.57 KB, text/plain)
$NetBSD$

--- configure.in.orig	Mon Nov 13 01:44:04 2000
+++ configure.in
@@ -508,10 +508,8 @@
 			  test "$GCC" = yes && `$CC --print-prog-name=ld` -v 2>&1 | grep "GNU ld" > /dev/null || LDSHARED="ld -Bshareable"
 			fi
 			rb_cv_dlopen=yes ;;
-	netbsd*)	LDSHARED="ld -shared"
-			if test "$rb_cv_binary_elf" = yes; then
-                          LDFLAGS="-export-dynamic"
-			fi
+	netbsd*)	LDSHARED='${CC} -shared'
+			LDFLAGS=""
 			rb_cv_dlopen=yes ;;
 	openbsd*) 	LDSHARED="ld -Bforcearchive -Bshareable"
 			rb_cv_dlopen=yes ;;
@@ -773,12 +771,14 @@
 	fi
 	;;
     netbsd*)
-	LIBRUBY_SO='lib$(RUBY_INSTALL_NAME).so.$(MAJOR).$(MINOR)'
+	LIBRUBY_SO='lib$(RUBY_INSTALL_NAME).so.$(MAJOR)$(MINOR).$(TEENY)'
+	LIBRUBY_DLDFLAGS='-Wl,-soname,lib$(RUBY_INSTALL_NAME).so.$(MAJOR)$(MINOR)'
 	if test "$rb_cv_binary_elf" = yes; then # ELF platforms
-	   LIBRUBY_ALIASES='lib$(RUBY_INSTALL_NAME).so.$(MAJOR) lib$(RUBY_INSTALL_NAME).so'
-	else
-	   LIBRUBY_ALIASES=  # a.out platforms
+	   LIBRUBY_ALIASES='lib$(RUBY_INSTALL_NAME).so.$(MAJOR)$(MINOR) lib$(RUBY_INSTALL_NAME).so'
+	else	# a.out platforms
+	   LIBRUBY_ALIASES=""
 	fi
+	LIBRUBYARG='-Wl,--rpath -Wl,${prefix}/lib -L${prefix}/lib -L. -l$(RUBY_INSTALL_NAME) -Wl,--rpath -Wl,${X11BASE}/lib -L${X11BASE}/lib'
  	;;
     solaris*)
 	XLDFLAGS='-R${prefix}/lib'
@@ -812,6 +812,9 @@
 fi
 
 case "$target_os" in
+    netbsd*)
+    	CFLAGS="$CFLAGS -pipe"
+	;;
     nextstep*)
     	CFLAGS="$CFLAGS -pipe"
 	;;
@@ -893,6 +896,7 @@
 AC_SUBST(SOLIBS)
 AC_SUBST(DLDLIBS)
 AC_SUBST(ENABLE_SHARED)
+AC_SUBST(X11BASE)
 
 ri_prefix=
 test "$program_prefix" != NONE &&
patch-ac (274 Bytes, text/plain)
$NetBSD$

--- ext/socket/extconf.rb.orig	Thu Dec 21 15:28:34 2000
+++ ext/socket/extconf.rb
@@ -1,6 +1,5 @@
 require 'mkmf'
 
-$LIBPATH << "/usr/local/lib" if File.directory?("/usr/local/lib")
 $CPPFLAGS += " -Dss_family=__ss_family -Dss_len=__ss_len"
 
 case RUBY_PLATFORM

In This Thread