This is a small Wiki page about the golang package on Maemo. The package contains the standalone go compiler and libraries targeting armv6.

[edit] Creating a Hello world application using the go programming language

Creating a Hello world application using the go language on the N900. The go compiler and libraries for Maemo are packaged in a package called golang that can be installed from the fremantle/free repository. The package puts all its content in a directory called /opt/go to follow Maemo packaging policies.

Once the package is installed we need to set a few environments variables to make the go compiler happy.

Those are:

export GOROOT=/opt/go
export GOOS=linux
export GOARCH=arm
export GOBIN=/opt/go/bin
export GOPKG=/opt/go/pkg

The packager provides a script to to this that can be sourced

~ $ . /opt/go/bin/go_profile

Now off to create Hello world. We will create a directory in the users home directory create a small go hello world file, compile, link and run it.

Creating the directory using mkdir

mkdir hello_go

Go into that directory and fire up an editor

cd hello_go
vi hello.go

Paste the following

package main
import "fmt"
func main() {
  fmt.Printf("Hello, Maemo\n")

exit vi and compile hello.go

~/hello_go $ 5g hello.go

Link it against the go libs (the output is a staticaly linked binary)

~/hello_go $ 5l hello.5

and now run it

~/hello_go $ ./5.out
Hello, Maemo

If all went well you just ran your first go code on Maemo!