[前][次][番号順一覧][スレッド一覧]

mysql:258

From: <takeshi@xxxxxxxxxx>
Date: Mon, 21 Sep 1998 12:48:51 +0900
Subject: [mysql 258] ruby.. unresolv moddi3


毅です

ちょっと民斗さんの ruby を使って、 ruby の勉強でもしようとおもって、
コンパイルしたのですが、
require "mysql"
で
ruby: can't resolve symbol '__moddi3'
ruby: can't resolve symbol '__divdi3'
となってしまいました。
( gcc-2.7.2, mysql-3.22.4a-beta, Linux libc5 )

どうも、libmysqlclient が呼び出している関数の一部が、
gcc がリンク時に使う自分の libgcc.a 内にある moddi3 , divdi3 を
呼び出しており、これが ruby , mysql.so , libmysqlclient.so|.a
のすべてで unedf となっているため、おきているようです。

で、しょうがないので、ruby の main.c に、moddi3 を使うように、
全く使わない関数を入れて gcc をだまして回避したわけですが、
もっとうまく回避できないものでしょうか?

# ruby 本体を -lmysqlclient でコンパイルすると多分行くかな?
# ruby 本体が libmysqlclient に依存するのもいやだなぁ...

これって、Linux の gcc-2.7.2 だけで起こってます?
他の環境ではどうなんでしょう?

 村上 毅  takeshi@xxxxxxxxxx
 PGP fingerprint = 45 5D 54 12 B4 55 77 7F  D4 52 66 EC 03 3F 1B E9
 [ http://www.softagency.co.jp/mysql/ ]
 [ MySQL ML: mysql-help@xxxxxxxxxx ]

[前][次][番号順一覧][スレッド一覧]