On Fri, 22 Oct 2021, Jeremy Drake wrote:

On Fri, 22 Oct 2021, Martin Storsjö wrote:

On Thu, 21 Oct 2021, Jeremy Drake via Mingw-w64-public wrote:

There was a version already present as libquery.a for a couple of
arches, but the Windows SDK provides identical libquery.a and
libntquery.a, and the DLL on Windows 10 20H2 and 21H1 has much
fewer exports than the pre-existing def file.

Pushed, thanks!

I get these warnings linking to the 32-bit version of `-lntquery`:

ld.lld: warning: Resolving _BindIFilterFromStream@12 by linking to 
_BindIFilterFromStream
ld.lld: warning: Resolving _BindIFilterFromStorage@12 by linking to  
_BindIFilterFromStorage
ld.lld: warning: Resolving _LoadIFilter@12 by linking to _LoadIFilter

Comparing libquery.a to libntquery.a shows the latter is missing the
stdcall decorations.  Perhaps the #include trick didn't go so well, and
it'd be better to just copy the def file (at least for lib32)?

Hmm, yes, it seems so... When making lib32/libntquery.a, it involves two implicit pattern rules (.def.in to .def, then .def to .a) - I would expect make to choose among them according to which pattern is declared first (which should prefer the one from lib32 over the one from lib-common). But iirc make might use a rule to pick according to which pattern match is the most specific, and for that, it's a tie.

So yeah, duplicating that one into ntquery.def seems to fix it. I wonder if it'd be good to do the same for lib-common too, for consistency?

// Martin


_______________________________________________
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to