Mercurial > hg > nginx
changeset 9266:93bbb9fbf30d
Fixed compilation on NetBSD 10.
NetBSD 10 changed struct kevent's udata type from "intptr_t" to "void *",
similarly to how it is defined on other systems. This breaks compilation,
since intptr_t is assumed on NetBSD.
Fix is to limit special intptr_t handling to NetBSD versions before 10.0.
To simplify testing, relevant definitions are moved from configure to code
(which seems to be the right thing anyway).
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Mon, 06 May 2024 00:07:33 +0300 |
parents | d89e0386b695 |
children | 9a5e2296c1be |
files | auto/unix src/os/unix/ngx_darwin_config.h src/os/unix/ngx_freebsd_config.h src/os/unix/ngx_posix_config.h |
diffstat | 4 files changed, 12 insertions(+), 20 deletions(-) [+] |
line wrap: on
line diff
--- a/auto/unix Mon May 06 00:07:18 2024 +0300 +++ b/auto/unix Mon May 06 00:07:33 2024 +0300 @@ -129,26 +129,6 @@ 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_feature_run=no
--- a/src/os/unix/ngx_darwin_config.h Mon May 06 00:07:18 2024 +0300 +++ b/src/os/unix/ngx_darwin_config.h Mon May 06 00:07:33 2024 +0300 @@ -74,6 +74,7 @@ #if (NGX_HAVE_KQUEUE) #include <sys/event.h> +#define NGX_KQUEUE_UDATA_T (void *) #endif
--- a/src/os/unix/ngx_freebsd_config.h Mon May 06 00:07:18 2024 +0300 +++ b/src/os/unix/ngx_freebsd_config.h Mon May 06 00:07:33 2024 +0300 @@ -85,6 +85,7 @@ #if (NGX_HAVE_KQUEUE) #include <sys/event.h> +#define NGX_KQUEUE_UDATA_T (void *) #endif
--- a/src/os/unix/ngx_posix_config.h Mon May 06 00:07:18 2024 +0300 +++ b/src/os/unix/ngx_posix_config.h Mon May 06 00:07:33 2024 +0300 @@ -124,7 +124,17 @@ #if (NGX_HAVE_KQUEUE) + #include <sys/event.h> + +/* NetBSD before 10.0 incompatibly defines kevent.udata as "intptr_t" */ + +#if (defined __NetBSD__ && __NetBSD_Version__ < 999001500) +#define NGX_KQUEUE_UDATA_T +#else +#define NGX_KQUEUE_UDATA_T (void *) +#endif + #endif