Anticipating proglem with Ubuntu 9.10

Anticipating proglem with Ubuntu 9.10

As far as I know, in the forthcoming release of Ubuntu (9.10) they dropped support for libstdc++ which is still required by Intel compilers

26 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

Quoting - eliosh
As far as I know, in the forthcoming release of Ubuntu (9.10) they dropped support for libstdc++ which is still required by Intel compilers

To clarify your question (if I may).

Support for libstdc++5 (which ifort depends on) appears to have been dropped, but libstdc++6 is available from the repositories.

Quoting - eliosh
As far as I know, in the forthcoming release of Ubuntu (9.10) they dropped support for libstdc++ which is still required by Intel compilers

I have had no luck so far trying to install intel cpp compiler 11.1.056 (latest) on Ubuntu (9.10 dist-updated today). libstdc++5 dropped, installed 6, installed ia32libs, does not like it for some reason, complains about prerequisits

Missing critical pre-requisite
-- 32-bit libraries not found

libstdc++
libstdc++5
glibc
libgcc
(installed libstdc++5) from jaunty, no help

Quoting - silicontoad

I have had no luck so far trying to install intel cpp compiler 11.1.056 (latest) on Ubuntu (9.10 dist-updated today). libstdc++5 dropped, installed 6, installed ia32libs, does not like it for some reason, complains about prerequisits

Missing critical pre-requisite
-- 32-bit libraries not found

libstdc++
libstdc++5
glibc
libgcc
(installed libstdc++5) from jaunty, no help

Try this - sym link the 64bit libstdc++.so.6 in /usr/lib to /usr/lib/libstdc++.so.5. Then the same for the 32bit version, link /usr/lib32/libstdc++.so.6 to /usr/lib32/libstdc++.so.5.

After that, use the silent installation procedure, which you'll find in the list of docs in the right-hand side of the main page for this User Forum.

Finally, test both the 64bit and 32bit compilers:

source /opt/intel/Compiler/11.1/056/bin/ifortvars.sh intel64

source /opt/intel/Compiler/11.1/056/bin/ifortvars.sh ia32

We'd like to remove the requirement for libstdc++.so.5, but since we have to support some really old distros, we need to keep this around for a little while longer.

ron

Quoting - silicontoad

I have had no luck so far trying to install intel cpp compiler 11.1.056 (latest) on Ubuntu (9.10 dist-updated today). libstdc++5 dropped, installed 6, installed ia32libs, does not like it for some reason, complains about prerequisits

Missing critical pre-requisite
-- 32-bit libraries not found

libstdc++
libstdc++5
glibc
libgcc
(installed libstdc++5) from jaunty, no help

Most of these should be installed automatically when you select the g++ development package (in the same 32- or 64-bit flavor as the intended icpc). You must get g++ working before attempting to install icpc.
icpc requires the libstdc++-5, which can coexist with libstdc++-6.

Quoting - tim18

Most of these should be installed automatically when you select the g++ development package (in the same 32- or 64-bit flavor as the intended icpc). You must get g++ working before attempting to install icpc.
icpc requires the libstdc++-5, which can coexist with libstdc++-6.

all the g++ packages in karmic seem to depend on libstdc++6, and not libstdc++5 (which does not seem to be available)

Quoting - tracyx

all the g++ packages in karmic seem to depend on libstdc++6, and not libstdc++5 (which does not seem to be available)

Still, you need them all, to support the icpc installation. If you're lucky, it may be possible to symlink the libstdc++ so it appears as libstdc++.so.5.

Quoting - Ronald W. Green (Intel)

Try this - sym link the 64bit libstdc++.so.6 in /usr/lib to /usr/lib/libstdc++.so.5. Then the same for the 32bit version, link /usr/lib32/libstdc++.so.6 to /usr/lib32/libstdc++.so.5.

After that, use the silent installation procedure, which you'll find in the list of docs in the right-hand side of the main page for this User Forum.

Finally, test both the 64bit and 32bit compilers:

source /opt/intel/Compiler/11.1/056/bin/ifortvars.sh intel64

source /opt/intel/Compiler/11.1/056/bin/ifortvars.sh ia32

We'd like to remove the requirement for libstdc++.so.5, but since we have to support some really old distros, we need to keep this around for a little while longer.

ron

