PE勉強会が落ち着いたらELFを取り上げるのも面白いかなと思って、MSYSでELFが扱えるか確認してみました。そのまま何かのOSで動かせるバイナリを出力した方がいじりやすいため、NetBSD 5.1のクロスコンパイラを作ってみました。build.shを使わずにbinutilsやgccを--target=i686-netbsdelfで直接ビルドしています。(i686-netbsdとしてビルドするとa.outになります)
/usr/localに展開すれば、i686-netbsdelf-gccとして呼び出せるようになります。
$ mkdir /usr/local $ tar xvJf netbsd-5.1-i686-gcc.tar.xz -C /usr/local $ i686-netbsdelf-gcc hello.c