[#4754] Now,I am starting ruby. — mamoru@... (Mamoru Matushita)

先日、初めて投稿したつもりだったのですが間違えて

14 messages 1997/10/02

[#4891] mixin - singleton method inheritance, const etc... — shugo@... (Shugo Maeda)

前田です。

13 messages 1997/10/10

[#5000] ruby 1.0-971015 released — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

14 messages 1997/10/15

[#5056] RubyでOODB — hisanori@...

松尾です。

20 messages 1997/10/20
[#5057] Re: RubyでOODB — matz@... (Yukihiro Matsumoto) 1997/10/20

まつもと ゆきひろです

[#5065] Re: RubyでOODB — hisanori@... 1997/10/20

松尾です。

[#5066] Re: RubyでOODB — matz@... (Yukihiro Matsumoto) 1997/10/20

まつもと ゆきひろです

[ruby-list:4852] Re: _muldi3 included in libgcc.a(Re: rbc.rb)

From: shugo@... (Shugo Maeda)
Date: 1997-10-08 08:34:48 UTC
List: ruby-list #4852
前田です。

In message "[ruby-list:4850] Re: _muldi3 included in libgcc.a(Re: rbc.rb)"
"EGUCHI Osamu" <eguchi@shizuokanet.or.jp> wrote:

|> :通常 _muldi3 は、 libgcc.a に含まれています。
|> 
|> なるほど. gcc -shared だと -lgcc とかがつかないんだ.
|> -lgcc を追加するのが簡単ですね.
|
|たぶんそれでもうまく行きます。。

最初-lgccを付けただけではやはり同じ症状でしたので,

#ifdef linux
static void dummy()
{
    __muldi3();
    __moddi3();
    __divdi3();
}
#endif

としたらSegmentation faultしてしまいました:-(
_muldi3.oなどをlibgcc.aから取り出して直接リンクしてもやはり
Segmentation faultしてしまいました。

(gdb) run ../../ruby/rbc.rb
Starting program: /home/shugo/src/ruby-1.1a9/ruby ../../ruby/rbc.rb
rbc0> require 'java'

Program received signal SIGSEGV, Segmentation fault.
0x402f24c3 in _sched_unlock ()
    at ../../../../src/genunix/java/green_threads/src/signals.c:585
../../../../src/genunix/java/green_threads/src/signals.c:585: No such file or directory.
(gdb) bt
#0  0x402f24c3 in _sched_unlock ()
    at ../../../../src/genunix/java/green_threads/src/signals.c:585
#1  0x402f18c1 in sysMonitorEnter ()
    at ../../../../src/genunix/java/green_threads/src/monitor_md.c:337
#2  0x402f0a33 in open ()
    at ../../../../src/genunix/java/green_threads/src/iomgr.c:1461
#3  0x402f0a51 in open ()

|どうも libjava は、古い(あるいは改造された) gcc でコンパイル
|されているのではないかと思います。

Javaをコンパイルし直すのがてっとり早いような気がするのですが,
きっとソースを貰うためにはライセンスを受けたりしないといけな
いのでしょうね...。

|別件ですが Java の long って gcc の long long でないですか?
|手元に動く Java の処理系がないので、確認できないのですが。
|もし long long と、jri:ext/java/java.c の INT2NUM() で
|jlong を 変換しているあたりでオーバーフローしますね。

sizeof(jlong): 8

でした:-(
LONGLONG2NUMとか用意しないといけないですね...。

-- 
前田 修吾

In This Thread