summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorSergey Kandaurov <pluknet@nginx.com>2025-07-10 16:30:35 +0400
committerpluknet <pluknet@nginx.com>2025-07-11 16:25:51 +0400
commit3f5f8a7f51b16097ce6d5811ea3934efdfb27dd6 (patch)
tree9e93dc47834e4adde9e5bf8dfa42f575cf4f2f7d
parent0daaba5c54aeeddffff400bfc77a08a1fd71b757 (diff)
downloadnginx-3f5f8a7f51b16097ce6d5811ea3934efdfb27dd6.tar.gz
nginx-3f5f8a7f51b16097ce6d5811ea3934efdfb27dd6.tar.bz2
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.
-rw-r--r--auto/unix20
-rw-r--r--src/event/modules/ngx_kqueue_module.c9
2 files changed, 9 insertions, 20 deletions
diff --git a/auto/unix b/auto/unix
index 0dd66cfcd..6087e04fd 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 <ngx_event.h>
+/* 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;