Hi Nick,

Thanks for detailed explanation. It can be reproduced even without DPDK:

#include <windows.h>
#include <devguid.h>

int
main(int argc, char **argv) {
    return (int)&GUID_DEVCLASS_NET;
}

This links with clang, but not with MinGW-w64. AFAIK, it should not link,
because INITGUID is not defined. @DmitryM, @Naty, correct me if I'm wrong.
So I agree your fix is needed.


> Sure - latest MinGW-w64 (v8.0.0 I believe, but the versioning isn't too 
> clear to me!).

This is correct, MinGW-w64 version is different from GCC version, so it's
MinGW-w64 8.0.0 with GCC 8.1.0.


> [...] Arguably, it would perhaps be better to define 
> INITGUID in the source files that use the guids instead of in a shared 
> header, but I think this can safely be left until after 20.11 is 
> finalized - if there's any impact on the code produced it will be 
> negligible.

I disagree. Just because we have rte_windows.h to properly plug Windows SDK
in, other DPDK code doesn't need to care about these details. Unused GUIDs do
take some space in static libraries, but IMO it's a fair trade for ease of
development. They shouldn't have any impact on resulting binaries.

Reply via email to