Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.

Dynamic link to libcilkrts.dylib

Rawlins__David
Beginner
1,610 Views

Hi,

I am linking to the Pardiso solver on a Mac.  Ever since I upgraded to composer_xe_2013 my code is being dynamically linked to libcilkrts.dylib, which is undesirable since the code is redistributed.  Note that this did not happen with the earlier compiler and MKL.  Is there a way to not link to the dynamic library?

Thanks,

Dave

0 Kudos
13 Replies
Zhang_Z_Intel
Employee
1,610 Views

As far as I know, PARDISO does not depend on libcilkrts. Would you please share your compile and link options? I need to see how the code is built. Also, let me know the MacOS version.

0 Kudos
TimP
Honored Contributor III
1,610 Views

libcilkrts should not be required unless your own source code or a non-MKL library you call uses one of the 3 Cilk(tm) Plus parallel keywords, and would be linked by a -lcilkrts in your own link command.  So it shouldn't be associated with MKL.  Although 2 years ago it was said that MKL would be changed from OpenMP to cilkrts, I'd heard that plan was abandoned.

If you can't find the -lcilkrts in your own scripts, can you find it in the echo when you add -# to your link commands, hoping to find out where it came from?  It's possible, although not good practice, that someone linked it into code you are using.

0 Kudos
Rawlins__David
Beginner
1,610 Views

Hi Zhang,

