View previous topic :: View next topic |
Author |
Message |
acheron2 Tux's lil' helper
Joined: 17 Jan 2007 Posts: 106
|
Posted: Sun Aug 02, 2009 7:42 pm Post subject: Running 32-bit binaries on AMD64. Flash player (not plugin!) |
|
|
What should I do if I need to run a 32-bit closed-source binary on a 64-bit system? What is the best way to get 32-bit libraries?
I downloaded 32-bit Adobe Flash player (not a browser plugin) from http://www.adobe.com/support/flashplayer/downloads.html
When I tried to run it, it demanded 32-bit libnss3.so.
I figured the libraries from dev-libs/nss from Sabayon should work. I unpacked the libraries to the same directory and started the player as LD_LIBRARY_PATH=. ./flashplayer
Then it demanded libnspr4.so. I did the same with dev-libs/nspr from Sabayon.
After that, flashplayer started, reported multiple errors
(flashplayer:26323): Gtk-WARNING **: /usr/lib64/gtk-2.0/2.10.0/engines/libxfce.so: wrong ELF class: ELFCLASS64
and stopped with "Segmentation fault".
strace showed that flashplayer tries to open (unsuccessfully) a number of 32-bit libraries. It seems that libcurl.so.4.1.1 from Sabayon can replace libcurl-gnutls.so.3, but there's nothing like libldap-2.4.so.2. How should I compile it from source? Also it seems that the program tries to use 64-bit /usr/lib64/gtk-2.0/2.10.0/engines/libxfce.so instead of 32-bit /usr/lib32/gtk-2.0/2.10.0/engines/libxfce.so. What can I do about that? |
|
Back to top |
|
|
mtjm n00b
Joined: 25 Nov 2008 Posts: 40 Location: Katowice, Poland
|
Posted: Sun Aug 02, 2009 8:34 pm Post subject: Re: Running 32-bit binaries on AMD64. Flash player (not plug |
|
|
acheron2 wrote: | What should I do if I need to run a 32-bit closed-source binary on a 64-bit system? What is the best way to get 32-bit libraries? |
app-emulation/emul-linux-x86-* and *-bin
acheron2 wrote: | strace showed that flashplayer tries to open (unsuccessfully) a number of 32-bit libraries. It seems that libcurl.so.4.1.1 from Sabayon can replace libcurl-gnutls.so.3, but there's nothing like libldap-2.4.so.2. How should I compile it from source? Also it seems that the program tries to use 64-bit /usr/lib64/gtk-2.0/2.10.0/engines/libxfce.so instead of 32-bit /usr/lib32/gtk-2.0/2.10.0/engines/libxfce.so. What can I do about that? |
There is no support for compiling normal packages for x86 on amd64 currently. Use binary packages or compile them manually. |
|
Back to top |
|
|
acheron2 Tux's lil' helper
Joined: 17 Jan 2007 Posts: 106
|
Posted: Sun Aug 02, 2009 11:01 pm Post subject: Re: Running 32-bit binaries on AMD64. Flash player (not plug |
|
|
mtjm wrote: | acheron2 wrote: | What is the best way to get 32-bit libraries? |
app-emulation/emul-linux-x86-* and *-bin | I meant besides that. Most libraries aren't available that way.
Quote: | There is no support for compiling normal packages for x86 on amd64 currently. Use binary packages or compile them manually. | How do I compile them manually on 64-bit system? What gcc/configure/make/what-else? switches do I need? |
|
Back to top |
|
|
loftwyr l33t
Joined: 29 Dec 2004 Posts: 970 Location: 43°38'23.62"N 79°27'8.60"W
|
Posted: Mon Aug 03, 2009 12:27 am Post subject: |
|
|
The few times I've needed to do it, I just got fedora binaries and manually placed them in /usr/lib32 _________________ My emerge --info
Have you run revdep-rebuild lately? It's in gentoolkit and it's worth a shot if things don't work well.
Celebrating 5 years of Gentoo-ing. |
|
Back to top |
|
|
Rion Guru
Joined: 12 Oct 2006 Posts: 383 Location: Minsk, Belarus
|
Posted: Mon Aug 03, 2009 2:07 am Post subject: |
|
|
Code: | # eix adobe-flash
[I] www-plugins/adobe-flash
Available versions: (~)9.0.159.0!m!s 10.0.22.87!m!s (~)10.0.22.87-r1!m!s (~)10.0.22.87-r2!m!s {32bit 64bit multilib}
Installed versions: 10.0.22.87-r2!m!s(23:46:43 07/22/09)(64bit multilib -32bit)
Homepage: http://www.adobe.com/
Description: Adobe Flash Player
|
don't destroy yourself brain, just install this one with the same USE flags
PS google://32bit chroot _________________ rion-overlay |
|
Back to top |
|
|
acheron2 Tux's lil' helper
Joined: 17 Jan 2007 Posts: 106
|
Posted: Mon Aug 03, 2009 5:39 am Post subject: |
|
|
Rion wrote: | www-plugins/adobe-flash |
- I asked about any 32-bit binary.
- As an example I took standalone flash player, not a browser plugin
However, flash-libcompat-0.2.tar.bz2 does have the necessary libraries, so thanks.
And why does it keep writing Code: | Gtk-WARNING **: /usr/lib64/gtk-2.0/2.10.0/engines/libxfce.so: wrong ELF class: ELFCLASS64 | ?
Install a parallel 32-bit system? I was hoping for a less disk-hungry solution. Even so, what are the ways to determine which libraries a binary needs? |
|
Back to top |
|
|
acheron2 Tux's lil' helper
Joined: 17 Jan 2007 Posts: 106
|
Posted: Mon Aug 03, 2009 5:40 am Post subject: |
|
|
loftwyr wrote: | The few times I've needed to do it, I just got fedora binaries |
Any distribution will do. Sabayon just has the most familiar names and the most similar dependencies.
loftwyr wrote: | and manually placed them in /usr/lib32 |
/usr/lib32 becomes a mess this way Unless they are placed by an ebuild. That's why a temporary directory and LD_LIBRARY_PATH until everything works. |
|
Back to top |
|
|
Carnildo Guru
Joined: 17 Jun 2004 Posts: 595
|
Posted: Mon Aug 03, 2009 10:32 pm Post subject: |
|
|
acheron2 wrote: | Rion wrote: | www-plugins/adobe-flash |
- I asked about any 32-bit binary.
- As an example I took standalone flash player, not a browser plugin
However, flash-libcompat-0.2.tar.bz2 does have the necessary libraries, so thanks.
And why does it keep writing Code: | Gtk-WARNING **: /usr/lib64/gtk-2.0/2.10.0/engines/libxfce.so: wrong ELF class: ELFCLASS64 | ?
|
A 32-bit program has decided to manually load a 64-bit library, which doesn't work. There's nothing you can do about this except to file a bug report with the program's authors.
Quote: | Install a parallel 32-bit system? I was hoping for a less disk-hungry solution. Even so, what are the ways to determine which libraries a binary needs? |
"ldd /path/to/my/program" will show which libraries the program uses; any library without a matching path on the right-hand side (I believe ldd prints "unresolved" here) needs to be installed. You'll want a 32-bit chroot simply because that's the easiest way of building 32-bit libraries, but a basic build system isn't that large. |
|
Back to top |
|
|
acheron2 Tux's lil' helper
Joined: 17 Jan 2007 Posts: 106
|
Posted: Tue Aug 04, 2009 3:00 am Post subject: |
|
|
Carnildo wrote: | "ldd /path/to/my/program" will show which libraries the program uses; | Thanks! That was the answer I needed.
Carnildo wrote: | any library without a matching path on the right-hand side (I believe ldd prints "unresolved" here) needs to be installed. |
Yes. Just like that. Thanks. |
|
Back to top |
|
|
|