Go on L4

From TUDOS-Wiki
Revision as of 15:12, 6 August 2012 by BjoernD (talk | contribs)
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
   
 # GCCGO
 svn checkout -r 179017 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

Building the L4 Go package

After successfully compiling and installing GCCGO, you need to define the environment variables GCCGO_SRC and GCCGO_INST to point to the GCCGO source and installation directories respectively. With those variables defined, you can then go and build l4/pkg/go:

 # cd src/l4/pkg/go
 # GCCGO_SRC=<path to GCCGO source> GCCGO_INST=<path to GCCGO installation> O=<path to L4Re build dir> make

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.