My build system consists of four files (which I've attached): the main file febio.mk, the included file make.osx (which has the os specific settings), and two makefiles in the directories FEBio and FECore.  My osx is 10.8.4.

Thanks,

Dave

0 Kudos
Rawlins__David
Beginner
1,610 Views

Tim,

Here's the output when I link with -#.  -lcilkrts occurs on lines 37 and 121.

Dave

0 Kudos
TimP
Honored Contributor III
1,610 Views

As Zhang said, this looks strange.  I wonder if the standard icpc script for MacOS is set up to include cilkrts just in case you used Cilk and don't want to add -lcilkrts yourself.  I hope there's a way to suppress it; maybe we need a Mac expert.

0 Kudos
Zhang_Z_Intel
Employee
1,610 Views

Dave,

Thanks for sending your makefiles and build output. I'd have to check with our MacOS expert. I'll get back to you soon.

Zhang

0 Kudos
Ying_H_Intel
Employee
1,610 Views

Hi Dave,

As we have upgraded the OS 10.8 and /opt/intel/composer_xe_2013_sp1.1.103, i did a quick test with pardiso_sym_c.c  with the system.  It is ture that the compiler will add -weak-lcirlrts into link line by default. but if no function use it, then the library won't be linked.  Not sure where is the problem. but coud you please try the test on your machine with below command and let us know the result?

On the other hand, i saw MKL_LIB = $(MKL_PATH)libmkl_intel_lp64.a $(MKL_PATH)libmkl_intel_thread.a $(MKL_PATH)libmkl_core.a \
 $(MKL_PATH)libmkl_pgi_thread.a $(INTEL_PATH)libiomp5.a.   

is there any specifical reason for you to put the library pgi_thread here?  Generally, you can get correct link command by  http://software.intel.com/sites/products/mkl/MKL_Link_Line_Advisor.html

Best Regards,

Ying

cd /tmp
cp /opt/intel/composer_xe_2013.5.198/mkl/examples/solverc/source/pardiso_sym_c.c .

source /opt/intel/composer_xe_2013_sp1.1.103/bin/compilervars.sh intel64

icc pardiso_sym_c.c -static-intel -mkl -#

macmini01:tmp yhu5$ icc pardiso_sym_c.c -static-intel -mkl -#
/opt/intel/composer_xe_2013_sp1.1.103/bin/intel64/mcpcom  \
    -_g \
    -mP3OPT_inline_alloca \
    -D__HONOR_STD \
    -D__ICC=1400 \
    -D__INTEL_COMPILER=1400 \
    -D__INTEL_COMPILER_UPDATE=1 \
    -D__BLOCKS__ \
    -D__PTRDIFF_TYPE__=long \
    "-D__SIZE_TYPE__=unsigned long" \
    -D__WCHAR_TYPE__=int \
    -D__WINT_TYPE__=int \
    "-D__INTMAX_TYPE__=long int" \
    "-D__UINTMAX_TYPE__=long unsigned int" \
    -D__LONG_MAX__=9223372036854775807L \
    -D__QMSPP_ \
    -D__OPTIMIZE__ \
    -D__NO_MATH_INLINES \
    -D__NO_STRING_INLINES \
    -D__GNUC_GNU_INLINE__ \
    -D__GNUC__=4 \
    -D__GNUC_MINOR__=2 \
    -D__GNUC_PATCHLEVEL__=1 \
    -D__APPLE_CC__=5226 \
    -D__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__=1084 \
    -D__LITTLE_ENDIAN__ \
    -D__DYNAMIC__ \
    "-D__private_extern__=__attribute__((visibility("hidden")))" \
    -D__LP64__ \
    -D_LP64 \
    -D__GXX_ABI_VERSION=1002 \
    -D__USER_LABEL_PREFIX__=_ \
    -D__REGISTER_PREFIX__= \
    -D__INTEL_RTTI__ \
    -D__x86_64 \
    -D__x86_64__ \
    "-_Acpu(x86_64)" \
    "-_Amachine(x86_64)" \
    -D_MT \
    -D__INTEL_COMPILER_BUILD_DATE=20131010 \
    -D__PIC__ \
    -D__APPLE__ \
    -D__MACH__ \
    -D__pentium4 \
    -D__pentium4__ \
    -D__tune_pentium4__ \
    -D__SSE2__ \
    -D__SSE3__ \
    -D__SSSE3__ \
    -D__SSE__ \
    -D__MMX__ \
    -_k \
    -_8 \
    -_l \
    -_D \
    -_a \
    -_b \
    --gnu_version=421 \
    -_W5 \
    --gcc-extern-inline \
    --multibyte_chars \
    --blocks \
    -I/opt/intel/composer_xe_2013_sp1.1.103/mkl/include/intel64/lp64 \
    -I/opt/intel/composer_xe_2013_sp1.1.103/mkl/include \
    --sys_include \
    /opt/intel/composer_xe_2013_sp1.1.103/mkl/include \
    --sys_include \
    /opt/intel/composer_xe_2013_sp1.1.103/tbb/include \
    --sys_include \
    /opt/intel/composer_xe_2013_sp1.1.103/compiler/include/intel64 \
    --sys_include \
    /opt/intel/composer_xe_2013_sp1.1.103/compiler/include \
    --fwk_include \
    /System/Library/Frameworks \
    --fwk_include \
    /Library/Frameworks \
    --sys_include \
    /usr/local/include \
    --sys_include \
    /usr/include \
    --array_section \
    --simd \
    --simd_func \
    --clang_extensions \
    -mP1OPT_version=14.0-intel64 \
    -mGLOB_diag_file=/var/folders/1k/g66yznjd7h1_c_9ldc_ng5sr0000gs/T/iccfQ8yjj.diag \
    -mGLOB_diag_use_message_catalog=FALSE \
    -mP1OPT_print_version=FALSE \
    -mCG_use_gas_got_workaround=F \
    -mP2OPT_align_option_used=TRUE \
    -mGLOB_gcc_version=421 \
    "-mGLOB_options_string=-static-intel -mkl -#" \
    -mGLOB_position_independent_code \
    -mGLOB_preemption_model=1 \
    -mGLOB_no_compact_unwind=TRUE \
    -mGLOB_cxx_limited_range=FALSE \
    -mCG_extend_parms=FALSE \
    -mGLOB_compiler_bin_directory=/opt/intel/composer_xe_2013_sp1.1.103/bin/intel64 \
    -mGLOB_as_output_backup_file_name=/var/folders/1k/g66yznjd7h1_c_9ldc_ng5sr0000gs/T/iccVENWxnas_.s \
    -mIPOPT_activate \
    -mIPOPT_lite \
    -mGLOB_em64t \
    -mGLOB_instruction_tuning=0x0 \
    -mGLOB_product_id_code=0x22006d91 \
    -mCG_bnl_movbe=T \
    -mGLOB_extended_instructions=0x80 \
    -mGLOB_advanced_optim=TRUE \
    -mP3OPT_use_mspp_call_convention \
    -mPGOPTI_value_profile_use=T \
    -mP2OPT_il0_array_sections=TRUE \
    -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=/opt/intel/composer_xe_2013_sp1.1.103/bin/intel64/libiml_attr.dylib \
    -mIPOPT_obj_output_file_name=/var/folders/1k/g66yznjd7h1_c_9ldc_ng5sr0000gs/T/iccfQ8yjj.o \
    -mIPOPT_whole_archive_fixup_file_name=/var/folders/1k/g66yznjd7h1_c_9ldc_ng5sr0000gs/T/iccwarchoN1EbW \
    -mGLOB_long_size_64 \
    -mGLOB_routine_pointer_size_64 \
    -mGLOB_driver_tempfile_name=/var/folders/1k/g66yznjd7h1_c_9ldc_ng5sr0000gs/T/icctempfileNL6WQ3 \
    -mGLOB_os_target=GLOB_OS_TARGET_MACH \
    -mGLOB_async_unwind_tables=TRUE \
    -mGLOB_obj_output_file=/var/folders/1k/g66yznjd7h1_c_9ldc_ng5sr0000gs/T/iccfQ8yjj.o \
    -mGLOB_source_dialect=GLOB_SOURCE_DIALECT_C \
    -mP1OPT_source_file_name=pardiso_sym_c.c \
    pardiso_sym_c.c

ld  \
    -lcrt1.10.6.o \
    -dynamic \
    -arch \
    x86_64 \
    -weak_reference_mismatches \
    non-weak \
    -macosx_version_min \
    10.8.4 \
    -no_compact_unwind \
    -o \
    a.out \
    -L/opt/intel/composer_xe_2013_sp1.1.103/compiler/lib \
    -L/opt/intel/composer_xe_2013_sp1.1.103/ipp/../compiler/lib \
    -L/opt/intel/composer_xe_2013_sp1.1.103/ipp/lib \
    -L/opt/intel/composer_xe_2013_sp1.1.103/compiler/lib \
    -L/opt/intel/composer_xe_2013_sp1.1.103/mkl/lib \
    -L/opt/intel/composer_xe_2013_sp1.1.103/tbb/lib \
    -L/opt/intel/composer_xe_2013_sp1.1.103/compiler/lib \
    -L/usr/lib \
    /var/folders/1k/g66yznjd7h1_c_9ldc_ng5sr0000gs/T/iccfQ8yjj.o \
    /opt/intel/composer_xe_2013_sp1.1.103/mkl/lib/libmkl_intel_lp64.a \
    /opt/intel/composer_xe_2013_sp1.1.103/mkl/lib/libmkl_intel_thread.a \
    /opt/intel/composer_xe_2013_sp1.1.103/mkl/lib/libmkl_core.a \
    /opt/intel/composer_xe_2013_sp1.1.103/compiler/lib/libiomp5.a \
    -L/opt/intel/composer_xe_2013_sp1.1.103/mkl/lib \
    /opt/intel/composer_xe_2013_sp1.1.103/compiler/lib/libimf.a \
    /opt/intel/composer_xe_2013_sp1.1.103/compiler/lib/libsvml.a \
    /opt/intel/composer_xe_2013_sp1.1.103/compiler/lib/libirng.a \
    /opt/intel/composer_xe_2013_sp1.1.103/compiler/lib/libipgo.a \
    /opt/intel/composer_xe_2013_sp1.1.103/compiler/lib/libdecimal.a \
    -weak-lcilkrts \
    -lstdc++ \
    -lSystem \
    /opt/intel/composer_xe_2013_sp1.1.103/compiler/lib/libirc.a \
    -lpthread \
    /opt/intel/composer_xe_2013_sp1.1.103/compiler/lib/libsvml.a

rm /var/folders/1k/g66yznjd7h1_c_9ldc_ng5sr0000gs/T/iccxcrunUQ8S7E
rm /var/folders/1k/g66yznjd7h1_c_9ldc_ng5sr0000gs/T/iccxcrunYQgQ6G
rm /var/folders/1k/g66yznjd7h1_c_9ldc_ng5sr0000gs/T/iccgnudirsKZFH75
rm /var/folders/1k/g66yznjd7h1_c_9ldc_ng5sr0000gs/T/iccxcrun3qNlmF
rm /var/folders/1k/g66yznjd7h1_c_9ldc_ng5sr0000gs/T/iccclangdashvy7WqAq
rm /var/folders/1k/g66yznjd7h1_c_9ldc_ng5sr0000gs/T/iccfQ8yjj.o
rm /var/folders/1k/g66yznjd7h1_c_9ldc_ng5sr0000gs/T/iccxcrun4sXZRV
rm /var/folders/1k/g66yznjd7h1_c_9ldc_ng5sr0000gs/T/iccclangdashvRWjsiJ
rm /var/folders/1k/g66yznjd7h1_c_9ldc_ng5sr0000gs/T/iccosbIJzkb
rm /var/folders/1k/g66yznjd7h1_c_9ldc_ng5sr0000gs/T/icctosQ0O1Mh
rm /var/folders/1k/g66yznjd7h1_c_9ldc_ng5sr0000gs/T/iccVENWxnas_.s
rm /var/folders/1k/g66yznjd7h1_c_9ldc_ng5sr0000gs/T/icctempfileNL6WQ3
rm /var/folders/1k/g66yznjd7h1_c_9ldc_ng5sr0000gs/T/iccargXW9Sa2
rm /var/folders/1k/g66yznjd7h1_c_9ldc_ng5sr0000gs/T/iccfQ8yjj.o
macmini01:tmp yhu5$

macmini01:tmp yhu5$ otool -L a.out
a.out:
        /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 56.0.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)
