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! > > >
