Loader chooses 64-bit instead of 32-bit library

Bug #641056 reported by Dave Chiluk
156
This bug affects 29 people
Affects Status Importance Assigned to Milestone
gdk-pixbuf (Ubuntu)
Fix Released
Medium
Chris Coulson
Maverick
Fix Released
Medium
Chris Coulson
ia32-libs (Ubuntu)
Fix Released
High
Chris Coulson
Maverick
Fix Released
High
Chris Coulson

Bug Description

Binary package hint: ia32-libs

When trying to execute my 32-bit application under maverick, I get the following errors. I have ia32-libs installed, but the loader is trying to load the 64-bit ones.

chiluk@blackandblue:/opt/agns/bin$ file ./agnclient
./agnclient: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.2.5, stripped

chiluk@blackandblue:/opt/agns/bin$ linux32 ./agnclient
(agnclient:3411): Gtk-WARNING **: Error loading icon from file './skin/agnclient.png':
 Unable to load image-loading module: /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-png.so: /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-png.so: wrong ELF class: ELFCLASS64

(agnclient:3411): Gtk-CRITICAL **: IA__gtk_image_get_pixbuf: assertion `image->storage_type == GTK_IMAGE_PIXBUF || image->storage_type == GTK_IMAGE_EMPTY' failed

(agnclient:3411): Gtk-CRITICAL **: IA__gtk_image_get_pixbuf: assertion `image->storage_type == GTK_IMAGE_PIXBUF || image->storage_type == GTK_IMAGE_EMPTY' failed

(agnclient:3411): Gtk-CRITICAL **: IA__gtk_image_get_pixbuf: assertion `image->storage_type == GTK_IMAGE_PIXBUF || image->storage_type == GTK_IMAGE_EMPTY' failed

(agnclient:3411): Gtk-WARNING **: /usr/lib/gtk-2.0/2.10.0/immodules/im-ibus.so: wrong ELF class: ELFCLASS64

(agnclient:3411): Gtk-WARNING **: Loading IM context type 'ibus' failed

(agnclient:3411): Gtk-CRITICAL **: IA__gtk_image_get_pixbuf: assertion `image->storage_type == GTK_IMAGE_PIXBUF || image->storage_type == GTK_IMAGE_EMPTY' failed

(agnclient:3411): Gtk-CRITICAL **: IA__gtk_image_get_pixbuf: assertion `image->storage_type == GTK_IMAGE_PIXBUF || image->storage_type == GTK_IMAGE_EMPTY' failed

(agnclient:3411): Gtk-CRITICAL **: IA__gtk_image_get_pixbuf: assertion `image->storage_type == GTK_IMAGE_PIXBUF || image->storage_type == GTK_IMAGE_EMPTY' failed

(agnclient:3411): Gtk-CRITICAL **: IA__gtk_image_get_pixbuf: assertion `image->storage_type == GTK_IMAGE_PIXBUF || image->storage_type == GTK_IMAGE_EMPTY' failed

(agnclient:3411): Gtk-CRITICAL **: IA__gtk_image_get_pixbuf: assertion `image->storage_type == GTK_IMAGE_PIXBUF || image->storage_type == GTK_IMAGE_EMPTY' failed

