bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug ld/14339] MinGW ld omits stubs when linking delay import library an


From: ssbssa at yahoo dot de
Subject: [Bug ld/14339] MinGW ld omits stubs when linking delay import library and using __declspec(dllimport)
Date: Tue, 07 Feb 2017 10:54:53 +0000

https://sourceware.org/bugzilla/show_bug.cgi?id=14339

Domani Hannes <ssbssa at yahoo dot de> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |ssbssa at yahoo dot de

--- Comment #1 from Domani Hannes <ssbssa at yahoo dot de> ---
At
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=blob;f=ld/emultempl/pe.em;h=8f41f27709a11c5b3bc4f028c05f7915ce540a86;hb=HEAD#l1768
is this:

/* The following chunk of code tries to identify jump stubs in
   import libraries which are dead code and eliminates them
   from the final link. For each exported symbol <sym>, there
   is a object file in the import library with a .text section
   and several .idata\$* sections. The .text section contains the
   symbol definition for <sym> which is a jump stub of the form
   jmp *__imp_<sym>. The .idata\$5 contains the symbol definition
   for __imp_<sym> which is the address of the slot for <sym> in
   the import address table. When a symbol is imported explicitly
   using __declspec(dllimport) declaration, the compiler generates
   a reference to __imp_<sym> which directly resolves to the
   symbol in .idata\$5, in which case the jump stub code is not
   needed. The following code tries to identify jump stub sections
   in import libraries which are not referred to by anyone and
   marks them for exclusion from the final link.  */

This code removes the delay-loading stubs as well.

My simple fix/workaround was to check if the last symbol name starts with
"___tailMerge_", and in this case not exclude it from the final link.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]