Dynamic link to libcilkrts.dylib

Dynamic link to libcilkrts.dylib

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

14 posts / 0 nouveau(x)
Dernière contribution
Reportez-vous à notre Notice d'optimisation pour plus d'informations sur les choix et l'optimisation des performances dans les produits logiciels Intel.

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.

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.

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

Fichiers joints: 

Fichier attachéTaille
Télécharger make.osx.zip1.73 Ko

Tim,

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

Dave

Fichiers joints: 

Fichier attachéTaille
Télécharger link.txt23.33 Ko

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.

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

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$

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)

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

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

Fichiers joints: 

Fichier attachéTaille
Télécharger osx-ld.txt30.56 Ko

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  

Quote:

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.

Hi Dave,

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

Best Regards,

Ying

Laisser un commentaire

Veuillez ouvrir une session pour ajouter un commentaire. Pas encore membre ? Rejoignez-nous dès aujourd’hui