I can confirm this works on 9.10(amd64):
Create symlinks in:
/usr/lib32/libstdc++.so.6 ----> /usr/lib32/libstdc++.so.5
/usr/lib64/libstdc++.so.6 ----> /usr/lib64/libstdc++.so.5

no need for silent install.

I already have libstdc++.so.5 (don't ask why, maybe cause I tried a jaunty install of libstdc++.so.5 which I later removed) in /usr/lib (if you don't and you run into trouble maybe create a symlink their too)

Compiled simple helloWorld example, ERROR!.

/opt/intel/Compiler/11.1/056/bin/intel64$ ./icc ~/hello.cpp
/opt/intel/Compiler/11.1/056/bin/intel64/mcpcom: /usr/lib/libstdc++.so.5: version `CXXABI_1.2' not found (required by /opt/intel/Compiler/11.1/056/bin/intel64/mcpcom)
/opt/intel/Compiler/11.1/056/bin/intel64/mcpcom: /usr/lib/libstdc++.so.5: version `GLIBCPP_3.2' not found (required by /opt/intel/Compiler/11.1/056/bin/intel64/mcpcom)

so:
strings /usr/lib64/libstdc++.so.5 | grep CXXABI [RECALL - this one is symlink of libstdc++.so.6]
revealed:
CXXABI_1.3
CXXABI_1.3.1
CXXABI_1.3.2
CXXABI_1.3.3

Much appreciated Ron, but it seems you need the libstdc++.so.5, grab if from jaunty (http://packages.ubuntu.com/jaunty/libstdc++5), create symbolic link from /usr/lib to /usr/lib32 and /usr/lib64. and all should work fine. (take care choosing i386 or amd64)

as per the error:
strings /usr/lib64/libstdc++.so.5 | grep CXXABI [this one is symlink of libstdc++.so.5 from /usr/lib]
revealed:
CXXABI_1.2
CXXABI_1.2.1
CXXABI_1.2.2

I've only just noticed, I'm sorry for posting this in the forum for fortran, but perhaps it will help someone using fortran, and since it's first in google I'm sure it will help someone else trying to get icc working in ubuntu 9.10 (amd64).

By the way, this works when compiling the helloWorld example. About to compile Boost (fingers crossed)

TOAD

Quoting - tracyx

To clarify your question (if I may).

Support for libstdc++5 (which ifort depends on) appears to have been dropped, but libstdc++6 is available from the repositories.

Yes, that describes the situation precisely.

P.S.
Oooops. Just noticed that I forgot to write 5 in the library version.

so any new solution? I'm new to linux
if there will be nothing in 2 weeks, i have to go back to ubuntu 9.04 for using the fortran compiler
thanks

9.04 is the supported version of Ubuntu. Ubuntu is the worst offender among Linux distributions for making incompatible changes between updates. At some point in the future, 9.10 may be supported, but for now, you must have libstdc++.so.5 on your system and 9.10 is not supported.

Retired 12/31/2016

Quoting - Steve Lionel (Intel)
9.04 is the supported version of Ubuntu. Ubuntu is the worst offender among Linux distributions for making incompatible changes between updates. At some point in the future, 9.10 may be supported, but for now, you must have libstdc++.so.5 on your system and 9.10 is not supported.

I gave this a shot. I am using Ubuntu 9.10, but I snagged a libstdc++.so.5.0.7 library. It is simlinked properly, and placed in both /usr/lib32 and /usr/lib64. The compiler [11.1] installs properly, but when I try and compile, I get an error that says: wrong ELF class: ELFCLASS32.

What am I doing wrong?

The 32-bit library won't stand in successfully for the 64-bit one. Try first removing the symlink which makes the 32-bit library appear in 64-bit. Ubuntu probably expects a 64-bit library in /usr/lib as well (one of their discrepancies against LSB).

Quoting - tim18
The 32-bit library won't stand in successfully for the 64-bit one. Try first removing the symlink which makes the 32-bit library appear in 64-bit. Ubuntu probably expects a 64-bit library in /usr/lib as well (one of their discrepancies against LSB).

This is what I had guessed.

So there is a 32-bit version of the libstdc++.so.5 library and a 64-bit version of the same library? Each of these needs to be in the appropriate directory [either /usr/lib32 or /usr/lib64 respectively].

It looks like I already have the 32 bit version of the library. Can anyone point me towards the 64-bit version and let me know where, and the appropriate name of the larger package that I might find it in?

Thanks...

Quoting - kcstein

I gave this a shot. I am using Ubuntu 9.10, but I snagged a libstdc++.so.5.0.7 library. It is simlinked properly, and placed in both /usr/lib32 and /usr/lib64. The compiler [11.1] installs properly, but when I try and compile, I get an error that says: wrong ELF class: ELFCLASS32.

What am I doing wrong?

Did you get a 32bit or 64bit libstdc++5? You need the 32bit version linked in /usr/lib32 and the 64bit version sym linked in /usr/lib64

You can use the 'file' utility to tell you the object file format:

In /usr/lib64:
file libstdc++.so.5.0.7
libstdc++.so.5.0.7: ELF 64-bit LSB shared object, AMD x86-64, version 1 (SYSV), stripped

In /usr/lib32
file libstdc++.so.5.0.7
libstdc++.so.5.0.7: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), stripped

