Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
29253 ディスカッション

core 2 duo and ifort em64t problem

Intel_C_Intel
従業員
1,152件の閲覧回数
Hi,

I am trying to use the em64t compiler in a core 2 duo processor, but I have some problems. I don't know if I need some special configuration, but I have error in the compilation process.

ifort -c test test.f90

/opt/intel/fce/9.1.039/bin/fortcom: error while loading shared libraries: libstdc++.so.5: wrong ELF class: ELFCLASS64
compilation aborted for test.f90 (code 127)

Its a problem with the 64bit version of the libraries??

thanks
0 件の賞賛
8 返答(返信)
TimP
名誉コントリビューター III
1,152件の閲覧回数
You've omitted a lot of relevant information:
What is your test command meant to do? What if you leave out the first test, and choose a more reasonable name for your source file, to avoid strange usage of a shell test command?
Which version of linux, glibc and SHELL?
What does 'file libstdc++.so.5' report, on the library in question?
Is it the 64-bit one?
Is a working 64-bit g++ visible when you start ifort?

The versions of glibc and binutils we have used have the same bugs regardless of hardware, nothing specific to Core 2 Duo.
Intel_C_Intel
従業員
1,152件の閲覧回数
Ok, I understand you need more information about the problem.

the linux distro is Ubuntu (Edgy) amd64. libc6(2.4), shell bash.

I'm assuming that the libraries are working fine.

echo $LD_LIBRARY_PATH
/usr/lib64:/usr/lib/gcc/x86_64-linux-gnu/4.1.2:/usr/lib:

I know is not a problem of the Core 2 Duo processor, but I'm not sure if the EM64T compiler is correct for this architecture.


ifort -o test test.f90

--- test.f90 ---
program test

print*,"hello world"

end program
--- test.f90 ---

Steven_L_Intel1
従業員
1,152件の閲覧回数
If you have booted an "x86_64" version of Linux (and the "amd64" suggests you have), then yes, the EM64T compiler is correct. You do need to make sure that the 32-bit libraries are installed, as stated in the compiler Installation Guide, since the compiler itself is a 32-bit application.
Intel_C_Intel
従業員
1,152件の閲覧回数
Thanks.

I installed the package "ia32-libs" and the problem was solved, but I have some questions about the EM64T compiler:

1. I can't found information about the compiler option for my specific architecture.
2. The compiled file is on 64bits ?? exist some flag for to set the 32 or 64bits ??

Steven_L_Intel1
従業員
1,152件の閲覧回数
There is no flag. There are two separate compilers. The 32-bit compiler gets installed under /opt/intel/fc and the EM64T compiler under /opt/intel/fce.
TimP
名誉コントリビューター III
1,152件の閲覧回数
As Steve pointed out, the compiler itself requires the 32-bit .so, regardless of whether you use the fce 64-bit or fc 32-bit compiler. The 64-bit builds themselves require the 64-bit .so files at run time. The g++ installation is used to find the library paths at compile time.

There is a flag -xT for the new processors (Core 2 Duo et al.). In most cases, it won't currently do much different from -xW, which will run on all CPUs since P4. There is also -xP, which will work on all EM64T CPUs, but not earlier models. If no -x flag is given, the compiler will not perform vectorization. -xT and -xP can vectorize certain sequences which are not vectorizable in -xW.

asesrrc
ビギナー
1,152件の閲覧回数

Hi Clabra:

Seems I got the same problem with you have.

Where can I find the "ia32-libs"?

Steven_L_Intel1
従業員
1,152件の閲覧回数
You get them from your Linux distribution. Some install these by default, and on others you have to select them as an option.
返信