# gtk+ und .. undefined reference to g_variant_dup_ob[solved]

## ChrisJumper

Aktuell sehe ich den Wald vor lauter Bäume nicht und brauche mal Euren unvoreingenommenen Blick. Es handelt sich größtenteils um ein stable System, bei dem ich versuche möglichst wenig Unstablepakete zu verwenden. Gnome 2.32 ist noch drauf auch wenn ich bald zu Gnome 3.2 migrieren mag, aber noch nicht.

Jetzt habe ich das Problem mit GTK:

```
make  gtk-update-icon-cache 

make[3]: Entering directory `/var/tmp/portage/x11-libs/gtk+-2.24.10-r1/work/gtk+-2.24.10/gtk'

\

#   source='updateiconcache.c' object='updateiconcache.o' libtool=no 

i686-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I.. -DG_LOG_DOMAIN=\"Gtk\" -DGTK_LIBDIR=\"/usr/lib\" -DGTK_DATADIR=\"/usr/share\" -DGTK_DATA_PREFIX=\"/usr\" -DGTK_SYSCONFDIR=\"/etc\" -DGTK_VERSION=\"2.24.10\" -DGTK_BINARY_VERSION=\"2.10.0\" -DGTK_HOST=\"i686-pc-linux-gnu\" -DGTK_COMPILATION -DGTK_PRINT_BACKENDS=\"file,cups\" -DGTK_PRINT_PREVIEW_COMMAND=\""evince --unlink-tempfile --preview --print-settings %s %f"\" -I.. -I../gtk -I.. -I../gdk -I../gdk -DGTK_DISABLE_DEPRECATED -DGTK_FILE_SYSTEM_ENABLE_UNSUPPORTED -DGTK_PRINT_BACKEND_ENABLE_UNSUPPORTED -DG_DISABLE_CAST_CHECKS -pthread -DQT_SHARED -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pango-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng15 -I/usr/include/qt4 -I/usr/include/qt4/QtGui -I/usr/include/libdrm -I/usr/include/qt4/QtCore -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/atk-1.0       -DG_DISABLE_SINGLE_INCLUDES -DATK_DISABLE_SINGLE_INCLUDES -DGDK_PIXBUF_DISABLE_SINGLE_INCLUDES -DGTK_DISABLE_SINGLE_INCLUDES  -DGDK_PIXBUF_DISABLE_DEPRECATED -march=k8 -O2 -pipe -O2 -Wall -c updateiconcache.c

/bin/sh ../libtool  --tag=CC   --mode=link i686-pc-linux-gnu-gcc  -DGDK_PIXBUF_DISABLE_DEPRECATED -march=k8 -O2 -pipe -O2 -Wall  -Wl,-O1 -Wl,--as-needed -o gtk-update-icon-cache updateiconcache.o -pthread -lgdk_pixbuf-2.0 -lgobject-2.0 -lgthread-2.0 -lrt -lglib-2.0   

libtool: link: i686-pc-linux-gnu-gcc -DGDK_PIXBUF_DISABLE_DEPRECATED -march=k8 -O2 -pipe -O2 -Wall -Wl,-O1 -o gtk-update-icon-cache updateiconcache.o -pthread  -Wl,--as-needed -lgdk_pixbuf-2.0 -lgobject-2.0 -lgthread-2.0 -lrt -lglib-2.0 -pthread

/usr/lib/libgio-2.0.so.0: undefined reference to `g_variant_dup_objv'

/usr/lib/libgio-2.0.so.0: undefined reference to `g_variant_take_ref'

/usr/lib/libgio-2.0.so.0: undefined reference to `g_variant_new_objv'

/usr/lib/libgio-2.0.so.0: undefined reference to `g_unix_open_pipe'

/usr/lib/libgio-2.0.so.0: undefined reference to `g_unix_set_fd_nonblocking'

/usr/lib/libgio-2.0.so.0: undefined reference to `g_cclosure_marshal_generic'

collect2: ld returned 1 exit status

make[3]: *** [gtk-update-icon-cache] Fehler 1

make[3]: Leaving directory `/var/tmp/portage/x11-libs/gtk+-2.24.10-r1/work/gtk+-2.24.10/gtk'

make[2]: *** [gtkbuiltincache.h] Fehler 2

make[2]: Leaving directory `/var/tmp/portage/x11-libs/gtk+-2.24.10-r1/work/gtk+-2.24.10/gtk'

