Loader chooses 64-bit instead of 32-bit library

Bug #641056 reported by Dave Chiluk on 2010-09-17
156
This bug affects 29 people
Affects Status Importance Assigned to Milestone
gdk-pixbuf (Ubuntu)
Medium
Chris Coulson
Maverick
Medium
Chris Coulson
ia32-libs (Ubuntu)
High
Chris Coulson
Maverick
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

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...

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.

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.

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)
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
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
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....

Chris Coulson (chrisccoulson) wrote :

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

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)
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....

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)
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
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

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)
Didier Roche (didrocks) wrote :

chris, you rock!

Changed in gdk-pixbuf (Ubuntu Maverick):
status: Triaged → Fix Committed
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
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
gogo (trebelnik-stefina) wrote :

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

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

Dave Chiluk (chiluk) wrote :

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

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

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

Chris Coulson (chrisccoulson) wrote :

That's fixed in bug 646862. Sorry about that

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

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) on 2010-09-27
Changed in ia32-libs (Ubuntu Maverick):
status: Fix Released → Incomplete
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

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
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?

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

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

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

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

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

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
  ...

Raybuntu (raybuntu) wrote :

I can confirm that this also effects Natty!

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

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.

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.

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.

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.

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.

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

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.

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

...

eric kureck (kureck) wrote :

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

archenroot (archenroot-gmail) wrote :

This bug affects also 11.10 version of Ubuntu.

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  Edit
Everyone can see this information.

Other bug subscribers

Bug attachments