Skip to content

gobject-introspection fails to build (undefined symbol: g_match_info_get_type) #672

@certik

Description

@certik

The gobject-introspection fails on RHEL6 with:

...
[gobject-introspection]   CCLD   libgiscanner.la
[gobject-introspection]   CCLD   _giscanner.la
[gobject-introspection]   GEN    g-ir-doc-tool
[gobject-introspection]   GEN    g-ir-annotation-tool
[gobject-introspection]   GEN    g-ir-scanner
[gobject-introspection]   CCLD   libgirepository-internals.la
[gobject-introspection]   CCLD   g-ir-compiler
[gobject-introspection]   CCLD   g-ir-generate
[gobject-introspection]   GICOMP gir/freetype2-2.0.gir
[gobject-introspection]   GISCAN GLib-2.0.gir
[gobject-introspection]   GICOMP gir/fontconfig-2.0.gir
[gobject-introspection]   GICOMP gir/libxml2-2.0.gir
[gobject-introspection]   GICOMP gir/xft-2.0.gir
[gobject-introspection]   GICOMP gir/xlib-2.0.gir
[gobject-introspection]   GICOMP gir/xrandr-1.3.gir
[gobject-introspection]   GICOMP gir/xfixes-4.0.gir
[gobject-introspection]   GICOMP gir/cairo-1.0.gir
[gobject-introspection]   GICOMP gir/GL-1.0.gir
[gobject-introspection]   GICOMP gir/DBus-1.0.gir
[gobject-introspection] /local/certik/tmp/gobject-introspection-2e76ffztqpei/tmp-introspectqvKtFt/GLib-2.0: symbol lookup error: /local/certik/tmp/gobject-introspection-2e76ffztqpei/tmp-introspectqvKtFt/GLib-2.0: undefined symbol: g_match_info_get_type
[gobject-introspection] Command '['/local/certik/tmp/gobject-introspection-2e76ffztqpei/tmp-introspectqvKtFt/GLib-2.0', '--introspect-dump=/local/certik/tmp/gobject-introspection-2e76ffztqpei/tmp-introspectqvKtFt/functions.txt,/local/certik/tmp/gobject-introspection-2e76ffztqpei/tmp-introspectqvKtFt/dump.xml']' returned non-zero exit status 127
[gobject-introspection] make[2]: *** [GLib-2.0.gir] Error 1
[gobject-introspection] make[2]: Leaving directory `/local/certik/tmp/gobject-introspection-2e76ffztqpei'
[gobject-introspection] make[1]: *** [all-recursive] Error 1
[gobject-introspection] make: *** [all] Error 2
[gobject-introspection] make[1]: Leaving directory `/local/certik/tmp/gobject-introspection-2e76ffztqpei'
[gobject-introspection|ERROR] Command '[u'/bin/bash', '_hashdist/build.sh']' returned non-zero exit status 2
[gobject-introspection|ERROR] command failed (code=2); raising

The missing symbol is defined here:

$ nm /local/certik/bld/glib2/bwxdwiq5etyi/lib/libgobject-2.0.so  | grep g_match_info_get_type
000000000000c670 T g_match_info_get_type

I am not sure how to fix it. The file that fails is not in the tmp directory:

$ ls /local/certik/tmp/gobject-introspection-2e76ffztqpei/tmp-introspectqvKtFt/GLib-2.0
ls: cannot access /local/certik/tmp/gobject-introspection-2e76ffztqpei/tmp-introspectqvKtFt/GLib-2.0: No such file or directory

I only have:

