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

undefined reference to `_intel_fast_memmove'

matamala__marco
Beginner
2,070 Views

Hi,

When I'm trying to compile my code using the intel fortran compiler I receive this message:

/cm/shared/apps/intel-cluster-runtime/3.6/composer_xe_2013_sp1.0.080/compiler/lib/intel64/libifport.a(utility_alloccstr.o): In function `allocCstr':
/export/users/nbtester/efi2linux_nightly/branch-14_0/20130730_000000/libdev/libifport/portability/utility_alloccstr.c:(.text+0x45): undefined reference to `_intel_fast_memmove'
/cm/shared/apps/intel-cluster-runtime/3.6/composer_xe_2013_sp1.0.080/compiler/lib/intel64/libifcoremt.a(for_init.o): In function `for__signal_handler':
for_init.c:(.text+0x8ce): undefined reference to `_intel_fast_memmove'
for_init.c:(.text+0x8e7): undefined reference to `_intel_fast_memmove'
for_init.c:(.text+0x900): undefined reference to `_intel_fast_memmove'
for_init.c:(.text+0x919): undefined reference to `_intel_fast_memmove'
/cm/shared/apps/intel-cluster-runtime/3.6/composer_xe_2013_sp1.0.080/compiler/lib/intel64/libifcoremt.a(for_init.o):for_init.c:(.text+0x932): more undefined references to `_intel_fast_memmove' follow

and the code stops compiling returning error 1.

I've already tried to reinstall both the C and Fortran compilers (compxe_2013_sp1.1.106) but nothing change. The code was working before and it still works fine on windows. I'm using CentOS release 6.4 (Final).

0 Kudos
8 Replies
mecej4
Honored Contributor III
2,070 Views

Did you deliberately choose to link to a static library instead of the more usual practice of linking to a shared library? What options did you use when invoking the compiler?

0 Kudos
raysheppard
Beginner
2,070 Views

Large systems, i.e. supercomputers, pretty much require static builds  Thousands of users don't need to be lighting up the network fabric just because some computer scientists thought it would be neat to have them all be referencing remote libraries.  It would be great to actually answer the question instead of just adding your opinions to the state of the world.  Thanks.

 

0 Kudos
TimP
Honored Contributor III
2,070 Views

I don't take that question as a criticism, but possibly a request for more specific information.

I agree there's nothing abnormal about compile options such as -static-intel, if used consistently.  But how are we to know what the link step command was?

The library version quoted looks suspiciously like a discontinued beta test.  If, for example, an attempt was made to link against a mixture of beta and release compilers and libraries, such troubles might be expected.  Even if it were a bug in a beta release, reading the beta agreement should caution against expecting support on this forum.

Linking by using options such as ifort -# would produce verbose output on the steps taken at link, which might expose issues such as not having the paths set by sourceing the compilervars script.  You could also check by nm whether a static library which would satisfy that reference was searched after linking against those which require it.  Dynamic libraries (as well as Microsoft link.exe) allow more variations in link order, which might be among the questions mecej4 meant to raise.
 

0 Kudos
raysheppard
Beginner
2,070 Views

Thanks.  The "-#" switch is informative. Unfortunately I am too incompetent to understand what it is telling me.  Below is a line culled from the make.  Cray is using Intel v 13.1.3.192. It maps to "cc"  I have included first the static attempt and then one with -#.  Afterwards I repeated a dynamic try just for fun.  If I could be told what is missing, I certainly would appreciate it.

               Ray


rsheppar@login1:> cc -O -static -fPIC -static-intel -o /N/dc2/projects/ray/br2/am3/exp/../bin/mppnccombine.cray_hdf5 -I/opt/cray/netcdf/4.3.2/INTEL/140/include -I/opt/cray/hdf5/1.8.13/INTEL/140/include -L/opt/cray/netcdf/4.3.2/INTEL/140/lib -L/opt/cray/hdf5/1.8.13/INTEL/140/lib -I/opt/cray/parallel-netcdf/1.4.1/INTEL/140/include -L/opt/cray/parallel-netcdf/1.4.1/INTEL/140/lib -L/opt/intel/composer_xe_2013.5.192/compiler/lib/intel64 -lirc -lpnetcdf -lnetcdf -lhdf5_hl -lhdf5 mppnccombine.o                      /opt/cray/hdf5/1.8.13/INTEL/140/lib/libhdf5_intel.a(H5PL.o): In function `H5PL_load':
H5PL.c:(.text+0x3c7): warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/opt/cray/netcdf/4.3.2/INTEL/140/lib/libnetcdf_intel.a(libnetcdf3_la-posixio.o): In function `ncio_px_move':
/home/users/ulib/netcdf/4.3.2/rpm/BUILD/cray-netcdf-4.3.2-intel/netcdf-4.3.2/libsrc/posixio.c:879: undefined reference to `_intel_fast_memmove'
/home/users/ulib/netcdf/4.3.2/rpm/BUILD/cray-netcdf-4.3.2-intel/netcdf-4.3.2/libsrc/posixio.c:881: undefined reference to `_intel_fast_memmove'
/opt/cray/netcdf/4.3.2/INTEL/140/lib/libnetcdf_intel.a(libnetcdf3_la-posixio.o): In function `ncio_spx_move':
/home/users/ulib/netcdf/4.3.2/rpm/BUILD/cray-netcdf-4.3.2-intel/netcdf-4.3.2/libsrc/posixio.c:1308: undefined reference to `_intel_fast_memmove'
/home/users/ulib/netcdf/4.3.2/rpm/BUILD/cray-netcdf-4.3.2-intel/netcdf-4.3.2/libsrc/posixio.c:1310: undefined reference to `_intel_fast_memmove'
/opt/cray/netcdf/4.3.2/INTEL/140/lib/libnetcdf_intel.a(libnetcdf3_la-memio.o): In function `memio_move':
/home/users/ulib/netcdf/4.3.2/rpm/BUILD/cray-netcdf-4.3.2-intel/netcdf-4.3.2/libsrc/memio.c:561: undefined reference to `_intel_fast_memmove'
/opt/cray/hdf5/1.8.13/INTEL/140/lib/libhdf5_intel.a(H5B2int.o):H5B2int.c:(.text+0x12c3): more undefined references to `_intel_fast_memmove' follow


rsheppar@login1:> cc -O -static -# -fPIC -static-intel -o /N/dc2/projects/ray/br2/am3/exp/../bin/mppnccombine.cray_hdf5 -I/opt/cray/netcdf/4.3.2/INTEL/140/include -I/opt/cray/hdf5/1.8.13/INTEL/140/include -L/opt/cray/netcdf/4.3.2/INTEL/140/lib -L/opt/cray/hdf5/1.8.13/INTEL/140/lib -I/opt/cray/parallel-netcdf/1.4.1/INTEL/140/include -L/opt/cray/parallel-netcdf/1.4.1/INTEL/140/lib -L/opt/intel/composer_xe_2013.5.192/compiler/lib/intel64 -lirc -lpnetcdf -lnetcdf -lhdf5_hl -lhdf5 mppnccombine.o
/N/soft/cle4/intel/13.1.3/composer_xe_2013.5.192/bin/intel64/mcpcom  \
    -mP1OPT_version=13.1-intel64 \
    -mGLOB_diag_file=mppnccombine.diag \
    -mP1OPT_print_version=FALSE \
    -mCG_use_gas_got_workaround=F \
    -mP2OPT_align_option_used=TRUE \
    -mGLOB_gcc_version=430 \
    "-mGLOB_options_string=-I/opt/cray/netcdf/4.3.2/INTEL/140/include -I/opt/cray/hdf5/1.8.13/INTEL/140/include -I/opt/cray/parallel-netcdf/1.4.1/INTEL/140/include -I/opt/cray/udreg/2.3.2-1.0402.7546.1.5.gem/include -I/opt/cray/ugni/5.0-1.0402.7551.1.10.gem/include -I/opt/cray/pmi/5.0.4-1.0000.10161.132.18.gem/include -I/opt/cray/dmapp/4.0.1-1.0402.7784.4.1.gem/include -I/opt/cray/gni-headers/2.1-1.0402.7541.1.5.gem/include -I/opt/cray/xpmem/0.1-2.0402.45248.1.5.gem/include -I/opt/cray/rca/1.0.0-2.0402.47290.7.1.gem/include -I/opt/cray-hss-devel/7.1.0/include -I/opt/cray/krca/1.0.0-2.0402.46083.4.47.gem/include -I/opt/cray/mpt/7.0.2/gni/mpich2-intel/140/include -I/opt/cray/libsci/13.0.0/intel/140/interlagos/include -I/opt/fftw/3.3.4.0/interlagos/include -I/usr/include/alps -I/opt/cray/hdf5/1.8.13/intel/140/include -I/opt/cray/parallel-netcdf/1.4.1/intel/140/include -I/opt/cray/netcdf/4.3.2/intel/140/include -mavx -static -O -# -fPIC -static-intel -o /N/dc2/projects/ray/br2/am3/exp/../bin/mppnccombine.cray_hdf5 -L/opt/cray/netcdf/4.3.2/INTEL/140/lib -L/opt/cray/hdf5/1.8.13/INTEL/140/lib -L/opt/cray/parallel-netcdf/1.4.1/INTEL/140/lib -L/opt/intel/composer_xe_2013.5.192/compiler/lib/intel64 -lirc -lpnetcdf -lnetcdf -lhdf5_hl -lhdf5 -L/opt/cray/udreg/2.3.2-1.0402.7546.1.5.gem/lib64 -L/opt/cray/ugni/5.0-1.0402.7551.1.10.gem/lib64 -L/opt/cray/pmi/5.0.4-1.0000.10161.132.18.gem/lib64 -L/opt/cray/dmapp/4.0.1-1.0402.7784.4.1.gem/lib64 -L/opt/cray/xpmem/0.1-2.0402.45248.1.5.gem/lib64 -L/opt/cray/rca/1.0.0-2.0402.47290.7.1.gem/lib64 -lrca -Wl,-L/opt/cray/atp/1.7.4/lib/ -Wl,--undefined=_ATP_Data_Globals -Wl,--undefined=__atpHandlerInstall -Wl,-lAtpSigHCommData -Wl,-lAtpSigHandler -D__CRAYXE -D__CRAYXT_COMPUTE_LINUX_TARGET -D__TARGET_LINUX__ -isystem /opt/cray/xe-sysroot/4.2.34/usr/include -L/opt/cray/mpt/7.0.2/gni/mpich2-intel/140/lib -L/opt/cray/libsci/13.0.0/intel/140/interlagos/lib -L/opt/fftw/3.3.4.0/interlagos/lib -L/opt/cray/hdf5/1.8.13/intel/140/lib -L/opt/cray/parallel-netcdf/1.4.1/intel/140/lib -L/opt/cray/netcdf/4.3.2/intel/140/lib -L/opt/cray/xe-sysroot/4.2.34/usr/lib64 -L/opt/cray/xe-sysroot/4.2.34/lib64 -L/opt/cray/xe-sysroot/4.2.34/usr/lib/alps -L/usr/lib/alps -Wl,--start-group -lpnetcdf -lnetcdf_intel -lhdf5_hl_intel -lhdf5_intel -lz -ldl -lsci_intel_mpi_mp -lsci_intel_mp -lstdc++ -lifcore -lfftw3_mpi -lfftw3f_mpi -lfftw3_threads -lfftw3f_threads -lfftw3 -lfftw3f -lmpich_intel -lmpichf90_intel -lmpl -lrt -lxpmem -ldmapp -lugni -lpmi -lalpslli -lalpsutil -ludreg -lpthread -limf -lifport -lifcore -lm -Wl,--end-group -liomp5 -lpthread" \
    -mGLOB_position_independent_code \
    -mGLOB_preemption_model=3 \
    -mGLOB_cxx_limited_range=FALSE \
    -mCG_extend_parms=FALSE \
    -mGLOB_compiler_bin_directory=/N/soft/cle4/intel/13.1.3/composer_xe_2013.5.192/bin/intel64 \
    -mGLOB_as_output_backup_file_name=/tmp/icct7dV1was_.s \
    -mIPOPT_activate \
    -mGLOB_machine_model=GLOB_MACHINE_MODEL_EFI2 \
    -mGLOB_product_id_code=0x22006d93 \
    -mCG_bnl_movbe=T \
    -mGLOB_extended_instructions=0x800 \
    -mP3OPT_use_mspp_call_convention \
    -mPGOPTI_value_profile_use=T \
    -mP2OPT_il0_array_sections=TRUE \
    -mGLOB_offload_mode=1 \
    -mP2OPT_offload_unique_var_string=icc263550849ZIkWQ2 \
    -mGLOB_opt_level=2 \
    -mP2OPT_hlo_level=2 \
    -mP2OPT_hlo \
    -mP2OPT_hpo_rtt_control=0 \
    -mIPOPT_args_in_regs=0 \
    -mP2OPT_disam_assume_nonstd_intent_in=FALSE \
    -mGLOB_imf_mapping_library=/N/soft/cle4/intel/13.1.3/composer_xe_2013.5.192/bin/intel64/libiml_attr.so \
    -mIPOPT_link \
    -mIPOPT_ipo_activate \
    -mIPOPT_mo_activate \
    -mIPOPT_source_files_list=/tmp/iccslisT4mR1p \
    -mIPOPT_mo_global_data \
    -mIPOPT_link_script_file=/tmp/iccscript33rNls \
    -mIPOPT_link_version=2.21.1 \
    "-mIPOPT_cmdline_link="/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../lib64/crt1.o" "/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../lib64/crti.o" "/usr/lib64/gcc/x86_64-suse-linux/4.3/crtbeginT.o" "--build-id" "-static" "-L/opt/cray/netcdf/4.3.2/INTEL/140/lib" "-L/opt/cray/hdf5/1.8.13/INTEL/140/lib" "-L/opt/cray/parallel-netcdf/1.4.1/INTEL/140/lib" "-L/opt/intel/composer_xe_2013.5.192/compiler/lib/intel64" "-L/opt/cray/udreg/2.3.2-1.0402.7546.1.5.gem/lib64" "-L/opt/cray/ugni/5.0-1.0402.7551.1.10.gem/lib64" "-L/opt/cray/pmi/5.0.4-1.0000.10161.132.18.gem/lib64" "-L/opt/cray/dmapp/4.0.1-1.0402.7784.4.1.gem/lib64" "-L/opt/cray/xpmem/0.1-2.0402.45248.1.5.gem/lib64" "-L/opt/cray/rca/1.0.0-2.0402.47290.7.1.gem/lib64" "-L/opt/cray/mpt/7.0.2/gni/mpich2-intel/140/lib" "-L/opt/cray/libsci/13.0.0/intel/140/interlagos/lib" "-L/opt/fftw/3.3.4.0/interlagos/lib" "-L/opt/cray/hdf5/1.8.13/intel/140/lib" "-L/opt/cray/parallel-netcdf/1.4.1/intel/140/lib" "-L/opt/cray/netcdf/4.3.2/intel/140/lib" "-L/opt/cray/xe-sysroot/4.2.34/usr/lib64" "-L/opt/cray/xe-sysroot/4.2.34/lib64" "-L/opt/cray/xe-sysroot/4.2.34/usr/lib/alps" "-L/usr/lib/alps" "-o" "/N/dc2/projects/ray/br2/am3/exp/../bin/mppnccombine.cray_hdf5" "-L/opt/intel/composer_xe_2013.5.192/compiler/lib/intel64" "-L/N/soft/cle4/intel/13.1.3/composer_xe_2013.5.192/compiler/lib/intel64" "-L/usr/lib64/gcc/x86_64-suse-linux/4.3/" "-L/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../lib64" "-L/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../lib64/" "-L/lib/../lib64" "-L/lib/../lib64/" "-L/usr/lib/../lib64" "-L/usr/lib/../lib64/" "-L/opt/intel/composer_xe_2013.5.192/compiler/lib/intel64/" "-L/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse-linux/lib/" "-L/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../" "-L/lib64" "-L/lib/" "-L/usr/lib64" "-L/usr/lib" "-lirc" "-lpnetcdf" "-lnetcdf" "-lhdf5_hl" "-lhdf5" "mppnccombine.o" "-lrca" "-L/opt/cray/atp/1.7.4/lib/" "--undefined=_ATP_Data_Globals" "--undefined=__atpHandlerInstall" "-lAtpSigHCommData" "-lAtpSigHandler" "--start-group" "-lpnetcdf" "-lnetcdf_intel" "-lhdf5_hl_intel" "-lhdf5_intel" "-lz" "-ldl" "-lsci_intel_mpi_mp" "-lsci_intel_mp" "-lstdc++" "-lifcore" "-lfftw3_mpi" "-lfftw3f_mpi" "-lfftw3_threads" "-lfftw3f_threads" "-lfftw3" "-lfftw3f" "-lmpich_intel" "-lmpichf90_intel" "-lmpl" "-lrt" "-lxpmem" "-ldmapp" "-lugni" "-lpmi" "-lalpslli" "-lalpsutil" "-ludreg" "-lpthread" "-limf" "-lifport" "-lifcore" "-L/N/soft/cle4/intel/13.1.3/composer_xe_2013.5.192/compiler/lib/intel64" "-limf" "-lm" "--end-group" "-liomp5" "-lpthread" "-limf" "-lsvml" "-lirng" "-lm" "-lipgo" "-ldecimal" "-lgcc" "-lgcc_eh" "-lirc" "-lsvml" "-lc" "-lgcc" "-lgcc_eh" "-lirc_s" "-ldl" "-lc" "/usr/lib64/gcc/x86_64-suse-linux/4.3/crtend.o" "/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../lib64/crtn.o"" \
    -mIPOPT_il_in_obj \
    -mIPOPT_ipo_activate_warn=FALSE \
    -mIPOPT_obj_output_file_name=/tmp/ipo_iccK3Bl6b.o \
    -mIPOPT_whole_archive_fixup_file_name=/tmp/iccwarchweGKIS \
    -mGLOB_linker_version=2.21.1 \
    -mGLOB_long_size_64 \
    -mGLOB_routine_pointer_size_64 \
    -mGLOB_driver_tempfile_name=/tmp/icctempfileA0uLeV \
    -mP3OPT_asm_target=P3OPT_ASM_TARGET_GAS \
    -mGLOB_async_unwind_tables=TRUE \
    -mGLOB_obj_output_file=/tmp/ipo_iccK3Bl6b.o \
    -mGLOB_source_dialect=GLOB_SOURCE_DIALECT_NONE \
    -mP1OPT_source_file_name=ipo_out.c \
    mppnccombine.o \
    -mIPOPT_object_files=T \
    -mIPOPT_assembly_files=/tmp/iccalisGfkaKg \
    -mIPOPT_generated_tempfiles=/tmp/iccelisMh543i \
    -mIPOPT_embedded_object_base_name=/tmp/icceobjt4a0nl \
    -mIPOPT_cmdline_link_new_name=/tmp/iccllisWbFVHn

ld  \
    /usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../lib64/crt1.o \
    /usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../lib64/crti.o \
    /usr/lib64/gcc/x86_64-suse-linux/4.3/crtbeginT.o \
    --build-id \
    -static \
    -L/opt/cray/netcdf/4.3.2/INTEL/140/lib \
    -L/opt/cray/hdf5/1.8.13/INTEL/140/lib \
    -L/opt/cray/parallel-netcdf/1.4.1/INTEL/140/lib \
    -L/opt/intel/composer_xe_2013.5.192/compiler/lib/intel64 \
    -L/opt/cray/udreg/2.3.2-1.0402.7546.1.5.gem/lib64 \
    -L/opt/cray/ugni/5.0-1.0402.7551.1.10.gem/lib64 \
    -L/opt/cray/pmi/5.0.4-1.0000.10161.132.18.gem/lib64 \
    -L/opt/cray/dmapp/4.0.1-1.0402.7784.4.1.gem/lib64 \
    -L/opt/cray/xpmem/0.1-2.0402.45248.1.5.gem/lib64 \
    -L/opt/cray/rca/1.0.0-2.0402.47290.7.1.gem/lib64 \
    -L/opt/cray/mpt/7.0.2/gni/mpich2-intel/140/lib \
    -L/opt/cray/libsci/13.0.0/intel/140/interlagos/lib \
    -L/opt/fftw/3.3.4.0/interlagos/lib \
    -L/opt/cray/hdf5/1.8.13/intel/140/lib \
    -L/opt/cray/parallel-netcdf/1.4.1/intel/140/lib \
    -L/opt/cray/netcdf/4.3.2/intel/140/lib \
    -L/opt/cray/xe-sysroot/4.2.34/usr/lib64 \
    -L/opt/cray/xe-sysroot/4.2.34/lib64 \
    -L/opt/cray/xe-sysroot/4.2.34/usr/lib/alps \
    -L/usr/lib/alps \
    -o \
    /N/dc2/projects/ray/br2/am3/exp/../bin/mppnccombine.cray_hdf5 \
    -L/opt/intel/composer_xe_2013.5.192/compiler/lib/intel64 \
    -L/N/soft/cle4/intel/13.1.3/composer_xe_2013.5.192/compiler/lib/intel64 \
    -L/usr/lib64/gcc/x86_64-suse-linux/4.3/ \
    -L/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../lib64 \
    -L/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../lib64/ \
    -L/lib/../lib64 \
    -L/lib/../lib64/ \
    -L/usr/lib/../lib64 \
    -L/usr/lib/../lib64/ \
    -L/opt/intel/composer_xe_2013.5.192/compiler/lib/intel64/ \
    -L/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse-linux/lib/ \
    -L/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../ \
    -L/lib64 \
    -L/lib/ \
    -L/usr/lib64 \
    -L/usr/lib \
    -lirc \
    -lpnetcdf \
    -lnetcdf \
    -lhdf5_hl \
    -lhdf5 \
    mppnccombine.o \
    -lrca \
    -L/opt/cray/atp/1.7.4/lib/ \
    --undefined=_ATP_Data_Globals \
    --undefined=__atpHandlerInstall \
    -lAtpSigHCommData \
    -lAtpSigHandler \
    --start-group \
    -lpnetcdf \
    -lnetcdf_intel \
    -lhdf5_hl_intel \
    -lhdf5_intel \
    -lz \
    -ldl \
    -lsci_intel_mpi_mp \
    -lsci_intel_mp \
    -lstdc++ \
    -lifcore \
    -lfftw3_mpi \
    -lfftw3f_mpi \
    -lfftw3_threads \
    -lfftw3f_threads \
    -lfftw3 \
    -lfftw3f \
    -lmpich_intel \
    -lmpichf90_intel \
    -lmpl \
    -lrt \
    -lxpmem \
    -ldmapp \
    -lugni \
    -lpmi \
    -lalpslli \
    -lalpsutil \
    -ludreg \
    -lpthread \
    -limf \
    -lifport \
    -lifcore \
    -L/N/soft/cle4/intel/13.1.3/composer_xe_2013.5.192/compiler/lib/intel64 \
    -limf \
    -lm \
    --end-group \
    -liomp5 \
    -lpthread \
    -limf \
    -lsvml \
    -lirng \
    -lm \
    -lipgo \
    -ldecimal \
    -lgcc \
    -lgcc_eh \
    -lirc \
    -lsvml \
    -lc \
    -lgcc \
    -lgcc_eh \
    -lirc_s \
    -ldl \
    -lc \
    /usr/lib64/gcc/x86_64-suse-linux/4.3/crtend.o \
    /usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../lib64/crtn.o

rm /tmp/icclibgcc3z9eS4
rm /tmp/iccgnudirstpq3T6
rm /tmp/iccolisJxNfqe
rm /tmp/iccalisGfkaKg
rm /tmp/iccelisMh543i
rm /tmp/iccllisWbFVHn
rm /tmp/iccslisT4mR1p
rm /tmp/iccscript33rNls
rm /tmp/ipo_iccK3Bl6b.o
rm /tmp/iccgasahaKFu
rm /tmp/icct7dV1was_.s
rm /tmp/iccldashvRWo7nz
rm /tmp/iccgnudirshIj3KB
rm /tmp/iccgnudirswcfv8D
rm /tmp/iccgnudirsEd4vwG
rm /tmp/iccldashvYn22UI
rm /tmp/iccgnudirssUSdkL
rm /tmp/iccgnudirs3CUcLN
rm /tmp/iccgnudirslkiKcQ
rm /tmp/icctempfileA0uLeV
rm /tmp/iccargjKGVLX

rsheppar@login1:> cc -O -dynamic -fPIC  -o /N/dc2/projects/ray/br2/am3/exp/../bin/mppnccombine.cray_hdf5 -I/opt/cray/netcdf/4.3.2/INTEL/140/include -I/opt/cray/hdf5/1.8.13/INTEL/140/include -L/opt/cray/netcdf/4.3.2/INTEL/140/lib -L/opt/cray/hdf5/1.8.13/INTEL/140/lib -I/opt/cray/parallel-netcdf/1.4.1/INTEL/140/include -L/opt/cray/parallel-netcdf/1.4.1/INTEL/140/lib -L/opt/intel/composer_xe_2013.5.192/compiler/lib/intel64 -lirc -lpnetcdf -lnetcdf -lhdf5_hl -lhdf5 mppnccombine.o
/opt/cray/netcdf/4.3.2/INTEL/140/lib/libnetcdf.so: undefined reference to `_intel_fast_memmove'