macmini01:tmp yhu5$

0 Kudos
Rawlins__David
Beginner
1,610 Views

Hi Ying,

Yes, I did remove $(MKL_PATH)libmkl_pgi_thread.a from the link line, but I still got the dynamic link.  Here's my output from icc and otool commands:

/opt/intel/composer_xe_2013.3.171/bin/intel64/mcpcom  \
    -_g \
    -mP3OPT_inline_alloca \
    -D__HONOR_STD \
    -D__ICC=1300 \
    -D__INTEL_COMPILER=1300 \
    -D__BLOCKS__ \
    -D__PTRDIFF_TYPE__=long \
    "-D__SIZE_TYPE__=unsigned long" \
    -D__WCHAR_TYPE__=int \
    -D__WINT_TYPE__=int \
    "-D__INTMAX_TYPE__=long int" \
    "-D__UINTMAX_TYPE__=long unsigned int" \
    -D__LONG_MAX__=9223372036854775807L \
    -D__QMSPP_ \
    -D__OPTIMIZE__ \
    -D__NO_MATH_INLINES \
    -D__NO_STRING_INLINES \
    -D__NO_INLINE__ \
    -D__GNUC_GNU_INLINE__ \
    -D__GNUC__=4 \
    -D__GNUC_MINOR__=2 \
    -D__GNUC_PATCHLEVEL__=1 \
    -D__APPLE_CC__=5658 \
    -D__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__=1084 \
    -D__LITTLE_ENDIAN__ \
    -D__DYNAMIC__ \
    "-D__private_extern__=__attribute__((visibility("hidden")))" \
    -D__LP64__ \
    -D_LP64 \
    -D__GXX_ABI_VERSION=1002 \
    -D__USER_LABEL_PREFIX__=_ \
    -D__REGISTER_PREFIX__= \
    -D__INTEL_RTTI__ \
    -D__x86_64 \
    -D__x86_64__ \
    "-_Acpu(x86_64)" \
    "-_Amachine(x86_64)" \
    -D_MT \
    -D__INTEL_COMPILER_BUILD_DATE=20130314 \
    -D__PIC__ \
    -D__APPLE__ \
    -D__MACH__ \
    -D__pentium4 \
    -D__pentium4__ \
    -D__tune_pentium4__ \
    -D__SSE2__ \
    -D__SSE3__ \
    -D__SSSE3__ \
    -D__SSE__ \
    -D__MMX__ \
    -_k \
    -_8 \
    -_l \
    -_D \
    -_a \
    -_b \
    --gnu_version=421 \
    -_W5 \
    --gcc-extern-inline \
    --multibyte_chars \
    --blocks \
    -I/opt/intel/composer_xe_2013.3.171/mkl/include/intel64/lp64 \
    -I/opt/intel/composer_xe_2013.3.171/mkl/include \
    --sys_include \
    /opt/intel/composer_xe_2013.3.171/mkl/include \
    --sys_include \
    /opt/intel/composer_xe_2013.3.171/tbb/include \
    --sys_include \
    /opt/intel/composer_xe_2013.3.171/compiler/include/intel64 \
    --sys_include \
    /opt/intel/composer_xe_2013.3.171/compiler/include \
    --fwk_include \
    /System/Library/Frameworks \
    --fwk_include \
    /Library/Frameworks \
    --sys_include \
    /usr/local/include \
    --sys_include \
    /Applications/Xcode.app/Contents/Developer/usr/llvm-gcc-4.2/lib/gcc/i686-apple-darwin11/4.2.1/include \
    --sys_include \
    /usr/include \
    --array_section \
    --simd \
    --simd_func \
    -mP1OPT_version=13.0-intel64 \
    -mGLOB_diag_file=/var/folders/zz/zyxvpxvq6csfxvn_n00065t4001jfj/T/iccBLN4O0.diag \
    -mGLOB_diag_use_message_catalog=FALSE \
    -mP1OPT_print_version=FALSE \
    -mCG_use_gas_got_workaround=F \
    -mP2OPT_align_option_used=TRUE \
    -mGLOB_gcc_version=421 \
    "-mGLOB_options_string=-static-intel -mkl -#" \
    -mGLOB_position_independent_code \
    -mGLOB_preemption_model=1 \
    -mGLOB_no_compact_unwind=TRUE \
    -mGLOB_cxx_limited_range=FALSE \
    -mCG_extend_parms=FALSE \
    -mGLOB_compiler_bin_directory=/opt/intel/composer_xe_2013.3.171/bin/intel64 \
    -mGLOB_as_output_backup_file_name=/var/folders/zz/zyxvpxvq6csfxvn_n00065t4001jfj/T/icceeN1sgas_.s \
    -mIPOPT_activate \
    -mIPOPT_lite \
    -mGLOB_machine_model=GLOB_MACHINE_MODEL_EFI2 \
    -mGLOB_product_id_code=0x22006d93 \
    -mCG_bnl_movbe=T \
    -mGLOB_extended_instructions=0x80 \
    -mGLOB_advanced_optim=TRUE \
    -mP3OPT_use_mspp_call_convention \
    -mPGOPTI_value_profile_use=T \
    -mP2OPT_il0_array_sections=TRUE \
    -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=/opt/intel/composer_xe_2013.3.171/bin/intel64/libiml_attr.dylib \
    -mIPOPT_obj_output_file_name=/var/folders/zz/zyxvpxvq6csfxvn_n00065t4001jfj/T/iccBLN4O0.o \
    -mIPOPT_whole_archive_fixup_file_name=/var/folders/zz/zyxvpxvq6csfxvn_n00065t4001jfj/T/iccwarchWEOc59 \
    -mGLOB_long_size_64 \
    -mGLOB_routine_pointer_size_64 \
    -mGLOB_driver_tempfile_name=/var/folders/zz/zyxvpxvq6csfxvn_n00065t4001jfj/T/icctempfile4VGOOd \
    -mGLOB_os_target=GLOB_OS_TARGET_MACH \
    -mGLOB_async_unwind_tables=TRUE \
    -mGLOB_obj_output_file=/var/folders/zz/zyxvpxvq6csfxvn_n00065t4001jfj/T/iccBLN4O0.o \
    -mGLOB_source_dialect=GLOB_SOURCE_DIALECT_C \
    -mP1OPT_source_file_name=pardiso_sym_c.c \
    pardiso_sym_c.c

