Go on L4

From TUDOS-Wiki
Jump to navigationJump to search

The runtime for the Go programming language has been ported to L4Re (and will be released soon).

Preparation

Go on L4 works in conjunction with the gccgo compiler which you need to set up yourself beforehand.

  • gccgo requires some libraries to be available on your system. On Ubuntu do:
 sudo apt-get install libmpc-dev libmpfr-dev libgmp3-dev
  • For building gccgo, a detailed description is available on the Go homepage. In short:
 # create gccgo dir
 mkdir gccgo
 cd gccgo
 
 # install dir for the local build
 mkdir install
 
 # this is where binutils go
 mkdir binutils
 
 # GOLD linker
 cvs -z 9 -d :pserver:anoncvs@sourceware.org:/cvs/src login
 [password is "anoncvs"]
 cvs -z 9 -d :pserver:anoncvs@sourceware.org:/cvs/src co binutils
 mkdir obj
 cd obj
 ../src/configure --enable-gold --prefix=/home/user/gccgo/install
 make
 make install
 
 # GCCGO
 svn checkout svn://gcc.gnu.org/svn/gcc/branches/gccgo gccgo
 mkdir obj
 cd obj
 ../gccgo/configure --enable-languages=c,c++,go --with-ld=/home/user/gccgo/install/bin/ld \
   --prefix=/home/user/gccgo/install
 make
 make install

Troubleshooting

libtool version mismatch

Q: When building libgo from source, I get an error like this:

 libtool: Version mismatch error.  This is libtool 2.2.6b Debian-2.2.6b-2ubuntu3, but the
 libtool: definition of this LT_INIT comes from libtool 2.2.7a.
 libtool: You should recreate aclocal.m4 with macros from libtool 2.2.6b Debian-2.2.6b-2ubuntu3
 libtool: and run autoconf again.

A: Remove gccgo/libgo/config/ltversion.m4 and gccgo/libgo/config/ltmain.m4. Continue build process.