Natty: Loader chooses 64-bit instead of 32-bit library

Bug #783155 reported by Digulla-hepe
106
This bug affects 18 people
Affects Status Importance Assigned to Milestone
ia32-libs (Ubuntu)
Won't Fix
Undecided
Unassigned

Bug Description

Binary package hint: ia32-libs

The bug https://bugs.launchpad.net/ubuntu/+source/ia32-libs/+bug/641056 is back with Natty.

Since there was no reaction on the comments on the old bug, I've opened a new one.

Revision history for this message
Tiago Ramos (tiagolramos) wrote :

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

file /usr/bin/skype
/usr/bin/skype: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.8, stripped

linux32 skype
/usr/lib/gtk-2.0/2.10.0/menuproxies/libappmenu.so: classe ELF errada: ELFCLASS64

(<unknown>:4771): 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: classe ELF errada: ELFCLASS64

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

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

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

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

(<unknown>:4771): Gtk-WARNING **: Loading IM context type 'cedilla' failed
/usr/lib/gtk-2.0/2.10.0/menuproxies/libappmenu.so: classe ELF errada: ELFCLASS64

(<unknown>:4771): 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: classe ELF errada: ELFCLASS64

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

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

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

lsb_release -rd
Description: Ubuntu 11.04
Release: 11.04

apt-cache policy ia32-libs
ia32-libs:
  Instalado: 20090808ubuntu13
  Candidato: 20090808ubuntu13
  Tabela de Versão:
 *** 20090808ubuntu13 0
        500 http://pt.archive.ubuntu.com/ubuntu/ natty/universe amd64 Packages
        100 /var/lib/dpkg/status

Changed in ia32-libs (Ubuntu):
status: New → Confirmed
Revision history for this message
Peter Funk (pf-artcom-gmbh) wrote :

skype used to work fine on my Ubuntu 10.04 LTS 64 bit system.
But since some update it stopped working recently with the following problem:

Gtk-WARNING **: /usr/lib/gtk-2.0/2.10.0/engines/libxfce.so: wrong ELF class: ELFCLASS64

Searching for a solution I came here. How can I work around it?
Which update might have caused this? ia32libs?

Revision history for this message
Tiago Ramos (tiagolramos) wrote :

try removing the .Skype/shared.xml

that was a bug affecting windows and linux it was skype related

Revision history for this message
Tiago Ramos (tiagolramos) wrote :

in my case this bug doesn't affect the functionality of skype everything seems to work fine

Revision history for this message
Peter Funk (pf-artcom-gmbh) wrote : Re: [Bug 783155] Re: Natty: Loader chooses 64-bit instead of 32-bit library

Tiago Ramos wrote:
> in my case this bug doesn't affect the functionality of skype
> everything seems to work fine

Yes. Indeed. Thank you very much.

Best regards and have a nice weekend,
Peter Funk
--
Peter Funk, home: ✉Oldenburger Str.86, D-27777 Ganderkesee
mobile:+49-179-640-8878 phone:+49-421-20419-0 <http://www.artcom-gmbh.de/>
office: ArtCom GmbH, ✉Haferwende 2, D-28357 Bremen, Germany

Revision history for this message
morphiend (morphiend) wrote :

The application I was having issues with was Ida (the disassembler). The native Linux client is only pre-compiled 32-bit, and utilizes Qt for the graphics libraries. It ships with the .so's for Qt, but I found that I needed to install the i386/ia32 versions of

* appmenu-gtk
* libavahi-glib1
* libbononboui2
* libdbusmenu-glib3
* libdbusmenu-gtk3
* libgnome2
* ibus-gtk
* libgnomeui
* libgnomevfs2
* liboverlay-scrollbar

to get through the dependencies. Turns out that to actually get the application to run, I needed to set up a 32-bit chroot environment because it also depends on Python, which would have required pulling in all of the 32-bit Python libraries and executables (read: ugly).

The thing I notice from the experience was that it appears that while the ia32-libs meta-package has most things, there are clearly some Gnome/GTK/GUI related items missing. Maybe there needs to be meta-packages for the various graphics systems as well that users can install to obtain those items. Or, another idea is to have a meta-package for a 32-bit chroot environment. Or, someone finally solving the 32-bit on 64-bit Linux environment once-and-for-all for ALL dependencies :). Ok, maybe that last one is a stretch.

Revision history for this message
Christopher R. Hertel (crh-q) wrote :

