bug-binutils
[Top][All Lists]
Advanced

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

[Bug binutils/20814] New: DLLTool Put Wrong Hint Value In Lib Archieve (


From: jacky.chouchou at yandex dot ru
Subject: [Bug binutils/20814] New: DLLTool Put Wrong Hint Value In Lib Archieve (IDATA6 Section)
Date: Sun, 13 Nov 2016 22:27:38 +0000

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

            Bug ID: 20814
           Summary: DLLTool Put Wrong Hint Value In Lib Archieve (IDATA6
                    Section)
           Product: binutils
           Version: 2.27
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: binutils
          Assignee: unassigned at sourceware dot org
          Reporter: jacky.chouchou at yandex dot ru
  Target Milestone: ---

I just want to report that DLLTool put wrong hint value in lib archieve (IDATA6
section).
In "make_one_lib_file" function, I see the hint value grab from
"{struct}export->hint",
instead it should grab from "{struct}export->ordinal".

Don't worry about the value in "{struct}export->ordinal", "fill_ordinals"
function take good care of it.
And "{struct}export->hint" should be erase since no function used that value
anywhere in "dlltool.c" except for
"make_one_lib_file" function.
The generate object file name in lib archive already take care by
"gen_lib_file" function.

so it should change like this in "dlltool.c" for "make_one_lib_file" function
(case IDATA6):
[-] Original: LINE 2781: int idx = exp->hint;
[+] Patch   : LINE 2781: int idx = exp->ordinal;

The patch for "dlltool.c" to remove "{struct}export->hint":
[-] typedef struct export:   LINE 785:       REMOVE THIS -> int hint;
[-] "gen_lib_file" function: LINE 3265:      REMOVE THIS -> alias_exp.hint =
exp->hint;
[-] "mangle_defs" function:  LINE 3931:      REMOVE THIS -> int hint = 0;
[-] "mangle_defs" function:  LINE 3961-3964: REMOVE ALL OF THIS ->
for (i = 0; i < d_nfuncs; i++)
    if (!d_exports_lexically[i]->noname || show_allnames)
      d_exports_lexically[i]->hint = hint++;

Thanks.

-- 
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]