Quoting - Ronald W. Green (Intel)

Did you get a 32bit or 64bit libstdc++5? You need the 32bit version linked in /usr/lib32 and the 64bit version sym linked in /usr/lib64

You can use the 'file' utility to tell you the object file format:

In /usr/lib64:
file libstdc++.so.5.0.7
libstdc++.so.5.0.7: ELF 64-bit LSB shared object, AMD x86-64, version 1 (SYSV), stripped

In /usr/lib32
file libstdc++.so.5.0.7
libstdc++.so.5.0.7: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), stripped

Got it figured out. Thanks for the help. Just ran a diagnostic on a big problem; I am finding ifort to take about the same amount of time as gfortran. My next step is to try it using MKL libraries...but this is another issue separate from the Ubuntu issue.

Thanks. If anyone running into this same issue has trouble finding the libraries, I found it easiest to locate them through the Debian repositories rather than through Ubuntu channels.

Quoting - eliosh
As far as I know, in the forthcoming release of Ubuntu (9.10) they dropped support for libstdc++ which is still required by Intel compilers

had the same problem

downloaded and installed the debian package libstdc++5 from:

http://packages.debian.org/stable/base/libstdc++5

this solved the problem, I hope it won't break up things later on!!!

Quoting - Lorenzo Trojan

had the same problem

downloaded and installed the debian package libstdc++5 from:

http://packages.debian.org/stable/base/libstdc++5

this solved the problem, I hope it won't break up things later on!!!

I don't see why it would. Ubuntu still has the libraries it requires [libstdc++6], and the Intel software is just looking for the libstdc++5 libraries.

It looks to me like the thread now has all of the information needed for a user to get around any problems with Ubuntu/Kubuntu version 9.10.

I've captured everyone's knowledge, tested on my own sandbox, and updated our installation document:

http://software.intel.com/en-us/articles/using-intel-compilers-for-linux-with-ubuntu/

Thanks to everyone who helped solve this problem! It's important to keep the Ubuntu community running smoothly with the Intel compilers.

ron

Quoting - Ronald W. Green (Intel)

I've captured everyone's knowledge, tested on my own sandbox, and updated our installation document:

http://software.intel.com/en-us/articles/using-intel-compilers-for-linux-with-ubuntu/

Thanks to everyone who helped solve this problem! It's important to keep the Ubuntu community running smoothly with the Intel compilers.

ron

Ron,

I have created a more user-friendly solution for the libstdc++5 issue. I made packages for libstdc++5 in i386, x86_64, and lpic architectures, I also created a package called lib32stdc++5 as a compatibility layer between the 32-bit libstdc++5 and the 64-bit platform (similar to the functionality that was included as part of the ia32-libs package prior to Ubuntu 9.10). You can either download the individual packages or add my PPA to your 3rd party sofware sources. Instructions for adding my PPA can be found at https://launchpad.net/~jason-scheunemann/+archive/ppa. I am unsure of the requirements of your compiler but I hope that your company's product can benefit from the above-mentioned packages. I should let you know that I, in no way, represent Ubuntu or its interests. I am just an open-source developer who ran into the same problem that a lot of people are running into with these libraries. In my personal opinion Ubuntu failed to exercise due dilligence when they decided to remove these packages from their default repositories. If you have any questions or conerns regarding these packages please feel free to contact me. My email address is .@yahoo.com (obviously substitue for my real name).

Sincerely,
Jason Scheunemann

Hello,

