Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.
7944 Discussions

Debian sid, libstdc++5 and libstdc++6

mfactor
Beginner
909 Views
Hello all,

I've just installed the Intel C++ compiler on a Debian Sid, amd64, icc version 11.1.056. Even with the warnings (system not recognized, binutils not found, etc), the compiler installs correctly. But when I try to use it, it complains for libstdc++5. I've searched for the library, but it is not avaliable anymore in sid repositories. I even did a soft link from libstdc++6 to ++5, but then it complained with this message:

libstdc++.so.5: version `CXXABI_1.2' not found
libstdc++.so.5: version `GLIBCPP_3.2' not found

So I think that ++5 and ++6 are not compatible. I really would not like to hunt down the libstdc++5 package and install it "by hand".

Did anybody succesfully used the intel compilers on sid? Any pointers?

Thanks!
0 Kudos
12 Replies
Mark_S_Intel1
Employee
909 Views
The article and discussion at http://software.intel.com/en-us/articles/performance-tools-for-software-developers-installing-and-using-intel-compilers-for-linux-on-ubuntu-linux/ addresses similar installation issueson Ubuntu but it may also work for Debian. Please review the article and the threads and see if that helps.

--mark
0 Kudos
mfactor
Beginner
909 Views
The article and discussion at http://software.intel.com/en-us/articles/performance-tools-for-software-developers-installing-and-using-intel-compilers-for-linux-on-ubuntu-linux/ addresses similar installation issueson Ubuntu but it may also work for Debian. Please review the article and the threads and see if that helps.

--mark

Just saw the article, and it also points to install libstdc++5. The problem is that libstdc++5 is not avaliable any more for Debian Squeeze(testing) or sid, as its default compiler is gcc 4.3. Is there a way to use libstdc++6? Because libstdc++5 is not avaliable, and installing it would not be advisable.

Thanks
0 Kudos
Ron_Green
Moderator
909 Views
Quoting - mfactor

Just saw the article, and it also points to install libstdc++5. The problem is that libstdc++5 is not avaliable any more for Debian Squeeze(testing) or sid, as its default compiler is gcc 4.3. Is there a way to use libstdc++6? Because libstdc++5 is not avaliable, and installing it would not be advisable.

Thanks

So you are saying that Debian sid when you

apt-get install ia32-libs

per the Ubuntu/Debian installation guide, you don't get the 32bit version of libstdc++.so.5 but get a 32bit version of libstdc++.so.6?

if you run 'file libstdc++.so.6.x.x' where x.x is your specific version (and you run this in the lib dir where you THINK the 32bit version of libstdc++ is located), you should see:

ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), stripped

IF so, you can link libstdc++.so.5 to libstdc++.so.6 - this may work.

You can try the silent installation guide:

http://software.intel.com/en-us/articles/intel-compilers-for-linux-version-111-silent-installation-guide/

and then test

Test both 64 bit and 32 bit compilers. Assuming you have a hello.f90 simple program

source /opt/intel/Compiler/11.1/056/bin/ifortvars.sh intel64
ifort -o hello hello.f90
./hello

source /opt/intel/Compiler/11.1/056/bin/ifortvars.sh ia32
ifort -o hello hello.f90
./hello

both should work. It may be that the 64bit compiler will work but not the 32bit compiler.

ron
0 Kudos
Mark_S_Intel1
Employee
909 Views
mfactor,

For icc the equivalent "source" commands would be:


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

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

--mark

0 Kudos
mfactor
Beginner
909 Views

So you are saying that Debian sid when you

apt-get install ia32-libs

per the Ubuntu/Debian installation guide, you don't get the 32bit version of libstdc++.so.5 but get a 32bit version of libstdc++.so.6?

if you run 'file libstdc++.so.6.x.x' where x.x is your specific version (and you run this in the lib dir where you THINK the 32bit version of libstdc++ is located), you should see:

ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), stripped

