- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I have been using the same code with version 9 with no issues. I now compiled the same code with version 12 and it the program no longer runs properly. Is there compatibility issues or a way to compile under version 12 so it run properly as in version 9?
Link Copied
5 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
There are several possible causes of the changes that you observed. In order of decreasing likelihood (approximately), they are:
bugs in the source code, which may have remained hidden
changes to compiler settings and defaults
compiler/runtime changes or bugs.
It would help if you could provided a short example to establish that code that ran with version 9 no longer works properly with version 12. In addition, you would need to list OS and compiler versions, and explain what "properly" means.
bugs in the source code, which may have remained hidden
changes to compiler settings and defaults
compiler/runtime changes or bugs.
It would help if you could provided a short example to establish that code that ran with version 9 no longer works properly with version 12. In addition, you would need to list OS and compiler versions, and explain what "properly" means.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Your question is too general to answer without clarification from you.
If you mean that you wish to mix .obj built with ifort 9 and those built with ifort 12, it's likely there is incompatibility. The combinations of objects between 9.1 and 10.1, 10.1 and 11.1, and 11.1 and 12.1, should be supported, but you may be taking this too far.
As the visual studio versions which were supported for ifort 9 are no longer supported in 12.1, it's not realistic to expect binary compatibility across the full range. 12.0 sitll supported VS2005 (with service packs).
You may remember that the default for 32-bit compilation changed to /arch:SSE2 some time ago (formerly -xW) and there was no longer support for -xK or -xB. The former 32-bit default is matched by /arch:IA32.
The compiler has evolved both in aggressiveness of optimization and thoroughness of diagnostics. The option -assume:protect_parens was introduced in 10.1 and is quite important for correctness.
If you mean that you wish to mix .obj built with ifort 9 and those built with ifort 12, it's likely there is incompatibility. The combinations of objects between 9.1 and 10.1, 10.1 and 11.1, and 11.1 and 12.1, should be supported, but you may be taking this too far.
As the visual studio versions which were supported for ifort 9 are no longer supported in 12.1, it's not realistic to expect binary compatibility across the full range. 12.0 sitll supported VS2005 (with service packs).
You may remember that the default for 32-bit compilation changed to /arch:SSE2 some time ago (formerly -xW) and there was no longer support for -xK or -xB. The former 32-bit default is matched by /arch:IA32.
The compiler has evolved both in aggressiveness of optimization and thoroughness of diagnostics. The option -assume:protect_parens was introduced in 10.1 and is quite important for correctness.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I have no particular options called out in either the ver 9 or the ver 12. Is there an option in version 12 that is on automatically that I need to remove to keep it more similar to version 9?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
More speculation: the /bin/intel64 directory contains a short file called ifort.cfg . This file is initlally empty when installed, but can be customized by the user by placing commonly used options in it. If you had one in the Ver.9 installation, see what options it contains.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
We really do need more deatails about how your program is different between the releases and switches used (even if you do not set switches some are on by default in Microsoft Visual Studio). If you attach the Build.log from each build that should describe the switches.
Here are some things which changed between the releases and are common problems for customers upgrading to newer compilers:
1) Floating point model has change to be more consistent. More details in this article.
2) /warn:intefaces ison by default and might be revealing some coding problems. /nowarn will turn it off.
3) Some defaults (for instance /fast) change from release to release to be targetting the latest processors.
Some switches which might help you find errors include the /check switch for coding errors and /traceback for runtime crashes.
Here are some things which changed between the releases and are common problems for customers upgrading to newer compilers:
1) Floating point model has change to be more consistent. More details in this article.
2) /warn:intefaces ison by default and might be revealing some coding problems. /nowarn will turn it off.
3) Some defaults (for instance /fast) change from release to release to be targetting the latest processors.
Some switches which might help you find errors include the /check switch for coding errors and /traceback for runtime crashes.
------
Wendy
Attaching or including files in a post

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page