CygwinでGoogle go(golang)を動かす。(コンパイル失敗)
めずらしく風邪をひいてしまったのと年末ごたごたしていて、しばらくぶりのBlogになってしまいました。
さて、少し前に試してみたGoogle goだけど、Windows環境ではコンパイルが通らない状況だった。
Plan9がらみでGoogle goについて調べてみるとCygwin向けのGoogle goポーテイングがあったのでどこまで動くか、試してみた。
参考:
Google Code Archive - Long-term storage for Google Code Project Hosting.
$ mkdir ~go/ $ export GOROOT=~/go/golang-on-cygwin $ export GOARCH=386 $ export GOOS=linux $ export GOBIN=/usr/local/bin $ export PATH=$PATH:$GOBIN $ hg clone https://golang-on-cygwin.googlecode.com/hg/ golang-on-cygwin $ cd golang-on-cygwin/src $ ./make.bash
残念ながら、コンパイルで失敗してしまう。ひとつずつ片付けていく。
ちょっとアクロバットだが、上記のビルド開始後、別ウインドウでディレクトリ作成を実施。
$ cd ~/go/golang-on-cygwin $ mkdir -p pkg/Linux_386
さらにファイル"src\libcgo\386.S"にパッチ。
.globl EXT(crosscall_386) EXT(crosscall_386:)
をこんな感じに直す。
.globl EXT(_crosscall_386) EXT(_crosscall_386:)
これで、コマンドの8gや8lの生成までは進めた。しかし、その後コンパイルしたバイナリーを動かすとエラーとなってしまいさすがに先に進めない。
先に進むにはもうちょっと時間がかかりそう。今日はここまで。
$ ./8.out ./8.out: ./8.out: cannot execute binary file