LinuxQuestions.org
Visit Jeremy's Blog.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware
User Name
Password
Slackware This Forum is for the discussion of Slackware Linux.

Notices


Reply
  Search this Thread
Old 01-04-2015, 04:17 PM   #1
BCarey
Senior Member
 
Registered: Oct 2005
Location: New Mexico
Distribution: Slackware
Posts: 1,639

Rep: Reputation: Disabled
32 bit program (xsane) looking for 64 bit library on multilib system


Hello all,

On a Slackware64 14.1 system with multilib installed I removed the 64 bit version of xsane and installed the 32 bit version. It never-the-less looks for the 64 bit version of the libraries of gdk-pixbuf-2.0 and fails with

Code:
(xsane:3345): GdkPixbuf-WARNING **: Error loading XPM image loader: Unable to load image-loading module: /usr/lib64/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-xpm.so: /usr/lib64/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-xpm.so: wrong ELF class: ELFCLASS64
I hacked a solution by removing the 64 bit version of gdk-pixbuf2 and creating symlinks to the 32 bit version of the libraries. But I would still like to understand why the 32 bit version of xsane is looking for the 64 bit version of these libraries.

Can anyone enlighten me?

Thanks,
Brian
 
Old 01-04-2015, 05:26 PM   #2
BCarey
Senior Member
 
Registered: Oct 2005
Location: New Mexico
Distribution: Slackware
Posts: 1,639

Original Poster
Rep: Reputation: Disabled
So I've learned that a lot of other programs rely on those libraries so my hacked solution is very problematic. Any help with a solution would be greatly appreciated.

Brian
 
Old 01-04-2015, 10:49 PM   #3
Didier Spaier
LQ Addict
 
Registered: Nov 2008
Location: Paris, France
Distribution: Slint64-15.0
Posts: 11,061

Rep: Reputation: Disabled
Just to be 101% sure, what says "file /usr/bin/xsane"?
 
Old 01-05-2015, 01:39 AM   #4
Richard Cranium
Senior Member
 
Registered: Apr 2009
Location: McKinney, Texas
Distribution: Slackware64 15.0
Posts: 3,858

Rep: Reputation: 2225Reputation: 2225Reputation: 2225Reputation: 2225Reputation: 2225Reputation: 2225Reputation: 2225Reputation: 2225Reputation: 2225Reputation: 2225Reputation: 2225
And perhaps you can add the output of
Code:
ldd /usr/bin/xsane
 
Old 01-05-2015, 07:31 AM   #5
bassmadrigal
LQ Guru
 
Registered: Nov 2003
Location: West Jordan, UT, USA
Distribution: Slackware
Posts: 8,792

Rep: Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656
It's probably looking for the library itself and can only find the 64bit version, which it then complains that it is not 32bit. Have you tried converting the 32bit version of that using Eric's script?

Code:
convertpkg-compat32 gdk-pixbuf2-2.28.2-i486-1.txz
You'd likely need to do this for any library that xsane depends on.
 
Old 01-05-2015, 11:49 AM   #6
BCarey
Senior Member
 
Registered: Oct 2005
Location: New Mexico
Distribution: Slackware
Posts: 1,639

Original Poster
Rep: Reputation: Disabled
Hi guys, thanks for your help.

Output of "file /usr/bin/xsane":

Code:
/usr/bin/xsane: ELF 32-bit LSB  executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), stripped
Output of ldd /usr/bin/xsane:

