View previous topic :: View next topic |
Author |
Message |
_savage Guru
Joined: 06 Jun 2004 Posts: 308 Location: Redmond, WA
|
Posted: Fri Apr 15, 2005 3:51 pm Post subject: Compile error: libstdc++ |
|
|
I came across this problem for a little while now, and kept --skipfirst --resume'ing it, assuming it's an ebuild bug which will be fixed soon. But the number of packages failing to build gets longer Here's the last build error
Code: | grep: //usr/lib/gcc/powerpc-unknown-linux-gnu/3.4.3/libstdc++.la: No such file or directory
/bin/sed: can't read //usr/lib/gcc/powerpc-unknown-linux-gnu/3.4.3/libstdc++.la: No such file or directory
libtool-nofpic: link: `//usr/lib/gcc/powerpc-unknown-linux-gnu/3.4.3/libstdc++.la' is not a valid libtool archive
make[4]: *** [xineplug_vo_out_sdl.la] Error 1 |
This is happening for all the packages which currently fail to build on my system. However, I do have libstdc++ installed
Code: | root@tigger ~ # emerge -s libstdc
Searching...
[ Results for search key : libstdc ]
[ Applications found : 1 ]
* sys-libs/libstdc++-v3
Latest version available: 3.3.4
Latest version installed: 3.3.4
Size of downloaded files: 22,784 kB
Homepage: http://gcc.gnu.org/libstdc++/
Description: Compatibility package for running binaries linked against a pre gcc 3.4 libstdc++
License: GPL-2 LGPL-2.1 |
and I am running powerpc-unknown-linux-gnu-3.4.3-20050110.
Would re-emerging libstdc++ fix that? Or should I switch to a gcc-3.3.3 profile? Does anybody else encounter this issue?
Thanks heaps,
Jens _________________ Jens Troeger
http://savage.light-speed.de/ |
|
Back to top |
|
|
keyson l33t
Joined: 10 Jun 2003 Posts: 830 Location: Sweden
|
Posted: Fri Apr 15, 2005 3:56 pm Post subject: |
|
|
Hi.
This is documented on many places in the forum.
Try to run:
Code: |
fix_libtool_files.sh 3.4.3
|
It should fix the linking problem. |
|
Back to top |
|
|
jkt Retired Dev
Joined: 06 Feb 2004 Posts: 1250 Location: Prague, Czech republic, EU
|
Posted: Fri Apr 15, 2005 3:57 pm Post subject: |
|
|
Please search the forums. And in case you're too lazy, check out FAQ _________________ cd /local/pub && more beer > /dev/mouth
Česká dokumentace |
|
Back to top |
|
|
natestone n00b
Joined: 19 Nov 2003 Posts: 4
|
Posted: Thu Apr 21, 2005 6:15 am Post subject: |
|
|
I have encountered this problem as well and the above post is not the solution.
The problem is that the "libstdc++" files have been compiled using the path "//usr/lib..." rather than "/usr/lib" -- Notice the double slash ("//"). During subsequent builds of other programs, this double slash problem breaks EGREP and SED statements in the build process resulting in the "libstdc++ not found" problem even though it is there.
The fix_libtool_files.sh script has no effect since all it does is check other libs for proper version linking. The problem is with libstdc++ itself.
I've run the fix_libtool_files.sh script anyway and it has no effect. I've also re-emerged gcc (and run the fix_lib.. script) and can not solve the problem.
gcc-3.3.5 or gcc-3.3.5-20050130 both exhibit the problem on my system. About 60% of all builds fail due to this problem.
Any help would be much appreciated.
Thanks,
Nate _________________ www.keenspot.com = good |
|
Back to top |
|
|
jkt Retired Dev
Joined: 06 Feb 2004 Posts: 1250 Location: Prague, Czech republic, EU
|
Posted: Thu Apr 21, 2005 1:06 pm Post subject: |
|
|
natestone wrote: | The problem is that the "libstdc++" files have been compiled using the path "//usr/lib..." rather than "/usr/lib" -- Notice the double slash ("//"). During subsequent builds of other programs, this double slash problem breaks EGREP and SED statements in the build process resulting in the "libstdc++ not found" problem even though it is there. |
How did it happen?
Quote: | I've run the fix_libtool_files.sh script anyway and it has no effect. I've also re-emerged gcc (and run the fix_lib.. script) and can not solve the problem. |
MAYBE `emerge sys-libs/libstdc++v3`?
Quote: | gcc-3.3.5 or gcc-3.3.5-20050130 both exhibit the problem on my system. About 60% of all builds fail due to this problem. |
Could you please post exact error message? _________________ cd /local/pub && more beer > /dev/mouth
Česká dokumentace |
|
Back to top |
|
|
_savage Guru
Joined: 06 Jun 2004 Posts: 308 Location: Redmond, WA
|
Posted: Thu Apr 21, 2005 2:55 pm Post subject: |
|
|
natestone wrote: | The fix_libtool_files.sh script has no effect since all it does is check other libs for proper version linking. The problem is with libstdc++ itself. |
I did notice the double //, however the script worked fine for me. After running it I could compile all the failing packages without problem, and they seem to run fine so far.
Jens _________________ Jens Troeger
http://savage.light-speed.de/ |
|
Back to top |
|
|
jkt Retired Dev
Joined: 06 Feb 2004 Posts: 1250 Location: Prague, Czech republic, EU
|
Posted: Thu Apr 21, 2005 3:02 pm Post subject: |
|
|
natestone wrote: | I've run the fix_libtool_files.sh script anyway and it has no effect. I've also re-emerged gcc (and run the fix_lib.. script) and can not solve the problem. |
Did you specify the old version of gcc as a parameter? _________________ cd /local/pub && more beer > /dev/mouth
Česká dokumentace |
|
Back to top |
|
|
bruda Guru
Joined: 06 May 2004 Posts: 376 Location: Sherbrooke, QC, Canada
|
Posted: Thu Apr 21, 2005 3:35 pm Post subject: |
|
|
natestone wrote: | The problem is that the "libstdc++" files have been compiled using the path "//usr/lib..." rather than "/usr/lib" -- Notice the double slash ("//"). |
There is no difference whatsoever between //usr/bin and /usr/bin as far as the path is concerned.
natestone wrote: | During subsequent builds of other programs, this double slash problem breaks EGREP and SED statements in the build process resulting in the "libstdc++ not found" problem even though it is there. |
Nothing breaks grep and sed. If you look carefully at the error message you will notice that grep is trying to find the file and grep into it, it does not grep for the file name into something else. Same goes for sed. The double slash is not relevant.
As the previous poster suggested, make sure you invoked the fix_libtool_files.sh script correctly. _________________ Quid latine dictum sit altum videtur |
|
Back to top |
|
|
natestone n00b
Joined: 19 Nov 2003 Posts: 4
|
Posted: Thu Apr 21, 2005 8:01 pm Post subject: |
|
|
Thanks for all of your help folks. I really appreciate it.
And, you are (of course) correct.
The problem was that I was not appending the "--oldarch" option on fix_libtool_files.sh when running it. Since the tool would output a few changed files when I ran it, I assumed that everything else was fine. In fact, everything that I had installed from the Packages CD was not linked to my current ARCH and the libtool ignored these as potential linking problems.
When I ran with the oldarch flag set to "i386-pc-linux-gnu", about 500 libraries were changed and things are in proper order now.
Perhaps, the fix_libtool_files.sh script could detect the ARCH automatically and check for improper ARCH matches as it scans for the version fixes. I don't know who to suggest that to, but it seems that most users would want everything linked to the current ARCH at all times and that the data is always present on the machine to tell what ARCH you are currently running.
Anyway, thanks again.
--Nate _________________ www.keenspot.com = good |
|
Back to top |
|
|
|