FreeBSD 13 added eventfd(2) [1], which means that the check on HAVE_EVENTFD
in EventNotify.cc [2] can no longer assume that if you have eventfd(2) you
also have epoll.

Brian

1.
https://github.com/freebsd/freebsd-src/commit/7a202823aa54ba18c485bdbcf355269bcfee1ab9#diff-7ea785358f7ef658d52a5d985ea53f03c09cd0bfee8e6a7403063774d3dc58a8
2.
https://github.com/apache/trafficserver/blob/3d266379b816227928171d1f07de747f6a9a254b/src/tscore/EventNotify.cc#L34

On Tue, Mar 30, 2021 at 9:29 AM Leif Hedstrom <[email protected]> wrote:

>
>
> On Mar 30, 2021, at 9:00 AM, Johan Hendriks <[email protected]>
> wrote:
>
> Hello all, we use traffic server on FreeBSD 12.2 now and we like to switch
> to FreeBSD 13 when it comes out.
> So we did instaal the latest 13.0RC4 version but we can not build the
> port. It erros out with an sys/epoll.h file not find error.
>
> Hmmm, weird. On FreeBSD, the expectation would obviously be that it should
> use kqueue, and note poll.
>
> — Leif
>
>
> It compiles fine on 12.2 but not on 13.0.
>
> It ends with the following error.
>
> libtool: compile:  c++ -DHAVE_CONFIG_H -I. -I../../include
> -D_GLIBCXX_USE_C99 -D_GLIBCXX_USE_C99_MATH -D_GLIBCXX_USE_C99_MATH_TR1
> -Dfreebsd -D_LARGEFILE64_SOURCE=1 -D_COMPILE64BIT_SOURCE=1 -D_REENTRANT
> -D__STDC_LIMIT_MACROS=1 -D__STDC_FORMAT_MACROS=1
> -I/usr/ports/www/trafficserver/work/trafficserver-8.1.1/iocore/eventsystem
> -I/usr/ports/www/trafficserver/work/trafficserver-8.1.1/iocore/net
> -I/usr/ports/www/trafficserver/work/trafficserver-8.1.1/iocore/aio
> -I/usr/ports/www/trafficserver/work/trafficserver-8.1.1/iocore/hostdb
> -I/usr/ports/www/trafficserver/work/trafficserver-8.1.1/iocore/cache
> -I/usr/ports/www/trafficserver/work/trafficserver-8.1.1/iocore/utils
> -I/usr/ports/www/trafficserver/work/trafficserver-8.1.1/iocore/dns
> -I/usr/ports/www/trafficserver/work/trafficserver-8.1.1/include
> -I/usr/ports/www/trafficserver/work/trafficserver-8.1.1/include/records
> -I/usr/ports/www/trafficserver/work/trafficserver-8.1.1/lib
> -I/usr/local/include -I/usr/local/include/tcl8.6
> -I/usr/ports/www/trafficserver/work/trafficserver-8.1.1/lib/yamlcpp/include
> -isystem /usr/local/include -D_GNU_SOURCE -I/usr/include
> -DOPENSSL_NO_SSL_INTERN -I/usr/local/include -std=c++17 -g -pipe -Wall
> -Wno-deprecated-declarations -Qunused-arguments -Wextra
> -Wno-ignored-qualifiers -Wno-unused-parameter -fno-strict-aliasing
> -Wno-invalid-offsetof -mcx16 -O2 -pipe -fstack-protector-strong -isystem
> /usr/local/include -fno-strict-aliasing -isystem /usr/local/include -c
> EventNotify.cc  -fPIC -DPIC -o .libs/EventNotify.o
> EventNotify.cc:37 <http://eventnotify.cc:37>:10: fatal error:
> 'sys/epoll.h' file not found
> #include <sys/epoll.h>
>          ^~~~~~~~~~~~~
> 1 error generated.
> gmake[3]: *** [Makefile:1481: EventNotify.lo] Error 1
> gmake[3]: *** Waiting for unfinished jobs....
> gmake[3]: Leaving directory
> '/usr/ports/www/trafficserver/work/trafficserver-8.1.1/src/tscore'
> gmake[2]: *** [Makefile:862: all-recursive] Error 1
> gmake[2]: Leaving directory
> '/usr/ports/www/trafficserver/work/trafficserver-8.1.1'
> ===> Compilation failed unexpectedly.
> Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to
> the maintainer.
> *** Error code 1
>
> Stop.
> make[1]: stopped in /usr/ports/www/trafficserver
> *** Error code 1
>
> Stop.
> make: stopped in /usr/ports/www/trafficserver
>
> In the config.log file i see it seems to detect kqueue like it should
>
> ac_cv_func_kqueue=yes
> use_kqueue='1'
>
> Thanks for your time!
>
>
>

Reply via email to