IF so, you can link libstdc++.so.5 to libstdc++.so.6 - this may work.

You can try the silent installation guide:

http://software.intel.com/en-us/articles/intel-compilers-for-linux-version-111-silent-installation-guide/

and then test

Test both 64 bit and 32 bit compilers. Assuming you have a hello.f90 simple program

source /opt/intel/Compiler/11.1/056/bin/ifortvars.sh intel64
ifort -o hello hello.f90
./hello

source /opt/intel/Compiler/11.1/056/bin/ifortvars.sh ia32
ifort -o hello hello.f90
./hello

both should work. It may be that the 64bit compiler will work but not the 32bit compiler.

ron

Hello Ron,

Thank you for your answer. I've checked, and there is libstdc++5 and ++6 on the /usr/lib32, with the 32 header when used file:

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

and

/usr/lib$ file libstdc++.so.6.0.13
libstdc++.so.6.0.13: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, stripped

what is exactly the same in /usr/lib64. So there is no libstdc++5 for 64bits.

I've done the silent install, as you asked, and the same error ocurred:
source iccvars.sh
icc int_sin.c -o int_sin
intel/bin/intel64/mcpcom: error while loading shared libraries: libstdc++.so.5: cannot open shared object file: No such file or directory
compilation aborted for int_sin.c (code 127)

So no luck. I've just searched in the debian reps, and libstdc++5 is not avaliable anymore for Squeeze or Sid, at least for amd64, which is my debian.

Is there anything that I can do?

Thanks!

0 Kudos
TimP
Honored Contributor III
909 Views
The symlinks you need are the one from the specific libstdc++-5 to libstdc++.so.5 in the same directory, and possibly a similar setup in /usr/lib64. A full install of the libstdc++ normally would include the symlinks automatically. If you still need the 64-bit libstdc++-5, possibly it might be found in an earlier debian.
0 Kudos
mfactor
Beginner
909 Views
Quoting - tim18
The symlinks you need are the one from the specific libstdc++-5 to libstdc++.so.5 in the same directory, and possibly a similar setup in /usr/lib64. A full install of the libstdc++ normally would include the symlinks automatically. If you still need the 64-bit libstdc++-5, possibly it might be found in an earlier debian.

Thanks tim18. The symlinks for the installed libraries are there - what is missing is exaclty the libstdc++5 amd64, that is not avaliable in Debian Sid. The main problem in using a deb from a earlier debian is that this can mess big time with the libraries and/or the dependencies in my system. So I'm thinking in using this as a last resort, if any other solution is not avaliable.

Does icc/ifort _really_ requires libstdc++5 for amd64? Is there any other way around? Maybe a beta version?

Thanks!
0 Kudos
TimP
Honored Contributor III
909 Views
I don't know about future plans; I suppose the dependency on libstdc++-5 goes with the continued support for old distros. You have a point, that x86_64 distros old enough not to include libstdc++-6 are no longer of much use. Until new enterprise distros, such as RH6, drop libstdc++-5, there may not be an urgent requirement to change.
There's no beta version of icc currently. I haven't heard anything definite about availability of the next beta version.
0 Kudos
mfactor
Beginner
909 Views
Quoting - tim18
I don't know about future plans; I suppose the dependency on libstdc++-5 goes with the continued support for old distros. You have a point, that x86_64 distros old enough not to include libstdc++-6 are no longer of much use. Until new enterprise distros, such as RH6, drop libstdc++-5, there may not be an urgent requirement to change.
There's no beta version of icc currently. I haven't heard anything definite about availability of the next beta version.