I am new to this thread, but I think I was having the same problem (or at least a similar one) with installing Intel Fortran 11.1/069 on Ubuntu 9.10. It was difficult b/c the machine does not have i-net access (due to other restrictions outside my control), so installing dependencies was rather hard. But after installing libstdc++6, it would say libstdc++.so.5 was not there; providing the symlink created the 'CXXABI_1.2' error (libstdc++6 I think has CXXAB_1.3 instead), but then I used the instructions found here:

http://bootstrapping.wordpress.com/2009/11/25/missing-libstdc-so-5-in-ub...

and I can at least now compile fortran programs. I've not tried any major fortran programs (just hello worlds) but at least it seems to be working in 9.10.

--h24sn8x6

If the computer did not have internet access, how did the 'wget' command succeed? Did you do the wget on an internet connected computer and then bring over the package to the target system?

In my article http://software.intel.com/en-us/articles/using-intel-compilers-for-linux-with-ubuntu/ I used apt-get instead of wget. But wget does have the advantage of fully specifying the source URL.

Thanks for the pointer to the web article.

ron

If you mean that libstdc++.so.5 is no longer installed unless specifically requested, that's believable. If you mean that Ubuntu is dropping support for g++, not.

Hi,
I did follow the instruction on this web page but I run tinto problems on 64-bit:

icpc --help runs, but on compile it calls mcpcom:

/opt/intel/Compiler/11.1/072/bin/intel64/mcpcom: error while loading shared libraries: libstdc++.so.5: cannot open shared object file: No such file or directory

OK, looking here:

$ ls -la /usr/lib32/libstdc++.so.5*
lrwxrwxrwx 1 root root 18 2010-05-03 16:14 /usr/lib32/libstdc++.so.5 -> libstdc++.so.5.0.7
-rw-r--r-- 1 root root 737112 2010-04-30 18:02 /usr/lib32/libstdc++.so.5.0.7

All there as described on web, anyway:

$ strace /opt/intel/Compiler/11.1/072/bin/intel64/mcpcom 2>&1 | grep libstdc++.so.5
open("/opt/intel/Compiler/11.1/072/lib/intel64/libstdc++.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/opt/intel/Compiler/11.1/072/ipp/em64t/sharedlib/libstdc++.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/opt/intel/Compiler/11.1/072/mkl/lib/em64t/libstdc++.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/opt/intel/Compiler/11.1/072/tbb/intel64/cc4.1.0_libc2.4_kernel2.6.16.21/lib/libstdc++.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/tls/x86_64/libstdc++.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/tls/libstdc++.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/x86_64/libstdc++.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/libstdc++.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/tls/x86_64/libstdc++.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/tls/libstdc++.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/x86_64/libstdc++.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/libstdc++.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/tls/x86_64/libstdc++.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/tls/libstdc++.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/x86_64/libstdc++.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libstdc++.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/x86_64-linux-gnu/tls/x86_64/libstdc++.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/x86_64-linux-gnu/tls/libstdc++.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/x86_64-linux-gnu/x86_64/libstdc++.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/x86_64-linux-gnu/libstdc++.so.5", O_RDONLY) = -1 ENOENT (No such file or directory)
writev(2, [{"/opt/intel/Compiler/11.1/072/bin"..., 47}, {": ", 2}, {"error while loading shared libra"..., 36}, {": ", 2}, {"libstdc++.so.5", 14}, {": ", 2}, {"cannot open shared object file", 30}, {": ", 2}, {"No such file or directory", 25}, {"\n", 1}], 10/opt/intel/Compiler/11.1/072/bin/intel64/mcpcom: error while loading shared libraries: libstdc++.so.5: cannot open shared object file: No such file or directory

So it doesn't look into /usr/lib32 any more. What happens here?

Thanks,
opelx

For 64-bits, you need to install the 32-bit AND the 64-bit versions of the library. to get a copy of the .deb packages for both libraries (from a PPA in Ubuntu's Launchpad server), run the following command in a (bash) terminal:

wget https://launchpad.net/~jason-scheunemann/+archive/ppa/+files/{libstdc++5_3.3.6-17~ppa~karmic1_amd64.deb,lib32stdc++5_3.3.6~ppa~lucid2_amd64.deb}

works now, thanks for providing the ppa

opelx

Leave a Comment

Please sign in to add a comment. Not a member? Join today