rsheppar@login1:> cc -O -dynamic -# -fPIC  -o /N/dc2/projects/ray/br2/am3/exp/../bin/mppnccombine.cray_hdf5 -I/opt/cray/netcdf/4.3.2/INTEL/140/include -I/opt/cray/hdf5/1.8.13/INTEL/140/include -L/opt/cray/netcdf/4.3.2/INTEL/140/lib -L/opt/cray/hdf5/1.8.13/INTEL/140/lib -I/opt/cray/parallel-netcdf/1.4.1/INTEL/140/include -L/opt/cray/parallel-netcdf/1.4.1/INTEL/140/lib -L/opt/intel/composer_xe_2013.5.192/compiler/lib/intel64 -lirc -lpnetcdf -lnetcdf -lhdf5_hl -lhdf5 mppnccombine.o
/N/soft/cle4/intel/13.1.3/composer_xe_2013.5.192/bin/intel64/mcpcom  \
    -mP1OPT_version=13.1-intel64 \
    -mGLOB_diag_file=mppnccombine.diag \
    -mP1OPT_print_version=FALSE \
    -mCG_use_gas_got_workaround=F \
    -mP2OPT_align_option_used=TRUE \
    -mGLOB_gcc_version=430 \
    "-mGLOB_options_string=-I/opt/cray/netcdf/4.3.2/INTEL/140/include -I/opt/cray/hdf5/1.8.13/INTEL/140/include -I/opt/cray/parallel-netcdf/1.4.1/INTEL/140/include -I/opt/cray/udreg/2.3.2-1.0402.7546.1.5.gem/include -I/opt/cray/ugni/5.0-1.0402.7551.1.10.gem/include -I/opt/cray/pmi/5.0.4-1.0000.10161.132.18.gem/include -I/opt/cray/dmapp/4.0.1-1.0402.7784.4.1.gem/include -I/opt/cray/gni-headers/2.1-1.0402.7541.1.5.gem/include -I/opt/cray/xpmem/0.1-2.0402.45248.1.5.gem/include -I/opt/cray/rca/1.0.0-2.0402.47290.7.1.gem/include -I/opt/cray-hss-devel/7.1.0/include -I/opt/cray/krca/1.0.0-2.0402.46083.4.47.gem/include -I/opt/cray/mpt/7.0.2/gni/mpich2-intel/140/include -I/opt/cray/libsci/13.0.0/intel/140/interlagos/include -I/opt/fftw/3.3.4.0/interlagos/include -I/usr/include/alps -I/opt/cray/hdf5/1.8.13/intel/140/include -I/opt/cray/parallel-netcdf/1.4.1/intel/140/include -I/opt/cray/netcdf/4.3.2/intel/140/include -mavx -lsvml -lintlc -O -# -fPIC -o /N/dc2/projects/ray/br2/am3/exp/../bin/mppnccombine.cray_hdf5 -L/opt/cray/netcdf/4.3.2/INTEL/140/lib -L/opt/cray/hdf5/1.8.13/INTEL/140/lib -L/opt/cray/parallel-netcdf/1.4.1/INTEL/140/lib -L/opt/intel/composer_xe_2013.5.192/compiler/lib/intel64 -lirc -lpnetcdf -lnetcdf -lhdf5_hl -lhdf5 -Wl,-rpath=/opt/intel/composer_xe_2013.5.192/compiler/lib/intel64 -L/opt/cray/udreg/2.3.2-1.0402.7546.1.5.gem/lib64 -L/opt/cray/ugni/5.0-1.0402.7551.1.10.gem/lib64 -L/opt/cray/pmi/5.0.4-1.0000.10161.132.18.gem/lib64 -L/opt/cray/dmapp/4.0.1-1.0402.7784.4.1.gem/lib64 -L/opt/cray/xpmem/0.1-2.0402.45248.1.5.gem/lib64 -L/opt/cray/rca/1.0.0-2.0402.47290.7.1.gem/lib64 -lrca -Wl,-L/opt/cray/atp/1.7.4/lib/ -Wl,--undefined=_ATP_Data_Globals -Wl,--undefined=__atpHandlerInstall -Wl,-lAtpSigHCommData -Wl,-lAtpSigHandler -D__CRAYXE -D__CRAYXT_COMPUTE_LINUX_TARGET -D__TARGET_LINUX__ -isystem /opt/cray/xe-sysroot/4.2.34/usr/include -L/opt/cray/mpt/7.0.2/gni/mpich2-intel/140/lib -L/opt/cray/libsci/13.0.0/intel/140/interlagos/lib -L/opt/fftw/3.3.4.0/interlagos/lib -L/opt/cray/hdf5/1.8.13/intel/140/lib -L/opt/cray/parallel-netcdf/1.4.1/intel/140/lib -L/opt/cray/netcdf/4.3.2/intel/140/lib -L/opt/cray/xe-sysroot/4.2.34/usr/lib64 -L/opt/cray/xe-sysroot/4.2.34/lib64 -L/opt/cray/xe-sysroot/4.2.34/usr/lib/alps -L/usr/lib/alps -Wl,--start-group -lpnetcdf -lnetcdf_intel -lhdf5_hl_intel -lhdf5_intel -lz -ldl -lsci_intel_mpi_mp -lsci_intel_mp -lstdc++ -lifcore -lfftw3_mpi -lfftw3f_mpi -lfftw3_threads -lfftw3f_threads -lfftw3 -lfftw3f -lmpich_intel -lmpichf90_intel -lmpl -lrt -lpmi -lalpslli -lalpsutil -lpthread -limf -lifport -lifcore -lm -Wl,--end-group -liomp5 -lpthread" \
    -mGLOB_position_independent_code \
    -mGLOB_preemption_model=3 \
    -mGLOB_cxx_limited_range=FALSE \
    -mCG_extend_parms=FALSE \
    -mGLOB_compiler_bin_directory=/N/soft/cle4/intel/13.1.3/composer_xe_2013.5.192/bin/intel64 \
    -mGLOB_as_output_backup_file_name=/tmp/iccqoYY2Mas_.s \
    -mIPOPT_activate \
    -mGLOB_machine_model=GLOB_MACHINE_MODEL_EFI2 \
    -mGLOB_product_id_code=0x22006d93 \
    -mCG_bnl_movbe=T \
    -mGLOB_extended_instructions=0x800 \
    -mP3OPT_use_mspp_call_convention \
    -mPGOPTI_value_profile_use=T \
    -mP2OPT_il0_array_sections=TRUE \
    -mGLOB_offload_mode=1 \
    -mP2OPT_offload_unique_var_string=icc1477093525cLRXJn \
    -mGLOB_opt_level=2 \
    -mP2OPT_hlo_level=2 \
    -mP2OPT_hlo \
    -mP2OPT_hpo_rtt_control=0 \
    -mIPOPT_args_in_regs=0 \
    -mP2OPT_disam_assume_nonstd_intent_in=FALSE \
    -mGLOB_imf_mapping_library=/N/soft/cle4/intel/13.1.3/composer_xe_2013.5.192/bin/intel64/libiml_attr.so \
    -mIPOPT_link \
    -mIPOPT_ipo_activate \
    -mIPOPT_mo_activate \
    -mIPOPT_source_files_list=/tmp/iccsliso5tA17 \
    -mIPOPT_mo_global_data \
    -mIPOPT_link_script_file=/tmp/iccscript55fomG \
    -mIPOPT_link_version=2.21.1 \
    "-mIPOPT_cmdline_link="/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../lib64/crt1.o" "/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../lib64/crti.o" "/usr/lib64/gcc/x86_64-suse-linux/4.3/crtbegin.o" "--eh-frame-hdr" "--build-id" "-dynamic-linker" "/lib64/ld-linux-x86-64.so.2" "-L/opt/cray/netcdf/4.3.2/INTEL/140/lib" "-L/opt/cray/hdf5/1.8.13/INTEL/140/lib" "-L/opt/cray/parallel-netcdf/1.4.1/INTEL/140/lib" "-L/opt/intel/composer_xe_2013.5.192/compiler/lib/intel64" "-L/opt/cray/udreg/2.3.2-1.0402.7546.1.5.gem/lib64" "-L/opt/cray/ugni/5.0-1.0402.7551.1.10.gem/lib64" "-L/opt/cray/pmi/5.0.4-1.0000.10161.132.18.gem/lib64" "-L/opt/cray/dmapp/4.0.1-1.0402.7784.4.1.gem/lib64" "-L/opt/cray/xpmem/0.1-2.0402.45248.1.5.gem/lib64" "-L/opt/cray/rca/1.0.0-2.0402.47290.7.1.gem/lib64" "-L/opt/cray/mpt/7.0.2/gni/mpich2-intel/140/lib" "-L/opt/cray/libsci/13.0.0/intel/140/interlagos/lib" "-L/opt/fftw/3.3.4.0/interlagos/lib" "-L/opt/cray/hdf5/1.8.13/intel/140/lib" "-L/opt/cray/parallel-netcdf/1.4.1/intel/140/lib" "-L/opt/cray/netcdf/4.3.2/intel/140/lib" "-L/opt/cray/xe-sysroot/4.2.34/usr/lib64" "-L/opt/cray/xe-sysroot/4.2.34/lib64" "-L/opt/cray/xe-sysroot/4.2.34/usr/lib/alps" "-L/usr/lib/alps" "-o" "/N/dc2/projects/ray/br2/am3/exp/../bin/mppnccombine.cray_hdf5" "-L/opt/intel/composer_xe_2013.5.192/compiler/lib/intel64" "-L/N/soft/cle4/intel/13.1.3/composer_xe_2013.5.192/compiler/lib/intel64" "-L/usr/lib64/gcc/x86_64-suse-linux/4.3/" "-L/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../lib64" "-L/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../lib64/" "-L/lib/../lib64" "-L/lib/../lib64/" "-L/usr/lib/../lib64" "-L/usr/lib/../lib64/" "-L/opt/intel/composer_xe_2013.5.192/compiler/lib/intel64/" "-L/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse-linux/lib/" "-L/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../" "-L/lib64" "-L/lib/" "-L/usr/lib64" "-L/usr/lib" "-lsvml" "-lintlc" "-lirc" "-lpnetcdf" "-lnetcdf" "-lhdf5_hl" "-lhdf5" "mppnccombine.o" "-rpath=/opt/intel/composer_xe_2013.5.192/compiler/lib/intel64" "-lrca" "-L/opt/cray/atp/1.7.4/lib/" "--undefined=_ATP_Data_Globals" "--undefined=__atpHandlerInstall" "-lAtpSigHCommData" "-lAtpSigHandler" "--start-group" "-lpnetcdf" "-lnetcdf_intel" "-lhdf5_hl_intel" "-lhdf5_intel" "-lz" "-ldl" "-lsci_intel_mpi_mp" "-lsci_intel_mp" "-lstdc++" "-lifcore" "-lfftw3_mpi" "-lfftw3f_mpi" "-lfftw3_threads" "-lfftw3f_threads" "-lfftw3" "-lfftw3f" "-lmpich_intel" "-lmpichf90_intel" "-lmpl" "-lrt" "-lpmi" "-lalpslli" "-lalpsutil" "-lpthread" "-limf" "-lifport" "-lifcore" "-L/N/soft/cle4/intel/13.1.3/composer_xe_2013.5.192/compiler/lib/intel64" "-Bstatic" "-limf" "-Bdynamic" "-lm" "--end-group" "-liomp5" "-lpthread" "-Bstatic" "-limf" "-lsvml" "-lirng" "-Bdynamic" "-lm" "-Bstatic" "-lipgo" "-ldecimal" "--as-needed" "-Bdynamic" "-lcilkrts" "-lstdc++" "--no-as-needed" "-lgcc" "-lgcc_s" "-Bstatic" "-lirc" "-lsvml" "-Bdynamic" "-lc" "-lgcc" "-lgcc_s" "-Bstatic" "-lirc_s" "-Bdynamic" "-ldl" "-lc" "/usr/lib64/gcc/x86_64-suse-linux/4.3/crtend.o" "/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../lib64/crtn.o"" \
    -mIPOPT_il_in_obj \
    -mIPOPT_ipo_activate_warn=FALSE \
    -mIPOPT_obj_output_file_name=/tmp/ipo_iccuWtS0N.o \
    -mIPOPT_whole_archive_fixup_file_name=/tmp/iccwarchKXHJZk \
    -mGLOB_linker_version=2.21.1 \
    -mGLOB_long_size_64 \
    -mGLOB_routine_pointer_size_64 \
    -mGLOB_driver_tempfile_name=/tmp/icctempfileXNXOqT \
    -mP3OPT_asm_target=P3OPT_ASM_TARGET_GAS \
    -mGLOB_async_unwind_tables=TRUE \
    -mGLOB_obj_output_file=/tmp/ipo_iccuWtS0N.o \
    -mGLOB_source_dialect=GLOB_SOURCE_DIALECT_NONE \
    -mP1OPT_source_file_name=ipo_out.c \
    mppnccombine.o \
    -mIPOPT_object_files=T \
    -mIPOPT_assembly_files=/tmp/iccalisxSkqGU \
    -mIPOPT_generated_tempfiles=/tmp/iccelisCTUc1s \
    -mIPOPT_embedded_object_base_name=/tmp/icceobjpzJZl1 \
    -mIPOPT_cmdline_link_new_name=/tmp/iccllisrlYMGz

