Go to Cygwin

ネイティブビルドは死んでも終わらなさそうだったので、仕方なく、Cygwinを狙ってみることに。
そのまま始めてみると、lib9のビルドからずっこける。こ、こいつめ……
とりあえず、lib9で問題となる点と修正は

  • Linuxと同じくstat::st_genがないので、_p9dir.cのst_gen存在確認を修正する
  • Cygwinのsigsetjmp系が特殊なので、p9setjmpマクロをjmp.cで関数化、jmp.cのvoid*キャストを、一時変数はさんでsigjmp_bufに変換するように修正する

これで、lib9とlibbioが通る。
問題はlibmachで、こいつがuname=darwin, linux以外におことわりしてくる。どうやら、`uname`.cをコンパイルするように仕組まれいて、Cygwin向けに新しくコードを書き起こす必要があるようだ。
Cygwinならいけるかと思ったが、ここまでおもしろ可笑しい作りだとは思いもしなかった……