> Now, am I to undestand that, at least in my case, the error message
> Gtk-Message: Failed to load module "gail": 
> /usr/lib/gtk-2.0/modules/libgail.so: wrong ELF class: ELFCLASS64
> was caused by libgail being a 32bit library and not compatible with amd64 
> architecture?

amd64 Linux kernels support ia32 processes running in 32bit
compatibility mode.  From the point-of-view of the 32bit process, it's
pretty much the same as running under a 32bit (i386 architecture)
kernel.  (This is now called legacy mode on).

http://en.wikipedia.org/wiki/Long_mode
http://developer.amd.com/pages/123200367.aspx

 So yeah, when the dynamic linker in a 32bit process tries to load a
shared library compiled for a different architecture, it returns an
error, because it detected that the library is for a different
architecture than the process.  Just like if the file was a PowerPC or
SPARC library.

 The kernel knows whether to run a process in 32 or 64 bit mode by
looking at the same ELF headers that libraries have, and that file(1)
will show you.

llama$ file /bin/ls
/bin/ls: ELF 32-bit LSB executable, Intel 80386, ...

tesla$ file /bin/ls
/bin/ls: ELF 64-bit LSB executable, x86-64, ...

file works on share libs, too, of course.

-- 
ia32 apps look for libs on the wrong place
https://bugs.launchpad.net/bugs/190227
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to