ld  \
    /usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../lib64/crt1.o \
    /usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../lib64/crti.o \
    /usr/lib64/gcc/x86_64-suse-linux/4.3/crtbegin.o \
    --eh-frame-hdr \
    --build-id \
    -dynamic-linker \
    /lib64/ld-linux-x86-64.so.2 \
    -L/opt/cray/netcdf/4.3.2/INTEL/140/lib \
    -L/opt/cray/hdf5/1.8.13/INTEL/140/lib \
    -L/opt/cray/parallel-netcdf/1.4.1/INTEL/140/lib \
    -L/opt/intel/composer_xe_2013.5.192/compiler/lib/intel64 \
    -L/opt/cray/udreg/2.3.2-1.0402.7546.1.5.gem/lib64 \
    -L/opt/cray/ugni/5.0-1.0402.7551.1.10.gem/lib64 \
    -L/opt/cray/pmi/5.0.4-1.0000.10161.132.18.gem/lib64 \
    -L/opt/cray/dmapp/4.0.1-1.0402.7784.4.1.gem/lib64 \
    -L/opt/cray/xpmem/0.1-2.0402.45248.1.5.gem/lib64 \
    -L/opt/cray/rca/1.0.0-2.0402.47290.7.1.gem/lib64 \
    -L/opt/cray/mpt/7.0.2/gni/mpich2-intel/140/lib \
    -L/opt/cray/libsci/13.0.0/intel/140/interlagos/lib \
    -L/opt/fftw/3.3.4.0/interlagos/lib \
    -L/opt/cray/hdf5/1.8.13/intel/140/lib \
    -L/opt/cray/parallel-netcdf/1.4.1/intel/140/lib \
    -L/opt/cray/netcdf/4.3.2/intel/140/lib \
    -L/opt/cray/xe-sysroot/4.2.34/usr/lib64 \
    -L/opt/cray/xe-sysroot/4.2.34/lib64 \
    -L/opt/cray/xe-sysroot/4.2.34/usr/lib/alps \
    -L/usr/lib/alps \
    -o \
    /N/dc2/projects/ray/br2/am3/exp/../bin/mppnccombine.cray_hdf5 \
    -L/opt/intel/composer_xe_2013.5.192/compiler/lib/intel64 \
    -L/N/soft/cle4/intel/13.1.3/composer_xe_2013.5.192/compiler/lib/intel64 \
    -L/usr/lib64/gcc/x86_64-suse-linux/4.3/ \
    -L/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../lib64 \
    -L/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../lib64/ \
    -L/lib/../lib64 \
    -L/lib/../lib64/ \
    -L/usr/lib/../lib64 \
    -L/usr/lib/../lib64/ \
    -L/opt/intel/composer_xe_2013.5.192/compiler/lib/intel64/ \
    -L/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse-linux/lib/ \
    -L/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../ \
    -L/lib64 \
    -L/lib/ \
    -L/usr/lib64 \
    -L/usr/lib \
    -lsvml \
    -lintlc \
    -lirc \
    -lpnetcdf \
    -lnetcdf \
    -lhdf5_hl \
    -lhdf5 \
    mppnccombine.o \
    -rpath=/opt/intel/composer_xe_2013.5.192/compiler/lib/intel64 \
    -lrca \
    -L/opt/cray/atp/1.7.4/lib/ \
    --undefined=_ATP_Data_Globals \
    --undefined=__atpHandlerInstall \
    -lAtpSigHCommData \
    -lAtpSigHandler \
    --start-group \
    -lpnetcdf \
    -lnetcdf_intel \
    -lhdf5_hl_intel \
    -lhdf5_intel \
    -lz \
    -ldl \
    -lsci_intel_mpi_mp \
    -lsci_intel_mp \
    -lstdc++ \
    -lifcore \
    -lfftw3_mpi \
    -lfftw3f_mpi \
    -lfftw3_threads \
    -lfftw3f_threads \
    -lfftw3 \
    -lfftw3f \
    -lmpich_intel \
    -lmpichf90_intel \
    -lmpl \
    -lrt \
    -lpmi \
    -lalpslli \
    -lalpsutil \
    -lpthread \
    -limf \
    -lifport \
    -lifcore \
    -L/N/soft/cle4/intel/13.1.3/composer_xe_2013.5.192/compiler/lib/intel64 \
    -Bstatic \
    -limf \
    -Bdynamic \
    -lm \
    --end-group \
    -liomp5 \
    -lpthread \
    -Bstatic \
    -limf \
    -lsvml \
    -lirng \
    -Bdynamic \
    -lm \
    -Bstatic \
    -lipgo \
    -ldecimal \
    --as-needed \
    -Bdynamic \
    -lcilkrts \
    -lstdc++ \
    --no-as-needed \
    -lgcc \
    -lgcc_s \
    -Bstatic \
    -lirc \
    -lsvml \
    -Bdynamic \
    -lc \
    -lgcc \
    -lgcc_s \
    -Bstatic \
    -lirc_s \
    -Bdynamic \
    -ldl \
    -lc \
    /usr/lib64/gcc/x86_64-suse-linux/4.3/crtend.o \
    /usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../lib64/crtn.o

