- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
UPDATE (10 July 2021) The problem with /iface:cref creating upper case names is resolved in the latest Fortran compiler release, 2021.3.0 which was in oneAPI HPC Toolkit 2021 Update 2 USE THIS RELEASE OR NEWER AND YOU WILL NOT HAVE THIS PROBLEM
Bug in Windows (only) ifort in oneAPI versions 2021.1.1, 2021.1.2, and 2021.2.x
Quick answer: if you use /iface:cref, for example to compile libraries to use with Abaqus, add option /names:lowercase. This will fix link issues. In VS Project Properties it is under:
Fortran
-> External Procedures -> Name Case Interpretation -> "Lower Case (/names:lowercase)
Symptoms: Abaqus and other users who rely on /iface:cref will receive link time issues (names not found, unresolved references). Afffects Windows ifort only ( /iface is Windows-only option ). Affects oneAPI ifort compilers versions 2021.1.1, 2021.1.2 and 2021.2
Cause: /iface:cref should set all names ( procedures, data ) to LOWERCASE. It is not doing this. Thus, names default to uppercase in object files and libraries. Thus, when Abaqus and other programs look for your functions at link time the references will be unresolved. For example:
subroutine foo( )
should be exported in object files as "foo" when option /iface:cref option is used. However, this bug is exporting "FOO" which is the IFORT default of uppercase names.
Resolution: We have a fix. It appeared in the 2021.3 compiler which was in the oneAPI HPC Toolkit 2021 Update 2 update release. For older 2021.1.x or 2021.2.x compilers use workaround /names:lowercase when using /iface:cref
Workaround: add compiler option "/names:lowercase" to your options:
/iface:cref /names:lowercase
Link Copied
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page