Solarisでgcc-4.1.2
gccのページをみるといつの間にかバージョンアップされているではありませんか。早速ダウンロードしてコンパイルリンク。
$ /usr/local/bin/tar -jxvf gcc-4.1.2.tar.bz2 $ cd gcc-4.1.2 $ mkdir objdir $ cd objdir $ ../configure --with-as=/usr/ccs/bin/as --with-ld=/usr/ccs/bin/ld --disable-nls $ /usr/local/bin/make (中略) Adding java source files from VM directory /export/home/hoge/gcc-4.1.2/objdir/sparc-sun-solaris2.9/sparcv9/libjava ./gen-classlist.sh: test: unknown operator -ef make[6]: *** [genclasses] Error 1 make[6]: Leaving directory `/export/home/hoge/gcc-4.1.2/objdir/sparc-sun-solaris2.9/sparcv9/libjava/classpath/lib' make[5]: *** [all-recursive] Error 1 make[5]: Leaving directory `/export/home/hoge/gcc-4.1.2/objdir/sparc-sun-solaris2.9/sparcv9/libjava/classpath' make[4]: *** [all-recursive] Error 1 make[4]: Leaving directory `/export/home/hoge/gcc-4.1.2/objdir/sparc-sun-solaris2.9/sparcv9/libjava' make[3]: *** [multi-do] Error 1 make[3]: Leaving directory `/export/home/hoge/gcc-4.1.2/objdir/sparc-sun-solaris2.9/libjava' make[2]: *** [all-multi] Error 2 make[2]: Leaving directory `/export/home/hoge/gcc-4.1.2/objdir/sparc-sun-solaris2.9/libjava' make[1]: *** [all-target-libjava] Error 2 make[1]: Leaving directory `/export/home/hoge/gcc-4.1.2/objdir' make: *** [all] Error 2
うん。エラーですね。gen-classlist.shはどこにあるんじゃいと調べるとと
./objdir/sparc-sun-solaris2.9/libjava/classpath/lib/gen-classlist.sh
にあります。該当箇所は、
# Only include generated files once. if test ! "${top_builddir}" -ef "../../../../../libjava/classpath"; then echo "Adding generated files in builddir '${top_builddir}'." # Currently the only generated files are in gnu and java. (cd ${top_builddir}; /usr/bin/find gnu java -follow -name '*.java' -print) | sort | sed -e 's,/\([^/]*\)$, \1,' | while read pkg file; do echo $pkg $top_builddir $pkg/$file done >> ${top_builddir}/lib/classes.1 fi
マジックナンバは
#!/bin/shになってますね。そうかSolarisのshは-ef というファイル属性演算子がないんだな。
ではシェルの指定を変えてやればよろしい。その指定方法はgccのドキュメントにあります。
$ export CONFIG_SHELL=/usr/bin/bash $ ../configure --with-as=/usr/ccs/bin/as --with-ld=/usr/ccs/bin/ld --disable-nls $ /usr/local/bin/make # /usr/local/bin/make install
とインストール成功。
鳥頭
とここまで書いて、CONFIG_SHELLってなんか覚えがあるな、と過去のログを探ったら2006年8月8日のエントリで同じことやってる。すっかり忘れてましたよ。。エラーの内容がちょっと違うのが救いかな。