ld  \
    -lcrt1.10.6.o \
    -dynamic \
    -arch \
    x86_64 \
    -weak_reference_mismatches \
    non-weak \
    -macosx_version_min \
    10.8.4 \
    -no_compact_unwind \
    -o \
    a.out \
    -L/opt/intel/composer_xe_2013.3.171/compiler/lib \
    -L/opt/intel/composer_xe_2013.3.171/ipp/../compiler/lib \
    -L/opt/intel/composer_xe_2013.3.171/ipp/lib \
    -L/opt/intel/composer_xe_2013.3.171/compiler/lib \
    -L/opt/intel/composer_xe_2013.3.171/mkl/lib \
    -L/opt/intel/composer_xe_2013.3.171/tbb/lib \
    -L/opt/intel/composer_xe_2013.3.171/compiler/lib \
    -L/usr/llvm-gcc-4.2/bin/../lib/gcc/i686-apple-darwin11/4.2.1/x86_64/ \
    -L/Applications/Xcode.app/Contents/Developer/usr/llvm-gcc-4.2/lib/gcc/i686-apple-darwin11/4.2.1/x86_64/ \
    -L/usr/lib/ \
    -L/usr/llvm-gcc-4.2/bin/../lib/gcc/i686-apple-darwin11/4.2.1/x86_64 \
    -L/usr/llvm-gcc-4.2/bin/../lib/gcc/i686-apple-darwin11/4.2.1/ \
    -L/usr/llvm-gcc-4.2/bin/../lib/gcc/ \
    -L/opt/intel/composer_xe_2013.3.171/compiler/lib/ \
    -L/opt/intel/composer_xe_2013.3.171/ipp/../compiler/lib/ \
    -L/opt/intel/composer_xe_2013.3.171/ipp/lib/ \
    -L/opt/intel/composer_xe_2013.3.171/mkl/lib/ \
    -L/opt/intel/composer_xe_2013.3.171/tbb/lib/ \
    -L/Applications/Xcode.app/Contents/Developer/usr/llvm-gcc-4.2/lib/gcc/i686-apple-darwin11/4.2.1/x86_64 \
    -L/Applications/Xcode.app/Contents/Developer/usr/llvm-gcc-4.2/lib/gcc/i686-apple-darwin11/4.2.1/ \
    -L/usr/llvm-gcc-4.2/bin/../lib/gcc/i686-apple-darwin11/4.2.1/../../../ \
    -L/Applications/Xcode.app/Contents/Developer/usr/llvm-gcc-4.2/lib/gcc/i686-apple-darwin11/4.2.1/../../.. \
    /var/folders/zz/zyxvpxvq6csfxvn_n00065t4001jfj/T/iccBLN4O0.o \
    /opt/intel/composer_xe_2013.3.171/mkl/lib/libmkl_intel_lp64.a \
    /opt/intel/composer_xe_2013.3.171/mkl/lib/libmkl_intel_thread.a \
    /opt/intel/composer_xe_2013.3.171/mkl/lib/libmkl_core.a \
    /opt/intel/composer_xe_2013.3.171/compiler/lib/libiomp5.a \
    -L/opt/intel/composer_xe_2013.3.171/mkl/lib \
    /opt/intel/composer_xe_2013.3.171/compiler/lib/libimf.a \
    /opt/intel/composer_xe_2013.3.171/compiler/lib/libsvml.a \
    /opt/intel/composer_xe_2013.3.171/compiler/lib/libirng.a \
    /opt/intel/composer_xe_2013.3.171/compiler/lib/libipgo.a \
    /opt/intel/composer_xe_2013.3.171/compiler/lib/libdecimal.a \
    -weak-lcilkrts \
    -lstdc++ \
    -lgcc_s.10.5 \
    -lgcc \
    -lSystem \
    /opt/intel/composer_xe_2013.3.171/compiler/lib/libirc.a \
    -lpthread \
    /opt/intel/composer_xe_2013.3.171/compiler/lib/libsvml.a \
    -ldl

