<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">
Hi,
<div class=""><br class="">
</div>
<div class="">In order to improve our build workflow, I'm trying to link against very old .lib (1998).</div>
<div class="">LLD seams to be the best chance we have to migrate to clang compiler while being able to link with a very old proprietary library.</div>
<div class=""><br class="">
</div>
<div class="">LLD is having trouble with those symbols:</div>
<div class=""><br class="">
</div>
<div class="">
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>003 C0000040 UNDEF  notype       Section      | .idata$4</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>004 C0000040 UNDEF  notype       Section      | .idata$5</div>
</div>
<div class=""><br class="">
</div>
<div class="">SectionNumber = UNDEF = 0 -> </div>
<div class=""><br class="">
</div>
<div class="">The COFF spec says about this:</div>
<div class=""><br class="">
</div>
<div class=""><span style="font-family: HelveticaNeue;" class="">> If the symbol referred to (by the SymbolTableIndex field) has storage class IMAGE_SYM_CLASS_SECTION, the symbolĂ­s address is the beginning of the section. The section is usually in the same
 file, except when the object file is part of an archive (library). In that case, the section may be found in any other object file in the archive that has the same archivemember name as the current object file. (The relationship with the archive-member name
 is used in the linking of import tables, i.e. the .idata section.)</span></div>
<div class=""><span style="font-family: HelveticaNeue;" class="">> </span><span style="font-family: HelveticaNeue;" class="">IMAGE_SYM_CLASS_SECTION</span>  = 104 Definition of a section (Microsoft tools use STATIC storage class instead).</div>
<div class=""><br class="">
</div>
<div class="">I'm still trying to understand the meaning of such symbol in order to allow LLD to resolve them correctly.</div>
<div class=""><br class="">
</div>
<div class="">Does this mean .idata$4 and .idata$5 refer to the same address which is the beginning of section .idata$6 ?</div>
<div class="">But in that case what does the associated C0000040 value means ?</div>
<div class=""><br class="">
</div>
<div class="">Any hint ?</div>
<div class=""><br class="">
</div>
<div class="">Thanks you,</div>
<div class="">Vincent RouillĂ©</div>
<div class=""><br class="">
</div>
<div class=""><br class="">
</div>
<div class="">Here is the dumpbin data related to my issue:</div>
<div class=""><br class="">
</div>
<div class="">
<div class="">FILE HEADER VALUES</div>
<div class="">     14C machine (i386)</div>
<div class="">       2 number of sections</div>
<div class="">31C231B8 time date stamp Sat Jun 15 05:44:56 1996</div>
<div class="">     182 file pointer to symbol table</div>
<div class="">       7 number of symbols</div>
<div class="">      E0 size of optional header</div>
<div class="">     100 characteristics</div>
<div class="">            32 bit word machine</div>
<div class=""><br class="">
</div>
<div class="">SECTION HEADER #1</div>
<div class="">.idata$2 name</div>
<div class="">       0 virtual size</div>
<div class="">       0 virtual address</div>
<div class="">      14 size of raw data</div>
<div class="">     144 file pointer to raw data</div>
<div class="">     158 file pointer to relocation table</div>
<div class="">       0 file pointer to line numbers</div>
<div class="">       3 number of relocations</div>
<div class="">       0 number of line numbers</div>
<div class="">C0100040 flags</div>
<div class="">         Initialized Data</div>
<div class="">         1 byte align</div>
<div class="">         Read Write</div>
<div class=""><br class="">
</div>
<div class="">RAW DATA #1</div>
<div class="">00000000  00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00  ........|........</div>
<div class="">00000010  00 00 00 00                                        ....</div>
<div class=""><br class="">
</div>
<div class="">RELOCATIONS #1</div>
<div class="">                                                Symbol    Symbol</div>
<div class=""> Offset    Type              Applied To         Index     Name</div>
<div class=""> --------  ----------------  -----------------  --------  ------</div>
<div class=""> 0000000C  DIR32NB                    00000000         2  .idata$6</div>
<div class=""> 00000000  DIR32NB                    00000000         3  .idata$4</div>
<div class=""> 00000010  DIR32NB                    00000000         4  .idata$5</div>
<div class=""><br class="">
</div>
<div class="">SECTION HEADER #2</div>
<div class="">.idata$6 name</div>
<div class="">       0 virtual size</div>
<div class="">       0 virtual address</div>
<div class="">       C size of raw data</div>
<div class="">     176 file pointer to raw data</div>
<div class="">     158 file pointer to relocation table</div>
<div class="">       0 file pointer to line numbers</div>
<div class="">       0 number of relocations</div>
<div class="">       0 number of line numbers</div>
<div class="">C0200040 flags</div>
<div class="">         Initialized Data</div>
<div class="">         2 byte align</div>
<div class="">         Read Write</div>
<div class=""><br class="">
</div>
<div class="">RAW DATA #2</div>
<div class="">00000000  4D 53 56 43 52 54 2E 64 | 6C 6C 00 00              MSVCRT.d|ll..</div>
<div class=""><br class="">
</div>
<div class="">COFF SYMBOL TABLE</div>
<div class="">000 00000000 SECT1  notype       External     | __IMPORT_DESCRIPTOR_MSVCRT</div>
<div class="">001 C0000040 SECT1  notype       Section      | .idata$2</div>
<div class="">002 00000000 SECT2  notype       Static       | .idata$6</div>
<div class="">003 C0000040 UNDEF  notype       Section      | .idata$4</div>
<div class="">004 C0000040 UNDEF  notype       Section      | .idata$5</div>
<div class="">005 00000000 UNDEF  notype       External     | __NULL_IMPORT_DESCRIPTOR</div>
<div class="">006 00000000 UNDEF  notype       External     | MSVCRT_NULL_THUNK_DATA</div>
<div class=""><br class="">
</div>
<div class="">String Table Size = 0x50 bytes</div>
</div>
<div class=""><br class="">
</div>
<div class=""><br class="">
</div>
<div class=""><br class="">
</div>
</body>
</html>