Thank you again, tim18. That's really sad news for me, as I have a Core i7 sitting here in my desk, and will not be able to evaluate the Intel Compiler. Maybe I will have to resort to other compilers until this situation is resolved, as installing old libstdc++5 is a tad risky for a production machine. I will try installing by hand libstdc++5 in a virtual machine, and see what happens.
0 Kudos
TimP
Honored Contributor III
909 Views
Core i7, particularly in combination with some of the Windows-centric graphics adaptors, severely limits the range of satisfactory distros. As RH5.2 was the first of 4 distros I tried which worked, I stuck with it, in spite of the need to replace the obsolete gcc and binutils with current versions. A frequent choice for this year's CPU models is CentOS 5.1 with kernel upgraded to CentOS 5.3 or 5.4 equivalent. It's "heavy lifting" simply to get the distros with the greatest demand lined up with new hardware and software, even among those which claim adherence to agreed standards such as LSB which Debian doesn't. As far as I know, Debian goes its own way and doesn't care to work on such a chore. I won't criticize your choice of Debian as a "production" environment, as a majority of choices I've seen fall short of some criteria. There's definitely a place for the various programs Intel sponsors to help hardware OEMs support a combined hardware/OS package.
0 Kudos
mfactor
Beginner
909 Views
Quoting - tim18
Core i7, particularly in combination with some of the Windows-centric graphics adaptors, severely limits the range of satisfactory distros. As RH5.2 was the first of 4 distros I tried which worked, I stuck with it, in spite of the need to replace the obsolete gcc and binutils with current versions. A frequent choice for this year's CPU models is CentOS 5.1 with kernel upgraded to CentOS 5.3 or 5.4 equivalent. It's "heavy lifting" simply to get the distros with the greatest demand lined up with new hardware and software, even among those which claim adherence to agreed standards such as LSB which Debian doesn't. As far as I know, Debian goes its own way and doesn't care to work on such a chore. I won't criticize your choice of Debian as a "production" environment, as a majority of choices I've seen fall short of some criteria. There's definitely a place for the various programs Intel sponsors to help hardware OEMs support a combined hardware/OS package.

I see your point. Here at my lab we use Debian Lenny, the stable version, for all servers, and all function perfectly, to the spec - but as web servers, firewalls, file servers. They work even with very different hardware, both Intel and AMD, with Intel, Nvidia or Via chipsets. But my development machine, the Core i7, must use Debian Sid, the unstable branch, as several libraries and programs are only avaliable for this release - the scientific software that I use and develop must use these libraries and so forth. So far, the support for this very new hardware was optimal for my needs. And it is a real production environment, as if there is any sudden change, all other things that works now will stop working.

Having worked with HPC for some time, I would dare to say that Debian use in this environment is much stable and flexible than fiddling with other distros - but again, as you said, there are several choices, and all choices fall short in some criteria. I really respect that, having worked with CentOS, Suse Enterprise, OpenSuse, and a little Red Hat Enterprise, and them all - including Debian - at some point failed.

I also understand the OEM position - having to support so much diversity, and also understand the use of LSB. But in this point, I would like to ask: what is the reason for not supporting GCC version 4.3/libstdc++6? Even in Lenny, that was released in February, there is support for libstdc++6. Also, what Debian could do to improve the compatibility with Intel compilers? I don't know if there any contact between the two developing teams, but this kind of feedback would be very interesting for both groups.

Thanks!
0 Kudos
sbolay
Beginner
909 Views
Hi,

You may be interested by http://packages.debian.org/sid/ia32-libs which provide:
/usr/lib32/libstdc++.so.5
/usr/lib32/libstdc++.so.5.0.7
/usr/lib32/libstdc++.so.6
/usr/lib32/libstdc++.so.6.0.12

and by: aptitude search lib32
P lib32stdc++6 - The GNU Standard C++ Library v3 (32 bit Version)
p lib32stdc++6-4.1-dbg - The GNU Standard C++ Library v3 (debugging files)
p lib32stdc++6-4.2-dbg - The GNU Standard C++ Library v3 (debugging files)
p lib32stdc++6-4.3-dbg - The GNU Standard C++ Library v3 (debugging files)

Best,
Sylvain Bolay
http://wiki.bolay.net
0 Kudos
Reply