rm /tmp/icclibgccVOqcLV
rm /tmp/iccgnudirsLrSTMt
rm /tmp/iccolisFibElm
rm /tmp/iccalisxSkqGU
rm /tmp/iccelisCTUc1s
rm /tmp/iccllisrlYMGz
rm /tmp/iccsliso5tA17
rm /tmp/iccscript55fomG
rm /tmp/ipo_iccuWtS0N.o
rm /tmp/iccgasAGMcHe
rm /tmp/iccqoYY2Mas_.s
rm /tmp/iccldashvWxmMol
rm /tmp/iccgnudirs4qOiLT
rm /tmp/iccgnudirscUll8r
rm /tmp/iccgnudirsSHlUv0
rm /tmp/iccldashvHEvZTy
rm /tmp/iccgnudirs8qJOi7
rm /tmp/iccldashvS5S9HF
rm /tmp/iccgnudirsdEJ97d
rm /tmp/iccgnudirscXXEyM
rm /tmp/icctempfileXNXOqT
rm /tmp/iccargKtiNSr
 

0 Kudos
TimP
Honored Contributor III
2,070 Views

As you apparently are depending on -L and -l directives to find the Intel compiler libraries, you will need to put your hdf5 and netcdf link directives ahead of the Intel compiler libraries.

