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

dumpbin of interface routine - linking HDF

scrognoid
Beginner
505 Views
Should "dumpbin -symbols hdf4interfaces.obj" show me the aliases I am trying to create into HDF. hdf4interfaces.f90 looks like this:

module hdf4interface
interface
function dfsdsetdims [C,ALIAS:'_DFSDsetdims'](rank,dim_sizes)
integer*4 dfsdsetdims,rank,dim_sizes(*)
end function
end interface
end module


dumpbin produces:
Dump of file hdf4interface.obj

File Type: COFF OBJECT

COFF SYMBOL TABLE
000 00000000 DEBUG notype Filename | .file
E:\TimDocs\fort\cross\source\hdf4interface.f90
004 00000001 ABS notype Static | @feat.00
005 00000000 SECT1 notype Static | .text
Section length 8, #relocs 0, #linenums 0, checksum 0
007 00000000 SECT1 notype () External | _HDF4INTERFACE.
008 00000000 SECT2 notype Static | .debug$S
Section length A8, #relocs 2, #linenums 0, checksum 0
00A 00000000 SECT6 notype Static | .debug$T
Section length 20, #relocs 0, #linenums 0, checksum 0
00C 00000000 SECT3 notype Static | .rdata
Section length 58, #relocs 0, #linenums 0, checksum 0
00E 00000000 SECT3 notype Static | STRLITPACK_0
00F 00000010 SECT3 notype Static | STRLITPACK_1
010 00000024 SECT3 notype Static | STRLITPACK_2
011 00000034 SECT3 notype Static | STRLITPACK_3
012 00000048 SECT3 notype Static | STRLITPACK_4
013 00000000 SECT4 notype Static | .drectve
Section length B8, #relocs 0, #linenums 0, checksum 0
015 00000000 SECT5 notype Static | .trace
Section length 60, #relocs 2, #linenums 0, checksum 0

String Table Size = 0x55 bytes

Summary

A8 .debug$S
20 .debug$T
B8 .drectve
58 .rdata
8 .text
60 .trace

I don't see the external symbols that I'm missing when I link.


0 Kudos
1 Reply
Steven_L_Intel1
Employee
505 Views
No. An interface block does not correspond to any object code. I would also recommend that you switch from the old Microsoft Fortran PowerStation square bracket syntax for attributes to the Fortran 2003 BIND(C,NAME=). Note that you would leave off the leading underscore when doing this.
0 Kudos
Reply