Code:
linux-gate.so.1 (0xffffe000)
	libsane.so.1 => /usr/lib/libsane.so.1 (0xf774f000)
	libgimpui-2.0.so.0 => /usr/lib/libgimpui-2.0.so.0 (0xf772e000)
	libgimpwidgets-2.0.so.0 => /usr/lib/libgimpwidgets-2.0.so.0 (0xf75fb000)
	libgimpmodule-2.0.so.0 => /usr/lib/libgimpmodule-2.0.so.0 (0xf75f6000)
	libgimp-2.0.so.0 => /usr/lib/libgimp-2.0.so.0 (0xf75b0000)
	libgimpmath-2.0.so.0 => /usr/lib/libgimpmath-2.0.so.0 (0xf75aa000)
	libgimpconfig-2.0.so.0 => /usr/lib/libgimpconfig-2.0.so.0 (0xf759a000)
	libgimpcolor-2.0.so.0 => /usr/lib/libgimpcolor-2.0.so.0 (0xf758d000)
	libgimpbase-2.0.so.0 => /usr/lib/libgimpbase-2.0.so.0 (0xf7576000)
	libgtk-x11-2.0.so.0 => /usr/lib/libgtk-x11-2.0.so.0 (0xf710c000)
	libgdk-x11-2.0.so.0 => /usr/lib/libgdk-x11-2.0.so.0 (0xf705d000)
	libatk-1.0.so.0 => /usr/lib/libatk-1.0.so.0 (0xf703c000)
	libgio-2.0.so.0 => /usr/lib/libgio-2.0.so.0 (0xf6ed5000)
	libpangoft2-1.0.so.0 => /usr/lib/libpangoft2-1.0.so.0 (0xf6ec1000)
	libpangocairo-1.0.so.0 => /usr/lib/libpangocairo-1.0.so.0 (0xf6eb4000)
	libgdk_pixbuf-2.0.so.0 => /usr/lib/libgdk_pixbuf-2.0.so.0 (0xf6e92000)
	libcairo.so.2 => /usr/lib/libcairo.so.2 (0xf6d58000)
	libpango-1.0.so.0 => /usr/lib/libpango-1.0.so.0 (0xf6d0e000)
	libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xf6c81000)
	libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0xf6c47000)
	libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0xf6bf9000)
	libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0xf6acb000)
	libpng14.so.14 => /usr/lib/libpng14.so.14 (0xf6aa0000)
	liblcms.so.1 => /usr/lib/liblcms.so.1 (0xf6a66000)
	libtiff.so.3 => /usr/lib/libtiff.so.3 (0xf6a02000)
	libjpeg.so.8 => /usr/lib/libjpeg.so.8 (0xf69ca000)
	libz.so.1 => /lib/libz.so.1 (0xf69b4000)
	libm.so.6 => /lib/libm.so.6 (0xf6972000)
	libc.so.6 => /lib/libc.so.6 (0xf67e6000)
	libv4l1.so.0 => /usr/lib/libv4l1.so.0 (0xf67e0000)
	libieee1284.so.3 => /usr/lib/libieee1284.so.3 (0xf67d5000)
	libgphoto2.so.6 => /usr/lib/libgphoto2.so.6 (0xf6754000)
	libgphoto2_port.so.10 => /usr/lib/libgphoto2_port.so.10 (0xf674a000)
	libltdl.so.7 => /usr/lib/libltdl.so.7 (0xf6740000)
	libdl.so.2 => /lib/libdl.so.2 (0xf673b000)
	libexif.so.12 => /usr/lib/libexif.so.12 (0xf6704000)
	libusb-1.0.so.0 => /usr/lib/libusb-1.0.so.0 (0xf66f4000)
	librt.so.1 => /lib/librt.so.1 (0xf66eb000)
	libpthread.so.0 => /lib/libpthread.so.0 (0xf66d1000)
	libcups.so.2 => /usr/lib/libcups.so.2 (0xf668b000)
	libnetsnmp.so.30 => /usr/lib/libnetsnmp.so.30 (0xf65f0000)
	libcrypto.so.1 => /lib/libcrypto.so.1 (0xf6432000)
	libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0xf642f000)
	libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0xf642b000)
	libXinerama.so.1 => /usr/lib/libXinerama.so.1 (0xf6428000)
	libXi.so.6 => /usr/lib/libXi.so.6 (0xf6419000)
	libXrandr.so.2 => /usr/lib/libXrandr.so.2 (0xf640e000)
	libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0xf6404000)
	libharfbuzz.so.0 => /usr/lib/libharfbuzz.so.0 (0xf6372000)
	libicule.so.51 => /usr/lib/libicule.so.51 (0xf6320000)
	libicuuc.so.51 => /usr/lib/libicuuc.so.51 (0xf61cf000)
	libicudata.so.51 => /usr/lib/libicudata.so.51 (0xf4c83000)
	libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xf4b9b000)
	libXcomposite.so.1 => /usr/lib/libXcomposite.so.1 (0xf4b98000)
	libXdamage.so.1 => /usr/lib/libXdamage.so.1 (0xf4b95000)
	libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0xf4b90000)
	libpixman-1.so.0 => /usr/lib/libpixman-1.so.0 (0xf4b09000)
	libxcb-shm.so.0 => /usr/lib/libxcb-shm.so.0 (0xf4b05000)
	libX11-xcb.so.1 => /usr/lib/libX11-xcb.so.1 (0xf4b03000)
	libxcb-render.so.0 => /usr/lib/libxcb-render.so.0 (0xf4afa000)
	libXrender.so.1 => /usr/lib/libXrender.so.1 (0xf4af0000)
	libXext.so.6 => /usr/lib/libXext.so.6 (0xf4ade000)
	libX11.so.6 => /usr/lib/libX11.so.6 (0xf49a6000)
	libxcb.so.1 => /usr/lib/libxcb.so.1 (0xf4986000)
	libXau.so.6 => /usr/lib/libXau.so.6 (0xf4983000)
	libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xf497d000)
	libresolv.so.2 => /lib/libresolv.so.2 (0xf4963000)
	libbz2.so.1 => /lib/libbz2.so.1 (0xf4952000)
	libexpat.so.1 => /usr/lib/libexpat.so.1 (0xf492a000)
	libffi.so.6 => /usr/lib/libffi.so.6 (0xf4924000)
	libEGL.so.1 => /usr/lib/libEGL.so.1 (0xf4907000)
	libGL.so.1 => /usr/lib/libGL.so.1 (0xf48a8000)
	/lib/ld-linux.so.2 (0xf77ba000)
	libv4l2.so.0 => /usr/lib/libv4l2.so.0 (0xf489b000)
	libssl.so.1 => /lib/libssl.so.1 (0xf4837000)
	libcrypt.so.1 => /lib/libcrypt.so.1 (0xf4804000)
	libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0xf47e8000)
	libxcb-dri2.so.0 => /usr/lib/libxcb-dri2.so.0 (0xf47e2000)
	libxcb-xfixes.so.0 => /usr/lib/libxcb-xfixes.so.0 (0xf47db000)
	libxcb-shape.so.0 => /usr/lib/libxcb-shape.so.0 (0xf47d8000)
	libudev.so.0 => /lib/libudev.so.0 (0xf47c9000)
	libdrm.so.2 => /usr/lib/libdrm.so.2 (0xf47bc000)
	libglapi.so.0 => /usr/lib/libglapi.so.0 (0xf479d000)
	libxcb-glx.so.0 => /usr/lib/libxcb-glx.so.0 (0xf4786000)
	libXxf86vm.so.1 => /usr/lib/libXxf86vm.so.1 (0xf4781000)
	libv4lconvert.so.0 => /usr/lib/libv4lconvert.so.0 (0xf4709000)