(agnclient:3411): Gtk-CRITICAL **: IA__gtk_image_get_pixbuf: assertion `image->storage_type == GTK_IMAGE_PIXBUF || image->storage_type == GTK_IMAGE_EMPTY' failed
/usr/lib/gio/modules/libgvfsdbus.so: wrong ELF class: ELFCLASS64
Failed to load module: /usr/lib/gio/modules/libgvfsdbus.so

(agnclient:3411): Gtk-WARNING **: Error loading theme icon 'gtk-missing-image' for stock: Unable to load image-loading module: /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so: /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so: wrong ELF class: ELFCLASS64

chiluk@blackandblue:/opt/agns/bin$ lsb_release -rd
Description: Ubuntu maverick (development branch)
Release: 10.10

chiluk@blackandblue:/opt/agns/bin$ apt-cache policy ia32-libs
ia32-libs:
  Installed: 20090808ubuntu4
  Candidate: 20090808ubuntu4
  Version table:
 *** 20090808ubuntu4 0
        500 http://us.archive.ubuntu.com/ubuntu/ maverick/universe amd64 Packages
        100 /var/lib/dpkg/status

Revision history for this message
Dave Chiluk (chiluk) wrote :
Download full text (5.8 KiB)

Upon further inspection this may be an issue with the libraries themselves not loading the correct binaries *(I'm not sure how that trickle down loading all works).

Here's my ldd output for agnclient. Conspicuously absent is a line for libpixbufloader-png.so. and libpixbufloader-svg.so which leads me to believe they are attempting to be loaded by /usr/lib32/libgtk-x11-2.0.so.0. However when doing an ldd on that library *(following the ldd for agnclient), it points to all the correct libraries.

chiluk@blackandblue:/opt/agns/bin$ ldd ./agnclient
 linux-gate.so.1 => (0xf77da000)
 libagnLogc.so.1 => /opt/agns/lib/libagnLogc.so.1 (0xf77bc000)
 libagnc.so.1 => /opt/agns/lib/libagnc.so.1 (0xf77b2000)
 libpthread.so.0 => /lib32/libpthread.so.0 (0xf7799000)
 libm.so.6 => /lib32/libm.so.6 (0xf7773000)
 libdl.so.2 => /lib32/libdl.so.2 (0xf776f000)
 libgtk-x11-2.0.so.0 => /usr/lib32/libgtk-x11-2.0.so.0 (0xf735d000)
 libgdk-x11-2.0.so.0 => /usr/lib32/libgdk-x11-2.0.so.0 (0xf72b9000)
 libatk-1.0.so.0 => /usr/lib32/libatk-1.0.so.0 (0xf729e000)
 libgdk_pixbuf-2.0.so.0 => /usr/lib32/libgdk_pixbuf-2.0.so.0 (0xf7285000)
 libpangoxft-1.0.so.0 => /usr/lib32/libpangoxft-1.0.so.0 (0xf727d000)
 libpangox-1.0.so.0 => /usr/lib32/libpangox-1.0.so.0 (0xf7271000)
 libpango-1.0.so.0 => /usr/lib32/libpango-1.0.so.0 (0xf722f000)
 libgobject-2.0.so.0 => /usr/lib32/libgobject-2.0.so.0 (0xf71ea000)
 libgmodule-2.0.so.0 => /usr/lib32/libgmodule-2.0.so.0 (0xf71e6000)
 libgthread-2.0.so.0 => /usr/lib32/libgthread-2.0.so.0 (0xf71e1000)
 libglib-2.0.so.0 => /lib32/libglib-2.0.so.0 (0xf7112000)
 libxml2.so.2 => /usr/lib32/libxml2.so.2 (0xf6fe7000)
 libc.so.6 => /lib32/libc.so.6 (0xf6e8c000)
 /lib/ld-linux.so.2 (0xf77db000)
 libpangocairo-1.0.so.0 => /usr/lib32/libpangocairo-1.0.so.0 (0xf6e80000)
 libX11.so.6 => /usr/lib32/libX11.so.6 (0xf6d63000)
 libXcomposite.so.1 => /usr/lib32/libXcomposite.so.1 (0xf6d5f000)
 libXdamage.so.1 => /usr/lib32/libXdamage.so.1 (0xf6d5b000)
 libXfixes.so.3 => /usr/lib32/libXfixes.so.3 (0xf6d54000)
 libcairo.so.2 => /usr/lib32/libcairo.so.2 (0xf6c9e000)
 libgio-2.0.so.0 => /usr/lib32/libgio-2.0.so.0 (0xf6ba5000)
 libpangoft2-1.0.so.0 => /usr/lib32/libpangoft2-1.0.so.0 (0xf6b7f000)
 libfreetype.so.6 => /usr/lib32/libfreetype.so.6 (0xf6b08000)
 libfontconfig.so.1 => /usr/lib32/libfontconfig.so.1 (0xf6ad7000)
 librt.so.1 => /lib32/librt.so.1 (0xf6ace000)
 libXext.so.6 => /usr/lib32/libXext.so.6 (0xf6abe000)
 libXrender.so.1 => /usr/lib32/libXrender.so.1 (0xf6ab4000)
 libXinerama.so.1 => /usr/lib32/libXinerama.so.1 (0xf6ab0000)
 libXi.so.6 => /usr/lib32/libXi.so.6 (0xf6aa1000)
 libXrandr.so.2 => /usr/lib32/libXrandr.so.2 (0xf6a99000)
 libXcursor.so.1 => /usr/lib32/libXcursor.so.1 (0xf6a8f000)
 libXft.so.2 => /usr/lib32/libXft.so.2 (0xf6a7b000)
 libz.so.1 => /usr/lib32/libz.so.1 (0xf6a66000)
 libpcre.so.3 => /lib32/libpcre.so.3 (0xf6a30000)
 libxcb.so.1 => /usr/lib32/libxcb.so.1 (0xf6a16000)
 libpixman-1.so.0 => /usr/lib32/libpixman-1.so.0 (0xf69b6000)
 libpng12.so.0 => /lib32/libpng12.so.0 (0xf6991000)
 libxcb-shm.so.0 => /usr/lib32/libxcb-shm.so.0 (0xf698d000)
 libxcb-render.so.0 => /usr/lib32/libxcb-render.so.0 (0xf6984000)
 libresolv.so.2 => /lib...

Read more...

Revision history for this message
Scott Ritchie (scottritchie) wrote :

There seems to be some hard-coding of the library path, which doesn't work for ia32-libs. I believe the config.rpath file might be the culprit, however I don't know much about how this library builds.

Revision history for this message
Dave Chiluk (chiluk) wrote :

I thought there was some hard coding as well, but that doesn't explain why ldd returns the correct dependencies for libgtk-x11-2.0.so.0 if it was hard coded somewhere I wouldn't expect ldd to have to do the library loading at all. I'd expect it to happen internally to libgtk-x11-2.0.so.0 using uselib(). I wouldn't expect ldd to know anything about the connection.

Revision history for this message
estama (estama) wrote :
Download full text (6.1 KiB)

This bug affects those of us that run 32bit firefox and thunderbird directly from mozilla. The console output that i get when i run thunderbird is:

Gtk-Message: Failed to load module "gnomesegvhandler": /usr/lib/gtk-2.0/modules/libgnomesegvhandler.so: wrong ELF class: ELFCLASS64
/usr/lib/gio/modules/libgvfsdbus.so: wrong ELF class: ELFCLASS64
Failed to load module: /usr/lib/gio/modules/libgvfsdbus.so

(thunderbird-bin:3621): Gtk-WARNING **: Error loading theme icon 'gtk-directory' for stock: Unable to load image-loading module: /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so: /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so: wrong ELF class: ELFCLASS64

(thunderbird-bin:3621): Gtk-WARNING **: Error loading theme icon 'gtk-close' for stock: Unable to load image-loading module: /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so: /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so: wrong ELF class: ELFCLASS64

(thunderbird-bin:3621): Gtk-WARNING **: Error loading theme icon 'gtk-clear' for stock: Unable to load image-loading module: /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so: /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so: wrong ELF class: ELFCLASS64

(thunderbird-bin:3621): Gtk-WARNING **: Error loading theme icon 'gtk-delete' for stock: Unable to load image-loading module: /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so: /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so: wrong ELF class: ELFCLASS64

(thunderbird-bin:3621): Gtk-WARNING **: Error loading theme icon 'gtk-go-back-ltr' for stock: Unable to load image-loading module: /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so: /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so: wrong ELF class: ELFCLASS64

(thunderbird-bin:3621): Gtk-WARNING **: Error loading theme icon 'gtk-go-forward-ltr' for stock: Unable to load image-loading module: /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so: /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so: wrong ELF class: ELFCLASS64

(thunderbird-bin:3621): Gtk-WARNING **: Error loading theme icon 'gtk-find' for stock: Unable to load image-loading module: /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so: /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so: wrong ELF class: ELFCLASS64

(thunderbird-bin:3621): Gtk-WARNING **: /usr/lib/gtk-2.0/2.10.0/immodules/im-ibus.so: wrong ELF class: ELFCLASS64

(thunderbird-bin:3621): Gtk-WARNING **: Loading IM context type 'ibus' failed
LoadPlugin: failed to initialize shared library /var/lib/flashplugin-installer/npwrapper.libflashplayer.so [/var/lib/flashplugin-installer/npwrapper.libflashplayer.so: wrong ELF class: ELFCLASS64]
LoadPlugin: failed to initialize shared library /usr/lib/jvm/java-6-openjdk/jre/lib/amd64/IcedTeaPlugin.so [/usr/lib/jvm/java-6-openjdk/jre/lib/amd64/IcedTeaPlugin.so: wrong ELF class: ELFCLASS64]
LoadPlugin: failed to initialize shared library /usr/lib/mozilla/plugins/librhythmbox-itms-detection-plugin.so [/usr/lib/mozilla/plugins/librhythmbox-itms-detection-plugin.so: wrong ELF class: ELFCLASS64]
LoadPlugin: failed to i...

Read more...

Changed in ia32-libs (Ubuntu Maverick):
milestone: none → ubuntu-10.10
importance: Undecided → High
Changed in ia32-libs (Ubuntu Maverick):
assignee: nobody → Canonical Foundations Team (canonical-foundations)
Revision history for this message
Matthias Klose (doko) wrote :

this is more of a question for the desktop team, why gtk/glib is failing to load the correct modules

Changed in ia32-libs (Ubuntu Maverick):
status: New → Invalid
summary: - Loader chooses 64-bit library instead of 32-bit libraries
+ Loader chooses 64-bit instead of 32-bit library
Changed in gdk-pixbuf (Ubuntu Maverick):
assignee: nobody → Canonical Desktop Team (canonical-desktop-team)
summary: - Loader chooses 64-bit instead of 32-bit library
+ gdk-pixbuf:Loader chooses 64-bit library instead of 32-bit libraries
summary: - gdk-pixbuf:Loader chooses 64-bit library instead of 32-bit libraries
+ Loader chooses 64-bit instead of 32-bit gtk libraries
summary: - Loader chooses 64-bit instead of 32-bit gtk libraries
+ Loader chooses 64-bit instead of 32-bit library
Changed in gdk-pixbuf (Ubuntu Maverick):
importance: Undecided → Medium
Revision history for this message
Chris Coulson (chrisccoulson) wrote :

The issue seems to be that gdk-pixbuf is missing entirely from ia32-libs, rather than anything being hardcoded. The pixbuf loaders should be shipped by ia32-libs in /usr/lib32/gtk-2.0/2.10.0/loaders, but that is missing on Maverick (but there on Lucid)

Note that gdk-pixbuf was split from gtk this cycle...

Changed in gdk-pixbuf (Ubuntu Maverick):
status: New → Invalid
Changed in ia32-libs (Ubuntu Maverick):
status: Invalid → Triaged
Revision history for this message
Chris Coulson (chrisccoulson) wrote :

I'm afraid somebody else will have to look at this, I can't upload a 700MB tarball, that's just crazy....

Revision history for this message
Chris Coulson (chrisccoulson) wrote :

ia32-libs is also missing ibus, to provide /usr/lib32/gtk-2.0/2.10.0/immodules/im-ibus.so

Revision history for this message
Robbie Williamson (robbiew) wrote :

back to you doko ;)

Changed in gdk-pixbuf (Ubuntu Maverick):
assignee: Canonical Desktop Team (canonical-desktop-team) → nobody
Changed in ia32-libs (Ubuntu Maverick):
assignee: Canonical Foundations Team (canonical-foundations) → Matthias Klose (doko)
Revision history for this message
Chris Coulson (chrisccoulson) wrote :

Actually, they are being provided by ia32-libs, but they've moved (which is why I missed them). So, back to the drawing board....

Revision history for this message
Robbie Williamson (robbiew) wrote :

Hey Scott...could you take a look at this one? Chris Coulson said he'd look into it as well.

Changed in ia32-libs (Ubuntu Maverick):
assignee: Matthias Klose (doko) → nobody
assignee: nobody → Scott Ritchie (scottritchie)
Revision history for this message
Chris Coulson (chrisccoulson) wrote :

Ok, I can see the issue with this now. Will work on this tomorrow

Changed in gdk-pixbuf (Ubuntu Maverick):
status: Invalid → Triaged
assignee: nobody → Chris Coulson (chrisccoulson)
milestone: none → ubuntu-10.10
Revision history for this message
Chris Coulson (chrisccoulson) wrote :

Just to explain - it seems like we used to carry some fairly messy patches in gtk to make this work, but now we currently only have a small patch in gdk-pixbuf to add ia32-libs compatibility. However, all the current patch seems to do is tell gdk-pixbuf to look for a /usr/lib/gdk-pixbuf-2.0/2.10.0/loader.cache.32 (which should have a list of all the 32-bit modules). However, this file doesn't actually exist, and there isn't really any mechanism for creating it - so it falls back to /usr/lib/gdk-pixbuf-2.0/2.10.0/loader.cache which has all of the 64-bit modules in.

So, I've pushed a change to bzr now which tells gdk-pixbuf to look for a /usr/lib32/gdk-pixbuf-2.0/2.10.0/loaders.cache. I've also added support for generating the loaders.cache by using a 32-bit gdk-pixbuf-query-loaders on 64-bit machines (the patch makes it search in the right place for the modules).

This will also require a small change in ia32-libs - the postinst script will now need a hook to generate the loaders.cache on install

Revision history for this message
Chris Coulson (chrisccoulson) wrote :

I'll take the ia32-libs task too

Changed in ia32-libs (Ubuntu Maverick):
assignee: Scott Ritchie (scottritchie) → Chris Coulson (chrisccoulson)
Revision history for this message
Didier Roche-Tolomelli (didrocks) wrote :

chris, you rock!

Changed in gdk-pixbuf (Ubuntu Maverick):
status: Triaged → Fix Committed
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package gdk-pixbuf - 2.21.7-1ubuntu4

---------------
gdk-pixbuf (2.21.7-1ubuntu4) maverick; urgency=low

  * Fix LP: #641056 - Loader chooses 64-bit instead of 32-bit library.
    Update ia32-libs support to try and load a loaders.cache from
    /usr/lib32. Also add support for running a 32-bit gdk-pixbuf-query-loaders
    on a 64-bit system, to allow ia32-libs to correctly create a loaders.cache
    - update debian/patches/041_ia32-libs.patch
 -- Chris Coulson <email address hidden> Thu, 23 Sep 2010 15:37:47 +0100

Changed in gdk-pixbuf (Ubuntu Maverick):
status: Fix Committed → Fix Released
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package ia32-libs - 20090808ubuntu5

---------------
ia32-libs (20090808ubuntu5) maverick; urgency=low

  * Fix LP: #641056 - Loader chooses 64-bit instead of 32-bit library.
    Update the gdk-pixbuf version, and create a loaders.cache on instally
  * Refresh packages
 -- Chris Coulson <email address hidden> Fri, 24 Sep 2010 14:33:49 +0000

Changed in ia32-libs (Ubuntu Maverick):
status: Triaged → Fix Released
Revision history for this message
gogo (trebelnik-stefina) wrote :

In "ia32-libs - 20090808ubuntu5" version don`t work skype, skype won`t start!?

Revision history for this message
Dave Chiluk (chiluk) wrote :

It works a lot better, but it's still missing im-ibus.so. This same application doesn't have issue in 10.04 which also doesn't have a 32-bit im-ibus.so. It looks like something has changed in one of the gtk libraries in mandrake such that it is now needing a 32-bit built im-ibus.so. This library doesn't exist in 10.04, but the application doesn't have an iss

chiluk@blackandblue:/opt/agns/bin$ ./agnclient

(agnclient:3416): Gtk-WARNING **: /usr/lib/gtk-2.0/2.10.0/immodules/im-ibus.so: wrong ELF class: ELFCLASS64

(agnclient:3416): Gtk-WARNING **: Loading IM context type 'ibus' failed

Revision history for this message
Dave Chiluk (chiluk) wrote :

I meant to say the application doesn't have an issue in 10.04.

Revision history for this message
Mathieu Marquer (slasher-fun) wrote :

Confirming what stefina says: Skype won't start with that update.

$ skype

(<unknown>:29500): Gtk-WARNING **: /usr/lib/gtk-2.0/2.10.0/immodules/im-cedilla.so: mauvaise classe ELF: ELFCLASS64

(<unknown>:29500): Gtk-WARNING **: Loading IM context type 'cedilla' failed

(<unknown>:29500): Gtk-WARNING **: /usr/lib/gtk-2.0/2.10.0/immodules/im-cedilla.so: mauvaise classe ELF: ELFCLASS64

(<unknown>:29500): Gtk-WARNING **: Loading IM context type 'cedilla' failed

(<unknown>:29500): Gtk-WARNING **: /usr/lib/gtk-2.0/2.10.0/immodules/im-cedilla.so: mauvaise classe ELF: ELFCLASS64

(<unknown>:29500): Gtk-WARNING **: Loading IM context type 'cedilla' failed
Gtk-Message: (for origin information, set GTK_DEBUG): failed to retrieve property `GtkTreeView::odd-row-color' of type `GdkColor' from rc file value "((GString*) 0xad1d760)" of type `GString'
Inconsistency detected by ld.so: dl-open.c: 612: _dl_open: Assertion `_dl_debug_initialize (0, args.nsid)->r_state == RT_CONSISTENT' failed!

