Go on L4
From TUDOS-Wiki
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.