[Wheel-builders] error: signalfd.h not found when building manylinux wheel
Nathaniel Smith
njs at pobox.com
Sat Jul 9 01:07:51 EDT 2016
On Fri, Jul 8, 2016 at 3:23 PM, Vitaly Kruglikov <vkruglikov at numenta.com> wrote:
> I am attempting to build a manylinux wheel from the nupic.core project in
> github. I am using the docker image quay.io/pypa/manylinux1_x86_64.
> nupic.core builds and statically links against the capnproto library, which
> relies on signalfd.h. Unfortunately, the docker image
> quay.io/pypa/manylinux1_x86_64 does not provide signalfd.h, so my build
> fails like this:
>
> Linking CXX static library libkj.a
> [ 27%] Built target kj
> [ 29%] Building CXX object src/kj/CMakeFiles/kj-async.dir/async.c++.o
> [ 30%] Building CXX object src/kj/CMakeFiles/kj-async.dir/async-unix.c++.o
> /nupic.core/build/scripts/ThirdParty/Source/CapnProto/src/kj/async-unix.c++:36:26:
> fatal error: sys/signalfd.h: No such file or directory
> #include <sys/signalfd.h>
>
> What is the recommended solution for this problem?
man signalfd says:
VERSIONS
signalfd() is available on Linux since kernel 2.6.22. Working support
is provided in glibc since version 2.8. The signalfd4() system call
(see NOTES) is available on Linux since kernel 2.6.27.
CentOS 5 ships glibc 2.5, so signalfd is simply not available to
manylinux1 wheels. I guess the recommended solution is to modify your
code so that it doesn't require signalfd? It looks you aren't the only
person to run into this this week...
https://groups.google.com/forum/#!topic/capnproto/OpH9RtOBcZU
and the suggestion there is to use -DKJ_USE_EPOLL=0 to tell capnproto
not to use signalfd.
This is an interesting data point for the benefits of defining a
CentOS-6-based manylinux2, though...
-n
--
Nathaniel J. Smith -- https://vorpus.org
More information about the Wheel-builders
mailing list