Change-Id: I4278abca9d2a8f25149fa8935a93d32e7d04a43a
Reviewed-on: https://go-review.googlesource.com/9050
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Run-TryBot: David Crawshaw <crawshaw@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
extern signed char DidInitRun();
extern signed char DidMainRun();
extern int32_t FromPkg();
+extern void CheckArgs();
int main(void) {
int32_t res;
return 2;
}
+ CheckArgs();
+
return 0;
}
package main
import (
- _ "p"
+ "fmt"
+ "os"
+ "reflect"
"syscall"
"time"
+
+ _ "p"
)
import "C"
//export DidMainRun
func DidMainRun() bool { return ranMain }
+
+//export CheckArgs
+func CheckArgs() {
+ want := []string{"./testp", "arg1", "arg2"}
+ if !reflect.DeepEqual(want, os.Args) {
+ fmt.Printf("CheckArgs: want %v, got: %v\n", want, os.Args)
+ os.Exit(2)
+ }
+}
GOPATH=$(pwd) go build -buildmode=c-archive src/libgo/libgo.go
$(go env CC) $(go env GOGCCFLAGS) $ccargs -o testp main.c libgo.a
-$bin
+$bin arg1 arg2
rm libgo.a testp
GOPATH=$(pwd) go build -buildmode=c-archive -o libgo.a libgo
$(go env CC) $(go env GOGCCFLAGS) $ccargs -o testp main.c libgo.a
-$bin
+$bin arg1 arg2
rm libgo.a testp