More Cygwin breakage
Dmitry Timoshkov
dmitry at baikal.ru
Sat Feb 21 11:13:38 CST 2004
"Alexandre Julliard" <julliard at winehq.org> wrote:
> That doesn't mean it shouldn't be fixed. Sure someone will have to do
> that work, but it's much better than hiding the problem by adding
> extra code to Wine.
Just to make you all know: I've found and fixed a bug in dlltool preventing
exporting non-named and forwarded DLL entries.
The patch is attached.
Changelog:
2004-02-22 Dmitry Timoshkov <dmitry at baikal.ru>
* dlltool.c (gen_exp_file): Even not named exported entries need a name
in the Export Name Table in the case case they are forwarded to a name
in another DLL.
Here is a simplest test case which shows a problem:
--- test.def --
LIBRARY test.dll
EXPORTS
exported_api=kernel32.GetVersion @1 NONAME
--- EOF ---
$>dllwrap --def test.def -o test.dll
test.exp(.edata+0x34):fake: undefined reference to `f1'
collect2: ld returned 1 exit status
dllwrap: gcc exited with status 1
--
Dmitry.
-------------- next part --------------
--- src/binutils/dlltool.c Tue Nov 25 19:50:04 2003
+++ dlltool.c Sat Feb 21 16:42:04 2004
@@ -1841,13 +1841,13 @@ gen_exp_file (void)
fprintf(f,"%s Export Name Table\n", ASM_C);
for (i = 0; (exp = d_exports_lexically[i]); i++)
- if (!exp->noname || show_allnames)
- {
+ {
+ if (!exp->noname || show_allnames)
fprintf (f, "n%d: %s \"%s\"\n",
exp->ordinal, ASM_TEXT, xlate (exp->name));
- if (exp->forward != 0)
- fprintf (f, "f%d: %s \"%s\"\n",
- exp->forward, ASM_TEXT, exp->internal_name);
+ if (exp->forward != 0)
+ fprintf (f, "f%d: %s \"%s\"\n",
+ exp->forward, ASM_TEXT, exp->internal_name);
}
if (a_list)
More information about the wine-devel
mailing list