I did convert gdk-pixbuf2 with

Code:
convertpkg-compat32 -i gdk-pixbuf2-2.28.2-i486-1.txz
Code:
ls -l /var/log/packages/gdk*
-rw-r--r-- 1 root root 17818 Jan  5 10:38 /var/log/packages/gdk-pixbuf2-2.28.2-x86_64-1
-rw-r--r-- 1 root root  3614 Jan  5 10:38 /var/log/packages/gdk-pixbuf2-compat32-2.28.2-x86_64-1compat32
Thanks,
Brian
 
Old 01-05-2015, 12:09 PM   #7
bassmadrigal
LQ Guru
 
Registered: Nov 2003
Location: West Jordan, UT, USA
Distribution: Slackware
Posts: 8,792

Rep: Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656
You had converted that program before you submitted the first post or after? If it was after, did it change your error? You should now have that file in /usr/lib and /usr/lib64, the first being a 32bit file and the latter, obviously, being a 64bit. If you show a different error, try finding what package that file comes from and then get the 32bit version, convert it to a -compat32, install it, and try again. But looking at the output from ldd, this might be a long process.
 
Old 01-05-2015, 12:19 PM   #8
BCarey
Senior Member
 
Registered: Oct 2005
Location: New Mexico
Distribution: Slackware
Posts: 1,639

Original Poster
Rep: Reputation: Disabled
I had already converted and installed the compat32 package before the first post. I know it works because if I put a link in the /usr/lib64 directory pointing to the /usr/lib version xsane runs. It's just that not much else runs properly then.

Thanks,
Brian
 
Old 01-06-2015, 02:51 AM   #9
Richard Cranium
Senior Member
 
Registered: Apr 2009
Location: McKinney, Texas
Distribution: Slackware64 15.0
Posts: 3,858

Rep: Reputation: 2225Reputation: 2225Reputation: 2225Reputation: 2225Reputation: 2225Reputation: 2225Reputation: 2225Reputation: 2225Reputation: 2225Reputation: 2225Reputation: 2225
What does
Code:
set | grep GDK
show? (read the man page for gdk-pixbuf-query-loaders to see why I ask)