rm /var/folders/zz/zyxvpxvq6csfxvn_n00065t4001jfj/T/icclibgccVRmNP3
rm /var/folders/zz/zyxvpxvq6csfxvn_n00065t4001jfj/T/iccgnudirso16IRQ
rm /var/folders/zz/zyxvpxvq6csfxvn_n00065t4001jfj/T/iccBLN4O0.o
rm /var/folders/zz/zyxvpxvq6csfxvn_n00065t4001jfj/T/iccgdashvcYfxsu
rm /var/folders/zz/zyxvpxvq6csfxvn_n00065t4001jfj/T/iccosBpByE7
rm /var/folders/zz/zyxvpxvq6csfxvn_n00065t4001jfj/T/icctoss01Vbo
rm /var/folders/zz/zyxvpxvq6csfxvn_n00065t4001jfj/T/iccabxpMJ.c
rm /var/folders/zz/zyxvpxvq6csfxvn_n00065t4001jfj/T/iccdashv41ziFa
rm /var/folders/zz/zyxvpxvq6csfxvn_n00065t4001jfj/T/icceeN1sgas_.s
rm /var/folders/zz/zyxvpxvq6csfxvn_n00065t4001jfj/T/icctempfile4VGOOd
rm /var/folders/zz/zyxvpxvq6csfxvn_n00065t4001jfj/T/iccargrvakkk
rm /var/folders/zz/zyxvpxvq6csfxvn_n00065t4001jfj/T/iccgnudirspjmZtz
rm /var/folders/zz/zyxvpxvq6csfxvn_n00065t4001jfj/T/iccBLN4O0.o

