cgo runtime error

81 views
Skip to first unread message

rmib

unread,
Mar 21, 2012, 3:07:24 PM3/21/12
to golang-nuts
Hi,
cgo panics when build and gives different errors at different
builds(same code)? Can I fix it somehow?

/*
#cgo pkg-config: pango cairo pangocairo glib-2.0 cogl-pango-1.0

#include <pango/pango.h>
#include <pango/pangocairo.h>
#include <glib.h>
#include <cogl-pango/cogl-pango.h>
*/
import "C"

Source code: http://dl.dropbox.com/u/4688159/pango.tar.gz

Error 1:
rmib@rsunix ~/docs/develop/pango $ go build ./...
# pango
pango.go:54:30: type C.float: undefined C type 'float'
panic: runtime error: invalid memory address or nil pointer
dereference
[signal 0xb code=0x1 addr=0x18 pc=0x40c6f8]

goroutine 1 [running]:
main.(*Package).rewriteRef(0xf84006c0b0, 0xf840047310, 0xf8400c12a0,
0x1c0000001c)
/home/rmib/docs/develop/go/src/cmd/cgo/gcc.go:658 +0xa77
main.(*Package).Translate(0xf84006c0b0, 0xf840047310, 0x22, 0x56d1cc)
/home/rmib/docs/develop/go/src/cmd/cgo/gcc.go:271 +0x129
main.main()
/home/rmib/docs/develop/go/src/cmd/cgo/main.go:228 +0x905

goroutine 2 [syscall]:
created by runtime.main
/home/rmib/docs/develop/go/src/pkg/runtime/proc.c:221

goroutine 9 [finalizer wait]:
created by runtime.gc
/home/rmib/docs/develop/go/src/pkg/runtime/mgc0.c:882

Error 2:
rmib@rsunix ~/docs/develop/pango $ go build ./...
# pango
panic: runtime error: invalid memory address or nil pointer
dereference
[signal 0xb code=0x1 addr=0x18 pc=0x40c6f8]

goroutine 1 [running]:
main.(*Package).rewriteRef(0xf84006c0b0, 0xf840047310, 0xf8400c22a0,
0x1c0000001c)
/home/rmib/docs/develop/go/src/cmd/cgo/gcc.go:658 +0xa77
main.(*Package).Translate(0xf84006c0b0, 0xf840047310, 0x22, 0x56d1cc)
/home/rmib/docs/develop/go/src/cmd/cgo/gcc.go:271 +0x129
main.main()
/home/rmib/docs/develop/go/src/cmd/cgo/main.go:228 +0x905

goroutine 2 [syscall]:
created by runtime.main
/home/rmib/docs/develop/go/src/pkg/runtime/proc.c:221

goroutine 9 [runnable]:
syscall.Syscall()
/home/rmib/docs/develop/go/src/pkg/syscall/asm_linux_amd64.s:
36 +0x64
syscall.Close(0x3, 0x0, 0x0, 0x0)
/home/rmib/docs/develop/go/src/pkg/syscall/
zerrors_linux_amd64.go:1701 +0x54
os.(*file).close(0xf840098b70, 0x0, 0x0, 0x7f3f71997100)
/home/rmib/docs/develop/go/src/pkg/os/file_unix.go:96 +0x4f
----- stack segment boundary -----
created by runtime.gc
/home/rmib/docs/develop/go/src/pkg/runtime/mgc0.c:882

Error 3:
rmib@rsunix ~/docs/develop/pango $ go build ./...
# pango
pango.go:68:28: type C.gboolean: undefined C type 'gboolean'
panic: runtime error: invalid memory address or nil pointer
dereference
[signal 0xb code=0x1 addr=0x18 pc=0x40c6f8]
...next same...

Error 4:
mib@rsunix ~/docs/develop/pango $ go build ./...
# pango
pango.go:82:36: call of non-function C.cogl_pango_font_map_new
panic: runtime error: invalid memory address or nil pointer
dereference
[signal 0xb code=0x1 addr=0x18 pc=0x40c6f8]
...next same...

go version weekly.2012-03-13 +0002f1f792e0

John Asmuth

unread,
Mar 21, 2012, 3:12:36 PM3/21/12
to golan...@googlegroups.com
A panic while running cgo is certainly a problem, but I think your #cgo directive should be in a different comment. As is, it is put into the generated C code. 

Do this instead:

 
// #cgo pkg-config: pango cairo pangocairo glib-2.0 cogl-pango-1.0 

/*

#include <pango/pango.h> 
#include <pango/pangocairo.h> 
#include <glib.h> 
#include <cogl-pango/cogl-pango.h> 
*/ 
import "C" 

rmib

unread,
Mar 21, 2012, 3:34:18 PM3/21/12
to golang-nuts
That the same error, but when commenting code
type CairoHintStyle int

const (
     CAIRO_HINT_STYLE_DEFAULT = CairoHintStyle (iota)
     CAIRO_HINT_STYLE_NONE
     CAIRO_HINT_STYLE_SLIGHT
     CAIRO_HINT_STYLE_MEDIUM
     CAIRO_HINT_STYLE_FULL
)

func (fo * FontOptions) SetHintStyle (st CairoHintStyle) {
   C.cairo_font_options_set_hint_style (fo.CValue (),
C.enum_cairo_hint_style_t (st))
}
all build

John Asmuth

unread,
Mar 21, 2012, 3:52:31 PM3/21/12
to golan...@googlegroups.com
Well, if cgo panics under any circumstance it's a bug, so you might like to file an issue.
Reply all
Reply to author
Forward
0 new messages