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

Having Fortran 10 and 12 dlls in the same directory

van_der_merwe__ben
New Contributor I
439 Views
Please comment on this scenario:

We have our own code which we compile using Intel Fortran 12. One of our sub contractors provides us with a library and DLL, compiled in Intel Fortran 10. We do not have their code and can not compile it ourselves.

The two sets of DLLs would link against different versions of the Intel Fortran runtime DLLs (libmmd and such), with the same name (the old familiar DLL hell).

This contractor used to use Compaq Fortran until now, so this was not an issue, since the runtime dlls had different names. But they told me they are upgrading to Intel Fortran 10 and asked if we expect any problems. We used to use Intel Fortran 10 but we are busy upgrading to Intel Fortran 12.

I know Intel does not use manifest files (or did not in version 10), which could be used to remedy this situation.

Will this be an issue? If so, what can we do about it?

Or can Fortran 10 compiled code operate agains the version 12 runtime DLLs? Or would we have to put their DLL in a subdirectory along with its runtime DLLs and hopefully that would work?

By the way Lionel, thank you kindly for all the wonderful hints and help you provide in these forums. I hope Intel appreciates you! Their paying customers sure do.
0 Kudos
1 Solution
Steven_L_Intel1
Employee
439 Views
Thanks for the kind words.

Your application built with ifort 10 will run with the newer DLLs. The converse is not true - an application built with version 12 will not run with version 10 DLLs.

We have a redistributables package that installs to a fixed location under Program Files\Common Files and it's careful not to replace newer files with older ones.

We do not use manifest files.

View solution in original post

0 Kudos
3 Replies
Steven_L_Intel1
Employee
440 Views
Thanks for the kind words.

Your application built with ifort 10 will run with the newer DLLs. The converse is not true - an application built with version 12 will not run with version 10 DLLs.

We have a redistributables package that installs to a fixed location under Program Files\Common Files and it's careful not to replace newer files with older ones.

We do not use manifest files.
0 Kudos
van_der_merwe__ben
New Contributor I
439 Views
Fabulous. Thanks Lionel. We install the Intel Fortran runtime DLLs in the same directory as our application, as a foresight against possible DLL hell, so we should not have any issues then, even if some of the DLLs or OBJ were compiled on an older Intel Fortran version, and even if someone else's install overwrites any common versions.
0 Kudos
Steven_L_Intel1
Employee
439 Views
Sure, that works too.

By the way, my first name is Steve.
0 Kudos
Reply