From ebcd5e01ca4e2a76759d59a9a1589c43fbb7e6f2 Mon Sep 17 00:00:00 2001 From: Sergey Kandaurov Date: Thu, 10 Jul 2025 16:30:35 +0400 Subject: [PATCH] Configure: set NGX_KQUEUE_UDATA_T at compile time. The NGX_KQUEUE_UDATA_T macro is used to compensate the incompatible kqueue() API in NetBSD, it doesn't really belong to feature tests. The change limits the macro visibility to the kqueue event module. Moving from autotests also simplifies testing a particular NetBSD version as seen in a subsequent change. --- auto/unix | 20 -------------------- src/event/modules/ngx_kqueue_module.c | 9 +++++++++ 2 files changed, 9 insertions(+), 20 deletions(-) diff --git a/auto/unix b/auto/unix index 8bd1b1370..989e9690a 100644 --- a/auto/unix +++ b/auto/unix @@ -129,26 +129,6 @@ if test -z "$NGX_KQUEUE_CHECKED"; then fi -if [ "$NGX_SYSTEM" = "NetBSD" ]; then - - # NetBSD 2.0 incompatibly defines kevent.udata as "intptr_t" - - cat << END >> $NGX_AUTO_CONFIG_H - -#define NGX_KQUEUE_UDATA_T - -END - -else - cat << END >> $NGX_AUTO_CONFIG_H - -#define NGX_KQUEUE_UDATA_T (void *) - -END - -fi - - ngx_feature="crypt()" ngx_feature_name="NGX_HAVE_CRYPT" ngx_feature_run=no diff --git a/src/event/modules/ngx_kqueue_module.c b/src/event/modules/ngx_kqueue_module.c index fb8a6527c..2ed862e9e 100644 --- a/src/event/modules/ngx_kqueue_module.c +++ b/src/event/modules/ngx_kqueue_module.c @@ -10,6 +10,15 @@ #include +/* NetBSD 2.0 incompatibly defines kevent.udata as "intptr_t" */ + +#if (__NetBSD__) +#define NGX_KQUEUE_UDATA_T +#else +#define NGX_KQUEUE_UDATA_T (void *) +#endif + + typedef struct { ngx_uint_t changes; ngx_uint_t events;