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

AltStyle によって変換されたページ (->オリジナル) /