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

md5 checksum lookup?

John_L_10
Beginner
1,067 Views

What's the best way to determine the product version associated with an Intel .so file?

0 Kudos
4 Replies
John_L_10
Beginner
1,037 Views

Some runtime libraries, like libifcore.so.5, libifport.so.5, and libifcoremt.so.5 have information that can be revealed with strings.  Others like libimf.so, libirc.so, and libsvml.so contain this information, but only for newer versions.  libirng.so does not contain this information in strings.

0 Kudos
John_L_10
Beginner
975 Views

For the Intel .so (which do not include version information in strings), is there a tool which will tell me the version given the md5sum (or other) checksum value?

0 Kudos
Arjen_Markus
Honored Contributor I
970 Views

Within Fortran itself you now have the compiler_version intrinsic function. If that is not enough, you could try to:

  • Find the exact names of the loaded .so files via ldd and parsing the output
  • Turn the contents in an MD5 checksum. You will need to read the .so file and pass the contents to some routine that determines the MD5 sum, but it can certainly be done (we have done so for database files we use)
0 Kudos
John_L_10
Beginner
959 Views

What I am looking for is not the compiler version, but the runtime library version of some given Intel (Fortran or C++)  .so.

For example, I know how to identify the specific shared objects loaded for a given running processid:

prompt> awk '$NF!~/\.so/{next} {$0=$NF} !a[$0]++' /proc/processid/maps

Let's say that one of them is the Intel runtime library libsvml.so.  Newer versions of libsvml.so contain version information:

prompt> strings path1/libsvml.so | grep Intel
Intel(R) oneAPI DPC++/C++ Compiler 2022.2.1 (2022.2.1.20221015)
prompt>

But older versions do not:

prompt> strings path2/libsvml.so | grep Intel
prompt>

I can obtain the md5 checksum:

prompt> md5sum path2/libsvml.so
3a91d364c151abec3957850c71b92c99 path2/libsvml.so

How do I determine the version of Intel shared objects (e.g.) libsvml.so given its checksum (e.g. 3a91d364c151abec3957850c71b92c99)?

The process may load multiple Intel shared objects, unfortunately from different releases.




0 Kudos
Reply