[#3747] constants (or class vriable?) — Wakou Aoyama <wakou@...>

青山です。

20 messages 1998/12/06
[#3751] Re: constants (or class vriable?) — Shin-ichro Hara <sinara@...> 1998/12/07

原です。

[#3763] Re: constants (or class vriable?) — Wakou Aoyama <wakou@...> 1998/12/07

青山です。

[#3764] Re: constants (or class vriable?) — matz@... (Yukihiro Matsumoto) 1998/12/08

まつもと ゆきひろです

[#3767] Re: constants (or class vriable?) — kjana@... (YANAGAWA Kazuhisa) 1998/12/08

In message <199812080034.JAA05946@picachu.netlab.co.jp>

[#3826] ruby 1.1d0 released — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

35 messages 1998/12/16

[#3873] (?: ) does not work? — shugo@... (MAEDA Shugo)

前田です。

15 messages 1998/12/19

[#3881] I want to catch all jump — shugo@... (Shugo Maeda)

前田です。

17 messages 1998/12/21
[#3895] Re: I want to catch all jump — matz@... (Yukihiro Matsumoto) 1998/12/22

まつもと ゆきひろです

[#3894] ruby 1.1d1 released — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

25 messages 1998/12/22

[#3899] interpreter reinitialization — shugo@... (Shugo Maeda)

前田です。

22 messages 1998/12/22
[#3923] Re: interpreter reinitialization — matz@... (Yukihiro Matsumoto) 1998/12/23

まつもと ゆきひろです

[#3926] Re: interpreter reinitialization — shugo@... (Shugo Maeda) 1998/12/23

前田です。

[#3931] Re: interpreter reinitialization — matz@... (Yukihiro Matsumoto) 1998/12/24

まつもと ゆきひろです

[#3956] Re: interpreter reinitialization — shugo@... (Shugo Maeda) 1998/12/24

前田です。

[#3960] Re: interpreter reinitialization — matz@... (Yukihiro Matsumoto) 1998/12/24

まつもと ゆきひろです

[#4002] config.guess — Koji Arai <JCA02266@...>

新井です。

24 messages 1998/12/26
[#4039] Re: config.guess — matz@... (Yukihiro Matsumoto) 1998/12/29

まつもと ゆきひろです

[#4045] Re: config.guess — Koji Arai <JCA02266@...> 1998/12/31

新井です。

[#4047] Re: config.guess — matz@... (Yukihiro Matsumoto) 1999/01/01

まつもと ゆきひろです

[#4048] Re: config.guess — Koji Arai <JCA02266@...> 1999/01/01

新井です。

[#4049] Re: config.guess — matz@... (Yukihiro Matsumoto) 1999/01/02

まつもと ゆきひろです

[#4050] Re: config.guess — Motoyuki Kasahara <m-kasahr@...> 1999/01/04

笠原です。

[#4030] module Precision — gotoken@... (GOTO Kentaro)

ごとけんです

78 messages 1998/12/28
[#4310] Re: module Precision — gotoken@... (GOTO Kentaro) 1999/01/21

ごとけんです

[#4311] Re: module Precision — matz@... (Yukihiro Matsumoto) 1999/01/21

まつもと ゆきひろです

[#4312] Re: module Precision — gotoken@... (GOTO Kentaro) 1999/01/21

ごとけんです

[#4317] Re: module Precision — keiju@... (石塚圭樹 ) 1999/01/21

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

[#4364] Re: module Precision — gotoken@... (GOTO Kentaro) 1999/01/25

ごとけんです

[#4478] Re: module Precision — matz@... (Yukihiro Matsumoto) 1999/01/28

まつもと ゆきひろです

[#4506] Re: module Precision — gotoken@... (GOTO Kentaro) 1999/01/30

ごとけんです

[#4552] Re: module Precision — matz@... (Yukihiro Matsumoto) 1999/02/01

まつもと ゆきひろです

[#4557] Re: module Precision — gotoken@... (GOTO Kentaro) 1999/02/01

ごとけんです

[#4632] Re: module Precision — gotoken@... (GOTO Kentaro) 1999/02/03

ごとけんです

[#4647] Re: module Precision — keiju@... (石塚圭樹 ) 1999/02/03

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

[#4648] Re: module Precision — gotoken@... (GOTO Kentaro) 1999/02/03

ごとけんです

[#4633] Re: module Precision — matz@... (Yukihiro Matsumoto) 1999/02/03

まつもと ゆきひろです

[#4636] Re: module Precision — gotoken@... (GOTO Kentaro) 1999/02/03

ごとけんです

[#4836] Re: module Precision — gotoken@... (GOTO Kentaro) 1999/02/08

ごとけんです

[#4843] Re: module Precision — keiju@... (石塚圭樹 ) 1999/02/08

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

[#4849] Re: module Precision — gotoken@... (GOTO Kentaro) 1999/02/08

ごとけんです

[#4924] Re: module Precision — keiju@... (石塚圭樹 ) 1999/02/09

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

[#4976] a genericity — gotoken@... (GOTO Kentaro) 1999/02/10

ごとけんです

[#5008] Re: a genericity — keiju@... (石塚圭樹 ) 1999/02/11

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

[#5018] Re: a genericity — gotoken@... (GOTO Kentaro) 1999/02/11

ごとけんです

[#5171] Re: a genericity — keiju@... (石塚圭樹 ) 1999/02/16

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

[ruby-dev:3794] port NetBSD/ alpha 1.3I

From: SHIROYAMA Takayuki <psi@...>
Date: 1998-12-13 13:24:08 UTC
List: ruby-dev #3794
ども、白山@おうちです。

家の方のメールアドレスでは ruby-* MLに参加してないので、
はじかれた時の為にまつもとさんと私の会社のメールアドレス
に Cc: してます。

家に転がっている NetBSD/alpha 1.3I にて、 dynamic load まで
できる ruby-1.1c9 のコンパイルに成功したので報告致します。

まず、環境は

DEC 3000/300
NetBSD/alpha 1.3I
gcc version egcs-2.91.58 19981101 (egcs-1.1.1 pre-release)

というものです。

少なくとも、同マシン上で  NetBSD/1.1G とgcc( versionを
忘れました、すみません) の時は (当時最新リリースだった)
ruby-1.1c6 はコンパイルして稼働するものの dynamic load
ができなかったのですが、今回上記の状態で試した所、以下
の部分に修正を加える事によって成功しました。
いづれも dln.c で

・81行目 FUNCNAME_PATTERN を定義している所で、
	NetBSD は

	#  define FUNCNAME_PATTERN "_Init_%.200s"

	っとなっているが、実際には _のつかない

	#  define FUNCNAME_PATTERN "Init_%.200s"

	になる。

・1071行目 ヘッダファイルをインクルードしている所で、
	NetBSDの場合 dlfcn.h ではなくnlist.h と link.h を
	インクルードする様になっているが、dlopen等の
	関数は dlfcn.h にあるので、こちらをインクルード
	する様に修正

の二つです。

ただ、これだけでは ruby 本体側バイナリで定義されて
いるシンボルをロードされたモジュールが参照できず、

sakura>  ./ruby
require "./ext/etc/etc.o"
^D
./ext/etc/etc.so: Undefined PLT symbol "rb_define_module" (reloc type = 26,  
symnum = 48)

っと実行時にエラーになってしまいます。

ruby本体のコンパイル時にccへ -export-dynamicというオプ
ションを渡すと、どうやら全てのシンボルを外部のモジュール
から参照できる様にしてくれる模様であり、実際に

・Makefile 16行目 LDFLAGS に -export-dynamic を追加

をおこない、 ruby のリンク時に -export-dynamic オプションを
設定して生成されたものでは、

sakura> ./ruby
require "./ext/etc/etc.o"

p Etc.getlogin
"shiro"

っとうまく実行されます。

以上の、

・FUNCNAME_PATTERN が "_" つきからなしになった事
・-export-dynamicが必要な事

の二点は、全てのアーキテクチャの NetBSDで有効(必要)
なのか、"_"のありなしががいつの版から変わったのか等
は、NetBSDの一ユーザに過ぎない私には分かりません(^^;)

# なので、下のパッチはあくまで「うちの環境じゃこれで
# うごいたもんねー」ってものにすぎず、公式にとりこむ
# には、ちと問題があると思います。

とりいそぎ、ご報告まで
---
SHIROYAMA Takayuki : psi@fortune.nest.or.jp

#
# please use this patch after configure
#
*** ruby-1.1c9/dln.c.original   Mon Nov  9 18:11:48 1998
--- ruby-1.1c9/dln.c    Sun Dec 13 21:45:14 1998
***************
*** 78,84 ****
  #endif

  #ifndef FUNCNAME_PATTERN
! # if defined(__hp9000s300) || defined(__NetBSD__) || defined(__BORLANDC__)  
|| (defined(__FreeBSD__) && __FreeBSD__ < 3) || defined(NeXT) ||  
defined(__WATCOMC__)
  #  define FUNCNAME_PATTERN "_Init_%.200s"
  # else
  #  define FUNCNAME_PATTERN "Init_%.200s"
--- 78,84 ----
  #endif

  #ifndef FUNCNAME_PATTERN
! # if defined(__hp9000s300) || ( defined(__NetBSD__) && !  
defined(__alpha__) ) || defined(__BORLANDC__) || (defined(__FreeBSD__) &&  
__FreeBSD__ < 3) || defined(NeXT) || defined(__WATCOMC__)
  #  define FUNCNAME_PATTERN "_Init_%.200s"
  # else
  #  define FUNCNAME_PATTERN "Init_%.200s"
***************
*** 1068,1074 ****
  #endif /* USE_DLN_A_OUT */

  #ifdef USE_DLN_DLOPEN
! # ifdef __NetBSD__
  #  include <nlist.h>
  #  include <link.h>
  # else
--- 1068,1074 ----
  #endif /* USE_DLN_A_OUT */

  #ifdef USE_DLN_DLOPEN
! # if defined ( __NetBSD__ ) && ! defined ( __alpha__ )
  #  include <nlist.h>
  #  include <link.h>
  # else

*** ruby-1.1c9/Makefile.original        Sun Dec 13 22:22:07 1998
--- ruby-1.1c9/Makefile Sun Dec 13 22:09:46 1998
***************
*** 13,19 ****

  prefix = /usr/local
  CFLAGS = -g -O2 -I. -I. -I${prefix}/include
! LDFLAGS =  $(CFLAGS)
  EXTLIBS =
  LIBS = -lcrypt -lm  $(EXTLIBS)
  MISSING =
--- 13,19 ----

  prefix = /usr/local
  CFLAGS = -g -O2 -I. -I. -I${prefix}/include
! LDFLAGS =  $(CFLAGS) -export-dynamic
  EXTLIBS =
  LIBS = -lcrypt -lm  $(EXTLIBS)
  MISSING =


In This Thread

Prev Next