Island Life

< PC Upgrade Memo | practical-scheme.netのhttps対応 >

2015/12/17

Msys2 + MinGW-w64 メモ

ちょっと試してみてるので作業メモ。

  • msys2に入ってくるmingw64_shellなどのバッチファイルが $(msys-install-dir)/mingw64/bin をPATHに入れるようになってるので、mingw64がそこに入るように展開するのが良さげ。例えばmsys2のインストールディレクトリをデフォルトのC:\msys64にした場合、mingw-w64を展開するディレクトリを同じくC:\msys64と指定すればC:\msys64\mingw64に下に入ってくれるので好都合。(こうするとmingw-w64がC:\msys64直下にもバッチファイルを若干置くけど、気になるほどではない)
  • mingw-w64はインストール時にいくつかオプションがある。とりあえずスレッドモデルwin32、例外sehで入れてみた。
  • msys2は最初のインストーラで入るコマンドはパッケージマネージャpacmanを使うためのもので、autoconfmakeでさえ入らない。それらは必要に応じてpacmanで入れる。最初のステップは https://msys2.github.io/ のとおりにやるのが良い (pacman --needed -Sy bash pacman pacman-mirrors msys2-runtime の後に一度msys2窓を閉じないと次のpacman -Suでエラーが出る。)
  • Emacsもmingw-w64でプリコンパイルされたものを入れた: http://sourceforge.net/projects/emacsbinw64/ これは展開するとemacsサブディレクトリの下に全部入ってるので、C:\msys64\opt\emacs にまるっとコピーしてmsys2のPATHに /opt/emacs/bin を追加しといた。

調査中項目

  • msys2窓はminttyというのを使ってるがコマンドラインgoshがこれをターミナルと認識せずに 非インタラクティブモードに入ってしまう。gosh -iで起動すればとりあえずREPLには入れる。
  • mingw64はsizeof(long)が4で、x86_64 上ではsizeof(long)==8を仮定してたところが引っかかる
  • mingw64のランタイムはmingwのランタイムとposix系の定義が若干異なるので#ifdefがいくつか必要

Tags: Gauche, Windows, mingw, msys

Post a comment

Name: