setup.exe: error: ‘KEY_WOW64_{64,32}KEY’ was not declared in this scope

Shaddy Baddah lithium-cygwin@shaddybaddah.name
Mon Apr 15 15:34:00 GMT 2013


Hi,

On 16/04/13 00:39, Shaddy Baddah wrote:
> I'm encountering this error whilst trying to build (32bit) setup.exe,
> under 32bit Cygwin:
>
> make[2]: Entering directory
> `/cygdrive/c/Users/sbaddah/cygwin-home/workarea/cygwin-setup-build'
> CXX install.o
> ../cygwin-setup/install.cc: In function ‘void
> create_allow_protected_renames()Â’:
> ../cygwin-setup/install.cc:265:27: error: ‘KEY_WOW64_64KEY’ was not
> declared in this scope
> ../cygwin-setup/install.cc:265:27: error: ‘KEY_WOW64_32KEY’ was not
> declared in this scope
> Makefile:855: recipe for target `install.o' failed
> make[2]: *** [install.o] Error 1
>
>
> I think it may be linked to this change:
>
> http://sourceware.org/cgi-bin/cvsweb.cgi/setup/install.cc?rev=2.106&content-type=text/x-cvsweb-markup&cvsroot=cygwin-apps
>
>
> But this change looks to have been included in the 2.795 build of
> setup64.exe, so that gives me the impression I'm doing something wrong
> with my build parameters.
>
> Any help would be appreciated.

I think I may have worked out what is wrong. I understand now (actually
again, I'd forgotten) that the old mingw project is a little bit stale,
and that mingw64 is the way forward.

I'd configured my build using:

$ ../cygwin-setup/configure --host="i686-pc-mingw32" -C

which is using the legacy mingw32 compiler and its stale w32api.

That w32api has a strange guard around the definitions for the above:

#if (_WIN32_WINNT >= 0x0502)
#define KEY_WOW64_64KEY 0x0100
#define KEY_WOW64_32KEY 0x0200
#endif


And however it is defined, _WIN32_WINNT is set as 0x0400.

I am trying with:

$ ../cygwin-setup/configure --host="i686-w64-mingw32" -C

I am expecting this will work. I can report back if necessary.



More information about the Cygwin-apps mailing list