Subject: bug#26563: Build Configuration Error for poll.h

From: [email-masked] (B.V. Raghav)
Date: Wed, 19 Apr 2017 20:12:36 +0530

This is an excerpt from the build  error for guile, at the step
`make -j12'

--- START ------------------
make  all-am
make[3]: Entering directory `/data/gpu/raghav/src/guile-2.0.14/libguile'
  CC       libguile_2.0_la-alist.lo
  CC       libguile_2.0_la-arbiters.lo
  CC       libguile_2.0_la-array-handle.lo
  CC       libguile_2.0_la-array-map.lo
  CC       libguile_2.0_la-arrays.lo
  CC       libguile_2.0_la-async.lo
  CC       libguile_2.0_la-boolean.lo
  CC       libguile_2.0_la-backtrace.lo
  CC       libguile_2.0_la-bitvectors.lo
  CC       libguile_2.0_la-bytevectors.lo
  CC       libguile_2.0_la-chars.lo
  CC       libguile_2.0_la-control.lo
  CC       libguile_2.0_la-debug.lo
  CC       libguile_2.0_la-deprecated.lo
  CC       libguile_2.0_la-continuations.lo
  CC       libguile_2.0_la-deprecation.lo
  CC       libguile_2.0_la-dynwind.lo
  CC       libguile_2.0_la-eq.lo
  CC       libguile_2.0_la-eval.lo
  CC       libguile_2.0_la-error.lo
  CC       libguile_2.0_la-evalext.lo
  CC       libguile_2.0_la-extensions.lo
  CC       libguile_2.0_la-expand.lo
  CC       libguile_2.0_la-feature.lo
  CC       libguile_2.0_la-filesys.lo
  CC       libguile_2.0_la-finalizers.lo
  CC       libguile_2.0_la-fluids.lo
  CC       libguile_2.0_la-foreign.lo
  CC       libguile_2.0_la-fports.lo
  CC       libguile_2.0_la-frames.lo
  CC       libguile_2.0_la-gc-malloc.lo
  CC       libguile_2.0_la-gc.lo
  CC       libguile_2.0_la-gdbint.lo
fports.c: In function 'fport_input_waiting':
fports.c:626:10: error: variable 'pollfd' has initializer but incomplete type
   struct pollfd pollfd = { fdes, POLLIN, 0 };
          ^
fports.c:626:10: warning: excess elements in struct initializer [enabled by default]
fports.c:626:10: warning: (near initialization for 'pollfd') [enabled by default]
fports.c:626:34: error: 'POLLIN' undeclared (first use in this function)
   struct pollfd pollfd = { fdes, POLLIN, 0 };
                                  ^
fports.c:626:34: note: each undeclared identifier is reported only once for each function it appears in
fports.c:626:10: warning: excess elements in struct initializer [enabled by default]
   struct pollfd pollfd = { fdes, POLLIN, 0 };
          ^
fports.c:626:10: warning: (near initialization for 'pollfd') [enabled by default]
fports.c:626:10: warning: excess elements in struct initializer [enabled by default]
fports.c:626:10: warning: (near initialization for 'pollfd') [enabled by default]
fports.c:626:17: error: storage size of 'pollfd' isn't known
   struct pollfd pollfd = { fdes, POLLIN, 0 };
                 ^
fports.c:628:3: warning: implicit declaration of function 'poll' [-Wimplicit-function-declaration]
   if (poll (&pollfd, 1, 0) < 0)
   ^
fports.c:626:17: warning: unused variable 'pollfd' [-Wunused-variable]
   struct pollfd pollfd = { fdes, POLLIN, 0 };
                 ^
  CC       libguile_2.0_la-gettext.lo
fports.c:632:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
make[3]: *** [libguile_2.0_la-fports.lo] Error 1

--- END --------------------

Looking a little deep, I see that the required file "poll.h" seems to
be defined in "lib/poll.h"

But I also have a "poll.h" in the "/usr/include/poll.h" which
redirects to "/usr/include/x86_64-linux-gnu/sys/poll.h"

There is also "libguile/poll.h" which redirects to "libguile/__scm.h"
And here is "__scm.h" there is no definition of "struct pollfd"

There seems to be something wrong while configuring the package.

I am using linux Ubuntu server. And the sysadmin route may take a
little more than usual. So I prefer building and installing a local
package.

I am trying to compile with gcc-4.8.

Configure command:
./configure --prefix=$HOME/.local --disable-static --disable-networking

Does it ring a bell

-- 
(B.V. Raghav)