can't compile coreutils-9.3 any more after upgrade to cygwin-3.4.8

Mark Geisert mark@maxrnd.com
Thu Aug 24 21:39:36 GMT 2023


Hi Denis,

Thanks for the report.  More below...

Denis Excoffier via Cygwin wrote:
> Hello,
> When i try to compile coreutils-9.3 under cygwin-3.4.8 i get the following error messages (see below).
> There seems to be a kind of loop in the hierarchy of #includes.
> Moreover, with cygwin-3.4.7, this is ok. Also, if under cygwin-3.4.8 i remove the 2 #includes from /usr/include/sys/cpuset.h,
> this is also ok.
> 
> Regards,
> 
> Denis Excoffier.
> 
> 
> 
> In file included from /usr/include/sys/signal.h:23,
>                   from /usr/include/signal.h:6,
>                   from ./lib/signal.h:52,
>                   from /usr/include/time.h:158,
>                   from ./lib/time.h:47,
>                   from ./lib/sys/stat.h:44,
>                   from ./lib/fcntl.h:64,
>                   from ./lib/unistd.h:99,
>                   from ./lib/stdlib.h:98,
>                   from /usr/include/sys/cpuset.h:12,
>                   from /usr/include/sys/_pthreadtypes.h:12,
>                   from /usr/include/sys/types.h:221,
>                   from ./lib/sys/types.h:39,
>                   from ./lib/stdio.h:69,
>                   from src/chroot.c:21:
> /usr/include/cygwin/signal.h:121:3: error: unknown type name 'pthread_attr_t'
>    121 |   pthread_attr_t *sigev_notify_attributes; /* notification attributes */
>        |   ^~~~~~~~~~~~~~
> In file included from /usr/include/signal.h:6,
>                   from ./lib/signal.h:52,
>                   from /usr/include/time.h:158,
>                   from ./lib/time.h:47,
>                   from ./lib/sys/stat.h:44,
>                   from ./lib/fcntl.h:64,
>                   from ./lib/unistd.h:99,
>                   from ./lib/stdlib.h:98,
>                   from /usr/include/sys/cpuset.h:12,
>                   from /usr/include/sys/_pthreadtypes.h:12,
>                   from /usr/include/sys/types.h:221,
>                   from ./lib/sys/#include <sys/cpuset.h>types.h:39,
>                   from ./lib/stdio.h:69,
>                   from src/chroot.c:21:
> /usr/include/sys/signal.h:227:29: error: expected ')' before 'int'
>    227 | int pthread_kill (pthread_t, int);
>        |                             ^~~~
>        |                             )

ISTM the above could be fixed by moving "#include <sys/cpuset.h>" after all the 
typedefs in <sys/_pthreadtypes.h>.  That would be an odd location for an #include 
though.  Another approach would be to have explicit external refs for the needed 
two functions in <sys/cpuset.h> and remove the #includes there.

> In file included from /usr/include/sys/stat.h:22,
>                   from ./lib/sys/stat.h:47,
>                   from ./lib/fcntl.h:64,
>                   from ./lib/unistd.h:99,
>                   from ./lib/stdlib.h:98,
>                   from /usr/include/sys/cpuset.h:12,
>                   from /usr/include/sys/_pthreadtypes.h:12,
>                   from /usr/include/sys/types.h:221,
>                   from ./lib/sys/types.h:39,
>                   from ./lib/stdio.h:69,
>                   from src/chroot.c:21:
> /usr/include/cygwin/stat.h:27:3: error: unknown type name 'timestruc_t'
>     27 |   timestruc_t   st_atim;
>        |   ^~~~~~~~~~~
> /usr/include/cygwin/stat.h:28:3: error: unknown type name 'timestruc_t'
>     28 |   timestruc_t   st_mtim;
>        |   ^~~~~~~~~~~
> /usr/include/cygwin/stat.h:29:3: error: unknown type name 'timestruc_t'
>     29 |   timestruc_t   st_ctim;
>        |   ^~~~~~~~~~~
> /usr/include/cygwin/stat.h:32:3: error: unknown type name 'timestruc_t'
>     32 |   timestruc_t   st_birthtim;
>        |   ^~~~~~~~~~~

I don't have an answer for these.  Awaiting more input from our wizards.  I'm 
willing to submit the patch for any agreed solution.

..mark


More information about the Cygwin mailing list