GObject-introspection based bindings generator

WARNING! This project is no longer maintained. Probably doesn't even compile.

GObject-introspection based bindings generator for Go. Work in progress.

See 'documentation' dir for details.


At the moment build system is capable of building gtk-3.0 set only. Try it that way:

    ./waf configure build install

Or skip the install part:

    ./waf configure build

Install will install only libraries, it will skip the generator itself and the
demo app.

Build system is largely in alpha quality. It doesn't track all of the
dependencies and all that. All is a subject of ongoing work.


GObject-introspection is a new project, therefore it requires the set of fairly
recent both libraries and tools, here's the list of versions on my machine:

gobject-introspection    1.32.1
atk                      2.4.0
cairo                    1.12.2
gdk2/gtk2                2.24.13
gdk3/gtk3                3.4.4
gdk-pixbuf2              2.26.3
glib2                    2.32.4
gtksourceview3           3.4.2
pango                    1.30.1


Here's the short TODO list:
 - Implement unions (GdkEvent is the main user)
 - Implement the rest of gogtk-demo.
 - Implement the rest of typeconv.go functionality. Both Go -> C and C -> Go.
 - Think about adding "user_data" support for closures. At the moment my (nsf)
   opinion is that they are useless, because there are real language closures.
 - Go-gobject-gen needs a way to share code between gtk-2.0 and gtk-3.0.