This also seems to cause a problem with WINE audio:
$ winecfg
ALSA lib ../../src/conf.c:3288:(snd_config_hooks_call) Cannot open shared library libasound_module_conf_pulse.so
ALSA lib ../../../src/control/control.c:882:(snd_ctl_open_noupdate) Invalid CTL hw:0
ALSA lib ../../../src/pcm/pcm_dmix.c:1018:(snd_pcm_dmix_open) unable to open slave

$ locate libasound_module_conf_pulse.so
/usr/lib/alsa-lib/libasound_module_conf_pulse.so
/usr/lib32/alsa-lib/libasound_module_conf_pulse.so

Revision history for this message
Zach Busser (zach-busser) wrote :

I can confirm the wine audio problem:

$ env WINEPREFIX="/home/zmb/.wine" wine C:\\Program\ Files\\StarCraft\ II\\StarCraft\ II.exe
[output skipped]
ALSA lib ../../src/conf.c:3288:(snd_config_hooks_call) Cannot open shared library libasound_module_conf_pulse.so
ALSA lib ../../../src/control/control.c:882:(snd_ctl_open_noupdate) Invalid CTL hw:0
Inconsistency detected by ld.so: dl-close.c: 736: _dl_close: Assertion `map->l_init_called' failed!

$ locate libasound_module_conf_pulse.so/usr/lib/alsa-lib/libasound_module_conf_pulse.so
/usr/lib32/alsa-lib/libasound_module_conf_pulse.so

$ apt-cache policy ia32-libs
ia32-libs:
  Installed: 20090808ubuntu5
  Candidate: 20090808ubuntu5

Revision history for this message
Chris Coulson (chrisccoulson) wrote :

That's fixed in bug 646862. Sorry about that

Revision history for this message
Dave Chiluk (chiluk) wrote :

The im-ibus.so problem is not fixed for me even with the latest packages. Something else must be trying to load the im-ibus.so. 646862 was not any additional help or information.

I ran strace against my application and it looks like gtk.immodules.32 is being checked for and not being found. My guess is that there needs to be a 32-bit version of the immodules. I'm still not sure what is causing this dependency to be needed. I attached the full output of the strace for your perusal as agnout.

access("/usr/lib/gtk-2.0/2.10.0/gtk.immodules.32", F_OK) = -1 ENOENT (No such file or directory)
open("/usr/lib/gtk-2.0/2.10.0/gtk.immodules", O_RDONLY|O_LARGEFILE) = 7

Revision history for this message
Dave Chiluk (chiluk) wrote :

It looks like 32-bit acrobat reader is also affected by this bug 646954. I marked it as a duplicate of this bug.

Dave Chiluk (chiluk)
Changed in ia32-libs (Ubuntu Maverick):
status: Fix Released → Incomplete
Revision history for this message
Mingming Ren (portis25) wrote :

I created a gtk.immodules.32 in /usr/lib/gtk-2.0/2.10.0/ directory to point to 32bit immodules, now I can use the input modules in 32 bit programs.
However I got other warnings:

/usr/lib/gio/modules/libgiozeitgeist.so: wrong ELF class: ELFCLASS64
Failed to load module: /usr/lib/gio/modules/libgiozeitgeist.so
/usr/lib/gio/modules/libgvfsdbus.so: wrong ELF class: ELFCLASS64
Failed to load module: /usr/lib/gio/modules/libgvfsdbus.so

Revision history for this message
Chris Coulson (chrisccoulson) wrote :

Please don't change the status of this bug. Additional issues not related to gdk-pixbuf should be tracked elsewhere

Changed in ia32-libs (Ubuntu Maverick):
status: Incomplete → Fix Released
Revision history for this message
Dave Chiluk (chiluk) wrote :

Sorry about that I figured since failure to load im-ibus.so was in the initial description of the problem that the issue has not been fixed as originally described *(hence the change to "incomplete").

"
(agnclient:3411): Gtk-WARNING **: /usr/lib/gtk-2.0/2.10.0/immodules/im-ibus.so: wrong ELF class: ELFCLASS64
"

Would you prefer to continue this bug via bug 646954?

Revision history for this message
john e (john-godzero) wrote :

I am also hitting this problem with a 32 bit program. It's name is "QQ" (a closed source ICQ type prog aimed at chinese market).

(qq:3704): Gtk-WARNING **: /usr/lib/gtk-2.0/2.10.0/immodules/im-ibus.so: wrong ELF class: ELFCLASS64

(kubuntu 10.10) I messed with paths, etc.. to no avail. I did have a few problems with skype, etc when i first installed (a day or two ago), but mostly those cleared themselves up (the 20090808-7 update, i presume).

The "-4" i hear is so great seems to have been already erased from history (missed it by days or hours, lol
)

If someone can send me the -4 deb so I chat with my chinese friends, that would be great.

Any more info i can give, happy to...

-john

Revision history for this message
archenroot (archenroot-gmail) wrote :

I experienced the problem with gui for lzma application named peazip

zangetsu@HELIOS:~$peazip
Gtk-Message: Failed to load module "gnomesegvhandler": /usr/lib/gtk-2.0/modules/libgnomesegvhandler.so: chybná třída ELF: ELFCLASS64
[WARNING] Out of OEM specific VK codes, changing to unassigned
[WARNING] Out of unassigned VK codes, assigning $FF
/usr/lib/gio/modules/libgvfsdbus.so: chybná třída ELF: ELFCLASS64
Failed to load module: /usr/lib/gio/modules/libgvfsdbus.so

(peazip:21986): Gtk-WARNING **: /usr/lib/gtk-2.0/2.10.0/immodules/im-ibus.so: chybná třída ELF: ELFCLASS64

(peazip:21986): Gtk-WARNING **: Loading IM context type 'ibus' failed

zangetsu@HELIOS:~$ uname -a
Linux HELIOS 2.6.35-23-generic #41-Ubuntu SMP Wed Nov 24 11:55:36 UTC 2010 x86_64 GNU/Linux

What is current status?

Ladislav

Revision history for this message
Matthew (mpope) wrote :

The original Bug Description mentions libgvfsdbus.so, and this was repeated in later postings. In Kate Stewart's comment of 2010-09-22 only pixbuf is mentioned for the first time. Chris Coulson wrote on 2010-09-22 ia32-libs is also missing ibus. Chris Coulson also wrote on 2010-09-27: Additional issues not related to gdk-pixbuf should be tracked elsewhere. Should I take this elsewhere?

I'm seeing the same problem with wrong version (64 bit) of libgvfsdbus.so attempted to be loaded by Thunderbird 3.1.6-9.

xxxxx@love:/local/sw/thunderbird$ ./thunderbird
/usr/lib/gio/modules/libgvfsdbus.so: wrong ELF class: ELFCLASS64
Failed to load module: /usr/lib/gio/modules/libgvfsdbus.so

Prior to Thunderbird failing in this dramatic manner, I had installed a kernal patch via http://radu.cotescu.com/how-to-install-vmware-server-ubuntu-fedora-opensuse. VMware Server 2.0 does not run out of the box on Linux 64. This patch also required using a Firefox plugin to launch the VMware console, which made Firefox unstable, and then my Virtual Machine (XP SP3) was unstable. I uninstalled VMware Server 2.0. I uninstalled the Firefox plugin. I did an aptitude upgrade too. Still 64 bit lib was being loaded. I tried upgrading from Thunderbird 3.1.6 to 3.1.9, still no dice.

I rolled back my kernel to 2.6.32-29 which was dated 2 weeks before installing the Radu patch, but still my Thunderbird won't start for this problem of loading the 64 bit library when it should be loading the 32 bit one.

Any suggestions welcome, including whether this is a manifestation of the wider scope of the original ia32-libs bug report.

root@love:/boot# uname -a
Linux love 2.6.32-29-generic #58-Ubuntu SMP Fri Feb 11 20:52:10 UTC 2011 x86_64 GNU/Linux

root@love:/# apt-cache policy ia32-libs
ia32-libs:
  Installed: 2.7ubuntu26
  Candidate: 2.7ubuntu26
  Version table:
 *** 2.7ubuntu26 0
        500 http://ca.archive.ubuntu.com/ubuntu/ lucid-updates/universe Packages
        100 /var/lib/dpkg/status
     2.7ubuntu25 0
        500 http://ca.archive.ubuntu.com/ubuntu/ lucid/universe Packages
Peace,
Matthew

Revision history for this message
Matthew (mpope) wrote :

Two more details:
- Examining Radu's patch I see it is actually only to the vmware-config.pl, not to the Linux kernel (phew!!)
- Thunderbird does actually startup, but it quits in 11 seconds, which made registering for launchpad a challenge and has effectively locked down my email communication to the outside world.
Peace,
Matthew

Revision history for this message
Matthew (mpope) wrote :

RESOLVED - thunderbird getting wrong ELF CLASS 64 on libgvfsdbus.so
- First, the above was due to my installing the non-Lightning version of Thunderbird, which lacked proper 64 bit support
- I restored my original Thunderbird 3.1.8 (not .6 after all) installation, and started it on the command line directly. It was not suffering the ELF CLASS64 problem. This means it was the correct Lightning version (for 64 bit).
- I remembered for safety I had moved ~/.thunderbird to ~/dot.thunderbird, and copied it back as ~/.thunderbird when the patched VMware Server 2.0 was causing the whole O/S to become unstable including running apps like Firefox and Thunderbird
- Thinking there might be a hard symbolic link or something that was not preserved in my copying, I moved dot.thunderbird to .thunderbird, and magically, Thunderbird loaded correctly, and my email is restored.
Sorry for the noise,
Regards,
Matthew

Revision history for this message
Andrew Miller (andrew-839) wrote :

This bug appears to have regressed on Natty:

  $ LD_LIBRARY_PATH=/usr/lib32 ./firefox

  (firefox-bin:9327): Gtk-WARNING **: /usr/lib/gtk-2.0/2.10.0/immodules/im-ibus.so: wrong ELF class: ELFCLASS64

  (firefox-bin:9327): Gtk-WARNING **: Loading IM context type 'ibus' failed
  /usr/lib/gio/modules/libgiobamf.so: wrong ELF class: ELFCLASS64
  Failed to load module: /usr/lib/gio/modules/libgiobamf.so
  /usr/lib/gio/modules/libgvfsdbus.so: wrong ELF class: ELFCLASS64
  Failed to load module: /usr/lib/gio/modules/libgvfsdbus.so

  (firefox-bin:9327): Gtk-WARNING **: Error loading theme icon 'gtk-go-back-ltr' for stock: Unable to load image-loading module: /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so: /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so: wrong ELF class: ELFCLASS64
  ...

Revision history for this message
Raybuntu (raybuntu) wrote :

I can confirm that this also effects Natty!

Revision history for this message
blimbo (timnugent) wrote :

I'm having this problem on Natty too when running acroread:

tnugent@translocon:~$ acroread
/opt/Adobe/Reader9/Reader/intellinux/bin/acroread: error while loading shared libraries: libgdk_pixbuf_xlib-2.0.so.0: wrong ELF class: ELFCLASS64
tnugent@translocon:~$ apt-cache policy ia32-libs
ia32-libs:
  Installed: 20110310
  Candidate: 20110310
  Version table:
 *** 20110310 0
        100 /var/lib/dpkg/status
     20090808ubuntu13 0
        500 http://gb.archive.ubuntu.com/ubuntu/ natty/universe amd64 Packages

Revision history for this message
Digulla-hepe (digulla-hepe) wrote :

Since the update to Natty, I get the same errors for Firefox 4.0.1:

Gtk-WARNING **: Error loading icon: Unable to load image-loading module: /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-png.so: /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-png.so: wrong ELF class: ELFCLASS64

Is there a workaround? Something to force GTK to load the 32bit library on my 64bit Ubuntu? I have ia32-libs installed.

PS: You may want to check with OpenSUSE how they handle 32/64bit libraries. I've been using a 64bit system for roughly five years and ran all kinds of software on that and I never had even a single problem with 32/64bit (ok, sometimes I had to install the 32bit version of a library ... but after that, everything just worked). On Ubuntu, 32bit support on 64bit systems feels much more brittle.

Revision history for this message
Heiner Valverde (dylian17-deactivatedaccount) wrote :

Hi everybody, I use Guitar Pro 32 bit on Ubuntu Natty 64 bit, it used to work but lastest version of Unity seem it broke it.

I've been advised that this could be related to this bug, here's what I am obtaining from running it from Terminal:
/usr/lib/gtk-2.0/2.10.0/menuproxies/libappmenu.so: wrong ELF class: ELFCLASS64

(:2237): Gtk-WARNING **: Failed to load type module: /usr/lib/gtk-2.0/2.10.0/menuproxies/libappmenu.so

/usr/lib/gtk-2.0/2.10.0/menuproxies/libappmenu.so: wrong ELF class: ELFCLASS64

(:2237): Gtk-WARNING **: Failed to load type module: /usr/lib/gtk-2.0/2.10.0/menuproxies/libappmenu.so

(:2237): Gtk-WARNING **: /usr/lib/gtk-2.0/2.10.0/immodules/im-ibus.so: wrong ELF class: ELFCLASS64

(:2237): Gtk-WARNING **: Loading IM context type 'ibus' failed

(:2237): Gtk-WARNING **: /usr/lib/gtk-2.0/2.10.0/immodules/im-ibus.so: wrong ELF class: ELFCLASS64

(:2237): Gtk-WARNING **: Loading IM context type 'ibus' failed
/usr/lib/gtk-2.0/2.10.0/menuproxies/libappmenu.so: wrong ELF class: ELFCLASS64

(:2237): Gtk-WARNING **: Failed to load type module: /usr/lib/gtk-2.0/2.10.0/menuproxies/libappmenu.so

/usr/lib/gtk-2.0/2.10.0/menuproxies/libappmenu.so: wrong ELF class: ELFCLASS64

(:2237): Gtk-WARNING **: Failed to load type module: /usr/lib/gtk-2.0/2.10.0/menuproxies/libappmenu.so

(:2237): Gtk-WARNING **: /usr/lib/gtk-2.0/2.10.0/immodules/im-ibus.so: wrong ELF class: ELFCLASS64

(:2237): Gtk-WARNING **: Loading IM context type 'ibus' failed
/usr/lib/gio/modules/libgiobamf.so: wrong ELF class: ELFCLASS64
Failed to load module: /usr/lib/gio/modules/libgiobamf.so
/usr/lib/gio/modules/libgvfsdbus.so: wrong ELF class: ELFCLASS64
Failed to load module: /usr/lib/gio/modules/libgvfsdbus.so

(:2237): Gtk-WARNING **: Error loading theme icon 'dialog-question' for stock: Unable to load image-loading module: /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-png.so: /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-png.so: wrong ELF class: ELFCLASS64

(:2237): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed

** (:2237): CRITICAL **: murrine_style_draw_render_icon: assertion `base_pixbuf != NULL' failed

