Windows binaries

Dirk Hohndel dirk at hohndel.org
Sun Nov 27 09:02:02 PST 2011


On Sun, 27 Nov 2011 16:24:07 +0200, "Lubomir I. Ivanov" <neolit123 at gmail.com> wrote:
> ----- Original Message ----- 
> From: "Dirk Hohndel" <dirk at hohndel.org>
> 
> > Oops - I thought I had a warning free build. Missed that one.
> >
> > BTW: I didn't get a warning for the LPCTSTR casts. If you are using
> > mingw as well (shouldn't matter that I'm using it to cross build and you
> > are using it natively), then I wonder why you see warnings that I don't
> > see.
> 
> some of these might be compiler version specific. i will send a patch today for 
> those.

Saw the patch - those I had already fixed, but on one of those I'll like
your fix better. So I'll merge our two patches.
 
> subsurface only builds with versions newer to mingw-gcc-4.6 on my side. i've 
> tried version prior to 4.6 previously but got a linker error (i don't exactly 
> recall the cause), but it is mingw bug.
> 
> RegQueryValueEx and RegSetValueEx take a LPCTSTR parameter, but when i enable 
> UNICODE (-DUNICODE) the TEXT macro expands to something wrong e.g. "error: 
> 'Lname' undeclared" - where the L prefix is for wide char string, but it only 
> works on string literals e.g. TEXT("sometext") =  L"sometext"

Interesting. So I'll use the TEXT macro only on string literals, not on
variables. Cool.
 
> >> if a zip "subsurface-libs-dll.zip" is also provided then it has to match the
> >> versions in "subsurface-libs-src.zip". e.g. i have "libxml2.dll" and
> >> "pthreadGC1.dll"
> >
> > Not sure how to deal with that - in the subsurface.nsi file we need the
> > exact versions that we link against. Is there a tool like ldd on Windows
> > that we could use to create the output? All I found is DependencyWalker
> > and that's not a native tool, either (and not opensource, either, so we
> > can't distribute it).
> 
> yep, there is no LDD from msys/mingw/gnuwin.
> there are only some closed source tools like "dependency walker".
> 
> but apparently one can do:
> 
> objdump -pt libgtk-win32-2.0-0.dll | grep DLL
> 
> DLL Name: libgdk-win32-2.0-0.dll
> DLL Name: libatk-1.0-0.dll
> DLL Name: libcairo-2.dll
> <snip>

objdump is a tool that does not appear to be part of the cross tools. 
I had hoped we could automatically create a file with the dll's that we
need and then include that file in subsurface.nsi - I guess that won't
work as then we could run makensis in the cross-built environment.
 
> i will try to match the versions in the eventual "src" package to the crossbuild 
> DLL versions.

That would be awesome, as this would also allow us to have one .nsi
file.

/D


More information about the subsurface mailing list