MantisBT - CMake
View Issue Details
0013795CMakeCMakepublic2012-12-14 07:052016-06-10 14:31
tobias 
Kitware Robot 
normalmajoralways
closedmoved 
x86-64LinuxopenSUSE 12.2
 
 
0013795: FortranCInterface mangling detection fails for PathScale (pathf95)
In PathScale, the following code:

module modname
contains
  subroutine subname()
  end subroutine subname
end module modname

produces the following symbols:

0000000000000001 T modname_
0000000000000000 T SUBNAME.in.MODNAME

The current code at "# Construct mangling macro definitions." at Modules/FortranCInterface/Detect.cmake doesn't handle neither the ".in." part - nor the reversed order of procedure name and module name.
No tags attached.
Issue History
2012-12-14 07:05tobiasNew Issue
2012-12-14 07:17tobiasNote Added: 0031888
2012-12-14 08:12Brad KingNote Added: 0031889
2016-06-10 14:28Kitware RobotNote Added: 0042172
2016-06-10 14:28Kitware RobotStatusnew => resolved
2016-06-10 14:28Kitware RobotResolutionopen => moved
2016-06-10 14:28Kitware RobotAssigned To => Kitware Robot
2016-06-10 14:31Kitware RobotStatusresolved => closed

Notes
(0031888)
tobias   
2012-12-14 07:17   
Note: This mangling is only used for module procedures but not for module variables:

module modname
  integer, save :: variable = 5
  integer, save :: variable2 = 5
end module modname

gets mangles into a single:

0000000000000000 D .data_init.in.modname__
0000000000000000 T modname_

Or variables without initialization:
0000000000000008 C .data.in.modname.in.modname_
(0031889)
Brad King   
2012-12-14 08:12   
What is the output from CMake on a project using FortranCInterface with this compiler? It should report that it found GLOBAL but not MODULE mangling.

Anyway, it is not possible to integrate this form of mangling with C because C does not support "." in symbol names.
(0042172)
Kitware Robot   
2016-06-10 14:28   
Resolving issue as `moved`.

This issue tracker is no longer used. Further discussion of this issue may take place in the current CMake Issues page linked in the banner at the top of this page.