httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From NormW <no...@gknw.net>
Subject NetWare testing httpd-trunk with apr,apr-util 1.6
Date Sat, 17 Sep 2016 11:30:14 GMT
Hi,
Having little to watch on TV, have played about with httpd-trunk and 
apr-1.6, to see where the hiccups are hiding... What follows are the 
issues found, and in most cases, fairly simple solutions.

> D:\Projects\svn\httpd-trunk>svn diff
> Index: modules/filters/mod_crypto.c
> ===================================================================
> --- modules/filters/mod_crypto.c        (revision 1760988)
> +++ modules/filters/mod_crypto.c        (working copy)
> @@ -116,6 +116,7 @@
>  {
>      apr_status_t rv;
>      char ps = *arg;
> +    const char *name;
>
>      if ('f' == ps && !strncmp(arg, "file:", 5)) {
>          arg += 5;
> @@ -124,7 +125,7 @@
>              return apr_pstrcat(cmd->pool, "No filename specified", NULL);
>          }
>
> -        const char *name = ap_server_root_relative(cmd->temp_pool, arg);
> +        name = ap_server_root_relative(cmd->temp_pool, arg);
>          if (name) {
>              apr_file_t *file;
>
> Index: modules/http2/NWGNUmod_http2
> ===================================================================
> --- modules/http2/NWGNUmod_http2        (revision 1760988)
> +++ modules/http2/NWGNUmod_http2        (working copy)
> @@ -369,7 +369,7 @@
>         @echo $(DL) h2_proxy_res_ignore_header,$(DL) >> $@
>         @echo $(DL) h2_headers_add_h1,$(DL) >> $@
>         @echo $(DL) h2_req_create,$(DL) >> $@
> -       @echo $(DL) h2_req_createn,$(DL) >> $@
> +#      @echo $(DL) h2_req_createn,$(DL) >> $@
>         @echo $(DL) h2_util_camel_case_header,$(DL) >> $@
>         @echo $(DL) h2_util_frame_print,$(DL) >> $@
>         @echo $(DL) h2_util_ngheader_make_req,$(DL) >> $@

These are fairly obvious but subject to what vintage compiler you prefer 
and what should be done about symbols that move about... For ease of 
review I've just commented out the offending symbol.

Over in APR-1.6...

> D:\Projects\svn\apr-1.6.x>svn diff
> Index: build/NWGNUmakefile
> ===================================================================
> --- build/NWGNUmakefile (revision 1760898)
> +++ build/NWGNUmakefile (working copy)
> @@ -22,7 +22,7 @@
>         $(APU)/include/apr_ldap.h \
>         $(APU)/include/private/apu_config.h \
>         $(APU)/include/private/apu_select_dbm.h \
> -       $(APUXML)/expat/lib/expat_config.h \
> +       $(APUXML)/expat_config.h \
>         $(APR)/include/private/apr_escape_test_char.h \
>         $(EOLIST)
>
> Index: locks/netware/proc_mutex.c
> ===================================================================
> --- locks/netware/proc_mutex.c  (revision 1760898)
> +++ locks/netware/proc_mutex.c  (working copy)
> @@ -72,7 +72,7 @@
>      return APR_ENOLOCK;
>  }
>
> -APR_DECLARE(apr_status_t) apr_proc_mutex_timedlock(apr_thread_mutex_t *mutex,
> +APR_DECLARE(apr_status_t) apr_proc_mutex_timedlock(apr_proc_mutex_t *mutex,
>                                                     apr_time_t timeout,
>                                                     int absolute)
>  {
> Index: locks/netware/thread_mutex.c
> ===================================================================
> --- locks/netware/thread_mutex.c        (revision 1760898)
> +++ locks/netware/thread_mutex.c        (working copy)
> @@ -55,7 +55,7 @@
>
>      if (flags & APR_THREAD_MUTEX_TIMED) {
>          apr_status_t rv = apr_thread_cond_create(&new_mutex->cond, pool);
> -        if (rv != SUCCESS) {
> +        if (rv != APR_SUCCESS) {
>              NXMutexFree(new_mutex->mutex);
>              return rv;
>          }
> @@ -121,7 +121,7 @@
>          if (mutex->locked) {
>              mutex->num_waiters++;
>              if (timeout < 0) {
> -                rv = apr_thread_cond_dwait(mutex->cond, mutex);
> +                rv = apr_thread_cond_wait(mutex->cond, mutex);
>              }
>              else {
>                  if (absolute) {
> Index: locks/netware/thread_cond.c
> ===================================================================
> --- locks/netware/thread_cond.c (revision 1760898)
> +++ locks/netware/thread_cond.c (working copy)
> @@ -73,7 +73,7 @@
>          rc = NXCondWait(cond->cond, mutex->mutex);
>      }
>      else {
> -        timeout = timeout * 1000 / XGetSystemTick();
> +        timeout = timeout * 1000 / NXGetSystemTick();
>          rc = NXCondTimedWait(cond->cond, mutex->mutex, timeout);
>          if (rc == NX_ETIMEDOUT) {
>              return APR_TIMEUP;
> Index: NWGNUmakefile
> ===================================================================
> --- NWGNUmakefile       (revision 1760898)
> +++ NWGNUmakefile       (working copy)
> @@ -341,6 +341,7 @@
>         $(OBJDIR)/pollcb.o \
>         $(OBJDIR)/pollset.o \
>         $(OBJDIR)/select.o \
> +       $(OBJDIR)/wakeup.o \
>         $(OBJDIR)/sendrecv.o \
>         $(OBJDIR)/sha2.o \
>         $(OBJDIR)/sha2_glue.o \

Mostly these are typo's in a non-released package so don't count as a 
critique; the major issue comes with .\include\apr_proc_mutex.h:

> APR_DECLARE(apr_status_t) apr_proc_mutex_timedlock(apr_proc_mutex_t *mutex,
>                                                    apr_time_t timeout,
>                                                    int absolute);
The NetWare proc_mutex.c requires it defined as:
> APR_DECLARE(apr_status_t) apr_proc_mutex_timedlock(apr_thread_mutex_t *mutex,
>                                                    apr_time_t timeout,
>                                                    int absolute)
I've just temporarily renamed it to see if it would compile and it did; 
how to solve this I leave to experts.


APR-UTIL-1.6 shows:
> D:\Projects\svn\apr-util-1.6.x>svn diff
> Index: include/apu.hnw
> ===================================================================
> --- include/apu.hnw     (revision 1760898)
> +++ include/apu.hnw     (working copy)
> @@ -108,7 +108,7 @@
>  #define APU_HAVE_ODBC           0
>  #endif
>
> -#define APU_HAVE_CRYPTO         0
> +#define APU_HAVE_CRYPTO         1
>
>  #ifndef APU_DSO_MODULE_BUILD
>  #define APU_HAVE_OPENSSL        0
> Index: xml/NWGNUmakefile
> ===================================================================
> --- xml/NWGNUmakefile   (revision 1760898)
> +++ xml/NWGNUmakefile   (working copy)
> @@ -30,7 +30,7 @@
>                         $(APU)/uri \
>                         $(APU)/dbm/sdbm \
>                         $(APU)/include/private \
> -                       $(APUXML)/expat/lib \
> +                       $(EXPATSRC)/lib \
>                         $(EOLIST)
>
>  #
> @@ -248,7 +248,7 @@
>  # Any specialized rules here
>  #
>
> -vpath %.c expat/lib
> +vpath %.c $(EXPATSRC)/lib
>
>  #
>  # Include the 'tail' makefile that has targets that depend on variables defined
No idea why apr-util-1.6 (and 1.5) have:
#define APU_HAVE_CRYPTO         0
when they have clearly added a mod_crypto NWGNUmakefile in httpd-trunk; 
the above changes allow mod_crypto and the xml part of apr-util to 
compile (with just the likely offensive addition of expat_config.hnw to 
the .\xml dir). Perhaps in .\build ?

Norm


Mime
View raw message