[Gauche-devel-jp] I've error at make check of Gauche-0.8.2.

アーカイブの一覧に戻る

Katsutoshi Itoh cut-s****@maste*****
2004年 11月 30日 (火) 21:19:28 JST


伊東です。
長文失礼します。

早速ダウンロードしてインストールしようとしたら、 0.8.2 の make check でエラー発生しました。

まずいつものようにこちらの環境。

cut-sea @ jini> uname -rms
NetBSD 1.6.2 i386

cut-sea @ jini> gauche-config --reconfigure
./configure '--with-slib=/usr/pkg/share/slib'
            '--with-local=/usr/pkg' 
            '--with-prefix=/usr/local'
            '--enable-ipv6'
            '--with-rpath=/usr/local/lib:/usr/pkg/lib:/usr/lib'


make にあたっては、
http://lists.sourceforge.jp/mailman/archives/gauche-devel-jp/2004-August/001054.html
のスレッドによる LD_LIBRARY_PATH の一時変更により、 make まで正常終了しました。
一応 make clean;make し直して再確認しましたが、 make 自体は warnning すらない綺麗なものでした。

cut-sea @ jini> setenv|grep LD
LD_LIBRARY_PATH=/home/cut-sea/compile/Gauche-0.8.2/src:/usr/local/lib:/usr/pkg/lib:/usr/X11R6/lib:/usr/lib

cut-sea @ jini> ldd src/gosh
src/gosh:
         -lcrypt.0 => /usr/lib/libcrypt.so.0
         -lutil.6 => /usr/lib/libutil.so.6
         -lm.0 => /usr/lib/libm387.so.0
         -lm.0 => /usr/lib/libm.so.0
         -lgauche => /home/cut-sea/compile/Gauche-0.8.2/src/libgauche.so
         -lc.12 => /usr/lib/libc.so.12


ここで make check を実行すると以下です。
長くなりますがまるごと付けます。

