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

Difference between icc 11.1.073 and 13.1.0

ed_rosenbloom
Beginner
371 Views

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?

0 Kudos
3 Replies
TimP
Honored Contributor III
371 Views

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.

0 Kudos
JenniferJ
Moderator
371 Views

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

0 Kudos
ed_rosenbloom
Beginner
371 Views

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

0 Kudos
Reply