Minori Tokuda(@snowcrush)
Solaris(ソラリス)はサン・マイクロシステムズ(サン)によって開発され、 UNIXとして認証を受けたオペレーティングシステム (OS) である。
wikipedia
SPARC(スパーク、Scalable Processor Architecture)は、 サン・マイクロシステムズが開発・製造したRISCベースのマイクロプロセッサであり、 その命令セットアーキテクチャの名称である。
wikipedia
=> つらい
https://golang.org/doc/install/source#environment
...
あっ、Sparcが無い
http://ggolang.blogspot.jp/2015/05/gccgo-gcc510-cross-compile-for-sparc.html
このサイトを全部コピ参考にしました
$ sudo cd $SYSROOT
$ sudo rsync -a root@solaris_sparc_machine:/lib/ $SYSROOT/lib/
$ sudo rsync -a root@solaris_sparc_machine:/usr/lib $SYSROOT/usr/
$ sudo rsync -a root@solaris_sparc_machine:/usr/include $SYSROOT/usr/
$ sudo rsync -a root@solaris_sparc_machine:/usr/platform $SYSROOT/usr/
$ sudo rsync -a root@solaris_sparc_machine:/usr/local/lib $SYSROOT/usr/local/
$ sudo rsync -a root@solaris_sparc_machine:/usr/local/include $SYSROOT/usr/local/
$ sudo rsync -a root@solaris_sparc_machine:/usr/sfw/lib $SYSROOT/usr/sfw/
$ sudo rsync -a root@solaris_sparc_machine:/usr/sfw/include $SYSROOT/usr/sfw/
$ tar -zxf binutils-2.25.tar.gz
$ mkdir build-binutils
$ cd build-binutils
$ sudo ../binutils-2.25/configure -target=$TARGET --prefix=$PREFIX -with-sysroot=$SYSROOT -v
$ sudo make -j4
$ sudo make install
$ untar gcc-5.1.0.tar.gz
$ mkdir gcc-build
$ cd gcc-build
$ sudo ../gcc-5.1.0/configure --target=$TARGET --with-gnu-as --with-gnu-ld --prefix=$PREFIX -with-sysroot=$SYSROOT --disable-libgcj --enable-languages=c,c++,go -v
$ sudo make -j6
$ sudo make install
完成
$ cd $PREFIX/bin
$ ln -s /sparc-sun-solaris2.10-gccgo gccgo
$ export PATH=$PREFIX/bin:$PATH
$ go build --compiler gccgo \
--gccgoflags "-v -static-libgo -static-libgcc -Wl,-dy -lnsl -lsocket -lrt"
重要
参照元のオプションに-static-libgcc
を追加しないとSolaris環境では動作しませんでした。
go1.5以降に依存しているものはうごかないみたい
特定のアーキテクチャがハードコーディングされているものは動かないみたい
結論: Linux使おう