Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
28499 Discussions

How does Intel 9 support different versions of gcc

Intel_C_Intel
Employee
181 Views
I just installed Intel 9 Fortran on our server and we have a variety of boxes running different flavors of linux (Suse 9.1, Suse 9.3, etc). In the 8.1 Fortran there is a section in the ifort file that contains data like :

IA32ROOT=/fltapps/boeing/intel/compiler81_64/intel_fce_81; export IA32ROOT;
EFI2_INCLUDE1="/usr/lib64/gcc-lib/x86_64-suse-linux/3.3.3/include"; export EFI2_INCLUDE1;
EFI2_GCC_LIB="/usr/lib64"; export EFI2_GCC_LIB;
EFI2_DYNAMIC_LINKER="/lib64/ld-linux-x86-64.so.2"; export EFI2_DYNAMIC_LINKER;
EFI2_INCLUDE="/usr/local/include"; export EFI2_INCLUDE
EFI2_LINUX_DIR_NAME="/usr/lib64/gcc-lib/x86_64-suse-linux"; export EFI2_LINUX_DIR_NAME;

my ifort file in the 9 installation is empty. How do I go about customizing the compiler to work under different versions of gcc??

Thanx,

Bernie
0 Kudos
2 Replies
Lorri_M_Intel
Employee
181 Views
You don't literally mean "empty" do you? If it were completely empty, you wouldn't be able to invoke the compiler at all. :smileyhappy:
I assume you mean you don't have the lines pertaining to *GCC_* in your version of the ifort script.
First -with 9.0, ifort doesn't link against theC++ libraries. There is no longer a dependency on C++ support within the Fortran Runtime Libraries. That, obviously, lessens the dependence in particular versions of C++.
If you have programs that are a combination of C++ and Fortran, and you are using "ifort' to link the program, you can use the -cxxlib switch to indicate you want to link against the C++ libraries.
Now, this is where it gets interesting.
The driver, which is a utility invoked from the ifort script, queries the gcc installed on your system to find its libraries. The driver invokes the compiler to create the object file(s), then invokes the loader to create the executable. Whenthe driverinvokes the loader, it passes the location of the gcc libraries so the loader can find them.
Does this answer your question?
- Lorri
0 Kudos
TimP
Honored Contributor III
181 Views
I concur with the observation that the .cfg files, which 8.1 compilers filled out during installation, are left empty by 9.0 installation. Only a small amount of environment variable setting is left to the ifortvars and ifort scripts. Thus, the question, does 9.0 find glibc library paths at invocation time, by querying the gcc which is active at that time? I have found that ifort 9.0 refuses to run if it sees a gcc newer than 4.0 on the PATH.
I just repeated a simple test on EM64T and ia64 which requires ifort 9.0.025 to link against libstdc++. It found the libraries without the extra coaxing required by earlier 9.0 versions.
0 Kudos
Reply