I have the same basic problem running vmware-server-console 1.0.10:

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
/usr/lib/vmware-server-console/bin/vmware-server-console: symbol lookup error: /usr/lib32/libgio-2.0.so.0: undefined symbol: g_cclosure_marshal_VOID__VARIANT

The first of those errors is repeated 26 times.

Please don't ask my why I need to run VMware console 1.x instead of 2.x, and please don't suggest that I "upgrade" to 2.x. Ick.

Revision history for this message
Sasquatch (sasquatch) wrote :

Same problem here. Trying to run Skype and use the GTK+ engine for Qt. This is what I get, and a lot of GDK_IS_PIXBUF (pixbuf) failed on the terminal:
** (<unknown>:3718): WARNING **: Pixbuf theme: Cannot load pixmap file /usr/share/themes/Aqua-Joy/gtk-2.0/ProgressBar/trough-progressbar-horiz.png: Unable to load image-loading mod
ule: /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

Aqua-Joy is the GTK theme I'm using. The file that can't be loaded varies. I can change the GTK theme, but the same error will show. It doesn't prevent Skype from running, but most graphical features are missing, like radio buttons, hover actions and check boxes.
If I change the GTK engine in Skype itself, all is fine and the elements are visible. But tooltips are unreadable, the background color and font color are almost the same (yellow/white). The tooltip text color is probably still taken from the Qt theme, because it's a dark theme. In other Qt apps that do work properly (and in Skype when GTK+ is chosen), I clearly see that the font is white.
Now I can't see the option that's enabled and the tooltip help at the same time. It's one or the other.

Revision history for this message
flying sheep (flying-sheep) wrote :

i have the same bug when trying to start several game installers from the humble indie bundle http://www.humblebundle.com

here is this bug on the KDE bugtracker: https://bugs.kde.org/show_bug.cgi?id=278874

Revision history for this message
Patrick Chevalley (pch) wrote :

