引き続き openssl-0.9.8 に変えたあと Solairs9 SPARC で openssh-4.1.p1 の再構築。
あ、zlibも 1.2.3 にしてますた。
で make 中にエラーがでたのでその時の対処メモ。
make 中では以下のようなエラーでストップ。
gcc -o ssh ssh.o readconf.o clientloop.o sshtty.o sshconnect.o sshconnect1.o sshconnect2.o -L. -Lopenbsd-compat/ -L/usr/local/ssl/lib -R/usr/local/ssl/lib -lssh -lopenbsd-compat -lresolv -lcrypto -lrt -lz -lsocket -lnsl
未定義の 最初に参照している
シンボル ファイル
dlopen /usr/local/ssl/lib/libcrypto.a(dso_dlfcn.o) (シンボルは暗黙の依存性 /usr/lib/libdl.so.1 に属しています)
dlclose /usr/local/ssl/lib/libcrypto.a(dso_dlfcn.o) (シンボルは暗黙の依存性 /usr/lib/libdl.so.1 に属しています)
dlsym /usr/local/ssl/lib/libcrypto.a(dso_dlfcn.o) (シンボルは暗黙の依存性 /usr/lib/libdl.so.1 に属しています)
dlerror /usr/local/ssl/lib/libcrypto.a(dso_dlfcn.o) (シンボルは暗黙の依存性 /usr/lib/libdl.so.1 に属しています)
ld: 重大なエラー: シンボル参照エラー。ssh に書き込まれる出力はありません。
collect2: ld はステータス 1 で終了しました
gmake: *** [ssh] Error 1
%
なんだか最近こんなんばっかの気がする。orz
いろいろ調べてみたら、 -ldl が抜けてるからじゃね?ということで。
試しに Makefile の LIBS の最後に -ldl いれてみたら make が成功。
openssl-0.9.8 使ったからその変更が影響してるんだろうか。
それともzlibかな?時間があったら調査してみよう。
んでまあ、configure 時に --with-libs="-ldl" とかしとけば、
configure の最後の表示で、
Host: sparc-sun-solaris2.9
Compiler: gcc
Compiler flags: -g -O2 -Wall -Wpointer-arith -Wno-uninitialized
Preprocessor flags: -I/usr/local/ssl/include
Linker flags: -L/usr/local/ssl/lib -R/usr/local/ssl/lib
Libraries: -lresolv -lcrypto -lrt -lz -lsocket -lnsl
だったのが、
Host: sparc-sun-solaris2.9
Compiler: gcc
Compiler flags: -g -O2 -Wall -Wpointer-arith -Wno-uninitialized
Preprocessor flags: -I/usr/local/ssl/include
Linker flags: -L/usr/local/ssl/lib -R/usr/local/ssl/lib
Libraries: -lresolv -lcrypto -lrt -lz -lsocket -lnsl -ldl
↑ここだよここ!(ポートピア連続殺人事件風)
という風に変わるのできれいにとおるようになるっちゅうことで。
(`□´) 以上である!(爆)