What does
Code:
type xsane
show?
 
Old 01-06-2015, 09:59 AM   #10
BCarey
Senior Member
 
Registered: Oct 2005
Location: New Mexico
Distribution: Slackware
Posts: 1,639

Original Poster
Rep: Reputation: Disabled
Code:
set | grep GDK
GDK_USE_XFT=1
Code:
type xsane
xsane is /usr/bin/xsane
Mysterious, huh?

Thanks,
Brian
 
Old 01-06-2015, 01:28 PM   #11
Richard Cranium
Senior Member
 
Registered: Apr 2009
Location: McKinney, Texas
Distribution: Slackware64 15.0
Posts: 3,858

Rep: Reputation: 2225Reputation: 2225Reputation: 2225Reputation: 2225Reputation: 2225Reputation: 2225Reputation: 2225Reputation: 2225Reputation: 2225Reputation: 2225Reputation: 2225
Yes, it is. You may have to run strace on the xsane command to figure this out. I'll see if I can think of something when I'm off work.
 
Old 01-07-2015, 08:34 AM   #12
Richard Cranium
Senior Member
 
Registered: Apr 2009
Location: McKinney, Texas
Distribution: Slackware64 15.0
Posts: 3,858

Rep: Reputation: 2225Reputation: 2225Reputation: 2225Reputation: 2225Reputation: 2225Reputation: 2225Reputation: 2225Reputation: 2225Reputation: 2225Reputation: 2225Reputation: 2225
Aha!

What does
Code:
ls -l /usr/bin/gdk-pixbuf-query-loaders
show?

I bet that it's pointing to the 64 bit version.
 
Old 01-07-2015, 09:39 AM   #13
BCarey
Senior Member
 
Registered: Oct 2005
Location: New Mexico
Distribution: Slackware
Posts: 1,639

Original Poster
Rep: Reputation: Disabled
Indeed it is:

Code:
ls -l /usr/bin/gdk-pixbuf-query-loaders
lrwxrwxrwx 1 root root 27 Jan  5 10:38 /usr/bin/gdk-pixbuf-query-loaders -> gdk-pixbuf-query-loaders-64*
 
Old 01-07-2015, 07:46 PM   #14
BCarey
Senior Member
 
Registered: Oct 2005
Location: New Mexico
Distribution: Slackware
Posts: 1,639

Original Poster
Rep: Reputation: Disabled
I'm not sure what to do with this information though.
 
Old 01-07-2015, 07:50 PM   #15
Richard Cranium
Senior Member
 
Registered: Apr 2009
Location: McKinney, Texas
Distribution: Slackware64 15.0
Posts: 3,858

Rep: Reputation: 2225Reputation: 2225Reputation: 2225Reputation: 2225Reputation: 2225Reputation: 2225Reputation: 2225Reputation: 2225Reputation: 2225Reputation: 2225Reputation: 2225
I'm not positive what's going on, but the command
Code:
strings /usr/lib64/libgdk_pixbuf-2.0.so.0.2800.2 | grep query
returns
Quote:
gdk-pixbuf-query-loaders > %s
(I've got a pure 64 bit system, so I can't replicate what you're going through.) It appears that the shared library will attempt to locate the loaders via running gdk-pixbuf-query-loaders. (Yeah, I could look at the code but I'm too lazy to do so.)

Do you see 64 bit paths in (I'm guessing) /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache?

Your best bet may be to write your own script to call xsane that sets GDK_PIXBUF_MODULEDIR to /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders prior to running /usr/bin/xsane. I don't even know if that would work; it could cause the loader.cache file in the 32 bit directory to be overwritten with the 64 bit information.
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
[SOLVED] Can Wine 64-bit run 32-bit windows apps w/o multilib? arsivci0 Slackware 2 03-31-2014 12:28 PM
[SOLVED] Install the 32 bit version and the 64 bit version, on multilib system. Knightron Slackware 12 12-02-2013 09:23 PM
[SOLVED] If I compile from source on 64 bit system will the compiled program be 64 bit? SharpyWarpy Linux - Software 3 08-14-2012 02:59 PM
[SOLVED] ati driver 32-bit compatibility for Slackware 64-bit multilib? vik Slackware 25 02-16-2010 07:06 PM
[SOLVED] CLFS 64 bit multilib and pure 64 bit pacthes wanted Openumerix Linux From Scratch 1 11-16-2009 12:23 AM

LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware

All times are GMT -5. The time now is 03:28 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration