Subject: bug#59818: closed (Re: bug#59818: incomplete type 'struct pollfd', etc., when compiling tail on MacOS (patch included))

From: [email-masked] (GNU bug Tracking System)
Date: Mon, 05 Dec 2022 14:41:02 +0000

Your bug report

#59818: incomplete type 'struct pollfd', etc., when compiling tail on MacOS (patch included)

which was filed against the coreutils package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
59818: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=59818
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#59818: incomplete type 'struct pollfd', etc., when compiling tail on MacOS (patch included)
From: Pádraig Brady <[email-masked]>
To: Dennis Williamson <[email-masked]>, [email-masked]
Date: Mon, 5 Dec 2022 14:40:41 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

On 04/12/2022 15:55, Dennis Williamson wrote:
> I received the errors for tail.c shown below when compiling coreutils on
> MacOS (11.6). Adding __APPLE__ to the #if defined for poll.h fixes the
> issue (see the diff at the bottom). Making this change matches that line
> to the one within check_output_alive().
> 
> commit 324c188cfd8a1628c260e5003d309613a0c66e57 (August 29, 2022) made
> the change to check_output_alive(), but missed the change reported here.
> 
> Dennis
> 
> (HEAD: aaa306ad76d48b27efd75101d57b6ec5bf90362c)
> 
> Error:
> 
>     CC       src/tail.o
> src/tail.c:367:17: error: variable has incomplete type 'struct pollfd'
>     struct pollfd pfd;

Pushed at https://git.sv.gnu.org/gitweb/?p=coreutils.git;a=commitdiff;h=02441761c

thank you,
Pádraig

Subject: incomplete type 'struct pollfd', etc., when compiling tail on MacOS (patch included)
From: Dennis Williamson <[email-masked]>
To: [email-masked]
Date: Sun, 4 Dec 2022 09:55:03 -0600
List-Id: <debbugs-submit.debbugs.gnu.org>

I received the errors for tail.c shown below when compiling coreutils on 
MacOS (11.6). Adding __APPLE__ to the #if defined for poll.h fixes the 
issue (see the diff at the bottom). Making this change matches that line 
to the one within check_output_alive().

commit 324c188cfd8a1628c260e5003d309613a0c66e57 (August 29, 2022) made 
the change to check_output_alive(), but missed the change reported here.

Dennis

(HEAD: aaa306ad76d48b27efd75101d57b6ec5bf90362c)

Error:

   CC       src/tail.o
src/tail.c:367:17: error: variable has incomplete type 'struct pollfd'
   struct pollfd pfd;
                 ^
src/tail.c:367:10: note: forward declaration of 'struct pollfd'
   struct pollfd pfd;
          ^
src/tail.c:370:17: error: use of undeclared identifier 'POLLRDBAND'
   pfd.events |= POLLRDBAND; /* Needed for illumos, macos.  */
                 ^
src/tail.c:372:7: error: implicit declaration of function 'poll' is 
invalid in C99 [-Werror,-Wimplicit-function-declaration]
   if (poll (&pfd, 1, 0) >= 0 && (pfd.revents & (POLLERR | POLLHUP)))
       ^
src/tail.c:372:49: error: use of undeclared identifier 'POLLERR'
   if (poll (&pfd, 1, 0) >= 0 && (pfd.revents & (POLLERR | POLLHUP)))
                                                 ^
src/tail.c:372:59: error: use of undeclared identifier 'POLLHUP'
   if (poll (&pfd, 1, 0) >= 0 && (pfd.revents & (POLLERR | POLLHUP)))
                                                           ^
5 errors generated.
make[2]: *** [src/tail.o] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

Diff:

diff --git a/src/tail.c b/src/tail.c
index 6c7d59faf..14abf0871 100644
--- a/src/tail.c
+++ b/src/tail.c
@@ -55,7 +55,7 @@
  # include <sys/inotify.h>
  #endif

-#if defined _AIX || defined __sun || HAVE_INOTIFY
+#if defined _AIX || defined __sun || defined __APPLE__ || HAVE_INOTIFY
  # include <poll.h>
  #endif