Normally, you would source the appropriate compilervars script, and leave out the specific icc library directives, as icc adds the proper directories when it creates the ld script which you see in your echo.  If your system is set up to use some other scheme than compilervars, such as modules, to put the correct compiler and libraries on PATH and LD_LIBRARY_PATH, those local instructions should be followed.

It doesn't hurt to search libraries more than once, but they do need to be searched after searching the libraries which create dependencies.  Gnu ld doesn't do multiple search passes unless you specify them by start-group....end-group clauses.

It's not immediately clear to me in the full echo which library is out of order, or whether the cc => icc is choosing a different directory from the one you want.

Apparently, you have set up such that cc invokes icc, where normally it would invoke gcc, which doesn't know which Intel compiler libraries are needed.

If one of those libraries was built by a current Intel compiler, you may need to use that compiler and its libraries to link.  A lot has happened since the compiler you quote was current, including my retirement.

0 Kudos
jimdempseyatthecove
Honored Contributor III
2,070 Views

If library search order is an issue (as Tim eludes to), and since the problem is related to `_intel_fast_memmove' being undefined, the cause can include:

a) none of the libraries contain `_intel_fast_memmove'

b) library search order creates dependency on `_intel_fast_memmove' after different library containing `_intel_fast_memmove' was loaded.

