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
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
連結已複製
8 回應
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.
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.
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 ---
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 ---
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.
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 ??
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 ??
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.
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.
