Analyzers
Talk to fellow users of Intel Analyzer tools (Intel VTune™ Profiler, Intel Advisor)
4974 Discussions

libittnotify.lib(ittfortran.obj) linking problem.

Andriy
Beginner
2,600 Views

Hi,

I am using ITT_* API to reduce amount of collected data.

In fact, for now I am using only ITT_RESUME and ITT_PAUSE functions around my critical code.

Everything worked fine while I was working with Advisor 2019 U5.

Now, I've tried Advisor 2020U3 and 2020.1.1 and get the same error at linking stage:

libittnotify.lib(ittfortran.obj) : error LNK2019: unresolved external symbol ___itt_pause_ptr__3_0 referenced in function ITTNOTIFY_mp_ITT_PAUSE

I've checked libittnotify.lib and it only exports corresponding __itt_* functions with two underscores, while ITTNOTIFY_mp_ITT_* subroutines look for functions with three underscores.

For Advisor 2020U3 I use include path as $(ADVISOR_2020_DIR)include\intel64

And library path as $(ADVISOR_2020_DIR)lib64

With libittnotify.lib as additional link dependency.

Am I missing anything in my setup?

 

Thank you for any suggestions.

Labels (2)
0 Kudos
1 Solution
Johny_P_Intel
Employee
2,482 Views

I could not reproduce the issue as you described, using the latest version of Advisor. Could you please update to the latest version (2021.1) and follow the instructions under the link below for linking the ITT APIs.


https://software.intel.com/content/www/us/en/develop/documentation/advisor-user-guide/top/minimizing-analysis-overhead/collection-controls-to-minimize-analysis-overhead.html


If you are still getting this linker error on a clean setup and using the latest version of the Advisor, please let us know.


View solution in original post

0 Kudos
10 Replies
JananiC_Intel
Moderator
2,576 Views

Hi,


Thanks for posting in Intel forums.


Kindly provide the below details so that we try from our side.

1)OS details

2)Steps followed

3)Commands used

If possible you can share your code as well.


Regards,

Janani Chandran




0 Kudos
Andriy
Beginner
2,562 Views

1. Windows.

2. use include path as $(ADVISOR_2020_DIR)include\intel64; and library path as $(ADVISOR_2020_DIR)lib64

3.

Build started: Project: FOO, Configuration: Release.MPI.1|x64 

Compiling with Intel(R) Visual Fortran Compiler 19.0.5.281 [Intel(R) 64]...
ifort /nologo /debug:full /MP /O2 /fpp /I"C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2019.5.281\windows\mpi\intel64\include" /I"C:\Program Files (x86)\IntelSWTools\Advisor 2020\include\intel64"  /Qopenmp /stand:f03 /Qdiag-disable:8290,8291,10246,7025,7346,5268,6717,7373 /debug-parameters:all /warn:declarations /warn:unused /warn:truncated_source /warn:uncalled /warn:shape /warn:interfaces /Qauto  /object:"bin\\" /Fd"bin\vc150.pdb" /traceback /libs:dll /threads /Qmkl:parallel /c /fp:consistent /Qimf-use-svml /Qlocation,link,"C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.16.27023\bin\HostX64\x64" /Qm64 "foo.f90"

 

Linking...
Creating temporary file "RSP6.rsp" with contents
[
 /OUT:"bin\FOO.exe" /INCREMENTAL:NO /NOLOGO /LIBPATH:"C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2019.5.281\windows\mpi\intel64\lib\release" /LIBPATH:"D:\HDF5\1.8.15\lib" /LIBPATH:"SAMGP\lib\Release" /LIBPATH:"C:\Program Files (x86)\IntelSWTools\Advisor 2020\lib64" /NODEFAULTLIB:"LIBCMT.lib" /MANIFEST:NO /DEBUG /PDB:"bin\STARS.pdb" /SUBSYSTEM:CONSOLE,"5.02" /LARGEADDRESSAWARE /IMPLIB:"bin\FOO.lib" /qnoipo msvcrt.lib vcruntime.lib ucrt.lib impi.lib Wsock32.lib User32.lib shell32.lib Advapi32.lib Gdi32.lib hdf5.lib samgp_static.lib samgp_interface_static.lib libittnotify.lib -qm64 /qoffload-ldopts="-mkl=parallel" "bin\FOO.obj" 
]
0 Kudos
Andriy
Beginner
2,558 Views

Eventually, I ended up copying required declarations from `ittnotify.f90` file into my code and commenting out `use ittnotify`.

Examining `ittnotify.f90`, it looks like `ittnotify.mod` was built without defining `intel64` symbol. That explains why it imports three-underscore C functions `___itt_*` instead of correct two-underscore symbols `__itt_*`.

0 Kudos
JananiC_Intel
Moderator
2,536 Views

Hi,


Is your issue resolved?Do you have any other updates?


Regards,

Janani Chandran


0 Kudos
Andriy
Beginner
2,523 Views

`use ittnotify` still does not work.

Should I just accept that Intel provided module is broken? Or is my build misconfigured?

 

0 Kudos
JananiC_Intel
Moderator
2,518 Views

Hi,


Thanks for the update.


We will check with the concerned SME and get back to you soon.


Regards,

Janani Chandran


0 Kudos
Johny_P_Intel
Employee
2,483 Views

I could not reproduce the issue as you described, using the latest version of Advisor. Could you please update to the latest version (2021.1) and follow the instructions under the link below for linking the ITT APIs.


https://software.intel.com/content/www/us/en/develop/documentation/advisor-user-guide/top/minimizing-analysis-overhead/collection-controls-to-minimize-analysis-overhead.html


If you are still getting this linker error on a clean setup and using the latest version of the Advisor, please let us know.


0 Kudos
Johny_P_Intel
Employee
2,306 Views

Hi Andriy,


As there are no further updates, can I assume that this issue is resolved? If you are still facing the issue after following the latest instructions and the latest tool version, please let me know.


Regards,

Johny



0 Kudos
Andriy
Beginner
2,297 Views

Hi @Johny_P_Intel ,

I haven't tried the latest Advisor to verify that API has been fixed. Next time I need to analyze my code I will upgrade my installation as per your suggestion.

 

0 Kudos
Johny_P_Intel
Employee
2,279 Views

I am closing this thread based on your response. We will not be monitoring this thread anymore. Please start a new thread if you run into similar issues again with ITT library.


Regards,

Johny



0 Kudos
Reply