(:2237): Gtk-CRITICAL **: IA__gtk_style_render_icon: assertion `pixbuf != NULL' failed

(:2237): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_pixels: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(:2237): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_width: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(:2237): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_height: assertion `GDK_IS_PIXBUF (pixbuf)' failed
Segmentation fault

--------------------------

I hope this can be used to clarify this issue and get if fixed for many users.

Revision history for this message
Henri Daumas (daumas77) wrote :

For those of you with an agnclient/gdkpixbuf issue, a practical workaround is to use the /opt/agns/bin/NetVPN.sh script (which in turn uses the cli tool) instead of the GUI tool. It is the GUI part that causes the crash, but the cli works just fine.

Edit the NetVPN.sh script with your login particulars, all you'll get connected.

Then, sit back and wait for this gdkpixbuf fix so we can once again use the gui client.

Revision history for this message
Henri Daumas (daumas77) wrote :

I forgot to add, my agnclient segmentation fault occurs on natty 11.04-64bit.

Up until as recently as last week (5/2/11), my agnclient GUI was working on 11.04, albeit without any icons, but then a couple of days ago I started getting segfaults in addition to the gdkpixbuf error, preventing the GUI from loading at all. A recent update must have broken it.

Revision history for this message
Andrew (andrew-rw-robinson) wrote :