> otool -L a.out
a.out:
        mac64/libcilkrts.5.dylib (compatibility version 0.0.0, current version 0.0.0)
        /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 56.0.0)
        /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1669.0.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)

0 Kudos
Ying_H_Intel
Employee
1,610 Views

Hi Dave,

Thanks for letting me know. I will escalate the issue to compiler team and get back to you if any news.

Just guess, as the -lcilkrts was added during link phase by intel compiler,  one possible solution may be don’t use the icpc. Thus no -weak-lcilkrts” are in link line .  

For example,  change your orignal  makefile,  

$(TARGET): $(OBJ)

         $(CC) -o $(TARGET) $(INC) $(FEBIO)/build/$(PLAT)/FEBio/*.o $(FLG) $(FEBLIBS) $(LIBS)

 

To

$(TARGET): $(OBJ)

         ld  -o $(TARGET) $(INC) $(FEBIO)/build/$(PLAT)/FEBio/*.o $(FLG) $(FEBLIBS) $(LIBS)

 and see if it can workaround the problem?

Best Regards,

Ying

0 Kudos
Rawlins__David
Beginner
1,610 Views

Hi Ying,

I've attached my output for the "ld" command.  I'm getting "Undefined symbols for architecture x86_64" errors, which I don't get using icpc.

Best,

Dave

0 Kudos
Ying_H_Intel
Employee
1,610 Views

Hi Dave, 

It seems if with LD, some libraried tied with icc compiler was  missed. 

is it possible for you to use gcc / g++ directly  with MKL library first.

 ( i had submitted the issue to Compiler forum http://software.intel.com/en-us/forums/topic/487850, but haven't reveived reply) 

.  

or upload later compiler for your OS  (please read the OS requirement in release notes)? 

Best Regards,
Ying  

0 Kudos
TimP
Honored Contributor III
1,610 Views

Dave Rawlins wrote:

Hi Ying,

I've attached my output for the "ld" command.  I'm getting "Undefined symbols for architecture x86_64" errors, which I don't get using icpc.

Best,

Dave

icpc (for Intel64) will automatically search the libraries in its own lib/intel64 installation, but the messages here seem to indicate a switch to the 32-bit library paths, while the error indicates you made 64-bit gcc references.   If you are trying to link with libgomp instead of libiomp5, that involves switching to the gnu-compatible MKL thread libraries, but libiomp5 should satisfy all the references as an alternative to libgomp.

0 Kudos
Ying_H_Intel
Employee
1,610 Views

Hi Dave,

We can't reproduce the problem with latest Compiler version.   How about the result if you update the compiler?

Best Regards,

Ying

0 Kudos
Reply