Hi,
I try to recompile Go for a new platform which is a s390x platform using
Clang instead of GCC. I can not work for C string in CGO. Apparently char
in unsigned by default on my platform and building even the simple CGO
program always fails with this error:
*/home/user/tmp/go-build468743286/b001/_cgo_gotypes.go:175:25: undefined:
_Ctype_char*
the code is:
package main
//#include <stdio.h>
//char* callC() {
// return "Calling C code!";
//}
import "C"
import "fmt"
func main() {
fmt.Println("Convert C String to Go String")
str := C.GoString(C.callC())
fmt.Println(str)
}
to overcome this I modified the gcc.go file in src/cmd/cgo and added this:
if s == "uchar" {
s = "char"
}
name := c.Ident("_Ctype_" + s)
I don't now how CGO always convert my char* to *_Ctype_uchar instead of
*_Ctype_char.
Anyone have a clue on this?
--
You received this message because you are subscribed to the Google Groups
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/golang-nuts/5fdcd5ec-7589-46bf-b20e-b27a8002dd30o%40googlegroups.com.