I am attempting to build some open source software - mpich3
When I use icc 11.1.073, I get this as the compiler generated call to the linker:
ld /project/bldenv/amd64_linux_2/bosdeps/sles/11.1.0/usr/lib/../lib64/crt1.o /project/bldenv/amd64_linux_2/bosdeps/sles/11.1.0/usr/lib/../lib64/crti.o /afs/apd.pok.ibm.com/project/bldenv/x86_linux_2/compilers/gcc/4.3.4/amd64_linux_2/install/bin/../lib/gcc/i386-ibm-linux/4.3.5/64/crtbegin.o --eh-frame-hdr <!--break-->-dynamic-linker /lib64/ld-linux-x86-64.so.2 -o a.out ...........
When I use icc 13.0.1, I get his as the compiler generated call to the linker:
ld /project/sprelbrew/build/currentbrew/tools/x86_linux_2/amd64_sles_11.0.0/bosdeps/sles/11.1.0/usr/lib/crt1.o /project/sprelbrew/build/currentbrew/tools/x86_linux_2/amd64_sles_11.0.0/bosdeps/sles/11.1.0/usr/lib/crti.o /afs/apd.pok.ibm.com/project/bldenv/x86_linux_2/compilers/gcc/4.3.4/amd64_linux_2/install/bin/../lib/gcc/i386-ibm-linux/4.3.5/64/crtbegin.o --eh-frame-hdr --build-id -dynamic-linker /lib64/ld-linux-x86-64.so.2 ......
Note that icc 11.1.073 uses the 64-bit versions of crt1.o and crti.o, while icc 13.0.1 is using the 32bit versoins, which causes the linker to fail. Any idea what might cause this behavior?
Link Copied
Both compilers come in both 32-bit "ia32" and 64-bit "intel64" flavors. If you have installed the 64-bit one correctly, and set paths in accordance with sourcing the compilervars script with intel64 specified, icc will refer to the 64-bit installation.
are you using the same machine for icc 11.1 and 13.0? did you also install the 32-bit of icc 13.0?
Jennifer
I am using the same machine for both compilers. The compilers are installed in a shared file system. Both compilers have the ia32 and intel64 parts installed. I have tried to distill this down to the smallest possible case. Since I cant attach scripts I will just paste them here. It looks like if the compile/link is done is separate steps, it works. When the compile/link is done with a single call to icc, the issue is encountered. Again, this is open source (configure) source; I cant really modify it.
This works:
. /afs/apd.pok.ibm.com/project/bldenv/x86_linux_2/compilers/icc/13.0.1/x86-64_linux_2/install/composer_xe_2013.1.117/bin/compilervars.sh intel64
icc -i-static -melf_x86_64 -wd10237 -v -c -Wl,-melf_x86_64 -Wl,--verbose -isystem/project/sprelbrew/build/currentbrew/tools/x86_linux_2/amd64_sles_11.0.0/bosdeps/sles/11.1.0/usr/include -I/u/ppsbld/sandboxes/eprbrew/export/amd64_sles_11.0.0/usr/include -I/project/sprelbrew/build/currentbrew/export/amd64_sles_11.0.0/usr/include -I/u/ppsbld/sandboxes/eprbrew/export/amd64_sles_11.0.0/usr/include/sysfs -I/project/sprelbrew/build/currentbrew/export/amd64_sles_11.0.0/usr/include/sysfs -finline-limit=65536 -axAVX -ip -D__PE__ -D__LINUX__ -D__linux__ -DMPICH_DEFINE_2COMPLEX -DFORTRAN_BACKWARD_BINCOMPAT -wd10237 -L/u/ppsbld/sandboxes/eprbrew/export/amd64_sles_11.0.0/usr/lib64 -L/project/sprelbrew/build/currentbrew/export/amd64_sles_11.0.0/usr/lib64 -lpami -lpthread -lrt -Wl,-melf_x86_64 --sysroot=/project/sprelbrew/build/currentbrew/tools/x86_linux_2/amd64_sles_11.0.0/bosdeps/sles/11.1.0 -Wl,-rpath=/opt/ibmhpc/pe1400/ppe.pami/intel/lib64/pami64 -Wl,-rpath=/opt/ibmhpc/pe1400/mpich2/intel/lib64 -Wl,--enable-new-dtags -i-static conftest.c
icc -v -Wl,--verbose -Wl,-melf_x86_64 conftest.o
=====================================================================================================
This does NOT work:
. /afs/apd.pok.ibm.com/project/bldenv/x86_linux_2/compilers/icc/13.0.1/x86-64_linux_2/install/composer_xe_2013.1.117/bin/compilervars.sh intel64
icc -i-static -melf_x86_64 -wd10237 -v -Wl,-melf_x86_64 -Wl,--verbose -isystem/project/sprelbrew/build/currentbrew/tools/x86_linux_2/amd64_sles_11.0.0/bosdeps/sles/11.1.0/usr/include -I/u/ppsbld/sandboxes/eprbrew/export/amd64_sles_11.0.0/usr/include -I/project/sprelbrew/build/currentbrew/export/amd64_sles_11.0.0/usr/include -I/u/ppsbld/sandboxes/eprbrew/export/amd64_sles_11.0.0/usr/include/sysfs -I/project/sprelbrew/build/currentbrew/export/amd64_sles_11.0.0/usr/include/sysfs -finline-limit=65536 -axAVX -ip -D__PE__ -D__LINUX__ -D__linux__ -DMPICH_DEFINE_2COMPLEX -DFORTRAN_BACKWARD_BINCOMPAT -wd10237 -L/u/ppsbld/sandboxes/eprbrew/export/amd64_sles_11.0.0/usr/lib64 -L/project/sprelbrew/build/currentbrew/export/amd64_sles_11.0.0/usr/lib64 -lpami -lpthread -lrt -Wl,-melf_x86_64 --sysroot=/project/sprelbrew/build/currentbrew/tools/x86_linux_2/amd64_sles_11.0.0/bosdeps/sles/11.1.0 -Wl,-rpath=/opt/ibmhpc/pe1400/ppe.pami/intel/lib64/pami64 -Wl,-rpath=/opt/ibmhpc/pe1400/mpich2/intel/lib64 -Wl,--enable-new-dtags -i-static conftest.c
For more complete information about compiler optimizations, see our Optimization Notice.