make[1]: *** [all-recursive] Fehler 1

make[1]: Leaving directory `/var/tmp/portage/x11-libs/gtk+-2.24.10-r1/work/gtk+-2.24.10'

make: *** [all] Fehler 2

 * ERROR: x11-libs/gtk+-2.24.10-r1 failed (compile phase):

 *   emake failed

 * 

 * If you need support, post the output of 'emerge --info =x11-libs/gtk+-2.24.10-r1',

 * the complete build log and the output of 'emerge -pqv =x11-libs/gtk+-2.24.10-r1'.

 * The complete build log is located at '/var/tmp/portage/x11-libs/gtk+-2.24.10-r1/temp/build.log'.

 * The ebuild environment file is located at '/var/tmp/portage/x11-libs/gtk+-2.24.10-r1/temp/environment'.

 * S: '/var/tmp/portage/x11-libs/gtk+-2.24.10-r1/work/gtk+-2.24.10'

>>> Failed to emerge x11-libs/gtk+-2.24.10-r1, Log file:

>>>  '/var/tmp/portage/x11-libs/gtk+-2.24.10-r1/temp/build.log'

```

```
# eix gtk+

Akzeptiere Version dennoch

[U] x11-libs/gtk+

     Available versions:  

   (1)   1.2.10-r12

   (2)   2.24.8-r1 2.24.10-r1

   (3)   3.0.12-r1 [m]3.2.3 [m]3.2.4-r1 [m]~3.4.2 [m]~3.4.3

   {X aqua colord cups debug doc examples +introspection linguas_az linguas_ca linguas_cs linguas_da linguas_de linguas_el linguas_es linguas_et linguas_eu linguas_fi linguas_fr linguas_ga linguas_gl linguas_hr linguas_hu linguas_it linguas_ja linguas_ko linguas_lt linguas_nl linguas_nn linguas_no linguas_pl linguas_pt linguas_pt_BR linguas_ro linguas_ru linguas_sk linguas_sl linguas_sr linguas_sv linguas_tr linguas_uk linguas_vi nls packagekit test vim-syntax wayland xinerama}

     Installed versions:  2.24.5-r1(2)(00:34:55 27.10.2011)(cups introspection -aqua -debug -doc -examples -test -vim-syntax -xinerama) 3.0.12-r1(3)(16:49:15 03.11.2011)(cups introspection -aqua -debug -doc -examples -test -vim-syntax -xinerama)

     Homepage:            http://www.gtk.org/

     Description:         Gimp ToolKit +

* x11-libs/gtk+extra

     Available versions:  2.1.2-r1 3.0.1 {+introspection static-libs}

     Homepage:            http://gtkextra.sourceforge.net

     Description:         Useful Additional GTK+ widgets

2 Treffer.

```

GTK+3.2.3 habe ich maskiert weil ich hoffte das sich das Problem damit erstmal lösen lässt. Die undefined reference Meldung bekomme ich auch bei dort.

```
equery b /usr/lib/libgio-2.0.so.0

dev-libs/glib-2.30.3 (/usr/lib/libgio-2.0.so.0.3000.3)
```

```
# eix dev-libs/glib

[I] dev-libs/glib

     Available versions:  

   (1)   1.2.10-r5

   (2)   2.30.2 2.30.3 ~2.32.2 ~2.32.3

   {debug doc fam hardened kernel_linux selinux (+)static-libs systemtap test utils xattr}

     Installed versions:  1.2.10-r5(1)(09:53:38 07.10.2006)(-hardened) 2.30.3(2)(14:03:23 07.05.2012)(static-libs -debug -doc -fam -selinux -systemtap -test -utils -xattr)

     Homepage:            http://www.gtk.org/

     Description:         The GLib library of C routines

```

Glib-2.30.3 habe ich am 7. Mai auch schon versucht neu zu bauen hat mir aber nichts gebracht.

Habt ihr noch einen Tipp?Last edited by ChrisJumper on Thu May 17, 2012 5:00 pm; edited 1 time in total

----------

## franzf

Bau mal gdk-pixbuf neu.

----------

## ChrisJumper