I can also see the regression with Natty. This is unfortunate as web programmers must be able to test older firefox versions and the mozilla team does not have 64 bit releases and their PPA (ppa:mozillateam/firefox-stable) lacks natty support. Would love to see if there is a work-around to be able to get this to run without a full chroot 32 bit install or building firefox from source.

Revision history for this message
Digulla-hepe (digulla-hepe) wrote :

Since there was no response to the comment here, I've opened a new bug: https://bugs.launchpad.net/ubuntu/+source/ia32-libs/+bug/783155

Revision history for this message
Maxime Chéramy (maxime81) wrote :

Bug not solved yet...

Fatal error: exception GdkPixbuf.GdkPixbufError(5, "Unable to load image-loading module: /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-png.so: /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-png.so: wrong ELF class: ELFCLASS64")

But I also have the 32bits lib:
-rw-r--r-- 1 root root 17944 2011-04-05 02:40 /usr/lib32/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-png.so

So it should use the 32 bits version.

Revision history for this message
Maxime Chéramy (maxime81) wrote :
Revision history for this message
sky.jian (sky000) wrote :

after update the 2 pakages, still not work:

...

(thunderbird-bin:7358): Gtk-WARNING **: /usr/lib/gtk-2.0/2.10.0/engines/libmurrine.so: wrong ELF class: ELFCLASS64

(thunderbird-bin:7358): Gtk-WARNING **: /usr/lib/gtk-2.0/2.10.0/engines/libmurrine.so: wrong ELF class: ELFCLASS64
/usr/lib/gio/modules/libgvfsdbus.so: wrong ELF class: ELFCLASS64
Failed to load module: /usr/lib/gio/modules/libgvfsdbus.so

...

Revision history for this message
eric kureck (kureck) wrote :

I have this problem with db-main, but these fixes have worked.

Revision history for this message
archenroot (archenroot-gmail) wrote :

This bug affects also 11.10 version of Ubuntu.

Revision history for this message
archenroot (archenroot-gmail) wrote :

Eric,

Sky.jian mentioned another library:
- /usr/lib/gtk-2.0/2.10.0/engines/libmurrine.so: wrong ELF class: ELFCLASS64

this was reported for the first time here

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Bug attachments

Remote bug watches

Bug watches keep track of this bug in other bug trackers.