$ ls /local/certik/tmp/gobject-introspection-2e76ffztqpei/
acinclude.m4                               gthash_test-gthash.o           libcmph_la-select.lo                            libgirepository_1_0_la-giunioninfo.o
aclocal.m4                                 gthash_test-gthash-test.o      libcmph_la-select.o                             libgirepository_1_0_la-givfuncinfo.lo
AUTHORS                                    gtk-doc.make                   libcmph_la-vqueue.lo                            libgirepository_1_0_la-givfuncinfo.o
build-aux                                  _hashdist                      libcmph_la-vqueue.o                             libgirepository-gthash.la
build.json                                 job                            libcmph_la-vstack.lo                            libgirepository_gthash_la-gthash.lo
build.log                                  libcmph.la                     libcmph_la-vstack.o                             libgirepository_gthash_la-gthash.o
ChangeLog                                  libcmph_la-bdz.lo              libgirepository-1.0.la                          libgirepository-internals.la
cmph-bdz-test                              libcmph_la-bdz.o               libgirepository_1_0_la-gdump.lo                 libgirepository_internals_la-girmodule.lo
cmph_bdz_test-cmph-bdz-test.o              libcmph_la-bdz_ph.lo           libgirepository_1_0_la-gdump.o                  libgirepository_internals_la-girmodule.o
common.mk                                  libcmph_la-bdz_ph.o            libgirepository_1_0_la-giarginfo.lo             libgirepository_internals_la-girnode.lo
config.h                                   libcmph_la-bmz8.lo             libgirepository_1_0_la-giarginfo.o              libgirepository_internals_la-girnode.o
config.h.in                                libcmph_la-bmz8.o              libgirepository_1_0_la-gibaseinfo.lo            libgirepository_internals_la-giroffsets.lo
config.log                                 libcmph_la-bmz.lo              libgirepository_1_0_la-gibaseinfo.o             libgirepository_internals_la-giroffsets.o
config.status                              libcmph_la-bmz.o               libgirepository_1_0_la-gicallableinfo.lo        libgirepository_internals_la-girparser.lo
configure                                  libcmph_la-brz.lo              libgirepository_1_0_la-gicallableinfo.o         libgirepository_internals_la-girparser.o
configure.ac                               libcmph_la-brz.o               libgirepository_1_0_la-giconstantinfo.lo        libgirepository_internals_la-girwriter.lo
CONTRIBUTORS                               libcmph_la-buffer_entry.lo     libgirepository_1_0_la-giconstantinfo.o         libgirepository_internals_la-girwriter.o
COPYING                                    libcmph_la-buffer_entry.o      libgirepository_1_0_la-gienuminfo.lo            libgiscanner.la
COPYING.GPL                                libcmph_la-buffer_manager.lo   libgirepository_1_0_la-gienuminfo.o             libgiscanner_la-scannerlexer.lo
COPYING.LGPL                               libcmph_la-buffer_manager.o    libgirepository_1_0_la-gifieldinfo.lo           libgiscanner_la-scannerlexer.o
docs                                       libcmph_la-chd.lo              libgirepository_1_0_la-gifieldinfo.o            libgiscanner_la-scannerparser.lo
examples                                   libcmph_la-chd.o               libgirepository_1_0_la-gifunctioninfo.lo        libgiscanner_la-scannerparser.o
gi-dump-types                              libcmph_la-chd_ph.lo           libgirepository_1_0_la-gifunctioninfo.o         libgiscanner_la-sourcescanner.lo
gi_dump_types-gdump.o                      libcmph_la-chd_ph.o            libgirepository_1_0_la-giinterfaceinfo.lo       libgiscanner_la-sourcescanner.o
gi_dump_types-gi-dump-types.o              libcmph_la-chm.lo              libgirepository_1_0_la-giinterfaceinfo.o        libtool
gir                                        libcmph_la-chm.o               libgirepository_1_0_la-ginvoke.lo               m4
g-ir-annotation-tool                       libcmph_la-cmph.lo             libgirepository_1_0_la-ginvoke.o                Makefile
g-ir-compiler                              libcmph_la-cmph.o              libgirepository_1_0_la-giobjectinfo.lo          Makefile.am
g_ir_compiler-compiler.o                   libcmph_la-cmph_structs.lo     libgirepository_1_0_la-giobjectinfo.o           Makefile-cmph.am
g-ir-doc-tool                              libcmph_la-cmph_structs.o      libgirepository_1_0_la-gipropertyinfo.lo        Makefile-examples.am
girepository                               libcmph_la-compressed_rank.lo  libgirepository_1_0_la-gipropertyinfo.o         Makefile-gir.am
g-ir-generate                              libcmph_la-compressed_rank.o   libgirepository_1_0_la-giregisteredtypeinfo.lo  Makefile-girepository.am
g_ir_generate-generate.o                   libcmph_la-compressed_seq.lo   libgirepository_1_0_la-giregisteredtypeinfo.o   Makefile-giscanner.am
g-ir-scanner                               libcmph_la-compressed_seq.o    libgirepository_1_0_la-girepository.lo          Makefile.in
giscanner                                  libcmph_la-fch_buckets.lo      libgirepository_1_0_la-girepository.o           Makefile.introspection
_giscanner.la                              libcmph_la-fch_buckets.o       libgirepository_1_0_la-girffi.lo                Makefile-tools.am
_giscanner_la-giscannermodule.lo           libcmph_la-fch.lo              libgirepository_1_0_la-girffi.o                 misc
_giscanner_la-giscannermodule.o            libcmph_la-fch.o               libgirepository_1_0_la-gisignalinfo.lo          NEWS
glib-print                                 libcmph_la-graph.lo            libgirepository_1_0_la-gisignalinfo.o           README
glib_print-glib-print.o                    libcmph_la-graph.o             libgirepository_1_0_la-gistructinfo.lo          scannerlexer.c
gobject-introspection-1.0.pc               libcmph_la-hash.lo             libgirepository_1_0_la-gistructinfo.o           scannerparser.c
gobject-introspection-1.0.pc.in            libcmph_la-hash.o              libgirepository_1_0_la-gitypeinfo.lo            scannerparser.h
gobject-introspection-1.31.0               libcmph_la-jenkins_hash.lo     libgirepository_1_0_la-gitypeinfo.o             stamp-h1
gobject-introspection-no-export-1.0.pc     libcmph_la-jenkins_hash.o      libgirepository_1_0_la-gitypelib.lo             tests
gobject-introspection-no-export-1.0.pc.in  libcmph_la-miller_rabin.lo     libgirepository_1_0_la-gitypelib.o              TODO
gthash-test                                libcmph_la-miller_rabin.o      libgirepository_1_0_la-giunioninfo.lo           tools

I don't know if the file got deleted or what.

I googled this error in various forms and nothing comes up that would hint at a solution. The first step is to figure out how to reproduce by hand and see how exactly the file is being compiled --- it looks like it might be linked with my old glib2 from RHEL6 in /lib/libgobject-2.0.so.0 or
/lib64/libgobject-2.0.so.0. Unfortunately I can't figure out how to check if those libs have the symbol or not:

$ nm /lib/libgobject-2.0.so.0
nm: /lib/libgobject-2.0.so.0: no symbols
$ nm /lib64/libgobject-2.0.so.0
nm: /lib64/libgobject-2.0.so.0: no symbols

I know the Hashstack lib has the symbol (see above).

The problem was first reported in #474 (comment)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions