2013年3月12日火曜日

Windows8 64bit上での Cygwin

Windows8 64bit 環境上で Cygwin 1.7 を使い、make を走らせると、fork に失敗するという(致命的な)現象が起きる。
例えば、こんな感じ。

$ make
gcc -std=gnu99 `test -f 'gen-fac_ui.c' || echo '../gmp-5.0.1/'`gen-fac_ui.c -o gen-fac_ui.exe
      1 [main] gcc-4 2412 fhandler_disk_file::fixup_mmap_after_fork: requested 0xFFE90000 != 0x0 mem alloc base 0x0, state 0x10000, size 65536, Win32 error 487
   1132 [main] gcc-4 2412 C:\Cygwin\bin\gcc-4.exe: *** fatal error in forked process - recreate_mmaps_after_fork_failed
   3101 [main] gcc-4 2412 open_stackdumpfile: Dumping stack trace to gcc-4.exe.stackdump
      1 [main] gcc 1480 fork: child -1 - forked process 2412 died unexpectedly,retry 0, exit code 256, errno 11
      0 [main] collect2 5364 fhandler_disk_file::fixup_mmap_after_fork: requested 0xFFE90000 != 0x0 mem alloc base 0x0, state 0x10000, size 65536, Win32 error 487
    596 [main] collect2 5364 C:\Cygwin\lib\gcc\i686-pc-cygwin\4.5.3\collect2.exe: *** fatal error in forked process - recreate_mmaps_after_fork_failed
   1354 [main] collect2 5364 open_stackdumpfile: Dumping stack trace to collect2.exe.stackdump
      1 [main] collect2 7144 fork: child -1 - forked process 5364 died unexpectedly, retry 0, exit code 256, errno 11
./gen-fac_ui 32 0 >mpz/fac_ui.h || (rm -f mpz/fac_ui.h; exit 1)


/bin/ash した後で /bin/rebaseall をすれば良いという意見を見掛けたが、自分の環境では

$ export LANG=C

を入力する事で治った。

参照したのはこちら。
Windows8 上で cygwin 版の git で pull/push/fetch に失敗する

0 件のコメント:

コメントを投稿