```
eix pixbuf

* dev-ruby/ruby-gdkpixbuf2

     Available versions:  0.19.4 1.0.3 ~1.1.0 ~1.1.3 {elibc_FreeBSD ruby_targets_ree18 ruby_targets_ruby18 ruby_targets_ruby19 test}

     Homepage:            http://ruby-gnome2.sourceforge.jp/

     Description:         Ruby GdkPixbuf2 bindings

[U] x11-libs/gdk-pixbuf

     Available versions:  (2) 2.24.0-r1 2.24.1 2.24.1-r1 ~2.26.1

   {+X debug doc +introspection jpeg jpeg2k test tiff}

     Installed versions:  2.24.0-r1(2)(00:22:27 27.10.2011)(X introspection jpeg tiff -debug -doc -jpeg2k -test)

     Homepage:            http://www.gtk.org/

     Description:         Image loading library for GTK+

2 Treffer.

```

Ahhh schaut gut aus! Danke werde ich sofort ausprobieren! :)

Problem bleibt, wenn ich revdep-rebuld starte kommt das:

```
i686-pc-linux-gnu-gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -pthread -DORBIT2=1 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/gconf/2 -I/usr/include/orbit-2.0 -I/usr/include/libxml2 -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include         -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include    -DDBUS_API_SUBJECT_TO_CHANGE -D_FILE_OFFSET_BITS=64 -D_BSD_SOURCE -D_LARGEFILE64_SOURCE -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT -DGNOME_VFS_PREFIX=\"/usr\" -DGNOME_VFS_DATADIR=\"/usr/share\" -DGNOME_VFS_LIBDIR=\"/usr/lib\" -DGNOMEVFS_LOCALEDIR=\"/usr/share/locale\" -DGNOME_VFS_SYSCONFDIR=\"/etc\" -DG_LOG_DOMAIN=\"libgnomevfs\" -I.. -I.. -I../libgnomevfs -I../libgnomevfs     -march=k8 -O2 -pipe -fomit-frame-pointer -MT daemon-connection.o -MD -MP -MF .deps/daemon-connection.Tpo -c -o daemon-connection.o daemon-connection.c

mv -f .deps/daemon-connection.Tpo .deps/daemon-connection.Po

sed -e "s|\@libexecdir\@|/usr/libexec|" gnome-vfs-daemon.service.in > gnome-vfs-daemon.service

mv -f .deps/dbus-utils.Tpo .deps/dbus-utils.Po

mv -f .deps/vfs-daemon.Tpo .deps/vfs-daemon.Po

/bin/sh ../libtool --tag=CC   --mode=link i686-pc-linux-gnu-gcc -std=gnu99  -march=k8 -O2 -pipe -fomit-frame-pointer  -Wl,-O1 -Wl,--as-needed -o gnome-vfs-daemon dbus-utils.o vfs-daemon.o daemon-connection.o -pthread -lgmodule-2.0 -lgconf-2 -lxml2 -ldbus-glib-1 -ldbus-1 -lpthread -lgobject-2.0 -lgthread-2.0 -lrt -lglib-2.0   -lssl -lcrypto       -lresolv -lglib-2.0   ../libgnomevfs/libgnomevfsdaemon-2.la ../libgnomevfs/libgnomevfs-2.la -lutil 

libtool: link: i686-pc-linux-gnu-gcc -std=gnu99 -march=k8 -O2 -pipe -fomit-frame-pointer -Wl,-O1 -o .libs/gnome-vfs-daemon dbus-utils.o vfs-daemon.o daemon-connection.o -pthread  -Wl,--as-needed ../libgnomevfs/.libs/libgnomevfsdaemon-2.a /var/tmp/portage/gnome-base/gnome-vfs-2.24.4-r1/work/gnome-vfs-2.24.4/libgnomevfs/.libs/libgnomevfs-2.so ../libgnomevfs/.libs/libgnomevfs-2.so -lgmodule-2.0 -lgconf-2 -lxml2 -ldbus-glib-1 -ldbus-1 -lpthread -lgobject-2.0 -lgthread-2.0 -lrt -lglib-2.0 -lssl -lcrypto -lresolv -lutil -pthread

/usr/lib/libgio-2.0.so.0: undefined reference to `g_variant_take_ref'

/usr/lib/libgio-2.0.so.0: undefined reference to `g_variant_new_objv'

/usr/lib/libgio-2.0.so.0: undefined reference to `g_unix_set_fd_nonblocking'

/usr/lib/libgio-2.0.so.0: undefined reference to `g_cclosure_marshal_generic'

/usr/lib/libgio-2.0.so.0: undefined reference to `g_variant_dup_objv'

