What's the preferred way to handle this? I am not sure whether you guys allow __FreeBSD_version testing etc.
On Wed, Jan 9, 2019 at 7:52 PM Sergey Kandaurov <pluk...@nginx.com> wrote: > > > > > On 8 Jan 2019, at 06:37, Sepherosa Ziehau <sepher...@gmail.com> wrote: > > > > sigval.sigval is for FreeBSD 6 compability, while FreeBSD 6 was EOL > > for quite a while. > > > > Patch: > > https://leaf.dragonflybsd.org/~sephe/nginx_sival.diff > > Citing here for archives: > > commit 14d1cab150226367c8a0f0ae219b0e0571587aea > Author: Yanmin Qiao <ya...@microsoft.com> > Date: Tue Jan 8 11:33:00 2019 +0800 > > unix/aio: Use sigval.sival which is standard. > > sigval.sigval is for FreeBSD 6 compability, while FreeBSD 6 was EOL for > quite a while. > > diff --git a/src/os/unix/ngx_file_aio_read.c b/src/os/unix/ngx_file_aio_read.c > index aedc3c90..bb60ee82 100644 > --- a/src/os/unix/ngx_file_aio_read.c > +++ b/src/os/unix/ngx_file_aio_read.c > @@ -110,7 +110,7 @@ ngx_file_aio_read(ngx_file_t *file, u_char *buf, size_t > size, off_t offset, > #if (NGX_HAVE_KQUEUE) > aio->aiocb.aio_sigevent.sigev_notify_kqueue = ngx_kqueue; > aio->aiocb.aio_sigevent.sigev_notify = SIGEV_KEVENT; > - aio->aiocb.aio_sigevent.sigev_value.sigval_ptr = ev; > + aio->aiocb.aio_sigevent.sigev_value.sival_ptr = ev; > #endif > ev->handler = ngx_file_aio_event_handler; > > > FreeBSD 4/5/6 lack sival_ptr (FreeBSD 3 has it, but not yet SIGEV_KEVENT), > which seemingly was broken in svn r48621 and later restored in r152029. > > And that means that the following will no longer be true: > > : Currently file AIO is supported on FreeBSD 4.3+ and Linux 2.6.22+ only > > While nginx still maintains compatibility down to FreeBSD 2.2. > > If applied, it'd need this part as well (used to build on old FreeBSD): > > diff --git a/src/event/modules/ngx_eventport_module.c > b/src/event/modules/ngx_eventport_module.c > --- a/src/event/modules/ngx_eventport_module.c > +++ b/src/event/modules/ngx_eventport_module.c > @@ -250,9 +250,7 @@ ngx_eventport_init(ngx_cycle_t *cycle, n > > ngx_memzero(&sev, sizeof(struct sigevent)); > sev.sigev_notify = SIGEV_PORT; > -#if !(NGX_TEST_BUILD_EVENTPORT) > sev.sigev_value.sival_ptr = &pn; > -#endif > > if (timer_create(CLOCK_REALTIME, &sev, &event_timer) == -1) { > ngx_log_error(NGX_LOG_EMERG, cycle->log, ngx_errno, > > -- > Sergey Kandaurov > > _______________________________________________ > nginx-devel mailing list > nginx-devel@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-devel -- Tomorrow Will Never Die _______________________________________________ nginx-devel mailing list nginx-devel@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-devel