opensslコンパイル成功
0.9.8が最新だと思ってがんばってきましたが、-ldlがないって怒られます。Configureでlinux-elfを使っていたのですがarmに対応していない様な雰囲気の漂う中いろいろあさっているうちに0.9.6ならliunx-elf-armがあるという情報を入手しました。で早速バージョンを下げてコンパイル。
./Configure no-idea no-threads no-shared no-asm -mcpu=arm7 linux-elf-arm
opensslは成功したのですが、今度はsshのコンパイルでAESがないって怒られました。Makefileをみるとopensslのバージョンが0.9.6以前だとsshについているAESを使うことになっているようでしたがそれがここのsshのソースに含まれていないということのようでした。しょうがないので0.9.7で試そうと思ったのですが、linux-elf-armはあったのですが-ldlがついてました。同じ直すならということで、0.9.6のlinux-elfとlinux-elf-armの違いを参考に、0.9.8のlinux-elfからlinux-elf-armを作ってみました。
するとコマンドのopensslを作る段階でこけるようになりました。どうもarm-elf-gccに渡すオプションが足りないようだということで、sampleのhelloを参考にさらにConfigureに追加したところコンパイルは通るようになりました。
"linux-elf-arm", "arm-elf-gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall -fno-builtin -D__PIC__ -fpic -msingle-pic-base -Wl,-elf2flt::-D_REENTRANT:::BN_LLONG:-Wl,-elf2flt=-z :dlfcn:linux-shared:::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
その後微妙にライブラリにリンクが通らないのを手でln -sしたり、sshのMakefileになぜか-lcryptが抜けているのを修正したり、opensslがmake romfsするときにこけるのを避けるためにromfsを追加したり、などの細かい点を修正した結果コンパイルは終了しました。
イメージはできたのですが、sshバイナリをコピーしてデフォルトBaseのarmadilloにコピーしても動きませんでした。(tcpdumpはうごいたのに)ということでイメージごとアップグレードしようと、欲張ってsnortも入れたらディスクに収まりませんでした。
結局sshクライアントは正常に稼動。めでたしめでたし。