cygport i686/x86 library build undefined type in sys/stat.h

Ken Brown
Sat May 15 13:36:47 GMT 2021

On 5/15/2021 12:16 AM, Brian Inglis wrote:
> Trying to build latest libssh2 1.9.0 using cygport, works under x86_64,
> but under i686/x86 fails with:
> In file included from */usr/i686-pc-cygwin/include/sys/stat.h*:22,
>                   from ...:
> /usr/include/cygwin/stat.h:27:3: error: unknown type name ‘timestruc_t’
>     27 |   timestruc_t   st_atim;
>        |   ^~~~~~~~~~~
> The equivalent include path to */usr/i686-pc-cygwin/include/sys/stat.h*
> does not exist under 64 bit as /usr/x86_64-pc-cygwin/include,
> and cygcheck -f does not come up with a hit.
> The only obvious work around the timeframe of these files appears to be a
> local test newlib-cygwin build and install for format_proc_cpuinfo and
> format_proc_swaps testing:

It looks like something went wrong with the install of your test build.  In 
particular, the headers went to the wrong place.

> $ head -v /proc/version
> ==> /proc/version <==
> CYGWIN_NT-10.0-19042-WOW64 version 3.2.1-340.i686 (...@...) (gcc version 10.2.0 
> (GCC) ) 2021-04-30 12:55 UTC
> Has anyone any idea, from seeing anything similar happen on their installs,
> where this directory and these files may have come from,
> what may have installed them, and whether it is likely to be safe to
> rename or remove them?

Not only is it safe, but I would say it's mandatory.  You should also look for 
other remnants of your test install and remove them.  In general, I think it's a 
bad idea to do test installs in the same Cygwin installation that you use for 
building packages.


More information about the Cygwin mailing list