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

--
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple

Reply via email to