Same problem for me with the 32bit game installer that use Gtk.
My ugly fix was to temporarily link /usr/lib to lib32 :-(

Revision history for this message
Peter Funk (pf-artcom-gmbh) wrote :

Hello,

> Same problem for me with the 32bit game installer that use Gtk.
> My ugly fix was to temporarily link /usr/lib to lib32 :-(

There is one thing I never understood:

The 64-Bit Debian and Ubuntu distribution flavors store
64-Bit libraries in /lib, /usr/lib ... and 32-Bit
libraries in /lib, /usr/lib32 ...

However the SuSE Linux (now Novell) 64-Bit Linux distros stores the
64-Bit libraries underneath /lib64, /usr/lib64, ... and keep 32-Bit
libraries under the default paths /lib, /usr/lib ...

see:
 +------- SUSE Linux Enterprise Server 11 (x86_64): ----------------
 | $ uname -m
 | x86_64
 | $ file /lib/libc-2.11.1.so
 | /lib/libc-2.11.1.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.4, dynamically linked (uses shared libs), not stripped
 | $ file /lib64/libc-2.11.1.so
 | /lib64/libc-2.11.1.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), for GNU/Linux 2.6.4, dynamically linked (uses shared libs), not stripped

In my experience within the SuSE community there are lot less
complaints about compatibility problems with x86 legacy applications.

What is the reason for this difference between 64-Bit Linux
distributions?

Best Regards, Peter.

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

I think the openSUSE approach makes more sense than the debian one: 64bit compliant code must know about the 32/64bit difference while "legacy" 32bit apps usually don't.

Revision history for this message
Steve Langasek (vorlon) wrote :

The issue described here results from 64-bit files being available in the standard system path that don't have equivalent 32-bit versions available in the /usr/lib32 path. This is not something that ia32-libs should attempt to solve comprehensively; putting a copy of every gtk theme under the sun into the ia32-libs package is the wrong answer. Instead, any files you receive this message about should be fixed to be multiarch-compatible so that the i386 package can be installed directly on amd64.

Feel free to file bugs against the individual files that generate these warnings for you.

Changed in ia32-libs (Ubuntu):
status: Confirmed → Won't Fix
Revision history for this message
Digulla-hepe (digulla-hepe) wrote :

Steve: Anything that I should include in the bug report (like HOWOT links or similar)?

Revision history for this message
bwallum (rbw2) wrote :

Hi

I'm running QCAD 2.* pro and really like it. I have built a number of 'library' items with it that complements the 4,600 or so standard free objects. QCAD are now at version 3 beta. I run 64bit 11.04 and QCAD 3 beta will not run for me. I have enquired why with QCAD and they point me to this bug page.

'Won't fix' is not nice for me. How can I help communication so that a really good cad package can run in Ubuntu 64bit?

Revision history for this message
Steve Langasek (vorlon) wrote :

This bug is about warnings and missing plugins for gtk when running 32-bit gtk applications with ia32-libs; nothing here would cause any application to not run. They've pointed you to the wrong bug.

Revision history for this message
bwallum (rbw2) wrote :

This is a quote from the QCAD forum administrator, Andrew:-
-------------------------------------
Unfortunately, it's an issue with Ubuntu 11.04 64bit which is not providing
32bit variants for all of its libraries. They say they will not
fix this issue (see https://bugs.launchpad.net/ubuntu/+source/ia32-libs/+bug/783155).

As a workaround, you can start QCAD with a non-GTK theme:

E.g.:
./qcad -style plastique
./qcad -style cde
./qcad -style cleanlooks
./qcad -style motif
./qcad -style windows
--------------------------------------
I have tried the workaround and it works. Where should I post this bug please?

Revision history for this message
Steve Langasek (vorlon) wrote :

As I said, failing to load those themes has no effect on whether an application will start.

$ ./qcad-trial
QGtkStyle was unable to detect the current GTK+ theme.
application directory: "/tmp/qcad-3.0.0-beta-trial-linux"
working path: "/tmp/qcad-3.0.0-beta-trial-linux"
library path: "/tmp/qcad-3.0.0-beta-trial-linux/plugins"
Debug: Init script plugins...
Debug: TIMER: 3377 ms - "loading and initializing plugins"
<snip>

The beta runs just fine for me here on oneiric using the multiarch-installed i386 libraries instead of ia32-libs. Using ia32-libs in 11.04 should give the same result.

> Where should I post this bug please?

I have no idea, because I don't know how it's failing for you - it doesn't fail for me.

Revision history for this message
Philip Gottschling (goddisignz) wrote :

I am trying to compile with the -m32 option and get the following error:

/usr/bin/ld: skipping incompatible /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/libstdc++.so when searching for -lstdc++
/usr/bin/ld: skipping incompatible /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/libstdc++.a when searching for -lstdc++
/usr/bin/ld: cannot find -lstdc++
collect2: ld returned 1 exit status
make: *** [all] Fehler 1

I have the ia32-libs installed and the ldconfig -v posts the libraries, but they are not used or tried.

Is this related to this bug?

Revision history for this message
Steve Langasek (vorlon) wrote :

> Is this related to this bug?

No. ia32-libs is entirely unrelated to build failures.

You are probably missing the gcc-multilib package.

Revision history for this message
Maxime Chéramy (maxime81) wrote :
Revision history for this message
David Williams (david-williams) wrote :

Comment #21 is really good news. I hope these means this "fix" will trickle own to future releases (or maintenance?) of Ubuntu.

I tried installing just those two packages on my Natty based system, and it indeed "fixed" the problems I was seeing. To be exact, I only routinely run one 32 bit app on my 64 bit machine, agnclient, and with these new ia32 libs I can now "see" the client dialog. Previously its contents were barely visible with wrong (or, no) graphics showing up as intended. Its still not "perfect", but hopefully rest will be improved as changes flow downstream. There are now (on my "patched together" system) messages about

Gtk-Message: Failed to load module "canberra-gtk-module": /usr/lib/gtk-2.0/modules/libcanberra-gtk-module.so: wrong ELF class: ELFCLASS64
(eclipse:7230): Gtk-WARNING **: /usr/lib/gtk-2.0/2.10.0/engines/libclearlooks.so: wrong ELF class: ELFCLASS6

Not sure of what effect those warnings/messages are having, but it is refreshing just to be able to easily see that little dialog again, to confirm I am "connected" to the internet ... without squinting and getting my screen angled just right :)

So, helpful as well as hopeful news :) Thanks.

[To be clear, I am not suggesting anyone install those new libs on production or stability-required Natty machines (could have side effects or break something else, as far as I know) ... I am just saying I appreciate the information ... and hoping there will be some indication if/when these fixed packages might show up in future versions of Ubuntu. Thanks again.]

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

Other bug subscribers

Remote bug watches

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