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

Ifort Linker behavior on Linux vs. OSX (dynamic vs. static)

Juergen_R_R
Valued Contributor I
312 Views

 

If I just use ifort -dryrun on some code with ifort (2018 on Linux, 2019beta on OSX) then I can see that linking is done dynamically on Linux and statically 

on OSX Darwin. Is this always like that, and is there a possibility to change that? 

On Linux:

ld  \
    /usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib64/crt1.o \
    /usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib64/crti.o \
    /usr/lib/gcc/x86_64-linux-gnu/5/crtbegin.o \
    --eh-frame-hdr \
    --build-id \
    -dynamic-linker \
    /lib64/ld-linux-x86-64.so.2 \
    -m \
    elf_x86_64 \
    -o \
    a.out \
    /afs/desy.de/UBU/16/x86_64/opt/intel/2018/compilers_and_libraries_2018.2.199/linux/compiler/lib/intel64_lin/for_main.o \
    -L/afs/desy.de/UBU/16/x86_64/opt/intel/2018/compilers_and_libraries_2018.2.199/linux/compiler/lib/intel64_lin \
    -L/usr/lib/gcc/x86_64-linux-gnu/5/ \
    -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/ \
    -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib64 \
    -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/ \
    -L/lib/x86_64-linux-gnu/ \
    -L/lib/../lib64 \
    -L/lib/../lib/ \
    -L/usr/lib/x86_64-linux-gnu/ \
    -L/usr/lib/../lib64 \
    -L/usr/lib/../lib/ \
    -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../ \
    -L/lib64 \
    -L/lib/ \
    -L/usr/lib64 \
    -L/usr/lib \
    /tmp/ifortKVc2SH.o \
    -Bdynamic \
    -Bstatic \
    -lifport \
    -lifcoremt \
    -limf \
    -lsvml \
    -Bdynamic \
    -lm \
    -Bstatic \
    -lipgo \
    -lirc \
    -Bdynamic \
    -lpthread \
    -Bstatic \
    -lsvml \
    -Bdynamic \
    -lc \
    -lgcc \
    -lgcc_s \
    -Bstatic \
    -lirc_s \
    -Bdynamic \
    -ldl \
    -lc \
    /usr/lib/gcc/x86_64-linux-gnu/5/crtend.o \
    /usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib64/crtn.o

and on OSX:

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld  \
    -dynamic \
    -arch \
    x86_64 \
    -weak_reference_mismatches \
    non-weak \
    -macosx_version_min \
    10.13.4 \
    -no_compact_unwind \
    -rpath \
    /opt/intel//compilers_and_libraries_2019.0.041/mac/compiler/lib \
    -o \
    a.out \
    /opt/intel//compilers_and_libraries_2019.0.041/mac/compiler/lib/for_main.o \
    -L/opt/intel//compilers_and_libraries_2019.0.041/mac/compiler/lib \
    -L/usr/lib \
    /var/folders/dg/bw4c07x12sqb74d__br9b2080000gn/T/ifortRssNJ8.o \
    /opt/intel//compilers_and_libraries_2019.0.041/mac/compiler/lib/libifport.a \
    /opt/intel//compilers_and_libraries_2019.0.041/mac/compiler/lib/libifcoremt.a \
    /opt/intel//compilers_and_libraries_2019.0.041/mac/compiler/lib/libimf.a \
    /opt/intel//compilers_and_libraries_2019.0.041/mac/compiler/lib/libsvml.a \
    /opt/intel//compilers_and_libraries_2019.0.041/mac/compiler/lib/libipgo.a \
    -lSystem \
    /opt/intel//compilers_and_libraries_2019.0.041/mac/compiler/lib/libirc.a \
    -lpthread \
    /opt/intel//compilers_and_libraries_2019.0.041/mac/compiler/lib/libsvml.a \
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/9.1.0/lib/darwin/libclang_rt.osx.a

0 Kudos
2 Replies
Lorri_M_Intel
Employee
312 Views

By default, there is a mixture of static and dynamic libraries linked in.

Which library (or libraries) are you specifically concerned about?

 

0 Kudos
Juergen_R_R
Valued Contributor I
312 Views

Actually in the meanwhile I found the flag -shared-intel which I could use to get the linking of the intel intrinsics shared libraries (ifport etc.). 

 

0 Kudos
Reply