2012年

M3-2012春頒布物

(やっと)M3情報です。

新譜「じゆうなうた」

再掲:
2012年4月30日(月)
東京流通センター(TRC)
第一展示場 L 14b
サークル名 Estuary

ひやかし等、お待ちしております。

M3-2012春

M3当選しました。

2012年4月30日(月)
東京流通センター(TRC)
第一展示場 L 14b

イベントの詳細はこちらをご覧ください。 http://www.m3net.jp/

頒布物については、後日(3月末~4月上旬頃できるだけ早めに)お知らせします。

binutilsが正しく作れないことがある件

NetBSDでmingw-w64を作っていて、クロスのgccもbinutilsも出来上がったのに、それでコンパイルしたバイナリをWindowsに持っていって実行しようとすると“not a valid WIN32 application”(日本語版だと「有効なWIN32アプリケーションではありません」)などと言われる。

結論から書くと、binutilsのldのldscriptsが正しく作れていなかった。

configureでSHELLとして何故か/bin/shではなく/bin/kshが選ばれるが、このシェルだとgenscripts.sh(から呼ばれているscripttempl/pep.scなど)がエラーになる。

エラーなので止まってくれれば良いのだが、実際にはそのまま進んで、make installすると途中で打ち切られた(実質中身のない)ldscriptsがインストールされてしまう。

出来上がったgcc+binutilsを使ってコンパイルしたときに、一見すると正しいPE32(+) executableに見えるモノが出来てしまうので、なかなか原因がわからなかった。しかし、以前にも、違うパターンとはいえ同じ部分でハマったことがあったのだった。http://est.ceres.ne.jp/2008/07/02/post_241/…すぐに気がつくべきだった。

回避方法としては、binutilsのconfigureを実行する際、CONFIG_SHELL=/bin/sh …/configure …とでもすれば良い。多分。

configure: error: libmpfr not found or uses a different ABI.

クロスコンパイラを用意していた時の話。

いまどきの gcc は、gmp, mpfr, mpc といったライブラリが必要で、一緒に作る場合は gcc のソースディレクトリの中に展開して、バージョン番号のない形にリネームしておく、とかいう話はどこにでも書いてあるけれど、mpc のコンパイル前の configure でコケる。

configure: error: libmpfr not found or uses a different ABI.

gccのconfigureの際、gcc のソースがあるのが ${SRCDIR}、コンパイルするのが ${BUILDDIR}、とすると、

$ cd ${BUILDDIR}
$ ${SRCDIR}/configure --prefixとかtargetとか指定したいオプション… 
   --with-mpfr-include=${SRCDIR}/mpfr/src 
   --with-mpfr-lib=${BUILDDIR}/mpfr/src/.libs

…とすれば回避はできる。(gcc-4.6.2で確認)

こんな指定をさせる仕様ではないと思うのだが。