The suggestion I present here will fix b)

Create a dummy .C function that calls an extern "C" function void intel_fast_memmove(you figure out the remainder of the signature);

Assuming that `_intel_fast_memmove' is in an early library and that the .o file containing the dependency is linked _before_ the library, this should fix the dependency.

Your only requirement now is to determine the argument number, type and order for `_intel_fast_memmove'

(void* dst, void* src, size_t nbytes) may work.

Jim Dempsey

0 Kudos
jimdempseyatthecove
Honored Contributor III
2,070 Views

If the above does not work (assuming correct signature) then you likely have versioning issues with your libraries. To hack fix this you can create your own C function called intel_fast_memmove, that calls memmove using the same arguments. This may get you going while someone else sorts out the issue for you.

Jim Dempsey

0 Kudos
raysheppard
Beginner
2,070 Views

Thanks everyone,

  These libraries and dependencies were built by Cray.  They get auto-loaded through their modules environment.  I tried doubling -L and -l switches but that did not solve the trouble.  The direct link to the Intel  -lirc library is mine because that is where I found the offending call by dumping all of their libraries' table of contents.  So, it can see it but does not like it.  I am thinking that the issue is the leading underscore.  These are usually affixed to fortran external calls but the link is with icc.

                           Ray

0 Kudos
Reply