Updated: w32api-{headers,runtime}-8.0.0-1 (x86/x86_64)

Brian Inglis Brian.Inglis@SystematicSw.ab.ca
Wed Sep 23 04:44:09 GMT 2020


On 2020-09-22 22:17, Brian Inglis wrote:
> On 2020-09-22 16:10, Brian Inglis wrote:
>> On 2020-09-18 23:19, JonY via Cygwin-announce wrote:
>>> Now released for both 32bit and 64bit Cygwin:
>>>
>>> w32api-headers-8.0.0-1
>>> w32api-runtime-8.0.0-1
>>>
>>> Based on mingw-w64-v8.0.0.
> 
> Sorry, ambigous - to clarify: may be a definition conflict between updated
> headers rebuilding cygwin both 32 and 64 just after latest updates: see attached log.
> Cygwin both 32 and 64 builds worked without any problems just before the latest
> updates.

Tad confusing log messages, but it appears the actual issue may not be a
conflict to do with PVOID, but with PMEM_EXTENDED_PARAMETER between the below:

$ fgrep -wB12 PMEM_EXTENDED_PARAMETER /usr/include/w32api/winnt.h
  typedef struct DECLSPEC_ALIGN(8) MEM_EXTENDED_PARAMETER {
    __C89_NAMELESS struct {
        DWORD64 Type : MEM_EXTENDED_PARAMETER_TYPE_BITS;
        DWORD64 Reserved : 64 - MEM_EXTENDED_PARAMETER_TYPE_BITS;
    };
    __C89_NAMELESS union {
        DWORD64 ULong64;
        PVOID Pointer;
        SIZE_T Size;
        HANDLE Handle;
        DWORD ULong;
    };
  } MEM_EXTENDED_PARAMETER, *PMEM_EXTENDED_PARAMETER;
$ fgrep -wA8 PMEM_EXTENDED_PARAMETER winsup/utils/cygpath.cc
#define PMEM_EXTENDED_PARAMETER PVOID
#include <windows.h>
#include <userenv.h>
#include <shlobj.h>
#include <ntdef.h>
#include <ntdll.h>

#include "wide_path.h"
#include "loadlib.h"

It seems likely that we could perhaps just remove the conflicting #define, but
without some idea of the original intent and its impact, and a good cygpath
regression test suite, that could perhaps be a rash decision.

-- 
Take care. Thanks, Brian Inglis, Calgary, Alberta, Canada

This email may be disturbing to some readers as it contains
too much technical detail. Reader discretion is advised.
[Data in binary units and prefixes, physical quantities in SI.]
-------------- next part --------------
c++wrap -fno-exceptions -fno-rtti -Wimplicit-fallthrough=4 -Werror -O2 -g -fno-threadsafe-statics -fno-rtti -fno-exceptions -fno-use-cxa-atexit -Wall -Wstrict-aliasing -Wwrite-strings -fno-common -pipe -fbuiltin -fmessage-length=0 -c -o cygpath.o ../../.././winsup/utils/cygpath.cc
../../.././winsup/utils/cygpath.cc:27:33: error: conflicting declaration 'typedef struct MEM_EXTENDED_PARAMETER* PVOID'
   27 | #define PMEM_EXTENDED_PARAMETER PVOID
      |                                 ^~~~~
In file included from /usr/include/w32api/minwindef.h:163,
                 from /usr/include/w32api/windef.h:9,
                 from /usr/include/w32api/windows.h:69,
                 from ../../.././winsup/utils/cygpath.cc:28:
/usr/include/w32api/winnt.h:257:17: note: previous declaration as 'typedef void* PVOID'
  257 |   typedef void *PVOID;
      |                 ^~~~~
make[3]: *** [../../.././winsup/utils/../Makefile.common:41: cygpath.o] Error 1
make[3]: Leaving directory '.../newlib-cygwin/x86_64-pc-cygwin/winsup/utils'
/bin/sh: 1: [: utils: unexpected operator
make[2]: *** [Makefile:81: utils] Error 2
make[2]: Leaving directory '.../newlib-cygwin/x86_64-pc-cygwin/winsup'
make[1]: *** [Makefile:9464: all-target-winsup] Error 2
make[1]: Leaving directory '.../newlib-cygwin'
make: *** [Makefile:883: all] Error 2


More information about the Cygwin mailing list