I'm email this, since I can't register in your bug report forum, its
because my IP I think.
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.