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

mysql:2304

From: Yasuhide OOMORI / 大森保英 <Yasuhide OOMORI / 大森保英 <dasen@xxxxxxxxxx>>
Date: Tue, 25 Jul 2000 00:17:02 +0900
Subject: [mysql 02304] Re: Cannot build Msql-Mysql-modules-1.2214

大森保英です。お世話になっております。

On Mon, Jul 24, 2000 at 08:17:21AM +0900,
takeshi@xxxxxxxxxx wrote:
>
>> cc -c -I/usr/lib/perl5/site_perl/5.005/i386-linux/auto/DBI -I/usr/include/mysql -I../dbd -I/usr/lib/perl5/site_perl/5.005/i386-linux/auto/DBI -I/usr/lib/perl5/5.00503/i386-linux -Dbool=car -DHAS_BOOL -O2    -DVERSION=\"2.0414\" -DXS_VERSION=\"2.0414\" -fpic -I/usr/lib/perl5/5.00503/i386-linux/CORE -DDBD_MYSQL mysql.c
>> Running Mkbootstrap for DBD::mysql ()
>> cmod 644 mysql.bs
>> LD_RUN_PATH="/usr/lib/mysql:/lib:/usr/lib/gcc-lib/i386-redat-linux/egcs-2.91.66" cc -o ../blib/arc/auto/DBD/mysql/mysql.so  -sared -L/usr/local/lib dbdimp.o mysql.o -L/usr/lib/mysql    -L/usr/lib/mysql -lmysqlclient -lm -L/usr/lib/gcc-lib/i386-redat-linux/egcs-2.91.66 -lgcc 
>
>
>後に示されている ldd の結果から見ると、
>-L/usr/lib/mysql -lmysqlclient -lm
>の指定では、ライブラリが足りないです。
>ldd の結果に示されているライブラリを追加します。
>ldd の結果を見ると、
>-lm -lz -lnsl -lcrypt を、mysql.so コンパイル時に追加しておけば
>よいでしょう。
>または、LD_RUN_PATH の指定に、/usr/lib も追加してみます。
>
>備:
>mysqlbug の結果を見ると、この MySQL は TcX のバイナリのようですが、
>TcX バイナリの MySQL-devel-*.rpm は、
>libmysqlclient.a を /usr/lib/mysql/ に配置し、
>MySQL-shared-*.rpm では
>libmysqlclient.so を /usr/lib/ に配置しています。
>そのため、コンパイル時の指定には、
>コンパイラが .so を見るのか、.a を見るのかを
>少し注意する必要があります。

perl Makefile.PL の実行後に、Msql-Mysql-modules-1.2214/mysql/Makefile
を手で以下のように修正し、御指摘のライブラリをリンクさせ、
libmysqlclient.so を明示的に指定しました。

(before)
EXTRALIBS =  /usr/lib/mysql/libmysqlclient.a -lm -L/usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66 -lgcc
LDLOADLIBS =  /usr/lib/mysql/libmysqlclient.a -lm -L/usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66 -lgcc

(after)
EXTRALIBS = -lm -lz -lnsl -lcrypt -lmysqlclient -lm -L/usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66 -lgcc
LDLOADLIBS = -lm -lz -lnsl -lcrypt -lmysqlclient -lm -L/usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66 -lgcc

その結果、

[yasuhide@localhost Msql-Mysql-modules-1.2214]$ make test
make[1]: Entering directory `/var/tmp/Msql-Mysql-modules-1.2214/mysql'
make[1]: Leaving directory `/var/tmp/Msql-Mysql-modules-1.2214/mysql'
make[1]: Entering directory `/var/tmp/Msql-Mysql-modules-1.2214/mysql'
PERL_DL_NONLAZY=1 /usr/bin/perl -I../blib/arch -I../blib/lib -I/usr/lib/perl5/5.00503/i386-linux -I/usr/lib/perl5/5.00503 -e 'use Test::Harness qw(&runtests $verbose); $verbose=0; runtests @ARGV;' t/*.t
t/00base............ok
t/10dsnlist.........ok
t/20createdrop......ok
t/30insertfetch.....ok
t/40bindparam.......ok
t/40blobs...........ok
t/40listfields......ok
t/40nulls...........ok
t/40numrows.........ok
t/50chopblanks......ok
t/50commit..........ok
t/60leaks...........skipping test on this platform
t/ak-dbd............ok
t/dbdadmin..........ok
All tests successful, 1 test skipped.
Files=14,  Tests=276, 26 wallclock secs ( 4.24 cusr +  0.57 csys =  4.81 CPU)
make[1]: Leaving directory `/var/tmp/Msql-Mysql-modules-1.2214/mysql'
[yasuhide@localhost Msql-Mysql-modules-1.2214]$ 

という具合で、make test は通りました。これから色々と試してみようと思い
ます。

>egcs-1.1.x は、MySQL 本体をコンパイルするとき少し不具合があるので、
>できるなら gcc-2.95.2 以上を使用した方がいいでしょう

もしコンパイラをアップデートした場合には、Perl も再コンパイルすべきな
のでしょうか?
# コンパイラのアップデートは未体験なので、ちょっと避けたいところですが…。
-- 
大森保英

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

      2292 2000-07-24 00:41 [Yasuhide OOMORI / 大] Cannot build Msql-Mysql-modules-1.2214  
      2295 2000-07-24 08:17 ┗[<takeshi@xxxxxxxxxx>]                                       
->    2304 2000-07-25 00:17  ┣[Yasuhide OOMORI / 大]                                     
      2307 2000-07-25 12:22  ┃┗[<takeshi@xxxxxxxxxx>]                                   
      2315 2000-07-27 01:24  ┗[Yasuhide OOMORI / 大] gcc-2.95.2 (Re: Cannot build Msql-Mysql-modules-1.2214)
      2316 2000-07-27 08:37   ┗[<takeshi@xxxxxxxxxx>]                                   
      2318 2000-07-27 10:20    ┗[とみたまさひろ <tomm]