Comments
  • Build fails because waf parameters are specified as `-DX` rather than `-D X`

    Build fails because waf parameters are specified as `-DX` rather than `-D X`

    Unless I'm missing something, go doesn't support this anymore. I can't seem to build gogobject as a consequence.

    [  2/172] plan9c: build/_cgoobj.1/_cgo_defun.c -> build/_cgoobj.1/_cgo_defun.6
    11:24:52 runner ['/home/pwaller/Projects/External/go/pkg/tool/linux_amd64/6c', '-FVw', '-I/home/pwaller/Projects/External/go/pkg/linux_amd64', '-I/home/pwaller/.local/src/github.com/nsf/gogobject/build/_cgoobj.1', '-DGOOS_linux', '-DGOARCH_amd64', '-o', '_cgoobj.1/_cgo_defun.6', '_cgoobj.1/_cgo_defun.c']
    /home/pwaller/Projects/External/go/pkg/tool/linux_amd64/6c: unknown flag -FVw
    
  • Building against latest glib and gobject-introspection fails.

    Building against latest glib and gobject-introspection fails.

    There seem to be a problem when building against glib2 >= 2.36 and gobject-introspection >= 1.36 :

    [  5/172] c: gtk-3.0/gtk.c -> build/gtk-3.0/gtk.c.32.o
    ../gi/gi.go:55:1: error: 'g_type_init' is deprecated (declared at /usr/include/glib-2.0/gobject/gtype.h:669) [-Werror=deprecated-declarations]
     func _GoStringToGString(s string) *C.gchar {
     ^
    cc1: all warnings being treated as errors
    Waf: Leaving directory `/home/roma/Desktop/gogobject/build'
    

    As a temporary solution it can be fixed by removing C.g_type_init() in gi/gi.go.(g_type_init() was deprecated in 2.36 and can be safely removed...).

    However, even then, it still fails to compile due to another problem:

    /var/tmp/go-link-V6zApf/000001.o: In function `_cgo_1b77b506489f_Cfunc_g_strfreev':
    /home/roma/Desktop/gogobject/build/../gi/gi.go:1220: undefined reference to `g_strfreev'
    collect2: error: ld returned 1 exit status
    Waf: Leaving directory `/home/roma/Desktop/gogobject/build'
    Build failed
     -> task in 'go-gobject-gen' failed (exit status 1): 
        {task 16918736: goprogram go-gobject-gen.6 -> go-gobject-gen}
    ['/usr/lib64/golang/pkg/tool/linux_amd64/6l', '-L', '/home/roma/Desktop/gogobject/build', '-o', 'go-gobject-gen', 'go-gobject-gen.6']
    
    .... skipped some lines for clarity....
    
    /var/tmp/go-link-V6zApf/000001.o: In function `_cgo_1b77b506489f_Cfunc_g_strfreev':
    /home/roma/Desktop/gogobject/build/../gi/gi.go:1220: undefined reference to `g_strfreev'
    collect2: error: ld returned 1 exit status
    Waf: Leaving directory `/home/roma/Desktop/gogobject/build'
    Build failed
     -> task in 'go-gobject-gen' failed (exit status 1): 
        {task 16918736: goprogram go-gobject-gen.6 -> go-gobject-gen}
    ['/usr/lib64/golang/pkg/tool/linux_amd64/6l', '-L', '/home/roma/Desktop/gogobject/build', '-o', 'go-gobject-gen', 'go-gobject-gen.6']
    
  • Missing /src/Make.inc in the checkout

    Missing /src/Make.inc in the checkout

    Seems like there is a missing Make.inc in the git tree

    $ make Makefile:1: /src/Make.inc: No such file or directory Makefile:13: /src/Make.cmd: No such file or directory make: *** No rule to make target `/src/Make.cmd'. Stop.

  • check array type is zerotermized to fix empty slice problem in function ...

    check array type is zerotermized to fix empty slice problem in function ...

    ...like g_key_file_get_groups which is zero temized but hasn't an length annotation

    for example:

    func (this0 KeyFile) GetGroups() (uint64, []string) { var this1 *C.GKeyFile var length1 C.uint64_t this1 = (C.GKeyFile)(unsafe.Pointer(this0)) ret1 := C.g_key_file_get_groups(this1, &length1) var length2 uint64 var ret2 []string // This isn't init!!!! length2 = uint64(length1) for i := range ret2 { ret2[i] = C.GoString((([999999]C.char)(unsafe.Pointer(ret1)))[i]) C.g_free(unsafe.Pointer(((_[999999]_C.char)(unsafe.Pointer(ret1)))[i])) } return length2, ret2 }

  • Fails to build (linker is missing symbols)

    Fails to build (linker is missing symbols)

    Hi (and happy new year!), I know you're no longer maintaining this project. But maybe you could give some suggestion to fix this. I was surprised, it is not possible to supply library name to the go's linker, thus this is done at some step before?

    On Debian Jessie (golang 1.2):

    $ ./waf configure
    Setting top to                           : /media/portable1/progs/proglang/googlego/gogobject-git-master 
    Setting out to                           : /media/portable1/progs/proglang/googlego/gogobject-git-master/build 
    Checking for program gcc,cc              : /usr/bin/gcc 
    Checking for program ar                  : /usr/bin/ar 
    Checking for program go                  : /usr/bin/go 
    Checking for GOROOT                      : /usr/lib/go 
    Checking for GOARCH                      : amd64 
    Checking for GOOS                        : linux 
    Checking for GOHOSTARCH                  : amd64 
    Checking for GOHOSTOS                    : linux 
    Checking for GOTOOLDIR                   : /usr/lib/go/pkg/tool/linux_amd64 
    Checking for GOCHAR                      : 6 
    Checking for GOBIN                       : no 
    Checking for GOPATH                      : no 
    Checking for program 6c                  : /usr/lib/go/pkg/tool/linux_amd64/6c 
    Checking for program 6g                  : /usr/lib/go/pkg/tool/linux_amd64/6g 
    Checking for program 6l                  : /usr/lib/go/pkg/tool/linux_amd64/6l 
    Checking for program pack                : /usr/lib/go/pkg/tool/linux_amd64/pack 
    Checking for program cgo                 : /usr/lib/go/pkg/tool/linux_amd64/cgo 
    Checking for program dist                : /usr/lib/go/pkg/tool/linux_amd64/dist 
    Checking for go version                  : no 
    Checking for program pkg-config          : /usr/bin/pkg-config 
    Checking for 'gobject-introspection-1.0' : yes 
    Checking for 'cairo'                     : yes 
    Checking for 'atk'                       : yes 
    Checking for 'gdk-3.0'                   : yes 
    Checking for 'gdk-pixbuf-2.0'            : yes 
    Checking for 'gio-2.0'                   : yes 
    Checking for 'glib-2.0'                  : yes 
    Checking for 'gobject-2.0'               : yes 
    Checking for 'gtk+-3.0'                  : yes 
    Checking for 'gtksourceview-3.0'         : yes 
    Checking for 'pango'                     : yes 
    Checking for 'pangocairo'                : yes 
    'configure' finished successfully (0.708s)
    $ ./waf build
    Waf: Entering directory `/media/portable1/progs/proglang/googlego/gogobject-git-master/build'
    [  1/172] cgo: cairo-1.0/cairo.go -> build/_cgoobj.1/_cgo_defun.c build/_cgoobj.1/_cgo_export.c build/_cgoobj.1/_cgo_export.h build/_cgoobj.1/_cgo_gotypes.go build/_cgoobj.1/_cgo_main.c build/_cgoobj.1/.._cairo-1.0_cairo.cgo1.go build/_cgoobj.1/.._cairo-1.0_cairo.cgo2.c
    [  2/172] cgo: gi/gi.go -> build/_cgoobj.2/_cgo_defun.c build/_cgoobj.2/_cgo_export.c build/_cgoobj.2/_cgo_export.h build/_cgoobj.2/_cgo_gotypes.go build/_cgoobj.2/_cgo_main.c build/_cgoobj.2/.._gi_gi.cgo1.go build/_cgoobj.2/.._gi_gi.cgo2.c
    [  3/172] go: gogtk-demo/common.go -> build/gogtk-demo/common.6
    [  4/172] c: gobject-2.0/gobject.c -> build/gobject-2.0/gobject.c.31.o
    [  5/172] c: gtk-3.0/gtk.c -> build/gtk-3.0/gtk.c.32.o
    [  6/172] plan9c: build/_cgoobj.2/_cgo_defun.c -> build/_cgoobj.2/_cgo_defun.6
    [  7/172] c: build/_cgoobj.2/_cgo_main.c -> build/_cgoobj.2/_cgo_main.c.25.o
    [  8/172] c: build/_cgoobj.2/.._gi_gi.cgo2.c -> build/_cgoobj.2/.._gi_gi.cgo2.c.25.o
    [  9/172] c: build/_cgoobj.2/_cgo_export.c -> build/_cgoobj.2/_cgo_export.c.25.o
    [ 10/172] go: build/_cgoobj.2/_cgo_gotypes.go build/_cgoobj.2/.._gi_gi.cgo1.go -> build/gobject/gi.6
    [ 11/172] c: cairo-1.0/cairo.c -> build/cairo-1.0/cairo.c.24.o
    [ 12/172] c: build/_cgoobj.1/_cgo_export.c -> build/_cgoobj.1/_cgo_export.c.24.o
    [ 13/172] c: build/_cgoobj.1/_cgo_main.c -> build/_cgoobj.1/_cgo_main.c.24.o
    [ 14/172] plan9c: build/_cgoobj.1/_cgo_defun.c -> build/_cgoobj.1/_cgo_defun.6
    [ 15/172] c: build/_cgoobj.1/.._cairo-1.0_cairo.cgo2.c -> build/_cgoobj.1/.._cairo-1.0_cairo.cgo2.c.24.o
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go: In function ‘_cgo_e2f9e5789004_Cfunc_g_type_init’:
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:1416:2: warning: ‘g_type_init’ is deprecated (declared at /usr/include/glib-2.0/gobject/gtype.h:669) [-Wdeprecated-declarations]
     func (si *StructInfo) Alignment() int {
      ^
    [ 16/172] cprogram: build/_cgoobj.2/_cgo_main.c.25.o build/_cgoobj.2/_cgo_export.c.25.o build/_cgoobj.2/.._gi_gi.cgo2.c.25.o -> build/_cgoobj.2/_cgo_.o
    [ 17/172] cprogram: build/_cgoobj.1/_cgo_main.c.24.o build/_cgoobj.1/_cgo_export.c.24.o build/_cgoobj.1/.._cairo-1.0_cairo.cgo2.c.24.o build/cairo-1.0/cairo.c.24.o -> build/_cgoobj.1/_cgo_.o
    [ 18/172] cgo: build/_cgoobj.1/_cgo_.o -> build/_cgoobj.1/_cgo_import.c
    [ 19/172] plan9c: build/_cgoobj.1/_cgo_import.c -> build/_cgoobj.1/_cgo_import.6
    [ 20/172] cgo: build/_cgoobj.2/_cgo_.o -> build/_cgoobj.2/_cgo_import.c
    [ 21/172] plan9c: build/_cgoobj.2/_cgo_import.c -> build/_cgoobj.2/_cgo_import.6
    [ 22/172] gopackage: build/_cgoobj.2/_cgo_defun.6 build/_cgoobj.2/_cgo_import.6 build/_cgoobj.2/_cgo_export.c.25.o build/_cgoobj.2/.._gi_gi.cgo2.c.25.o build/gobject/gi.6 -> build/gobject/gi.a
    [ 23/172] go: binding_generator.go cairo.go comment_skipper.go function_builder.go main.go templates.go type.go typeconv.go util.go -> build/go-gobject-gen.6
    [ 24/172] goprogram: build/go-gobject-gen.6 -> build/go-gobject-gen
    /usr/lib/go/pkg/tool/linux_amd64/6l: running gcc failed: unsuccessful exit status 0x100
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_arg_info_get_closure':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:59: undefined reference to `g_arg_info_get_closure'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_arg_info_get_destroy':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:70: undefined reference to `g_arg_info_get_destroy'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_arg_info_get_direction':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:81: undefined reference to `g_arg_info_get_direction'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_arg_info_get_ownership_transfer':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:92: undefined reference to `g_arg_info_get_ownership_transfer'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_arg_info_get_scope':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:103: undefined reference to `g_arg_info_get_scope'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_arg_info_get_type':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:113: undefined reference to `g_arg_info_get_type'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_arg_info_is_caller_allocates':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:124: undefined reference to `g_arg_info_is_caller_allocates'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_arg_info_is_optional':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:135: undefined reference to `g_arg_info_is_optional'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_arg_info_is_return_value':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:146: undefined reference to `g_arg_info_is_return_value'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_arg_info_is_skip':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:157: undefined reference to `g_arg_info_is_skip'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_arg_info_may_be_null':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:168: undefined reference to `g_arg_info_may_be_null'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_base_info_get_attribute':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:179: undefined reference to `g_base_info_get_attribute'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_base_info_get_container':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:189: undefined reference to `g_base_info_get_container'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_base_info_get_name':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:199: undefined reference to `g_base_info_get_name'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_base_info_get_namespace':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:209: undefined reference to `g_base_info_get_namespace'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_base_info_get_type':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:220: undefined reference to `g_base_info_get_type'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_base_info_get_typelib':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:230: undefined reference to `g_base_info_get_typelib'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_base_info_is_deprecated':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:241: undefined reference to `g_base_info_is_deprecated'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_base_info_iterate_attributes':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:255: undefined reference to `g_base_info_iterate_attributes'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_base_info_ref':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:265: undefined reference to `g_base_info_ref'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_callable_info_get_arg':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:286: undefined reference to `g_callable_info_get_arg'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_callable_info_get_caller_owns':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:297: undefined reference to `g_callable_info_get_caller_owns'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_callable_info_get_n_args':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:308: undefined reference to `g_callable_info_get_n_args'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_callable_info_get_return_attribute':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:319: undefined reference to `g_callable_info_get_return_attribute'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_callable_info_get_return_type':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:329: undefined reference to `g_callable_info_get_return_type'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_callable_info_iterate_return_attributes':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:343: undefined reference to `g_callable_info_iterate_return_attributes'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_callable_info_may_return_null':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:354: undefined reference to `g_callable_info_may_return_null'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_constant_info_get_type':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:364: undefined reference to `g_constant_info_get_type'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_constant_info_get_value':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:376: undefined reference to `g_constant_info_get_value'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_enum_info_get_method':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:388: undefined reference to `g_enum_info_get_method'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_enum_info_get_n_methods':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:399: undefined reference to `g_enum_info_get_n_methods'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_enum_info_get_n_values':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:410: undefined reference to `g_enum_info_get_n_values'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_enum_info_get_storage_type':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:421: undefined reference to `g_enum_info_get_storage_type'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_enum_info_get_value':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:433: undefined reference to `g_enum_info_get_value'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_field_info_get_flags':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:453: undefined reference to `g_field_info_get_flags'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_field_info_get_offset':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:464: undefined reference to `g_field_info_get_offset'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_field_info_get_size':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:475: undefined reference to `g_field_info_get_size'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_field_info_get_type':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:485: undefined reference to `g_field_info_get_type'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_function_info_get_flags':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:496: undefined reference to `g_function_info_get_flags'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_function_info_get_property':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:506: undefined reference to `g_function_info_get_property'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_function_info_get_symbol':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:516: undefined reference to `g_function_info_get_symbol'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_function_info_get_vfunc':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:526: undefined reference to `g_function_info_get_vfunc'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_info_type_to_string':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:537: undefined reference to `g_info_type_to_string'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_interface_info_find_method':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:548: undefined reference to `g_interface_info_find_method'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_interface_info_find_vfunc':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:559: undefined reference to `g_interface_info_find_vfunc'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_interface_info_get_constant':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:571: undefined reference to `g_interface_info_get_constant'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_interface_info_get_iface_struct':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:581: undefined reference to `g_interface_info_get_iface_struct'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_interface_info_get_method':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:593: undefined reference to `g_interface_info_get_method'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_interface_info_get_n_constants':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:604: undefined reference to `g_interface_info_get_n_constants'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_interface_info_get_n_methods':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:615: undefined reference to `g_interface_info_get_n_methods'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_interface_info_get_n_prerequisites':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:626: undefined reference to `g_interface_info_get_n_prerequisites'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_interface_info_get_n_properties':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:637: undefined reference to `g_interface_info_get_n_properties'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_interface_info_get_n_signals':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:648: undefined reference to `g_interface_info_get_n_signals'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_interface_info_get_n_vfuncs':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:659: undefined reference to `g_interface_info_get_n_vfuncs'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_interface_info_get_prerequisite':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:671: undefined reference to `g_interface_info_get_prerequisite'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_interface_info_get_property':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:683: undefined reference to `g_interface_info_get_property'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_interface_info_get_signal':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:695: undefined reference to `g_interface_info_get_signal'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_interface_info_get_vfunc':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:707: undefined reference to `g_interface_info_get_vfunc'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_irepository_find_by_name':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:719: undefined reference to `g_irepository_find_by_name'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_irepository_get_c_prefix':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:730: undefined reference to `g_irepository_get_c_prefix'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_irepository_get_default':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:739: undefined reference to `g_irepository_get_default'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_irepository_get_dependencies':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:750: undefined reference to `g_irepository_get_dependencies'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_irepository_get_info':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:763: undefined reference to `g_irepository_get_info'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_irepository_get_loaded_namespaces':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:773: undefined reference to `g_irepository_get_loaded_namespaces'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_irepository_get_n_infos':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:785: undefined reference to `g_irepository_get_n_infos'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_irepository_get_search_path':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:794: undefined reference to `g_irepository_get_search_path'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_irepository_get_shared_library':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:805: undefined reference to `g_irepository_get_shared_library'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_irepository_get_typelib_path':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:816: undefined reference to `g_irepository_get_typelib_path'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_irepository_get_version':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:827: undefined reference to `g_irepository_get_version'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_irepository_is_registered':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:840: undefined reference to `g_irepository_is_registered'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_irepository_require':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:864: undefined reference to `g_irepository_require'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_object_info_find_method':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:875: undefined reference to `g_object_info_find_method'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_object_info_find_vfunc':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:886: undefined reference to `g_object_info_find_vfunc'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_object_info_get_abstract':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:897: undefined reference to `g_object_info_get_abstract'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_object_info_get_class_struct':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:907: undefined reference to `g_object_info_get_class_struct'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_object_info_get_constant':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:919: undefined reference to `g_object_info_get_constant'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_object_info_get_field':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:931: undefined reference to `g_object_info_get_field'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_object_info_get_fundamental':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:942: undefined reference to `g_object_info_get_fundamental'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_object_info_get_get_value_function':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:952: undefined reference to `g_object_info_get_get_value_function'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_object_info_get_interface':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:964: undefined reference to `g_object_info_get_interface'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_object_info_get_method':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:976: undefined reference to `g_object_info_get_method'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_object_info_get_n_constants':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:987: undefined reference to `g_object_info_get_n_constants'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_object_info_get_n_fields':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:998: undefined reference to `g_object_info_get_n_fields'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_object_info_get_n_interfaces':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:1009: undefined reference to `g_object_info_get_n_interfaces'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_object_info_get_n_methods':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:1020: undefined reference to `g_object_info_get_n_methods'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_object_info_get_n_properties':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:1031: undefined reference to `g_object_info_get_n_properties'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_object_info_get_n_signals':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:1042: undefined reference to `g_object_info_get_n_signals'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_object_info_get_n_vfuncs':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:1053: undefined reference to `g_object_info_get_n_vfuncs'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_object_info_get_parent':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:1063: undefined reference to `g_object_info_get_parent'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_object_info_get_property':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:1075: undefined reference to `g_object_info_get_property'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_object_info_get_ref_function':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:1085: undefined reference to `g_object_info_get_ref_function'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_object_info_get_set_value_function':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:1095: undefined reference to `g_object_info_get_set_value_function'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_object_info_get_signal':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:1107: undefined reference to `g_object_info_get_signal'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_object_info_get_type_init':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:1117: undefined reference to `g_object_info_get_type_init'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_object_info_get_type_name':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:1127: undefined reference to `g_object_info_get_type_name'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_object_info_get_unref_function':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:1137: undefined reference to `g_object_info_get_unref_function'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_object_info_get_vfunc':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:1149: undefined reference to `g_object_info_get_vfunc'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_property_info_get_ownership_transfer':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:1160: undefined reference to `g_property_info_get_ownership_transfer'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_property_info_get_type':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:1170: undefined reference to `g_property_info_get_type'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_registered_type_info_get_type_init':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:1180: undefined reference to `g_registered_type_info_get_type_init'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_registered_type_info_get_type_name':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:1190: undefined reference to `g_registered_type_info_get_type_name'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_signal_info_get_class_closure':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:1200: undefined reference to `g_signal_info_get_class_closure'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_signal_info_true_stops_emit':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:1211: undefined reference to `g_signal_info_true_stops_emit'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_struct_info_find_method':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:1231: undefined reference to `g_struct_info_find_method'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_struct_info_get_alignment':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:1241: undefined reference to `g_struct_info_get_alignment'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_struct_info_get_field':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:1253: undefined reference to `g_struct_info_get_field'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_struct_info_get_method':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:1265: undefined reference to `g_struct_info_get_method'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_struct_info_get_n_fields':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:1276: undefined reference to `g_struct_info_get_n_fields'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_struct_info_get_n_methods':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:1287: undefined reference to `g_struct_info_get_n_methods'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_struct_info_get_size':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:1297: undefined reference to `g_struct_info_get_size'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_struct_info_is_foreign':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:1308: undefined reference to `g_struct_info_is_foreign'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_struct_info_is_gtype_struct':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:1319: undefined reference to `g_struct_info_is_gtype_struct'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_type_info_get_array_fixed_size':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:1330: undefined reference to `g_type_info_get_array_fixed_size'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_type_info_get_array_length':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:1341: undefined reference to `g_type_info_get_array_length'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_type_info_get_array_type':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:1352: undefined reference to `g_type_info_get_array_type'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_type_info_get_interface':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:1362: undefined reference to `g_type_info_get_interface'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_type_info_get_param_type':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:1374: undefined reference to `g_type_info_get_param_type'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_type_info_get_tag':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:1385: undefined reference to `g_type_info_get_tag'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_type_info_is_pointer':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:1396: undefined reference to `g_type_info_is_pointer'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_type_info_is_zero_terminated':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:1407: undefined reference to `g_type_info_is_zero_terminated'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_type_tag_to_string':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:1427: undefined reference to `g_type_tag_to_string'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_union_info_find_method':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:1438: undefined reference to `g_union_info_find_method'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_union_info_get_alignment':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:1448: undefined reference to `g_union_info_get_alignment'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_union_info_get_discriminator':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:1460: undefined reference to `g_union_info_get_discriminator'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_union_info_get_discriminator_offset':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:1471: undefined reference to `g_union_info_get_discriminator_offset'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_union_info_get_discriminator_type':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:1481: undefined reference to `g_union_info_get_discriminator_type'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_union_info_get_field':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:1493: undefined reference to `g_union_info_get_field'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_union_info_get_method':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:1505: undefined reference to `g_union_info_get_method'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_union_info_get_n_fields':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:1516: undefined reference to `g_union_info_get_n_fields'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_union_info_get_n_methods':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:1527: undefined reference to `g_union_info_get_n_methods'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_union_info_get_size':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:1537: undefined reference to `g_union_info_get_size'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_union_info_is_discriminated':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:1548: undefined reference to `g_union_info_is_discriminated'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_value_info_get_value':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:1558: undefined reference to `g_value_info_get_value'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_vfunc_info_get_flags':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:1569: undefined reference to `g_vfunc_info_get_flags'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_vfunc_info_get_invoker':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:1579: undefined reference to `g_vfunc_info_get_invoker'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_vfunc_info_get_offset':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:1590: undefined reference to `g_vfunc_info_get_offset'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_vfunc_info_get_signal':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:1600: undefined reference to `g_vfunc_info_get_signal'
    /var/tmp/go-link-4BZLh3/000001.o: In function `free_gstring':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:8: undefined reference to `g_free'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_base_info_unref':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:274: undefined reference to `g_base_info_unref'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_error_free':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:442: undefined reference to `g_error_free'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_irepository_prepend_search_path':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:849: undefined reference to `g_irepository_prepend_search_path'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_strfreev':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:1220: undefined reference to `g_strfreev'
    /var/tmp/go-link-4BZLh3/000001.o: In function `_cgo_e2f9e5789004_Cfunc_g_type_init':
    /media/portable1/progs/proglang/googlego/gogobject-git-master/gi/gi.go:1416: undefined reference to `g_type_init'
    collect2: error: ld returned 1 exit status
    Waf: Leaving directory `/media/portable1/progs/proglang/googlego/gogobject-git-master/build'
    Build failed
     -> task in 'go-gobject-gen' failed (exit status 1): 
        {task 26632848: goprogram go-gobject-gen.6 -> go-gobject-gen}
    ['/usr/lib/go/pkg/tool/linux_amd64/6l', '-L', '/media/portable1/progs/proglang/googlego/gogobject-git-master/build', '-o', 'go-gobject-gen', 'go-gobject-gen.6']
    $
    
  • Building doesn't work:

    Building doesn't work: "task in 'gobject/gi' failed (exit status 2)"

    I just cloned this repo and ran ./waf configure build; however, it failed with the attached output:

    Build failed
     -> task in 'gobject/gi' failed (exit status 2): 
        {task 140453979304464: cgo gi.go -> _cgo_defun.c,_cgo_export.c,_cgo_export.h,_cgo_gotypes.go,_cgo_main.c,.._gi_gi.cgo1.go,.._gi_gi.cgo2.c}
    ['/home/someone/.Go/pkg/tool/linux_amd64/cgo', '-objdir=_cgoobj.2', '--', '-g', '-O2', '-fPIC', '-m64', '-pthread', '-pthread', '-I/home/someone/Projects/src/github.com/nsf/gogobject/build', '-I/home/someone/Projects/src/github.com/nsf/gogobject/build/_cgoobj.2', '-I/usr/include/glib-2.0', '-I/usr/lib/x86_64-linux-gnu/glib-2.0/include', '-I/usr/include/gobject-introspection-1.0', '-DHAVE_GI=1', '-DHAVE_CAIRO=1', '-DHAVE_ATK=1', '-DHAVE_GDK=1', '-DHAVE_GDKPIXBUF=1', '-DHAVE_GIO=1', '-DHAVE_GLIB=1', '-DHAVE_GOBJECT=1', '-DHAVE_GTK=1', '-DHAVE_GTKSOURCE=1', '-DHAVE_PANGO=1', '-DHAVE_PANGOCAIRO=1', '../gi/gi.go']
    
  • Adding gstreamer support.

    Adding gstreamer support.

    I'm trying to add gstreamer support, but I keep running into a weird build error. I already found and fixed a couple (mostly related to locating modules), but now it's complaining that it can't find the ObjectLike interface, despite the "gobject/gobject-2.0" module being successfully imported. From basing the input file off of what's already there, I'm not sure what I'm doing wrong.

    The changes I've made so far can be found in my forked copy, and the full build log can be found here.

  • waf: push go support upstream

    waf: push go support upstream

    hi,

    (a bit gogobject off-topic) could you push your waf's go support upstream ? (I can do it on your behalf if you want)

    your go-waftools are much better than what I put in waf eons ago.

    -s

  • Build fails without Go source tree

    Build fails without Go source tree

    Building gogobject failed for me because the internal go tool dist failed with this error (I'm using openSUSE, not Ubuntu, but it's the same error). The dist tool appears to expect you to be working from the Go source tree, but I installed it through my package manager, which effectively renders it useless.

    In order to get the build to work, I changed this section of code in waftools/go.py

    vars = {}
    try:
        out = self.cmd_and_log([self.env.GO, 'tool', 'dist', 'env'])
        for line in out.splitlines():
                eq = line.index('=')
                vars[line[:eq]] = line[eq+2:-1]
    except (WafError, ValueError):
        pass
    

    into

    vars = os.environ
    

    This forces waf to check the system variables directly, rather than the dist tool. The downside to this is that any missing variables (like GOHOSTARCH and GOCHAR) need to be set and exported before building. For reference, here are the values I used to get it working (64-bit openSUSE):

    GOROOT     = /usr/lib64/go
    GOBIN      = /usr/bin
    GOARCH     = amd64
    GOOS       = linux
    GOHOSTARCH = amd64
    GOHOSTOS   = linux
    GOTOOLDIR  = /usr/lib64/go/pkg/tool/linux_amd64/
    GOCHAR     = 6
    GOPATH     = /usr/lib64/go/contrib
    

    Every variable needs to have a value, because otherwise line 74 in waftools/go.py throws this error:

    AttributeError: 'ConfigurationContext' object has no attribute 'bld'
    

    After that, I was able to get it to build.

    If there's a way to use the go tools to get values for each of these variables without requiring the Go source code, that would be a preferable fix, but I'm not familiar enough with them to know if there's an easy way to do that.

    Hope this helps.

  • build failed with gobject-introspection 1.31.10+ and gtksourceview 3.2.3-1 from debian testing (aka wheezy)

    build failed with gobject-introspection 1.31.10+ and gtksourceview 3.2.3-1 from debian testing (aka wheezy)

    Here are tailed logs (they are slighlty different due to parallel compiling?):

    log1:

    ...
    [ 67/172] go: build/_cgoobj.15/_cgo_gotypes.go build/_cgoobj.15/gobject-2.0_gobject.cgo1.go -> build/gobject/gobject-2.0.6
    gobject-2.0/gobject.go:2382[_cgoobj.15/gobject-2.0_gobject.cgo1.go:2684]: cannot use unsafe.Pointer(source.InheritedFromGObject()) (type unsafe.Pointer) as type *[0]byte in function argument
    gobject-2.0/gobject.go:2383[_cgoobj.15/gobject-2.0_gobject.cgo1.go:2685]: cannot use unsafe.Pointer(target.InheritedFromGObject()) (type unsafe.Pointer) as type *[0]byte in function argument
    Waf: Leaving directory `/media/verbtmp/progs/googlego/nsf-gogobject-13cf4cc/build'
    Build failed
     -> task in 'gobject/gobject-2.0' failed (exit status 1): 
        {task 140320497759440: go _cgo_gotypes.go,gobject-2.0_gobject.cgo1.go -> gobject-2.0.6}
    ['/media/verbtmp/progs/googlego/go-weekly-amd64/pkg/tool/linux_amd64/6g', '-I/media/verbtmp/progs/googlego/nsf-gogobject-13cf4cc/build/gobject-2.0', '-I/media/verbtmp/progs/googlego/nsf-gogobject-13cf4cc/gobject-2.0', '-I/media/verbtmp/progs/googlego/nsf-gogobject-13cf4cc/build', '-I/media/verbtmp/progs/googlego/nsf-gogobject-13cf4cc/build/_cgoobj.15', '-I/usr/include/glib-2.0', '-I/usr/lib/x86_64-linux-gnu/glib-2.0/include', '-o', 'gobject/gobject-2.0.6', '_cgoobj.15/_cgo_gotypes.go', '_cgoobj.15/gobject-2.0_gobject.cgo1.go']
    

    log2:

    ...
    [ 61/172] c: build/_cgoobj.19/gtksource-3.0_gtksource.cgo2.c -> build/_cgoobj.19/gtksource-3.0_gtksource.cgo2.c.33.o
    gtksource-3.0/gtksource.go: In function ‘_cgo_c4e49b293848_Cfunc_gtk_source_completion_get_view’:
    gtksource-3.0/gtksource.go:121:17: error: field ‘r’ has incomplete type
    gtksource-3.0/gtksource.go:123:2: error: invalid use of incomplete typedef ‘GtkSourceView’
    gtksource-3.0/gtksource.go: In function ‘_cgo_c4e49b293848_Cfunc_gtk_source_completion_context_add_proposals’:
    gtksource-3.0/gtksource.go:596:31: error: field ‘p1’ has incomplete type
    gtksource-3.0/gtksource.go:601:2: error: type of formal parameter 2 is incomplete
    gtksource-3.0/gtksource.go: In function ‘_cgo_c4e49b293848_Cfunc_gtk_source_view_get_completion’:
    gtksource-3.0/gtksource.go:1162:23: error: field ‘r’ has incomplete type
    gtksource-3.0/gtksource.go:1164:2: error: invalid use of incomplete typedef ‘GtkSourceCompletion’
    Waf: Leaving directory `/media/verbtmp/progs/googlego/nsf-gogobject-13cf4cc/build'
    Build failed
     -> task in '_cgo_.o' failed (exit status 1): 
        {task 33416400: c gtksource-3.0_gtksource.cgo2.c -> gtksource-3.0_gtksource.cgo2.c.33.o}
    ['/usr/bin/gcc', '-g', '-O2', '-fPIC', '-m64', '-pthread', '-pthread', '-pthread', '-I/media/verbtmp/progs/googlego/nsf-gogobject-13cf4cc/build/gtksource-3.0', '-I/media/verbtmp/progs/googlego/nsf-gogobject-13cf4cc/gtksource-3.0', '-I/media/verbtmp/progs/googlego/nsf-gogobject-13cf4cc/build', '-I/media/verbtmp/progs/googlego/nsf-gogobject-13cf4cc/build/_cgoobj.19', '-I/usr/include/gtk-3.0', '-I/usr/include/atk-1.0', '-I/usr/include/gdk-pixbuf-2.0', '-I/usr/include/pango-1.0', '-I/usr/include/gio-unix-2.0', '-I/usr/include/glib-2.0', '-I/usr/lib/x86_64-linux-gnu/glib-2.0/include', '-I/usr/include/pixman-1', '-I/usr/include/freetype2', '-I/usr/include/libpng12', '-I/usr/include/gtksourceview-3.0', '-I/usr/include/libxml2', '-I/usr/include/cairo', '-DHAVE_GI=1', '-DHAVE_CAIRO=1', '-DHAVE_ATK=1', '-DHAVE_GDK=1', '-DHAVE_GDKPIXBUF=1', '-DHAVE_GIO=1', '-DHAVE_GLIB=1', '-DHAVE_GOBJECT=1', '-DHAVE_GTK=1', '-DHAVE_GTKSOURCE=1', '-DHAVE_PANGO=1', '-DHAVE_PANGOCAIRO=1', '-DGSEAL_ENABLE', '_cgoobj.19/gtksource-3.0_gtksource.cgo2.c', '-c', '-o', '_cgoobj.19/gtksource-3.0_gtksource.cgo2.c.33.o']
    
Native Go bindings for D-Bus

go.dbus go.dbus is a simple library that implements native Go client bindings for the D-Bus message bus system. Features Complete native implementatio

Nov 20, 2022
wkhtmltopdf Go bindings and high level interface for HTML to PDF conversion
wkhtmltopdf Go bindings and high level interface for HTML to PDF conversion

wkhtmltopdf Go bindings and high level interface for HTML to PDF conversion. Implements wkhtmltopdf Go bindings. It can be used to convert HTML docume

Dec 17, 2022
Some plain Go/Golang i2c sensor bindings to Waveshare Sense HAT for raspberry pi

i2c some plain Go/Golang i2c sensor bindings to Waveshare Sense HAT for raspberry pi using https://periph.io Supported hardware: Raspberry Zero W 1 ht

Dec 31, 2021
Random fake data and struct generator for Go.

Faker Random fake data and struct generator for Go. More than 100 generator functions Struct generator Unique data generator Builtin types support Eas

Oct 3, 2022
Random fake data generator written in go
Random fake data generator written in go

Gofakeit Random data generator written in go Features 160+ Functions!!! Concurrent Global Rand Struct Generator Custom Functions Http Server Command L

Jan 1, 2023
A distributed unique ID generator of using Sonyflake and encoded by Base58

Indigo About A distributed unique ID generator of using Sonyflake and encoded by Base58. ID max length is 11 characters by unsigned int64 max value. A

Nov 24, 2022
:guardsman: A teeny tiny and somewhat opinionated generator for your next golang project

A Yeoman Golang Generator We are very sorry Gophers, but other names for the generator where taken, so we choose go-lang. But we have gocreate as an a

Sep 27, 2022
Unit tests generator for Go programming language
Unit tests generator for Go programming language

GoUnit GoUnit is a commandline tool that generates tests stubs based on source function or method signature. There are plugins for Vim Emacs Atom Subl

Jan 1, 2023
XSD (XML Schema Definition) parser and Go/C/Java/Rust/TypeScript code generator

xgen Introduction xgen is a library written in pure Go providing a set of functions that allow you to parse XSD (XML schema definition) files. This li

Jan 1, 2023
Typo/error resilient, human-readable token generator

toktok A human-friendly token generator Creates tokens which avoid characters that can be easily misinterpreted, like '1' and 'I' or '8' and 'B', as w

Sep 16, 2022
Fast and secure initramfs generator
Fast and secure initramfs generator

Booster - fast and secure initramfs generator Initramfs is a specially crafted small root filesystem that mounted at the early stages of Linux OS boot

Dec 28, 2022
Jennifer is a code generator for Go

Jennifer Jennifer is a code generator for Go. package main import ( "fmt" . "github.com/dave/jennifer/jen" ) func main() { f := NewFile("m

Dec 25, 2022
General Golang Code Generator

gg gg is a General Golang Code Generator: A Good Game to play with Golang. package main import ( "fmt" . "github.com/Xuanwo/gg" ) func main() {

Jan 7, 2023
Default godoc generator - make your first steps towards better code documentation

godoc-generate Overview godoc-generate is a simple command line tool that generates default godoc comments on all exported types, functions, consts an

Sep 14, 2022
accessor methods generator for Go programming language

accessory accessory is an accessor generator for Go programming language. What is accessory? Accessory is a tool that generates accessor methods from

Nov 15, 2022
RinkWorks fantasy name generator in golang

RinkWorks fantasy name generator in golang

Dec 25, 2022
Go Param Generator for golang

Go Param Generator Overview Generates struct's for you. No need to write it by hands Adds Getters and Setters Adds Constructor Easy to use Usage gopar

Dec 13, 2021
Model Generator for Firestore

volcago Automatically generate code used by Cloud Firestore. 日本語ドキュメント Installation Recommend that you drop the binary from the release and use it. Al

Dec 6, 2022
Epub generator backend for mdBook

gomdbook2epub An EPUB generator backend for mdBook. Getting Started Install bina

Dec 17, 2021