Hello! On Thu, Sep 23, 2021 at 06:29:21PM +0100, David CARLIER wrote:
> Hi dear list, > > here a patch proposal for the haiku os. > > Kind regards. > changeset: 7930:96ffec978b80 > tag: > improve_haiku_support_disable_unsupported_code_paths_adding_specific_build_ > tag: qbase > tag: qtip > tag: tip > user: David Carlier <devne...@gmail.com> > date: Thu Sep 23 18:13:21 2021 +0000 > summary: Improve Haiku support/disable unsupported code paths, adding > specific build config components. > > diff -r bfad703459b4 -r 96ffec978b80 auto/os/conf > --- a/auto/os/conf Wed Sep 22 10:20:00 2021 +0300 > +++ b/auto/os/conf Thu Sep 23 18:13:21 2021 +0000 > @@ -27,6 +27,10 @@ > . auto/os/win32 > ;; > > + Haiku:*) > + . auto/os/haiku > + ;; > + > DragonFly:*) > have=NGX_FREEBSD . auto/have_headers > CORE_INCS="$UNIX_INCS" > diff -r bfad703459b4 -r 96ffec978b80 auto/sources > --- a/auto/sources Wed Sep 22 10:20:00 2021 +0300 > +++ b/auto/sources Thu Sep 23 18:13:21 2021 +0000 > @@ -208,6 +208,8 @@ > DARWIN_SRCS=src/os/unix/ngx_darwin_init.c > DARWIN_SENDFILE_SRCS=src/os/unix/ngx_darwin_sendfile_chain.c > > +HAIKU_DEPS="src/os/unix/ngx_haiku_config.h" > + > > WIN32_INCS="$CORE_INCS $EVENT_INCS src/os/win32" > > diff -r bfad703459b4 -r 96ffec978b80 src/core/ngx_config.h > --- a/src/core/ngx_config.h Wed Sep 22 10:20:00 2021 +0300 > +++ b/src/core/ngx_config.h Thu Sep 23 18:13:21 2021 +0000 > @@ -37,6 +37,8 @@ > #elif (NGX_WIN32) > #include <ngx_win32_config.h> > > +#elif (NGX_HAIKU) > +#include <ngx_haiku_config.h> > > #else /* POSIX */ > #include <ngx_posix_config.h> > diff -r bfad703459b4 -r 96ffec978b80 src/os/unix/ngx_process.c > --- a/src/os/unix/ngx_process.c Wed Sep 22 10:20:00 2021 +0300 > +++ b/src/os/unix/ngx_process.c Thu Sep 23 18:13:21 2021 +0000 > @@ -87,7 +87,9 @@ > ngx_spawn_process(ngx_cycle_t *cycle, ngx_spawn_proc_pt proc, void *data, > char *name, ngx_int_t respawn) > { > +#if !(NGX_HAIKU) > u_long on; > +#endif > ngx_pid_t pid; > ngx_int_t s; > > @@ -142,6 +144,7 @@ > return NGX_INVALID_PID; > } > > +#if !(NGX_HAIKU) > on = 1; > if (ioctl(ngx_processes[s].channel[0], FIOASYNC, &on) == -1) { > ngx_log_error(NGX_LOG_ALERT, cycle->log, ngx_errno, > @@ -156,6 +159,7 @@ > ngx_close_channel(ngx_processes[s].channel, cycle->log); > return NGX_INVALID_PID; > } > +#endif > > if (fcntl(ngx_processes[s].channel[0], F_SETFD, FD_CLOEXEC) == -1) { > ngx_log_error(NGX_LOG_ALERT, cycle->log, ngx_errno, > Thanks for the patch. It looks broken though, as it lacks the ngx_haiku_config.h file. Further, it might be a better idea to avoid introducing HaikuOS-specific files and defines, and keep changes you want to introduce to better support HaikuOS under generic POSIX support instead. Note well that simply disabling FIOASYNC isn't a good solution. While it might not be used now, it is certainly will be important when interprocess communications via channels will used for additional things, such as passing open file descriptors of log files from master to worker processes (https://trac.nginx.org/nginx/ticket/376). -- Maxim Dounin http://mdounin.ru/ _______________________________________________ nginx-devel mailing list nginx-devel@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-devel