/usr/lib/libgio-2.0.so.0: undefined reference to `g_unix_open_pipe'

collect2: ld returned 1 exit status

make[2]: *** [gnome-vfs-daemon] Fehler 1

make[2]: Leaving directory `/var/tmp/portage/gnome-base/gnome-vfs-2.24.4-r1/work/gnome-vfs-2.24.4/daemon'

make[1]: *** [all-recursive] Fehler 1

make[1]: Leaving directory `/var/tmp/portage/gnome-base/gnome-vfs-2.24.4-r1/work/gnome-vfs-2.24.4'

make: *** [all] Fehler 2

emake failed

 * ERROR: gnome-base/gnome-vfs-2.24.4-r1 failed (compile phase):

 *   compile failure

 * 

 * Call stack:

 *     ebuild.sh, line   85:  Called src_compile

 *   environment, line 3050:  Called gnome2_src_compile

 *   environment, line 2392:  Called die

 * The specific snippet of code:

 *       emake || die "compile failure"

 * 

 * If you need support, post the output of 'emerge --info =gnome-base/gnome-vfs-2.24.4-r1',

 * the complete build log and the output of 'emerge -pqv =gnome-base/gnome-vfs-2.24.4-r1'.

 * The complete build log is located at '/var/tmp/portage/gnome-base/gnome-vfs-2.24.4-r1/temp/build.log'.

 * The ebuild environment file is located at '/var/tmp/portage/gnome-base/gnome-vfs-2.24.4-r1/temp/environment'.

 * S: '/var/tmp/portage/gnome-base/gnome-vfs-2.24.4-r1/work/gnome-vfs-2.24.4'

>>> Failed to emerge gnome-base/gnome-vfs-2.24.4-r1, Log file:

>>>  '/var/tmp/portage/gnome-base/gnome-vfs-2.24.4-r1/temp/build.log'
```

Problem bleibt ähnlich, hier der Ausdruck von gnome-vfs-2.24.4-r1.

----------

## franzf

Dann ist die Sache relativ klar:

Nimm static-libs aus den glib USE-Flags wieder raus.

Wenn du das nicht willst, musst du gconf und dbus-glib neu bauen.

----------

## ChrisJumper

Also ich habe beides probiert -also das neu bauen von dbus-glib, gconf als auch das entfernen von static-libs useflag und erneutem neu bauen der drei Pakete- das Problem bleibt:

```
/bin/sh ../libtool  --tag=CC   --mode=link i686-pc-linux-gnu-gcc  -DGDK_PIXBUF_DISABLE_DEPRECATED -march=k8 -O2 -pipe -O2 -Wall  -Wl,-O1 -Wl,--as-needed -o gtk-update-icon-cache updateiconcache.o -pthread -lgdk_pixbuf-2.0 -lgobject-2.0 -lgthread-2.0 -lrt -lglib-2.0   

libtool: link: i686-pc-linux-gnu-gcc -DGDK_PIXBUF_DISABLE_DEPRECATED -march=k8 -O2 -pipe -O2 -Wall -Wl,-O1 -o gtk-update-icon-cache updateiconcache.o -pthread  -Wl,--as-needed -lgdk_pixbuf-2.0 -lgobject-2.0 -lgthread-2.0 -lrt -lglib-2.0 -pthread

/usr/lib/libgio-2.0.so.0: undefined reference to `g_variant_dup_objv'

/usr/lib/libgio-2.0.so.0: undefined reference to `g_variant_take_ref'

/usr/lib/libgio-2.0.so.0: undefined reference to `g_variant_new_objv'

/usr/lib/libgio-2.0.so.0: undefined reference to `g_unix_open_pipe'

/usr/lib/libgio-2.0.so.0: undefined reference to `g_unix_set_fd_nonblocking'

/usr/lib/libgio-2.0.so.0: undefined reference to `g_cclosure_marshal_generic'

collect2: ld returned 1 exit status

make[3]: *** [gtk-update-icon-cache] Fehler 1

```

Das Ergebnis bei gtk+ bleibt in beiden Fällen gleich. ich versuche noch mal pixbuf neu zu bauen.

