Summary: | net-im/skype-2.0.0.72: fails to start with because libstdc++.so.6 is not found | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Felix Leimbach <felix.leimbach> |
Component: | New packages | Assignee: | Gentoo Toolchain Maintainers <toolchain> |
Status: | RESOLVED INVALID | ||
Severity: | normal | CC: | andrey.vihrov, net-im |
Priority: | High | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: | Output of genlop -l |
Description
Felix Leimbach
2009-12-30 15:30:37 UTC
Does this still stay after "# env-update" and maybe "# ldconfig" ? (In reply to comment #1) Yes it stays. (as root) ~ # env-update >>> Regenerating /etc/ld.so.cache... ~ # ldconfig (as user, in a newly opened konsole window) ~ $ skype /opt/skype/skype: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory Run gcc-config -l and set (another time) correct compiler. After that check that /usr/lib/gcc/x86_64-pc-linux-gnu/4.3.4 path is set in 05gcc-* file. If path is not set something broken with gcc installation as it should define correct LDPATH so after env-update linker should see required libraries. The LDPATH seems to be okay and /etc/env.d/05gcc-x86_64-pc-linux-gnu was already correcly contained in /etc/ld.so.conf
The culprit is that I need the *32 BIT* version of libstdc, i.e. I added "/32" to the LDPATH, see the last part of this statement:
LD_LIBRARY_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/4.3.4/32 skype
To be sure I did the steps you advised:
# 05gcc before running gcc-config:
~ # cat /etc/env.d/05gcc-x86_64-pc-linux-gnu
MANPATH="/usr/share/gcc-data/x86_64-pc-linux-gnu/4.3.4/man"
INFOPATH="/usr/share/gcc-data/x86_64-pc-linux-gnu/4.3.4/info"
LDPATH="/usr/lib/gcc/x86_64-pc-linux-gnu/4.3.4"
PATH="/usr/x86_64-pc-linux-gnu/gcc-bin/4.3.4"
ROOTPATH="/usr/x86_64-pc-linux-gnu/gcc-bin/4.3.4"
~ # gcc-config -l
[1] x86_64-pc-linux-gnu-4.3.4 *
~ # gcc-config 1
* Switching native-compiler to x86_64-pc-linux-gnu-4.3.4 ... [ ok ]
~ # cat /etc/env.d/05gcc-x86_64-pc-linux-gnu
MANPATH="/usr/share/gcc-data/x86_64-pc-linux-gnu/4.3.4/man"
INFOPATH="/usr/share/gcc-data/x86_64-pc-linux-gnu/4.3.4/info"
LDPATH="/usr/lib/gcc/x86_64-pc-linux-gnu/4.3.4"
PATH="/usr/x86_64-pc-linux-gnu/gcc-bin/4.3.4"
ROOTPATH="/usr/x86_64-pc-linux-gnu/gcc-bin/4.3.4"
GCC_SPECS=""
~ # ldconfig
~ # env-update
>>> Regenerating /etc/ld.so.cache...
~ # . /etc/profile
~ $ skype
/opt/skype/skype: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
So it seems that skype needs the 32 bit version of libstdc++ and the LDPATH only contains the 64 bit version.
As Peter noted, your gcc is probably broken. Does the file /etc/env.d/gcc/x86_64-pc-linux-gnu-4.3.4 contain the path to 32-bit libstdc++.so.6? If not, does re-emerging sys-devel/gcc fix this? @toolchain, do you have any ideas why .../32 path could be missed in LDPATH? Felix, .../32 should be in LDPATH too. $ cat 05gcc-x86_64-pc-linux-gnu ... LDPATH="/usr/lib/gcc/x86_64-pc-linux-gnu/4.4.2:/usr/lib/gcc/x86_64-pc-linux-gnu/4.4.2/32:/usr/lib/gcc/x86_64-pc-linux-gnu/4.3.4:/usr/lib/gcc/x86_64-pc-linux-gnu/4.3.4/32:/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2:/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/32" OK, this is interesting: After re-emerging the same gcc version with the very same use flags, LDPATH now correctly contains the 32 bit directory: ~ # cat /etc/env.d/gcc/x86_64-pc-linux-gnu-4.3.4 LDPATH="/usr/lib/gcc/x86_64-pc-linux-gnu/4.3.4:/usr/lib/gcc/x86_64-pc-linux-gnu/4.3.4/32" MANPATH="/usr/share/gcc-data/x86_64-pc-linux-gnu/4.3.4/man" INFOPATH="/usr/share/gcc-data/x86_64-pc-linux-gnu/4.3.4/info" STDCXX_INCDIR="g++-v4" GCC_PATH="/usr/x86_64-pc-linux-gnu/gcc-bin/4.3.4" And skype is also happy now. Regarding the issue that /32 was missing, I can only give you a background of my system: It's fresh gentoo installation from this stage3 tarball: http://mirrors.kernel.org/gentoo/releases/amd64/autobuilds/current-stage3/stage3-amd64-20091217.tar.bz2 I see in the "genlop -l" output, that gcc was never emerge'd. So it might be an error in the stage3 tarball (I'm checking this now and will report back) Created attachment 214711 [details]
Output of genlop -l
Ok, the stage3 tarball contains the correct LDPATH. I assume that my /etc/env.d must have been accidentally overwritten when I copied over some settings from another laptop and I close this bug as INVALID. Cheers, Felix |