From: Waldemar Kozaczuk <[email protected]>
Committer: Waldemar Kozaczuk <[email protected]>
Branch: master

Added Golang examples built using -buildmode=pie

Signed-off-by: Waldemar Kozaczuk <[email protected]>

---
diff --git a/golang-pie-example/.gitignore b/golang-pie-example/.gitignore
--- a/golang-pie-example/.gitignore
+++ b/golang-pie-example/.gitignore
@@ -0,0 +1,3 @@
+hello*.so
+hello.h
+usr.manifest
diff --git a/golang-pie-example/Makefile b/golang-pie-example/Makefile
--- a/golang-pie-example/Makefile
+++ b/golang-pie-example/Makefile
@@ -0,0 +1,9 @@
+.PHONY: module
+module: hello.so
+       echo '/hello.so: $${MODULE_DIR}/hello.so' > usr.manifest
+
+hello.so: hello.go
+       go build -buildmode=pie -o hello.so hello.go
+
+clean:
+       rm -f hello*.so usr.manifest
diff --git a/golang-pie-example/hello.go b/golang-pie-example/hello.go
--- a/golang-pie-example/hello.go
+++ b/golang-pie-example/hello.go
@@ -0,0 +1,11 @@
+package main
+
+import (
+        "runtime"
+        "fmt"
+)
+
+func main() {
+       fmt.Println("Hello, 世界");
+       fmt.Println("Go version:", runtime.Version());
+}
diff --git a/golang-pie-example/module.py b/golang-pie-example/module.py
--- a/golang-pie-example/module.py
+++ b/golang-pie-example/module.py
@@ -0,0 +1,3 @@
+from osv.modules import api
+
+default = api.run(cmdline="/hello.so")
diff --git a/golang-pie-httpserver/.gitignore b/golang-pie-httpserver/.gitignore
--- a/golang-pie-httpserver/.gitignore
+++ b/golang-pie-httpserver/.gitignore
@@ -0,0 +1,2 @@
+httpserver*.so
+usr.manifest
diff --git a/golang-pie-httpserver/Makefile b/golang-pie-httpserver/Makefile
--- a/golang-pie-httpserver/Makefile
+++ b/golang-pie-httpserver/Makefile
@@ -0,0 +1,9 @@
+.PHONY: module
+module: httpserver.so
+       echo '/httpserver.so: $${MODULE_DIR}/httpserver.so' > usr.manifest
+
+httpserver.so: httpserver.go
+       go build -buildmode=pie -o httpserver.so httpserver.go
+
+clean:
+       rm -f httpserver*.so usr.manifest
diff --git a/golang-pie-httpserver/httpserver.go b/golang-pie-httpserver/httpserver.go
--- a/golang-pie-httpserver/httpserver.go
+++ b/golang-pie-httpserver/httpserver.go
@@ -0,0 +1,22 @@
+package main
+
+import (
+       "io"
+       "net/http"
+       "runtime"
+        "fmt"
+       "os"
+)
+
+func hello(w http.ResponseWriter, r *http.Request) {
+       hostname, err := os.Hostname()
+        if( err == nil ) {
+ io.WriteString(w, "Hello world from " + runtime.Version() + " at " + hostname)
+        }
+}
+
+func main() {
+       fmt.Println("Go version:", runtime.Version());
+       http.HandleFunc("/", hello)
+       http.ListenAndServe(":8000", nil)
+}
diff --git a/golang-pie-httpserver/module.py b/golang-pie-httpserver/module.py
--- a/golang-pie-httpserver/module.py
+++ b/golang-pie-httpserver/module.py
@@ -0,0 +1,3 @@
+from osv.modules import api
+
+default = api.run(cmdline="/httpserver.so")

--
You received this message because you are subscribed to the Google Groups "OSv 
Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to