Missing gtk+ ia32 compatibility libs break stock icons

Bug #195928 reported by Ryan C. Gordon on 2008-02-26
This bug affects 1 person
Affects Status Importance Assigned to Milestone
ia32-libs-gtk (Ubuntu)

Bug Description

The 32-bit GTK+ compatibility libraries shipped with Ubuntu 7.10 appear to be missing the svg decoder. This means that decoding some of the stock icons shipped with the system fail when running a 32-bit Gnome binary on an amd64 system.

I have attached a minimal test case to demonstrate this issue. Build the program like this:

   gcc -o testgtkicons testgtkicons.c `pkg-config gtk+-2.0 --cflags --libs`

If you build and run it on a 64-bit system, it should show a window containing the default icon used with "cancel" buttons in Gnome. Likewise on a 32-bit system. But if you build it on a 32-bit system and then try to run it on a 64-bit system, you'll get this error message to stderr:

(testgtkicons:24211): Gtk-WARNING **: Error loading theme icon 'gtk-cancel' for stock: Unable to load image-loading module: /usr/lib32/gtk-2.0/2.10.0/loaders/svg_loader.so: /usr/lib32/gtk-2.0/2.10.0/loaders/svg_loader.so: cannot open shared object file: No such file or directory

...and more importantly: the icon will show up as a "broken document" image since GTK+ couldn't load it.

If you were to copy the following libraries and symlinks from a 32-bit Ubuntu 7.10 install into the proper lib32 directories on the 64-bit system, the problem goes away:


...so it seems like these files probably just need to be added to the ia32-libs-gtk package, if the solution is really that simple.


Ryan C. Gordon (icculus) wrote :
Jacob Peddicord (jpeddicord) wrote :

Thanks for the report. I am able to confirm this.

Changed in ia32-libs-gtk:
status: New → Confirmed
Vadim Peretokin (vperetokin) wrote :
Download full text (3.5 KiB)

I compiled the test case on a 32bit ubuntu 8.04, then ran on a 64bit ubuntu 8.10. I got the cancel button show just fine when I compiled on 64bit 8.10 and can on 64bit 8.10.

Please re-open if you're able to reproduce the issue though.

vadi@ubuntu:~/Systems$ ldd testgtkicons
ldd: warning: you do not have execution permission for `./testgtkicons'
 linux-gate.so.1 => (0xf7f3a000)
 libgtk-x11-2.0.so.0 => /usr/lib32/libgtk-x11-2.0.so.0 (0xf7b80000)
 libgdk-x11-2.0.so.0 => /usr/lib32/libgdk-x11-2.0.so.0 (0xf7af4000)
 libatk-1.0.so.0 => /usr/lib32/libatk-1.0.so.0 (0xf7ad7000)
 libgdk_pixbuf-2.0.so.0 => /usr/lib32/libgdk_pixbuf-2.0.so.0 (0xf7abd000)
 libm.so.6 => /lib32/libm.so.6 (0xf7a97000)
 libpangocairo-1.0.so.0 => /usr/lib32/libpangocairo-1.0.so.0 (0xf7a8c000)
 libpango-1.0.so.0 => /usr/lib32/libpango-1.0.so.0 (0xf7a49000)
 libcairo.so.2 => /usr/lib32/libcairo.so.2 (0xf79d5000)
 libgobject-2.0.so.0 => /usr/lib32/libgobject-2.0.so.0 (0xf7997000)
 libgmodule-2.0.so.0 => /usr/lib32/libgmodule-2.0.so.0 (0xf7992000)
 libdl.so.2 => /lib32/libdl.so.2 (0xf798e000)
 libglib-2.0.so.0 => /usr/lib32/libglib-2.0.so.0 (0xf78d7000)
 libc.so.6 => /lib32/libc.so.6 (0xf7779000)
 libX11.so.6 => /usr/lib32/libX11.so.6 (0xf768a000)
 libXcomposite.so.1 => /usr/lib32/libXcomposite.so.1 (0xf7685000)
 libXdamage.so.1 => /usr/lib32/libXdamage.so.1 (0xf7682000)
 libXfixes.so.3 => /usr/lib32/libXfixes.so.3 (0xf767d000)
 libgio-2.0.so.0 => /usr/lib32/libgio-2.0.so.0 (0xf7615000)
 libpangoft2-1.0.so.0 => /usr/lib32/libpangoft2-1.0.so.0 (0xf75ed000)
 libfreetype.so.6 => /usr/lib32/libfreetype.so.6 (0xf7576000)
 libz.so.1 => /usr/lib32/libz.so.1 (0xf7560000)
 libfontconfig.so.1 => /usr/lib32/libfontconfig.so.1 (0xf7533000)
 libXext.so.6 => /usr/lib32/libXext.so.6 (0xf7524000)
 libXrender.so.1 => /usr/lib32/libXrender.so.1 (0xf751a000)
 libXinerama.so.1 => /usr/lib32/libXinerama.so.1 (0xf7516000)
 libXi.so.6 => /usr/lib32/libXi.so.6 (0xf750c000)
 libXrandr.so.2 => /usr/lib32/libXrandr.so.2 (0xf7505000)
 libXcursor.so.1 => /usr/lib32/libXcursor.so.1 (0xf74fc000)
 /lib/ld-linux.so.2 (0xf7f3b000)
 libpixman-1.so.0 => /usr/lib32/libpixman-1.so.0 (0xf74ba000)
 libpng12.so.0 => /usr/lib32/libpng12.so.0 (0xf7493000)
 libxcb-render-util.so.0 => /usr/lib32/libxcb-render-util.so.0 (0xf748e000)
 libxcb-render.so.0 => /usr/lib32/libxcb-render.so.0 (0xf7486000)
 libxcb.so.1 => /usr/lib32/libxcb.so.1 (0xf746d000)
 libpcre.so.3 => /lib32/libpcre.so.3 (0xf7443000)
 libxcb-xlib.so.0 => /usr/lib32/libxcb-xlib.so.0 (0xf743f000)
 libselinux.so.1 => /lib32/libselinux.so.1 (0xf7425000)
 libexpat.so.1 => /usr/lib32/libexpat.so.1 (0xf73fe000)
 libXau.so.6 => /usr/lib32/libXau.so.6 (0xf73fb000)
 libXdmcp.so.6 => /usr/lib32/libXdmcp.so.6 (0xf73f5000)
 libpthread.so.0 => /lib32/libpthread.so.0 (0xf73dc000)
vadi@ubuntu:~/Systems$ chmod +x test
test/ testgtkicons testgtkicons.c
vadi@ubuntu:~/Systems$ chmod +x testgtkicons
vadi@ubuntu:~/Systems$ ./testgtkicons
/usr/lib/gio/modules/libgvfsdbus.so: wrong ELF class: ELFCLASS64
Failed to load module: /usr/lib/gio/modules/libgvfsdbus.so
/usr/lib/gio/modules/libgioremote-volume-monitor.so: w...


Changed in ia32-libs-gtk:
status: Confirmed → Invalid
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers