Summary: | app-text/acroread-9.5.5 - /opt/Adobe/Reader9/Reader/intellinux/bin/acroread: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Martin Mokrejš <mmokrejs> |
Component: | Current packages | Assignee: | Gentoo Linux bug wranglers <bug-wranglers> |
Status: | RESOLVED INVALID | ||
Severity: | normal | CC: | bkohler |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- |
Description
Martin Mokrejš
2013-09-23 14:00:06 UTC
app-text/acroread is masked on no-multilib profiles, how did you manage to get it installed? Well, I just used --autounmask-write to allow emerge to install it. Damn, I just felt into the trap just because I followed http://www.gentoo.org/doc/en/handbook/handbook-amd64.xml?part=1&chap=6 notably, "If you want to have a pure 64-bit environment, with no 32-bit applications or libraries, you should use a non-multilib profile". Doh, there should be a bold section warning users that lots of stuff will anyway force them sooner or later on to install: # grep x86 /var/log/emerge.log | grep AUTOCLEAN | awk '{print $4}' | sort| uniq app-emulation/emul-linux-x86-baselibs:0 app-emulation/emul-linux-x86-db:0 app-emulation/emul-linux-x86-gtklibs:0 app-emulation/emul-linux-x86-medialibs:0 app-emulation/emul-linux-x86-opengl:0 app-emulation/emul-linux-x86-qtlibs:0 app-emulation/emul-linux-x86-soundlibs:0 app-emulation/emul-linux-x86-xlibs:0 # Why acroread isn't happy with them? If it can't, you should not recommend non-multilib almost ever to a user. xpdf is gone from tree, okular pulls in awfull KDE dependencies which I am not going to accept anymore, and there is probably nothing else left as a usable PDF reader. What am I missing? # eselect profile list Available profile symlink targets: [1] default/linux/amd64/13.0 [2] default/linux/amd64/13.0/selinux [3] default/linux/amd64/13.0/desktop [4] default/linux/amd64/13.0/desktop/gnome [5] default/linux/amd64/13.0/desktop/kde [6] default/linux/amd64/13.0/developer [7] default/linux/amd64/13.0/no-multilib * [8] default/linux/amd64/13.0/x32 [9] hardened/linux/amd64 [10] hardened/linux/amd64/selinux [11] hardened/linux/amd64/no-multilib [12] hardened/linux/amd64/no-multilib/selinux [13] hardened/linux/amd64/x32 [14] hardened/linux/uclibc/amd64 # I think the only thing missing is that when you read the paragraph about "with no 32-bit applications", you didn't realize how many 32-bit-only applications there actually are. And acroread is one of them. From what I see with new users, 95% of them who pick no-multilib end up regretting it, so I do agree that a scarier warning would be helpful. For some more minimal readers, try zathura (with zathura-pdf-popper or zathura-pdf-mupdf) or mupdf. But, first of alll I thought that linux kernel now has an option to execute 32-bit binaries staright away. Second, why couldn't there be just a 32-bit copy of the libc++.so in the app-emulation packages? I am running 3.10.10 kernel with: CONFIG_64BIT=y CONFIG_IA32_EMULATION=y CONFIG_X86_X32=y The help in "make menuconfig" says I will need >=binutils-2.22 with elf32_x86_64 enabled. Maybe that is the problem with my system? # binutils-config Usage: binutils-config [options] [binutils profile] General Options: -c, --get-current-profile Print current profile -l, --list-profiles Print a list of available profiles -u, --uninstall Remove all signs of specified target -d, --debug Execute with debug output General Cruft: --linker <linker> Switch to specified linker (if supported) Arch Specific Cruft: --amd64 Install extra amd64 links (x86_64) --arm Install extra arm links (arm/armeb) --mips Install extra mips links (mips/mipsel) --x86 Install extra x86 links (i[3-6]86) Profile names are of the form: <CTARGET>-<binutils version> For example: i686-pc-linux-gnu-2.15.92.0.2 For more info, please see binutils-config(8). # binutils-config -c x86_64-pc-linux-gnu-2.23.2 # So should there be somewhere "--amd64" appended? (In reply to Martin Mokrejš from comment #4) > But, first of alll I thought that linux kernel now has an option to execute > 32-bit binaries staright away. Second, why couldn't there be just a 32-bit > copy of the libc++.so in the app-emulation packages? The kernel can run the 32bit binaries, but the supporting shared libs don't exist since your toolchain pieces were built without multilib functionality. Specifically here, the 32bit libstdc++ is provided by a multilib-enabled gcc. You *may* still have gcc-4.6.3 built with multilib available, you can try switching to that via gcc-config. But I suspect you may be past the point of no return (to multilib) here. There's no bug here, please try one of our support venues like forums or IRC if you need further help with this no-multilib situation. |