cut-sea @ jini> make check
for d in gc src lib ext doc; do (cd $d; make all); done
Making all in doc
Making all in include
for d in auxsys threads uvector charconv binary net termios  fcntl sxml syslog dbm mt-random digest vport; do (cd $d; make default); done
for d in gc src lib ext doc; do (cd $d; make check); done
Making check in doc
Making check in include
make  gctest
`gctest' is up to date.
make  check-TESTS
Completed 1 tests
Allocated 648021 collectable objects
Allocated 101 uncollectable objects
Allocated 1250000 atomic objects
Allocated 10880 stubborn objects
Finalized 2206/2206 objects - finalization is probably ok
Total number of bytes allocated is 49968088
Final heap size is 4169728 bytes
Collector appears to work
PASS: gctest
==================
All 1 tests passed
==================
TARGETLIB=`pwd`  gcc -g -O2 -fPIC -DPIC -Wl,--rpath "-Wl,`pwd`" -L/usr/pkg/lib  -o test-arith test-arith.o -L. -lgauche -lcrypt -lutil -lm
test-arith.o: In function `test_32_64':
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:494: undefined reference to `Scm__ConstObjs'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:495: undefined reference to `Scm_GetIntegerClamp'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:498: undefined reference to `Scm_GetIntegerClamp'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:501: undefined reference to `Scm_GetIntegerClamp'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:504: undefined reference to `Scm_GetIntegerClamp'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:521: undefined reference to `Scm_GetIntegerUClamp'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:521: undefined reference to `Scm_MakeIntegerU'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:524: undefined reference to `Scm_GetIntegerUClamp'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:524: undefined reference to `Scm_MakeIntegerU'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:536: undefined reference to `Scm_GetInteger32Clamp'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:539: undefined reference to `Scm_GetInteger32Clamp'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:542: undefined reference to `Scm_GetInteger32Clamp'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:545: undefined reference to `Scm_GetInteger32Clamp'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:548: undefined reference to `Scm_GetIntegerU32Clamp'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:548: undefined reference to `Scm_MakeIntegerU'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:551: undefined reference to `Scm_GetIntegerU32Clamp'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:551: undefined reference to `Scm_MakeIntegerU'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:555: undefined reference to `Scm_GetInteger64Clamp'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:555: undefined reference to `Scm_MakeInteger64'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:558: undefined reference to `Scm_GetInteger64Clamp'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:558: undefined reference to `Scm_MakeInteger64'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:561: undefined reference to `Scm_GetInteger64Clamp'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:561: undefined reference to `Scm_MakeInteger64'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:564: undefined reference to `Scm_GetInteger64Clamp'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:564: undefined reference to `Scm_MakeInteger64'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:568: undefined reference to `Scm_GetInteger64Clamp'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:568: undefined reference to `Scm_MakeInteger64'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:571: undefined reference to `Scm_GetInteger64Clamp'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:571: undefined reference to `Scm_MakeInteger64'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:574: undefined reference to `Scm_GetInteger64Clamp'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:574: undefined reference to `Scm_MakeInteger64'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:577: undefined reference to `Scm_GetInteger64Clamp'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:577: undefined reference to `Scm_MakeInteger64'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:582: undefined reference to `Scm_GetInteger64Clamp'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:582: undefined reference to `Scm_MakeInteger64'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:585: undefined reference to `Scm_GetInteger64Clamp'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:585: undefined reference to `Scm_MakeInteger64'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:588: undefined reference to `Scm_GetInteger64Clamp'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:588: undefined reference to `Scm_MakeInteger64'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:591: undefined reference to `Scm_GetInteger64Clamp'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:591: undefined reference to `Scm_MakeInteger64'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:595: undefined reference to `Scm_GetIntegerU64Clamp'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:595: undefined reference to `Scm_MakeIntegerU64'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:598: undefined reference to `Scm_GetIntegerU64Clamp'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:598: undefined reference to `Scm_MakeIntegerU64'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:601: undefined reference to `Scm_GetIntegerU64Clamp'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:601: undefined reference to `Scm_MakeIntegerU64'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:604: undefined reference to `Scm_GetIntegerU64Clamp'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:604: undefined reference to `Scm_MakeIntegerU64'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:608: undefined reference to `Scm_GetIntegerU64Clamp'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:608: undefined reference to `Scm_MakeIntegerU64'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:613: undefined reference to `Scm_GetInteger32Clamp'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:617: undefined reference to `Scm_GetInteger32Clamp'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:621: undefined reference to `Scm_GetInteger32Clamp'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:625: undefined reference to `Scm_GetInteger32Clamp'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:629: undefined reference to `Scm_GetInteger32Clamp'
test-arith.o:/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:633: more undefined references to `Scm_GetInteger32Clamp' follow
test-arith.o: In function `test_32_64':
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:641: undefined reference to `Scm_GetIntegerU64Clamp'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:645: undefined reference to `Scm_GetIntegerU64Clamp'
/usr/home/cut-sea/compile/Gauche-0.8.2/src/test-arith.c:649: undefined reference to `Scm_GetIntegerU64Clamp'
*** Error code 1

Stop.
make: stopped in /usr/home/cut-sea/compile/Gauche-0.8.2/src
for d in auxsys threads uvector charconv binary net termios  fcntl sxml syslog dbm mt-random digest vport; do (cd $d; make check); done
../..//src/gosh -ftest -I. test.scm > test.log
Testing auxsys ...                                               passed.
../..//src/gosh -ftest -I. test.scm > test.log
Testing threads ...                                              passed.
../..//src/gosh -ftest -I. test.scm > test.log
Testing uniform vector and array ...                             passed.
../..//src/gosh -ftest -I. test.scm > test.log
Testing charconv ...                                             passed.
../..//src/gosh -ftest -I. test.scm > test.log
Testing binary ...                                               passed.
../..//src/gosh -ftest -I. test.scm > test.log
Testing net ...                                                  passed.
../..//src/gosh -ftest -I. test.scm > test.log
Testing termios ...                                              passed.
../..//src/gosh -ftest -I. test.scm > test.log
Testing fcntl ...                                                passed.
../..//src/gosh -ftest -I. test.scm > test.log
Testing SSAX ...                                                 passed.
Testing sxpath ...                                               passed.
../..//src/gosh -ftest -I. test.scm > test.log
Testing syslog ...                                               passed.
../..//src/gosh -ftest -I. test.scm > test.log
Testing dbm ...                                                  passed.
../..//src/gosh -ftest -I. test.scm > test.log
Testing mt-random ...                                            passed.
../..//src/gosh -ftest -I. test.scm > test.log
Testing digest framework ...                                     passed.
../..//src/gosh -ftest -I. test.scm > test.log
Testing vport ...                                                passed.

ここまでです。
ほとんどの前半の試験がすっとんでます。
でも test-arith.o 自体はちゃんとコンパイル出来てて、nm 通すとこんな感じで一応 test_32_64 もある。
objdump --disassemble test-arith.o してみてもちゃんとルーチンがあるっぽいし。

cut-sea @ jini> nm test-arith.o
         U Scm_Add
         U Scm_EqualP
         U Scm_GetInteger32Clamp
         U Scm_GetInteger64Clamp
         U Scm_GetIntegerClamp
         U Scm_GetIntegerU32Clamp
         U Scm_GetIntegerU64Clamp
         U Scm_GetIntegerUClamp
         U Scm_Init
         U Scm_MakeInteger
         U Scm_MakeInteger64
         U Scm_MakeIntegerU
         U Scm_MakeIntegerU64
         U Scm_Negate
         U Scm_Printf
         U Scm_VM
         U Scm__ConstObjs
         U _GLOBAL_OFFSET_TABLE_
         U __sF
         U __swbuf
00000000 D errcount
         U fprintf
000047f8 T main
00000000 T message
         U printf
00003eac T test_32_64
000009a0 T test_saddov
00003da4 T test_scm_c_scm
00002a50 T test_smulov
00001a58 T test_ssubov
00003e30 T test_true
000000bc T test_uadd
000005c4 T test_uaddov
00002378 T test_umul
0000250c T test_umulov
0000123c T test_usub
00001700 T test_usubov

ここでほとんど U(未定義)だから実体はあんのか?ということで調べたら number.c 内ですね。

cut-sea @ jini> pwd
/usr/home/cut-sea/compile/Gauche-0.8.2/src

cut-sea @ jini> nm number.o | awk '$2=="T" || $2=="D"'
00000c84 T Scm_Abs
00001380 T Scm_Add
000003e0 T Scm_Angle
00003310 T Scm_Ash
00000080 D Scm_ComplexClass
00000170 T Scm_DecodeFlonum
00001f14 T Scm_Divide
00001088 T Scm_ExactToInexact
00002bf0 T Scm_Expt
00000af0 T Scm_GetDouble
00000700 T Scm_GetInteger32Clamp
00000810 T Scm_GetInteger64Clamp
000004f0 T Scm_GetIntegerClamp
0000072c T Scm_GetIntegerU32Clamp
00000968 T Scm_GetIntegerU64Clamp
000005f8 T Scm_GetIntegerUClamp
0000111c T Scm_InexactToExact
00000140 D Scm_IntegerClass
00000b54 T Scm_IntegerP
00003490 T Scm_LogAnd
00003594 T Scm_LogIor
0000341c T Scm_LogNot
0000365c T Scm_LogXor
0000034c T Scm_Magnitude
00000238 T Scm_MakeComplex
00000274 T Scm_MakeComplexNormalized
000002c8 T Scm_MakeComplexPolar
0000007c T Scm_MakeFlonum
000000b4 T Scm_MakeFlonumToNumber
00000478 T Scm_MakeInteger
00000758 T Scm_MakeInteger64
000004b8 T Scm_MakeIntegerU
000007bc T Scm_MakeIntegerU64
0000304c T Scm_MinMax
00002674 T Scm_Modulo
00001b28 T Scm_Multiply
00000e20 T Scm_Negate
00002e70 T Scm_NumCmp
00002ddc T Scm_NumEq
00000020 D Scm_NumberClass
000040ec T Scm_NumberToString
00000bdc T Scm_OddP
000011f8 T Scm_PromoteToBignum
000012e4 T Scm_PromoteToComplex
00001254 T Scm_PromoteToFlonum
00002384 T Scm_Quotient
000000e0 D Scm_RealClass
00000efc T Scm_Reciprocal
000031e0 T Scm_Round
00000d78 T Scm_Sign
00005368 T Scm_StringToNumber
00001764 T Scm_Subtract
00000a80 D Scm__ConstObjs
000053ac T Scm__InitNumber

あるなぁ。なんで undefined reference なんてなるんでしょう。





Gauche-devel-jp メーリングリストの案内
アーカイブの一覧に戻る