I've been trying to build ntdll and various other dlls (I'm actually interested in gdi and x11drv) for cygwin as well. I tried building ntdll with the latest CVS which includes Alexandre's patch from below. However I still get lots of errors saying variable '_wine_ldt_copy' can't be auto-imported. Please read the ld --enable-auto-import docs for details There are a few recommendations in the ld man page about how to avoid this; either by declaring the variable as __declspec(dllimport) or using a pointer to it instead. Has anyone else solved this problem, as I don't want to go through lots of the code doing something someone else has done? Or am I missing the point?
David Fraser
Alexandre Julliard wrote:
Steven Edwards Steven_Ed4153@yahoo.com writes:
we get much futher now when building ntdll on cygwin. when linking I am getting the following error
ntdll.exp(.edata+0xe4c):fake: undefined reference to `NTDLL_alloca_probe@0' ntdll.exp(.edata+0xe5c):fake: undefined reference to `NTDLL_chkstk@0'
there are some other warnings but this is the only major thing with ntdll.
This should fix it:
Index: tools/winebuild/spec32.c
RCS file: /opt/cvs-commit/wine/tools/winebuild/spec32.c,v retrieving revision 1.52 diff -u -r1.52 spec32.c --- tools/winebuild/spec32.c 15 Aug 2002 23:21:03 -0000 1.52 +++ tools/winebuild/spec32.c 9 Oct 2002 19:19:04 -0000 @@ -863,7 +863,7 @@ ORDDEF *odp = EntryPoints[i];
if (!odp) continue;
if (odp->flags & FLAG_NOIMPORT) continue;
if (odp->flags & (FLAG_NOIMPORT|FLAG_REGISTER)) continue; if (odp->type == TYPE_STUB) continue; if (odp->name) name = odp->name;