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

10.1.029 versus 11.0.72 problem

wkramer
Beginner
2,295 Views
Hello,

Ihave a program that I cannot get to link underversion 11.0.72, but it works under version 10.1.029.
I have attached the Buildlog files for both versions.
The "interpreter" module does not use the "structs" module nor vice versa, so the error messages make no sence to me
I tried to link with /qnoipo,but then I get alot of: warning LNK4229: invalid directive '/Intel compiler non-linkable IL object file' encountered.
I tried to reproduce the error in a small program, using the modules that seem to cause the problem, but that didn't work.
Can someone give me some direction where to look for a possible cause of this problem?

Regards,

Walter Kramer

Windows XP home
Microsoft Visual C++ .NET 69459-005-7473167-18532
Microsoft Visual Studio .NET 2003 Service Pack 1 (KB918007)
Intel Visual Fortran Compiler Integration for Microsoft Visual Studio* .NET 2003, 11.0.3453.2003, Copyright (C) 2002-2009 Intel Corporation
* Other names and brands may be claimed as the property of others.
0 Kudos
11 Replies
Steven_L_Intel1
Employee
2,295 Views
I see that you link in two .lib files that were separately built. Have you rebuilt those libraries with the newer compiler? There have been bugs regarding the external names generated for module variables and you might be running into this issue that should be solved by a rebuild of all sources.

What is RC405 in module STRUCTS? Is it a variable? COMMON block? Routine? Where is it defined?

I am very puzzled that IPO is being invoked as I don't see you asking for that anywhere in the options. Would you please attach the .vfproj file for this project?
0 Kudos
wkramer
Beginner
2,295 Views
I see that you link in two .lib files that were separately built. Have you rebuilt those libraries with the newer compiler? There have been bugs regarding the external names generated for module variables and you might be running into this issue that should be solved by a rebuild of all sources.

What is RC405 in module STRUCTS? Is it a variable? COMMON block? Routine? Where is it defined?

I am very puzzled that IPO is being invoked as I don't see you asking for that anywhere in the options. Would you please attach the .vfproj file for this project?
Hello Steve,

I have tried it both ways, recompiling the libraries with 11.0.072 and 10.1.029.
RC405 is a variable of user defined type ST405defined in the module STRUCTS.
I thought that the problem was related tothe types defined in STRUCTS and especially the use of equivalence (see attached STRUCT.F90), that is why I tried to build a smaller program, to see if I could reproduce the problem. But as I told without succes.

The libraries do use a wrapper source code file that INCLUDES all source code files of the respective project, this way enforcing interprocedural optimization. I don't know if this could invoke IPO.

The number of unresolved externals is not constant. I have even had succes linking, but the next time it failed again. I haven't found a pattern yet.

Walter Kramer
0 Kudos
Steven_L_Intel1
Employee
2,295 Views
The only odd thing I see in the project is that you have /diag-enable:sv-includes set for your non-SV configurations. What happens if you turn that off and rebuild?
0 Kudos
wkramer
Beginner
2,295 Views
The only odd thing I see in the project is that you have /diag-enable:sv-includes set for your non-SV configurations. What happens if you turn that off and rebuild?

After turning off /diag-enable:sv-includes I don't getIPO related messages anymore, but now the number of unresolved externals is 32 (see attached buildlog).
By the way I noticed that the IDE states: "Rebuild All: 1 succeeded, 0 failed, 0 skipped", when building the "debug verifier" version of the program, however there seems to be an internal compiler error(see attached buildlog), so the word "succeeded" is not entirely correct.

Walter Kramer
0 Kudos
Steven_L_Intel1
Employee
2,295 Views
Would you please attach the source of one of the files that references PSTR?

I can see one odd thing - if you have an EQUIVALENCE in a module, the compiler omits the leading underscore from the global symbol name. But so far in my tests, the compiler uses the matching name when referencing these variables, so there should not be an error. The missing underscore is an error, but I think for compatibility we should not change it as 10.1 did the same thing.

You may have found a bug where the underscore is being added inconisstently, but I can't reproduce that yet.

For the internal compiler error, please submit that to Intel Premier Support and attach a ZIP of the project.
0 Kudos
wkramer
Beginner
2,295 Views

You may have found a bug where the underscore is being added inconisstently, but I can't reproduce that yet.
It looks like you are right, e.g. in the attached object file both STRUCTS_mp_PSTR and _STRUCTS_mp_PSTR appear, which results in the error message El_550.obj : error LNK2001: unresolved external symbol _STRUCTS_mp_PSTR (see attached buildlog).

I will submit a problem report forthe internal compiler error issue.

Regards,

Walter Kramer

0 Kudos
Steven_L_Intel1
Employee
2,295 Views
I'm going to need to see the whole project. Please submit a separate Premier issue for that and ask that it be assigned to me.
0 Kudos
wkramer
Beginner
2,295 Views
I'm going to need to see the whole project. Please submit a separate Premier issue for that and ask that it be assigned to me.

I will do my utmost best, but premier support doesn't seem to be capable to remember my passwords. Immediately after changing the password, premier support has forgotten it again.

Walter Kramer
0 Kudos
Steven_L_Intel1
Employee
2,295 Views
I'll notify the proper people about this.
0 Kudos
Steven_L_Intel1
Employee
2,295 Views
Walter,

Thanks for sending the project. I have reproduced the problem and it appears to require EQUIVALENCEd variables in a module and a USE of that module in an interface block. There are probably some other aspects I have not specifically identified. In any event, I have sent this on to the developers. You correctly note that this worked in 10.1.029 but not in 11.0.072 (nor in 10.1.030). The issue ID is DPD200118331.
0 Kudos
Steven_L_Intel1
Employee
2,295 Views
This problem is corrected in 11.1 Update 3, available now.
0 Kudos
Reply