```

[I] dev-libs/glib

     Available versions:  

   (1)   1.2.10-r5

   (2)   2.30.2 2.30.3 ~2.32.2 ~2.32.3

   {debug doc fam hardened kernel_linux selinux (+)static-libs systemtap test utils xattr}

     Installed versions:  1.2.10-r5(1)(09:53:38 07.10.2006)(-hardened) 2.30.3(2)(16:16:46 17.05.2012)(-debug -doc -fam -selinux -static-libs -systemtap -test -utils -xattr)

     Homepage:            http://www.gtk.org/

     Description:         The GLib library of C routines

[I] gnome-base/gconf

     Available versions:  (2) 2.32.4 ~3.2.3 ~3.2.3-r1 ~3.2.5

   {debug doc +introspection ldap (+)orbit policykit}

     Installed versions:  2.32.4(2)(16:18:59 17.05.2012)(introspection policykit -debug -doc -ldap)

     Homepage:            http://projects.gnome.org/gconf/

     Description:         Gnome Configuration System and Daemon

[I] dev-libs/dbus-glib

     Available versions:  0.98 {debug doc static-libs test}

     Installed versions:  0.98(16:18:39 17.05.2012)(-debug -doc -static-libs -test)

     Homepage:            http://dbus.freedesktop.org/

     Description:         D-Bus bindings for glib

```

Edit: Ich versuche jetzt mal ein update auf glib-2.32.2 denn einige Pakete kann ich nicht updaten wegen dem selben Fehler... wobei mir jetzt auffällt das ich das Porblem bestimmt selber verursacht hatte denn statt Pixbuff zu aktualisieren habe ich wohl irgendwann vor Wochen schon mal versucht glib auf einen Unstable-Version zu updaten um diesem Fehler zu entkommen. In der Zeit hatte ich nicht viel Geduld und damit wohl die Probleme verursacht.

Nach dem Update auf glib-2.32.2 kann ich dbus-glib aber auch nicht mehr neu bauen:

```
i686-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I/var/tmp/portage/dev-libs/dbus-glib-0.98/work/dbus-glib-0.98/dbus -I.. -I/var/tmp/portage/dev-libs/dbus-glib-0.98/work/dbus-glib-0.98 -I.. -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include   -pthread -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include    -DDBUS_COMPILATION=1 -DDBUS_LOCALEDIR=\"/usr/@DATADIRNAME@/locale\"     -march=k8 -O2 -pipe -fomit-frame-pointer -Wall -Wchar-subscripts -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wcast-align -Wfloat-equal -Wsign-compare -fno-strict-aliasing -c /var/tmp/portage/dev-libs/dbus-glib-0.98/work/dbus-glib-0.98/dbus/dbus-bash-completion-helper.c

  CCLD   libdbus-glib-1.la

  CCLD   libdbus-gtool.la

  CCLD   dbus-binding-tool

  CCLD   dbus-bash-completion-helper

/usr/lib/libgmodule-2.0.so.0: undefined reference to `g_rec_mutex_lock'

./.libs/libdbus-glib-1.so: undefined reference to `g_mutex_unlock'

./.libs/libdbus-glib-1.so: undefined reference to `g_mutex_lock'

/usr/lib/libgmodule-2.0.so.0: undefined reference to `g_rec_mutex_unlock'

/usr/lib/libgmodule-2.0.so.0: undefined reference to `g_private_replace'

/usr/lib/libgmodule-2.0.so.0: undefined reference to `g_private_get'

collect2: ld returned 1 exit status

```

Ach ich liebe diesen Fehler.

----------

## Josef.95

Hallo Chris

Ich stieß in diesem  Thread auf die gleiche Fehlermeldung. Dort hatte sich wohl jemand die emul-linux-x86-baselibs auf einem x86 System installiert, und damit ein /usr/lib32 geschaffen was es normalerweise auf einem x86 System nicht gibt.

Ich weiss, das klingt sehr kurios, und ich hab auch keine Ahnung wie das überhaupt zustande kam - aber schaue sicherheitshalber doch mal nach ob 

```
ls -ld /usr/lib* 
```

 bei dir passt.

----------

## ChrisJumper

Danke Josef!

Ich glaub das war es! Sehr interessant ist bei mir das ich die seit 03.11.2011 seltsamerweise installiert habe!

----------

## franzf

 *ChrisJumper wrote:*   

> Ich glaub das war es!

 

Puh! Und ich hatte vermutet, du hast irgendeine kaputte statische Lib quer durch deine von glib abhängigen Pakete verteilt...

So ist das natürlich viel einfacher zu lösen.

----------

