svn commit: r1933909 - in apr/apr/trunk: crypto dbd dbm file_io/unix file_io/win32 hooks include include/arch/unix memory/unix misc/unix network_io/unix poll/unix test time/unix
[email protected] Thu, 07 May 2026 13:38:54 -0000
| Newsgroups | gmane.comp.apache.apr.cvs |
|---|---|
| Message-ID | <177816113473.3882801.16775012839535539441@svn03-he-fi> |
Author: ivan
Date: Thu May 7 13:38:54 2026
New Revision: 1933909
Log:
Cleanup #ifdef NETWARE from source code. Support for Netware was removed in
r1933886.
Modified:
apr/apr/trunk/crypto/apr_crypto.c
apr/apr/trunk/crypto/apr_passwd.c
apr/apr/trunk/crypto/getuuid.c
apr/apr/trunk/dbd/apr_dbd.c
apr/apr/trunk/dbm/apr_dbm.c
apr/apr/trunk/file_io/unix/filepath_util.c
apr/apr/trunk/file_io/unix/mktemp.c
apr/apr/trunk/file_io/unix/open.c
apr/apr/trunk/file_io/unix/tempdir.c
apr/apr/trunk/file_io/win32/filepath.c
apr/apr/trunk/hooks/apr_hooks.c
apr/apr/trunk/include/apr_errno.h
apr/apr/trunk/include/apr_file_info.h
apr/apr/trunk/include/apr_portable.h
apr/apr/trunk/include/arch/unix/apr_arch_misc.h
apr/apr/trunk/include/arch/unix/apr_arch_poll_private.h
apr/apr/trunk/memory/unix/apr_pools.c
apr/apr/trunk/misc/unix/errorcodes.c
apr/apr/trunk/network_io/unix/sockaddr.c
apr/apr/trunk/poll/unix/select.c
apr/apr/trunk/test/testdso.c
apr/apr/trunk/test/testmmap.c
apr/apr/trunk/test/testnames.c
apr/apr/trunk/test/testpass.c
apr/apr/trunk/test/testpath.c
apr/apr/trunk/test/testutil.h
apr/apr/trunk/time/unix/time.c
Modified: apr/apr/trunk/crypto/apr_crypto.c
==============================================================================
--- apr/apr/trunk/crypto/apr_crypto.c Thu May 7 13:16:53 2026 (r1933908)
+++ apr/apr/trunk/crypto/apr_crypto.c Thu May 7 13:38:54 2026 (r1933909)
@@ -216,9 +216,7 @@ APR_DECLARE(apr_status_t) apr_crypto_get
rootp = apr_hash_pool_get(drivers);
#if APR_HAVE_MODULAR_DSO
-#if defined(NETWARE)
- apr_snprintf(modname, sizeof(modname), "crypto%s.nlm", name);
-#elif defined(WIN32) || defined(__CYGWIN__)
+#if defined(WIN32) || defined(__CYGWIN__)
apr_snprintf(modname, sizeof(modname),
"apr_crypto_%s-" APR_STRINGIFY(APR_MAJOR_VERSION) ".dll", name);
#else
Modified: apr/apr/trunk/crypto/apr_passwd.c
==============================================================================
--- apr/apr/trunk/crypto/apr_passwd.c Thu May 7 13:16:53 2026 (r1933908)
+++ apr/apr/trunk/crypto/apr_passwd.c Thu May 7 13:38:54 2026 (r1933909)
@@ -92,7 +92,7 @@ static void crypt_mutex_unlock()
#endif
#endif
-#if defined(WIN32) || defined(BEOS) || defined(NETWARE) || defined(__ANDROID__)
+#if defined(WIN32) || defined(BEOS) || defined(__ANDROID__)
#define CRYPT_MISSING 1
#else
#define CRYPT_MISSING 0
Modified: apr/apr/trunk/crypto/getuuid.c
==============================================================================
--- apr/apr/trunk/crypto/getuuid.c Thu May 7 13:16:53 2026 (r1933908)
+++ apr/apr/trunk/crypto/getuuid.c Thu May 7 13:38:54 2026 (r1933909)
@@ -70,23 +70,14 @@ static void get_random_info(unsigned cha
struct {
/* Add thread id here, if applicable, when we get to pthread or apr */
pid_t pid;
-#ifdef NETWARE
- apr_uint64_t t;
-#else
struct timeval t;
-#endif
char hostname[257];
} r;
apr_md5_init(&c);
-#ifdef NETWARE
- r.pid = NXThreadGetId();
- NXGetTime(NX_SINCE_BOOT, NX_USECONDS, &(r.t));
-#else
r.pid = getpid();
gettimeofday(&r.t, (struct timezone *)0);
-#endif
gethostname(r.hostname, 256);
apr_md5_update(&c, (const unsigned char *)&r, sizeof(r));
apr_md5_final(seed, &c);
Modified: apr/apr/trunk/dbd/apr_dbd.c
==============================================================================
--- apr/apr/trunk/dbd/apr_dbd.c Thu May 7 13:16:53 2026 (r1933908)
+++ apr/apr/trunk/dbd/apr_dbd.c Thu May 7 13:38:54 2026 (r1933909)
@@ -182,9 +182,7 @@ APR_DECLARE(apr_status_t) apr_dbd_get_dr
* drivers hash table; ignore the passed-in pool */
pool = apr_hash_pool_get(drivers);
-#if defined(NETWARE)
- apr_snprintf(modname, sizeof(modname), "dbd%s.nlm", name);
-#elif defined(WIN32) || defined(__CYGWIN__)
+#if defined(WIN32) || defined(__CYGWIN__)
apr_snprintf(modname, sizeof(modname),
"apr_dbd_%s-" APR_STRINGIFY(APR_MAJOR_VERSION) ".dll", name);
#else
Modified: apr/apr/trunk/dbm/apr_dbm.c
==============================================================================
--- apr/apr/trunk/dbm/apr_dbm.c Thu May 7 13:16:53 2026 (r1933908)
+++ apr/apr/trunk/dbm/apr_dbm.c Thu May 7 13:38:54 2026 (r1933909)
@@ -201,9 +201,7 @@ APR_DECLARE(apr_status_t) apr_dbm_get_dr
* drivers hash table; ignore the passed-in pool */
pool = apr_hash_pool_get(drivers);
-#if defined(NETWARE)
- apr_snprintf(modname, sizeof(modname), "dbm%s.nlm", type);
-#elif defined(WIN32) || defined (__CYGWIN__)
+#if defined(WIN32) || defined (__CYGWIN__)
apr_snprintf(modname, sizeof(modname),
"apr_dbm_%s-" APR_STRINGIFY(APR_MAJOR_VERSION) ".dll", type);
#else
Modified: apr/apr/trunk/file_io/unix/filepath_util.c
==============================================================================
--- apr/apr/trunk/file_io/unix/filepath_util.c Thu May 7 13:16:53 2026 (r1933908)
+++ apr/apr/trunk/file_io/unix/filepath_util.c Thu May 7 13:38:54 2026 (r1933909)
@@ -26,7 +26,7 @@
#include "apr_private.h"
-#if defined(WIN32) || defined(OS2) || defined(NETWARE)
+#if defined(WIN32) || defined(OS2)
#define PATH_SEPARATOR ';'
#define PATH_SEPARATOR_STRING ";"
#else
Modified: apr/apr/trunk/file_io/unix/mktemp.c
==============================================================================
--- apr/apr/trunk/file_io/unix/mktemp.c Thu May 7 13:16:53 2026 (r1933908)
+++ apr/apr/trunk/file_io/unix/mktemp.c Thu May 7 13:38:54 2026 (r1933909)
@@ -55,7 +55,7 @@
#ifndef HAVE_MKSTEMP
-#if defined(SVR4) || defined(WIN32) || defined(NETWARE)
+#if defined(SVR4) || defined(WIN32)
#ifdef SVR4
#if HAVE_INTTYPES_H
#include <inttypes.h>
Modified: apr/apr/trunk/file_io/unix/open.c
==============================================================================
--- apr/apr/trunk/file_io/unix/open.c Thu May 7 13:16:53 2026 (r1933908)
+++ apr/apr/trunk/file_io/unix/open.c Thu May 7 13:38:54 2026 (r1933909)
@@ -21,12 +21,6 @@
#include "apr_arch_inherit.h"
#include "apr_time.h"
-#ifdef NETWARE
-#include "nks/dirio.h"
-#include "apr_hash.h"
-#include "fsio.h"
-#endif
-
static apr_status_t file_cleanup(apr_file_t *file, int is_child)
{
apr_status_t rv = APR_SUCCESS;
Modified: apr/apr/trunk/file_io/unix/tempdir.c
==============================================================================
--- apr/apr/trunk/file_io/unix/tempdir.c Thu May 7 13:16:53 2026 (r1933908)
+++ apr/apr/trunk/file_io/unix/tempdir.c Thu May 7 13:38:54 2026 (r1933909)
@@ -55,7 +55,6 @@ APR_DECLARE(apr_status_t) apr_temp_dir_g
$TMP
$TEMP
"C:\TEMP" (windows only)
- "SYS:\TMP" (netware only)
"/tmp"
"/var/tmp"
"/usr/tmp"
@@ -85,13 +84,6 @@ APR_DECLARE(apr_status_t) apr_temp_dir_g
goto end;
}
#endif
-#ifdef NETWARE
- /* Next, on NetWare, try the SYS:/TMP directory. */
- if (test_tempdir("SYS:/TMP", p)) {
- dir = "SYS:/TMP";
- goto end;
- }
-#endif
/* Next, try a set of hard-coded paths. */
for (i = 0; i < (sizeof(try_dirs) / sizeof(const char *)); i++) {
Modified: apr/apr/trunk/file_io/win32/filepath.c
==============================================================================
--- apr/apr/trunk/file_io/win32/filepath.c Thu May 7 13:16:53 2026 (r1933908)
+++ apr/apr/trunk/file_io/win32/filepath.c Thu May 7 13:38:54 2026 (r1933909)
@@ -22,11 +22,6 @@
#include <string.h>
#include <ctype.h>
-#ifdef NETWARE
-#include <unistd.h>
-#include <fsio.h>
-#endif
-
/* WinNT accepts several odd forms of a 'root' path. Under Unicode
* calls (ApiFunctionW) the //?/C:/foo or //?/UNC/mach/share/foo forms
* are accepted. Ansi and Unicode functions both accept the //./C:/foo
@@ -44,80 +39,6 @@ APR_DECLARE(apr_status_t) apr_filepath_r
{
const char *testpath = *inpath;
char *newpath;
-#ifdef NETWARE
- char seperator[2] = { 0, 0};
- char server[APR_PATH_MAX+1];
- char volume[APR_PATH_MAX+1];
- char file[APR_PATH_MAX+1];
- char *volsep = NULL;
- int elements;
-
- if (inpath && *inpath)
- volsep = strchr (*inpath, ':');
- else
- return APR_EBADPATH;
-
- if (strlen(*inpath) > APR_PATH_MAX) {
- return APR_EBADPATH;
- }
-
- seperator[0] = (flags & APR_FILEPATH_NATIVE) ? '\\' : '/';
-
- /* Allocate and initialize each of the segment buffers
- */
- server[0] = volume[0] = file[0] = '\0';
-
- /* If we don't have a volume separator then don't bother deconstructing
- the path since we won't use the deconstructed information anyway.
- */
- if (volsep) {
- /* Split the inpath into its separate parts. */
- deconstruct(testpath, server, volume, NULL, file, NULL, &elements, PATH_UNDEF);
-
- /* If we got a volume part then continue splitting out the root.
- Otherwise we either have an incomplete or relative path
- */
- if (volume && strlen(volume) > 0) {
- newpath = apr_pcalloc(p, strlen(server)+strlen(volume)+5);
- construct(newpath, server, volume, NULL, NULL, NULL, PATH_NETWARE);
-
- /* NetWare doesn't add the root slash so we need to add it manually.
- */
- strcat(newpath, seperator);
- *rootpath = newpath;
-
- /* Skip the inpath pointer down to the first non-root character
- */
- newpath = volsep;
- do {
- ++newpath;
- } while (*newpath && ((*newpath == '/') || (*newpath == '\\')));
- *inpath = newpath;
-
- /* Need to handle APR_FILEPATH_TRUENAME checking here. */
-
- return APR_SUCCESS;
- }
- else
- return APR_EBADPATH;
- }
- else if ((**inpath == '/') || (**inpath == '\\')) {
- /* if we have a root path without a volume then just split
- in same manner as unix although this path will be
- incomplete.
- */
- *rootpath = apr_pstrdup(p, seperator);
- do {
- ++(*inpath);
- } while ((**inpath == '/') || (**inpath == '\\'));
- }
- else
- return APR_ERELATIVE;
-
- return APR_EINCOMPLETE;
-
-#else /* ndef(NETWARE) */
-
char seperator[2];
const char *delim1;
const char *delim2;
@@ -323,11 +244,8 @@ APR_DECLARE(apr_status_t) apr_filepath_r
/* Nothing interesting */
return APR_ERELATIVE;
-
-#endif /* ndef(NETWARE) */
}
-#if !defined(NETWARE)
static int same_drive(const char *path1, const char *path2)
{
char drive1 = path1[0];
@@ -347,7 +265,6 @@ static int same_drive(const char *path1,
return (drive1 == drive2);
}
-#endif
APR_DECLARE(apr_status_t) apr_filepath_merge(char **newpath,
const char *basepath,
@@ -367,9 +284,7 @@ APR_DECLARE(apr_status_t) apr_filepath_m
apr_status_t basetype = 0; /* from parsing the basepath's baseroot */
apr_status_t addtype; /* from parsing the addpath's addroot */
apr_status_t rv;
-#ifndef NETWARE
int fixunc = 0; /* flag to complete an incomplete UNC basepath */
-#endif
/* Treat null as an empty path, otherwise split addroot from the addpath
*/
@@ -441,11 +356,9 @@ APR_DECLARE(apr_status_t) apr_filepath_m
* if addroot is given in drive-relative form (e.g. d:foo)
*/
char *getpath;
-#ifndef NETWARE
if (addtype == APR_EINCOMPLETE && addroot[1] == ':')
rv = filepath_drive_get(&getpath, addroot[0], flags, p);
else
-#endif
rv = apr_filepath_get(&getpath, flags, p);
if (rv != APR_SUCCESS)
return rv;
@@ -500,7 +413,6 @@ APR_DECLARE(apr_status_t) apr_filepath_m
* and simple roots (/ as in /foo).
* Deal with these in significantly different manners...
*/
-#ifndef NETWARE
if ((addroot[0] == '/' || addroot[0] == '\\') &&
(addroot[1] == '/' || addroot[1] == '\\'))
{
@@ -518,7 +430,6 @@ APR_DECLARE(apr_status_t) apr_filepath_m
memcpy(path, addroot, pathlen);
}
else
-#endif
if ((addroot[0] == '/' || addroot[0] == '\\') && !addroot[1])
{
/* Bring together the drive or UNC root from the baseroot
@@ -528,12 +439,10 @@ APR_DECLARE(apr_status_t) apr_filepath_m
if (basetype != APR_EABSOLUTE && (flags & APR_FILEPATH_NOTRELATIVE))
return basetype;
if (basetype != APR_ERELATIVE) {
-#ifndef NETWARE
if (basetype == APR_INCOMPLETE
&& (baseroot[0] == '/' || baseroot[0] == '\\')
&& (baseroot[1] == '/' || baseroot[1] == '\\'))
fixunc = 1;
-#endif
keptlen = rootlen = pathlen = strlen(baseroot);
memcpy(path, baseroot, pathlen);
}
@@ -545,16 +454,6 @@ APR_DECLARE(apr_status_t) apr_filepath_m
memcpy(path, addroot, pathlen);
}
}
-#ifdef NETWARE
- else if (filepath_has_drive(addroot, DRIVE_ONLY, p))
- {
- /* If the addroot is a drive (without a volume root)
- * use the basepath _if_ it matches this drive letter!
- * Otherwise we must discard the basepath.
- */
- if (!filepath_compare_drive(addroot, baseroot, p) &&
- filepath_has_drive(baseroot, 0, p)) {
-#else
else if (addroot[0] && addroot[1] == ':' && !addroot[2])
{
/* If the addroot is a drive (without a volume root)
@@ -562,7 +461,6 @@ APR_DECLARE(apr_status_t) apr_filepath_m
* Otherwise we must discard the basepath.
*/
if (same_drive(addroot, baseroot)) {
-#endif
/* Base the result path on the basepath
*/
if (basetype != APR_EABSOLUTE && (flags & APR_FILEPATH_NOTRELATIVE))
@@ -597,14 +495,12 @@ APR_DECLARE(apr_status_t) apr_filepath_m
if (basetype != APR_EABSOLUTE && (flags & APR_FILEPATH_NOTRELATIVE))
return basetype;
-#ifndef NETWARE
/* An incomplete UNC path must be completed
*/
if (basetype == APR_INCOMPLETE
&& (baseroot[0] == '/' || baseroot[0] == '\\')
&& (baseroot[1] == '/' || baseroot[1] == '\\'))
fixunc = 1;
-#endif
/* Base the result path on the basepath
*/
@@ -660,12 +556,10 @@ APR_DECLARE(apr_status_t) apr_filepath_m
if (seglen < segend)
return APR_EBADPATH;
-#ifndef NETWARE
/* This isn't legal unless the unc path is completed
*/
if (fixunc)
return APR_EBADPATH;
-#endif
/* Otherwise, this is a noop segment (/ or ./) so ignore it
*/
@@ -679,12 +573,10 @@ APR_DECLARE(apr_status_t) apr_filepath_m
if (seglen < segend && (seglen != 3 || addpath[2] != '.'))
return APR_EBADPATH;
-#ifndef NETWARE
/* This isn't legal unless the unc path is completed
*/
if (fixunc)
return APR_EBADPATH;
-#endif
/* backpath (../) when an absolute path is given */
if (rootlen && (pathlen <= rootlen))
@@ -757,7 +649,6 @@ APR_DECLARE(apr_status_t) apr_filepath_m
}
else /* not empty or dots */
{
-#ifndef NETWARE
if (fixunc) {
const char *testpath = path;
const char *testroot;
@@ -801,7 +692,6 @@ APR_DECLARE(apr_status_t) apr_filepath_m
}
}
else
-#endif
{
/* An actual segment, append it to the destination path
*/
Modified: apr/apr/trunk/hooks/apr_hooks.c
==============================================================================
--- apr/apr/trunk/hooks/apr_hooks.c Thu May 7 13:16:53 2026 (r1933908)
+++ apr/apr/trunk/hooks/apr_hooks.c Thu May 7 13:38:54 2026 (r1933909)
@@ -64,14 +64,6 @@ typedef struct tsort_
struct tsort_ *pNext;
} TSort;
-#ifdef NETWARE
-#include "apr_private.h"
-#define get_apd APP_DATA* apd = (APP_DATA*)get_app_data(gLibId);
-#define s_aHooksToSort ((apr_array_header_t *)(apd->gs_aHooksToSort))
-#define s_phOptionalHooks ((apr_hash_t *)(apd->gs_phOptionalHooks))
-#define s_phOptionalFunctions ((apr_hash_t *)(apd->gs_phOptionalFunctions))
-#endif
-
static int crude_order(const void *a_,const void *b_)
{
const TSortData *a=a_;
@@ -216,9 +208,7 @@ static apr_array_header_t *sort_hook(apr
return pNew;
}
-#ifndef NETWARE
static apr_array_header_t *s_aHooksToSort;
-#endif
typedef struct
{
@@ -229,9 +219,6 @@ typedef struct
APR_DECLARE(void) apr_hook_sort_register(const char *szHookName,
apr_array_header_t **paHooks)
{
-#ifdef NETWARE
- get_apd
-#endif
HookSortEntry *pEntry;
if(!s_aHooksToSort)
@@ -243,9 +230,6 @@ APR_DECLARE(void) apr_hook_sort_register
APR_DECLARE(void) apr_hook_sort_all(void)
{
-#ifdef NETWARE
- get_apd
-#endif
int n;
if (!s_aHooksToSort) {
@@ -258,16 +242,11 @@ APR_DECLARE(void) apr_hook_sort_all(void
}
}
-#ifndef NETWARE
static apr_hash_t *s_phOptionalHooks;
static apr_hash_t *s_phOptionalFunctions;
-#endif
APR_DECLARE(void) apr_hook_deregister_all(void)
{
-#ifdef NETWARE
- get_apd
-#endif
int n;
if (!s_aHooksToSort) {
@@ -323,9 +302,6 @@ APR_DECLARE_EXTERNAL_HOOK(apr,APR,void,_
APR_DECLARE(apr_array_header_t *) apr_optional_hook_get(const char *szName)
{
-#ifdef NETWARE
- get_apd
-#endif
apr_array_header_t **ppArray;
if(!s_phOptionalHooks)
@@ -340,9 +316,6 @@ APR_DECLARE(void) apr_optional_hook_add(
const char * const *aszPre,
const char * const *aszSucc,int nOrder)
{
-#ifdef NETWARE
- get_apd
-#endif
apr_array_header_t *pArray=apr_optional_hook_get(szName);
apr_LINK__optional_t *pHook;
@@ -372,9 +345,6 @@ APR_DECLARE(void) apr_optional_hook_add(
APR_DECLARE(apr_opt_fn_t *) apr_dynamic_fn_retrieve(const char *szName)
{
-#ifdef NETWARE
- get_apd
-#endif
if(!s_phOptionalFunctions)
return NULL;
return (void(*)(void))apr_hash_get(s_phOptionalFunctions,szName,strlen(szName));
@@ -384,9 +354,6 @@ APR_DECLARE(apr_opt_fn_t *) apr_dynamic_
APR_DECLARE_NONSTD(void) apr_dynamic_fn_register(const char *szName,
apr_opt_fn_t *pfn)
{
-#ifdef NETWARE
- get_apd
-#endif
if(!s_phOptionalFunctions)
s_phOptionalFunctions=apr_hash_make(apr_hook_global_pool);
apr_hash_set(s_phOptionalFunctions,szName,strlen(szName),(void *)pfn);
Modified: apr/apr/trunk/include/apr_errno.h
==============================================================================
--- apr/apr/trunk/include/apr_errno.h Thu May 7 13:16:53 2026 (r1933908)
+++ apr/apr/trunk/include/apr_errno.h Thu May 7 13:38:54 2026 (r1933909)
@@ -1154,73 +1154,7 @@ APR_DECLARE(char *) apr_strerror(apr_sta
#define APR_STATUS_IS_EALREADY(s) ((s) == APR_EALREADY \
|| (s) == APR_OS_START_SYSERR + WSAEALREADY)
-#elif defined(NETWARE) && defined(USE_WINSOCK) && !defined(DOXYGEN) /* !defined(OS2) && !defined(WIN32) */
-
-#define APR_FROM_OS_ERROR(e) (e == 0 ? APR_SUCCESS : e + APR_OS_START_SYSERR)
-#define APR_TO_OS_ERROR(e) (e == 0 ? APR_SUCCESS : e - APR_OS_START_SYSERR)
-
-#define apr_get_os_error() (errno)
-#define apr_set_os_error(e) (errno = (e))
-
-/* A special case, only socket calls require this: */
-#define apr_get_netos_error() (APR_FROM_OS_ERROR(WSAGetLastError()))
-#define apr_set_netos_error(e) (WSASetLastError(APR_TO_OS_ERROR(e)))
-
-/* APR CANONICAL ERROR TESTS */
-#define APR_STATUS_IS_EACCES(s) ((s) == APR_EACCES)
-#define APR_STATUS_IS_EEXIST(s) ((s) == APR_EEXIST)
-#define APR_STATUS_IS_ENAMETOOLONG(s) ((s) == APR_ENAMETOOLONG)
-#define APR_STATUS_IS_ENOENT(s) ((s) == APR_ENOENT)
-#define APR_STATUS_IS_ENOTDIR(s) ((s) == APR_ENOTDIR)
-#define APR_STATUS_IS_ENOSPC(s) ((s) == APR_ENOSPC)
-#define APR_STATUS_IS_ENOMEM(s) ((s) == APR_ENOMEM)
-#define APR_STATUS_IS_EMFILE(s) ((s) == APR_EMFILE)
-#define APR_STATUS_IS_ENFILE(s) ((s) == APR_ENFILE)
-#define APR_STATUS_IS_EBADF(s) ((s) == APR_EBADF)
-#define APR_STATUS_IS_EINVAL(s) ((s) == APR_EINVAL)
-#define APR_STATUS_IS_ESPIPE(s) ((s) == APR_ESPIPE)
-
-#define APR_STATUS_IS_EAGAIN(s) ((s) == APR_EAGAIN \
- || (s) == EWOULDBLOCK \
- || (s) == APR_OS_START_SYSERR + WSAEWOULDBLOCK)
-#define APR_STATUS_IS_EINTR(s) ((s) == APR_EINTR \
- || (s) == APR_OS_START_SYSERR + WSAEINTR)
-#define APR_STATUS_IS_ENOTSOCK(s) ((s) == APR_ENOTSOCK \
- || (s) == APR_OS_START_SYSERR + WSAENOTSOCK)
-#define APR_STATUS_IS_ECONNREFUSED(s) ((s) == APR_ECONNREFUSED \
- || (s) == APR_OS_START_SYSERR + WSAECONNREFUSED)
-#define APR_STATUS_IS_EINPROGRESS(s) ((s) == APR_EINPROGRESS \
- || (s) == APR_OS_START_SYSERR + WSAEINPROGRESS)
-#define APR_STATUS_IS_ECONNABORTED(s) ((s) == APR_ECONNABORTED \
- || (s) == APR_OS_START_SYSERR + WSAECONNABORTED)
-#define APR_STATUS_IS_ECONNRESET(s) ((s) == APR_ECONNRESET \
- || (s) == APR_OS_START_SYSERR + WSAECONNRESET)
-/* XXX deprecated */
-#define APR_STATUS_IS_ETIMEDOUT(s) ((s) == APR_ETIMEDOUT \
- || (s) == APR_OS_START_SYSERR + WSAETIMEDOUT \
- || (s) == APR_OS_START_SYSERR + WAIT_TIMEOUT)
-#undef APR_STATUS_IS_TIMEUP
-#define APR_STATUS_IS_TIMEUP(s) ((s) == APR_TIMEUP \
- || (s) == APR_OS_START_SYSERR + WSAETIMEDOUT \
- || (s) == APR_OS_START_SYSERR + WAIT_TIMEOUT)
-#define APR_STATUS_IS_EHOSTUNREACH(s) ((s) == APR_EHOSTUNREACH \
- || (s) == APR_OS_START_SYSERR + WSAEHOSTUNREACH)
-#define APR_STATUS_IS_ENETUNREACH(s) ((s) == APR_ENETUNREACH \
- || (s) == APR_OS_START_SYSERR + WSAENETUNREACH)
-#define APR_STATUS_IS_ENETDOWN(s) ((s) == APR_OS_START_SYSERR + WSAENETDOWN)
-#define APR_STATUS_IS_EFTYPE(s) ((s) == APR_EFTYPE)
-#define APR_STATUS_IS_EPIPE(s) ((s) == APR_EPIPE)
-#define APR_STATUS_IS_EXDEV(s) ((s) == APR_EXDEV)
-#define APR_STATUS_IS_ENOTEMPTY(s) ((s) == APR_ENOTEMPTY)
-#define APR_STATUS_IS_EAFNOSUPPORT(s) ((s) == APR_EAFNOSUPPORT \
- || (s) == APR_OS_START_SYSERR + WSAEAFNOSUPPORT)
-#define APR_STATUS_IS_EOPNOTSUPP(s) ((s) == APR_EOPNOTSUPP \
- || (s) == APR_OS_START_SYSERR + WSAEOPNOTSUPP)
-#define APR_STATUS_IS_ERANGE(s) ((s) == APR_ERANGE)
-#define APR_STATUS_IS_EALREADY(s) ((s) == APR_EALREADY \
- || (s) == APR_OS_START_SYSERR + WSAEALREADY)
-
-#else /* !defined(NETWARE) && !defined(OS2) && !defined(WIN32) */
+#else /* !defined(OS2) && !defined(WIN32) */
/*
* os error codes are clib error codes
@@ -1348,7 +1282,7 @@ APR_DECLARE(char *) apr_strerror(apr_sta
#define APR_STATUS_IS_EALREADY(s) ((s) == APR_EALREADY)
/** @} */
-#endif /* !defined(NETWARE) && !defined(OS2) && !defined(WIN32) */
+#endif /* !defined(OS2) && !defined(WIN32) */
/** @} */
Modified: apr/apr/trunk/include/apr_file_info.h
==============================================================================
--- apr/apr/trunk/include/apr_file_info.h Thu May 7 13:16:53 2026 (r1933908)
+++ apr/apr/trunk/include/apr_file_info.h Thu May 7 13:38:54 2026 (r1933909)
@@ -123,7 +123,7 @@ typedef struct apr_dir_t apr_di
* Structure for determining file permissions.
*/
typedef apr_int32_t apr_fileperms_t;
-#if (defined WIN32) || (defined NETWARE)
+#if (defined WIN32)
/**
* Structure for determining the device the file is on.
*/
Modified: apr/apr/trunk/include/apr_portable.h
==============================================================================
--- apr/apr/trunk/include/apr_portable.h Thu May 7 13:16:53 2026 (r1933908)
+++ apr/apr/trunk/include/apr_portable.h Thu May 7 13:38:54 2026 (r1933909)
@@ -108,19 +108,6 @@ typedef struct tm apr_os_exp
typedef image_id apr_os_dso_handle_t;
typedef void* apr_os_shm_t;
-#elif defined(NETWARE)
-typedef int apr_os_file_t;
-typedef DIR apr_os_dir_t;
-typedef int apr_os_sock_t;
-typedef NXMutex_t * apr_os_proc_mutex_t;
-typedef NXThreadId_t apr_os_thread_t;
-typedef long apr_os_proc_t;
-typedef NXKey_t apr_os_threadkey_t;
-typedef struct timeval apr_os_imp_time_t;
-typedef struct tm apr_os_exp_time_t;
-typedef void * apr_os_dso_handle_t;
-typedef void* apr_os_shm_t;
-
#else
/* Any other OS should go above this one. This is the lowest common
* denominator typedefs for all UNIX-like systems. :)
Modified: apr/apr/trunk/include/arch/unix/apr_arch_misc.h
==============================================================================
--- apr/apr/trunk/include/arch/unix/apr_arch_misc.h Thu May 7 13:16:53 2026 (r1933908)
+++ apr/apr/trunk/include/arch/unix/apr_arch_misc.h Thu May 7 13:38:54 2026 (r1933909)
@@ -57,7 +57,7 @@ struct apr_other_child_rec_t {
void *data;
};
-#if defined(WIN32) || defined(NETWARE)
+#if defined(WIN32)
#define WSAHighByte 2
#define WSALowByte 0
#endif
Modified: apr/apr/trunk/include/arch/unix/apr_arch_poll_private.h
==============================================================================
--- apr/apr/trunk/include/arch/unix/apr_arch_poll_private.h Thu May 7 13:16:53 2026 (r1933908)
+++ apr/apr/trunk/include/arch/unix/apr_arch_poll_private.h Thu May 7 13:38:54 2026 (r1933909)
@@ -38,11 +38,6 @@
#include <sys/epoll.h>
#endif
-#ifdef NETWARE
-#define HAS_SOCKETS(dt) (dt == APR_POLL_SOCKET) ? 1 : 0
-#define HAS_PIPES(dt) (dt == APR_POLL_FILE) ? 1 : 0
-#endif
-
#if defined(HAVE_AIO_H) && defined(HAVE_AIO_MSGQ)
#define _AIO_OS390 /* enable a bunch of z/OS aio.h definitions */
#include <aio.h> /* aiocb */
Modified: apr/apr/trunk/memory/unix/apr_pools.c
==============================================================================
--- apr/apr/trunk/memory/unix/apr_pools.c Thu May 7 13:16:53 2026 (r1933908)
+++ apr/apr/trunk/memory/unix/apr_pools.c Thu May 7 13:38:54 2026 (r1933909)
@@ -601,9 +601,6 @@ struct apr_pool_t {
apr_thread_mutex_t *mutex;
#endif /* APR_HAS_THREADS */
#endif /* APR_POOL_DEBUG */
-#ifdef NETWARE
- apr_os_proc_t owner_proc;
-#endif /* defined(NETWARE) */
cleanup_t *pre_cleanups;
#if APR_POOL_CONCURRENCY_CHECK
@@ -1115,10 +1112,6 @@ APR_DECLARE(apr_status_t) apr_pool_creat
pool->user_data = NULL;
pool->tag = NULL;
-#ifdef NETWARE
- pool->owner_proc = (apr_os_proc_t)getnlmhandle();
-#endif /* defined(NETWARE) */
-
if ((pool->parent = parent) != NULL) {
allocator_lock(parent->allocator);
@@ -1199,9 +1192,6 @@ APR_DECLARE(apr_status_t) apr_pool_creat
pool->sibling = NULL;
pool->ref = NULL;
-#ifdef NETWARE
- pool->owner_proc = (apr_os_proc_t)getnlmhandle();
-#endif /* defined(NETWARE) */
if (!allocator)
pool_allocator->owner = pool;
@@ -2065,9 +2055,6 @@ APR_DECLARE(apr_status_t) apr_pool_creat
#if APR_HAS_THREADS
pool->owner = apr_os_thread_current();
#endif /* APR_HAS_THREADS */
-#ifdef NETWARE
- pool->owner_proc = (apr_os_proc_t)getnlmhandle();
-#endif /* defined(NETWARE) */
#if APR_HAS_THREADS
if (parent == NULL || parent->allocator != allocator) {
@@ -2145,9 +2132,6 @@ APR_DECLARE(apr_status_t) apr_pool_creat
#if APR_HAS_THREADS
pool->owner = apr_os_thread_current();
#endif /* APR_HAS_THREADS */
-#ifdef NETWARE
- pool->owner_proc = (apr_os_proc_t)getnlmhandle();
-#endif /* defined(NETWARE) */
if ((pool_allocator = allocator) == NULL) {
apr_status_t rv;
@@ -2356,25 +2340,6 @@ APR_DECLARE(void) apr_pool_lock(apr_pool
#endif /* !APR_POOL_DEBUG */
-#ifdef NETWARE
-void netware_pool_proc_cleanup ()
-{
- apr_pool_t *pool = global_pool->child;
- apr_os_proc_t owner_proc = (apr_os_proc_t)getnlmhandle();
-
- while (pool) {
- if (pool->owner_proc == owner_proc) {
- apr_pool_destroy (pool);
- pool = global_pool->child;
- }
- else {
- pool = pool->sibling;
- }
- }
- return;
-}
-#endif /* defined(NETWARE) */
-
/*
* "Print" functions (common)
@@ -2408,13 +2373,6 @@ APR_DECLARE(apr_abortfunc_t) apr_pool_ab
APR_DECLARE(apr_pool_t *) apr_pool_parent_get(apr_pool_t *pool)
{
-#ifdef NETWARE
- /* On NetWare, don't return the global_pool, return the application pool
- as the top most pool */
- if (pool->parent == global_pool)
- return pool;
- else
-#endif
return pool->parent;
}
Modified: apr/apr/trunk/misc/unix/errorcodes.c
==============================================================================
--- apr/apr/trunk/misc/unix/errorcodes.c Thu May 7 13:16:53 2026 (r1933908)
+++ apr/apr/trunk/misc/unix/errorcodes.c Thu May 7 13:38:54 2026 (r1933909)
@@ -297,7 +297,7 @@ static char *apr_os_strerror(char* buf,
return stuffbuffer(buf, bufsize, result);
}
-#elif defined(WIN32) || (defined(NETWARE) && defined(USE_WINSOCK))
+#elif defined(WIN32)
static const struct {
apr_status_t code;
@@ -360,7 +360,6 @@ static char *apr_os_strerror(char *buf,
{
apr_size_t len=0, i;
-#ifndef NETWARE
len = FormatMessageA(FORMAT_MESSAGE_FROM_SYSTEM
| FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
@@ -369,7 +368,6 @@ static char *apr_os_strerror(char *buf,
buf,
(DWORD)bufsize,
NULL);
-#endif
if (!len) {
for (i = 0; gaErrorList[i].msg; ++i) {
Modified: apr/apr/trunk/network_io/unix/sockaddr.c
==============================================================================
--- apr/apr/trunk/network_io/unix/sockaddr.c Thu May 7 13:16:53 2026 (r1933908)
+++ apr/apr/trunk/network_io/unix/sockaddr.c Thu May 7 13:38:54 2026 (r1933909)
@@ -47,7 +47,7 @@ struct apr_ipsubnet_t {
#endif
};
-#if !defined(NETWARE) && !defined(WIN32)
+#if !defined(WIN32)
#ifdef HAVE_SET_H_ERRNO
#define SET_H_ERRNO(newval) set_h_errno(newval)
#else
Modified: apr/apr/trunk/poll/unix/select.c
==============================================================================
--- apr/apr/trunk/poll/unix/select.c Thu May 7 13:16:53 2026 (r1933908)
+++ apr/apr/trunk/poll/unix/select.c Thu May 7 13:38:54 2026 (r1933909)
@@ -37,9 +37,6 @@ APR_DECLARE(apr_status_t) apr_poll(apr_p
int rv, i;
int maxfd = -1;
struct timeval tv, *tvptr;
-#ifdef NETWARE
- apr_datatype_e set_type = APR_NO_DESC;
-#endif
#ifdef WIN32
/* On Win32, select() must be presented with at least one socket to
@@ -75,27 +72,12 @@ APR_DECLARE(apr_status_t) apr_poll(apr_p
aprset[i].rtnevents = 0;
if (aprset[i].desc_type == APR_POLL_SOCKET) {
-#ifdef NETWARE
- if (HAS_PIPES(set_type)) {
- return APR_EBADF;
- }
- else {
- set_type = APR_POLL_SOCKET;
- }
-#endif
fd = aprset[i].desc.s->socketdes;
}
else if (aprset[i].desc_type == APR_POLL_FILE) {
#if !APR_FILES_AS_SOCKETS
return APR_EBADF;
#else
-#ifdef NETWARE
- if (aprset[i].desc.f->is_pipe && !HAS_SOCKETS(set_type)) {
- set_type = APR_POLL_FILE;
- }
- else
- return APR_EBADF;
-#endif /* NETWARE */
fd = aprset[i].desc.f->filedes;
@@ -104,7 +86,7 @@ APR_DECLARE(apr_status_t) apr_poll(apr_p
else {
break;
}
-#if !defined(WIN32) && !defined(NETWARE) /* socket sets handled with array of handles */
+#if !defined(WIN32) /* socket sets handled with array of handles */
if (fd >= FD_SETSIZE) {
/* XXX invent new error code so application has a clue */
return APR_EBADF;
@@ -125,18 +107,7 @@ APR_DECLARE(apr_status_t) apr_poll(apr_p
}
}
-#ifdef NETWARE
- if (HAS_PIPES(set_type)) {
- rv = pipe_select(maxfd + 1, &readset, &writeset, &exceptset, tvptr);
- }
- else {
-#endif
-
- rv = select(maxfd + 1, &readset, &writeset, &exceptset, tvptr);
-
-#ifdef NETWARE
- }
-#endif
+ rv = select(maxfd + 1, &readset, &writeset, &exceptset, tvptr);
(*nsds) = rv;
if ((*nsds) == 0) {
@@ -188,9 +159,6 @@ struct apr_pollset_private_t
int maxfd;
apr_pollfd_t *query_set;
apr_pollfd_t *result_set;
-#ifdef NETWARE
- int set_type;
-#endif
};
static apr_status_t impl_pollset_create(apr_pollset_t *pollset,
@@ -213,9 +181,6 @@ static apr_status_t impl_pollset_create(
FD_ZERO(&(pollset->p->writeset));
FD_ZERO(&(pollset->p->exceptset));
pollset->p->maxfd = 0;
-#ifdef NETWARE
- pollset->p->set_type = APR_NO_DESC;
-#endif
pollset->p->query_set = apr_palloc(p, size * sizeof(apr_pollfd_t));
pollset->p->result_set = apr_palloc(p, size * sizeof(apr_pollfd_t));
@@ -234,36 +199,16 @@ static apr_status_t impl_pollset_add(apr
pollset->p->query_set[pollset->nelts] = *descriptor;
if (descriptor->desc_type == APR_POLL_SOCKET) {
-#ifdef NETWARE
- /* NetWare can't handle mixed descriptor types in select() */
- if (HAS_PIPES(pollset->p->set_type)) {
- return APR_EBADF;
- }
- else {
- pollset->p->set_type = APR_POLL_SOCKET;
- }
-#endif
fd = descriptor->desc.s->socketdes;
}
else {
#if !APR_FILES_AS_SOCKETS
return APR_EBADF;
#else
-#ifdef NETWARE
- /* NetWare can't handle mixed descriptor types in select() */
- if (descriptor->desc.f->is_pipe && !HAS_SOCKETS(pollset->p->set_type)) {
- pollset->p->set_type = APR_POLL_FILE;
- fd = descriptor->desc.f->filedes;
- }
- else {
- return APR_EBADF;
- }
-#else
fd = descriptor->desc.f->filedes;
#endif
-#endif
}
-#if !defined(WIN32) && !defined(NETWARE) /* socket sets handled with array of handles */
+#if !defined(WIN32) /* socket sets handled with array of handles */
if (fd >= FD_SETSIZE) {
/* XXX invent new error code so application has a clue */
return APR_EBADF;
@@ -371,15 +316,8 @@ static apr_status_t impl_pollset_poll(ap
memcpy(&writeset, &(pollset->p->writeset), sizeof(fd_set));
memcpy(&exceptset, &(pollset->p->exceptset), sizeof(fd_set));
-#ifdef NETWARE
- if (HAS_PIPES(pollset->p->set_type)) {
- rs = pipe_select(pollset->p->maxfd + 1, &readset, &writeset, &exceptset,
- tvptr);
- }
- else
-#endif
- rs = select(pollset->p->maxfd + 1, &readset, &writeset, &exceptset,
- tvptr);
+ rs = select(pollset->p->maxfd + 1, &readset, &writeset, &exceptset,
+ tvptr);
if (rs < 0) {
return apr_get_netos_error();
Modified: apr/apr/trunk/test/testdso.c
==============================================================================
--- apr/apr/trunk/test/testdso.c Thu May 7 13:16:53 2026 (r1933908)
+++ apr/apr/trunk/test/testdso.c Thu May 7 13:38:54 2026 (r1933909)
@@ -29,9 +29,7 @@
#if APR_HAS_DSO
-#ifdef NETWARE
-# define MOD_NAME "mod_test.nlm"
-#elif defined(BEOS) || defined(__MVS__)
+#if defined(BEOS) || defined(__MVS__)
# define MOD_NAME "mod_test.so"
#elif defined(WIN32)
# define MOD_NAME TESTBINPATH "mod_test.dll"
Modified: apr/apr/trunk/test/testmmap.c
==============================================================================
--- apr/apr/trunk/test/testmmap.c Thu May 7 13:16:53 2026 (r1933908)
+++ apr/apr/trunk/test/testmmap.c Thu May 7 13:38:54 2026 (r1933909)
@@ -59,13 +59,11 @@ static void create_filename(abts_case *t
char *oldfileptr;
apr_filepath_get(&file1, 0, ptest);
-#ifndef NETWARE
#ifdef WIN32
ABTS_TRUE(tc, file1[1] == ':');
#else
ABTS_TRUE(tc, file1[0] == '/');
#endif
-#endif
ABTS_TRUE(tc, file1[strlen(file1) - 1] != '/');
oldfileptr = file1;
Modified: apr/apr/trunk/test/testnames.c
==============================================================================
--- apr/apr/trunk/test/testnames.c Thu May 7 13:16:53 2026 (r1933908)
+++ apr/apr/trunk/test/testnames.c Thu May 7 13:38:54 2026 (r1933909)
@@ -29,8 +29,6 @@
#if defined(WIN32) || defined(OS2)
#define ABS_ROOT "C:/"
-#elif defined(NETWARE)
-#define ABS_ROOT "SYS:/"
#else
#define ABS_ROOT "/"
#endif
@@ -302,7 +300,7 @@ static void root_from_cwd_and_back(abts_
const char *path = "//";
char *origpath;
char *testpath;
-#if defined(WIN32) || defined(OS2) || defined(NETWARE)
+#if defined(WIN32) || defined(OS2)
int hadfailed;
#endif
@@ -320,18 +318,6 @@ static void root_from_cwd_and_back(abts_
ABTS_INT_EQUAL(tc, '/', root[2]);
ABTS_INT_EQUAL(tc, 0, root[3]);
ABTS_STR_EQUAL(tc, origpath + 3, path);
-#elif defined(NETWARE)
- ABTS_INT_EQUAL(tc, origpath[0], root[0]);
- {
- char *pt = strchr(root, ':');
- ABTS_PTR_NOTNULL(tc, pt);
- ABTS_INT_EQUAL(tc, ':', pt[0]);
- ABTS_INT_EQUAL(tc, '/', pt[1]);
- ABTS_INT_EQUAL(tc, 0, pt[2]);
- pt = strchr(origpath, ':');
- ABTS_PTR_NOTNULL(tc, pt);
- ABTS_STR_EQUAL(tc, (pt+2), path);
- }
#else
ABTS_INT_EQUAL(tc, APR_SUCCESS, rv);
ABTS_STR_EQUAL(tc, "/", root);
@@ -343,7 +329,7 @@ static void root_from_cwd_and_back(abts_
| APR_FILEPATH_NOTABOVEROOT
| APR_FILEPATH_NOTRELATIVE, p);
ABTS_INT_EQUAL(tc, APR_SUCCESS, rv);
-#if defined(WIN32) || defined(OS2) || defined(NETWARE)
+#if defined(WIN32) || defined(OS2)
hadfailed = tc->failed;
#endif
/* The API doesn't promise equality!!!
@@ -352,7 +338,7 @@ static void root_from_cwd_and_back(abts_
* but translate this back to success.
*/
ABTS_STR_EQUAL(tc, origpath, testpath);
-#if defined(WIN32) || defined(OS2) || defined(NETWARE)
+#if defined(WIN32) || defined(OS2)
if (!hadfailed) tc->failed = 0;
#endif
}
Modified: apr/apr/trunk/test/testpass.c
==============================================================================
--- apr/apr/trunk/test/testpass.c Thu May 7 13:16:53 2026 (r1933908)
+++ apr/apr/trunk/test/testpass.c Thu May 7 13:38:54 2026 (r1933909)
@@ -27,7 +27,7 @@
#include "abts.h"
#include "testutil.h"
-#if defined(WIN32) || defined(BEOS) || defined(NETWARE)
+#if defined(WIN32) || defined(BEOS)
#define CRYPT_ALGO_SUPPORTED 0
#else
#define CRYPT_ALGO_SUPPORTED 1
Modified: apr/apr/trunk/test/testpath.c
==============================================================================
--- apr/apr/trunk/test/testpath.c Thu May 7 13:16:53 2026 (r1933908)
+++ apr/apr/trunk/test/testpath.c Thu May 7 13:38:54 2026 (r1933909)
@@ -20,7 +20,7 @@
#include "apr_pools.h"
#include "apr_tables.h"
-#if defined(WIN32) || defined(NETWARE) || defined(OS2)
+#if defined(WIN32) || defined(OS2)
#define PSEP ";"
#define DSEP "\\"
#else
Modified: apr/apr/trunk/test/testutil.h
==============================================================================
--- apr/apr/trunk/test/testutil.h Thu May 7 13:16:53 2026 (r1933908)
+++ apr/apr/trunk/test/testutil.h Thu May 7 13:38:54 2026 (r1933909)
@@ -37,8 +37,6 @@
#ifdef WIN32
#define EXTENSION ".exe"
-#elif NETWARE
-#define EXTENSION ".nlm"
#else
#define EXTENSION
#endif
Modified: apr/apr/trunk/time/unix/time.c
==============================================================================
--- apr/apr/trunk/time/unix/time.c Thu May 7 13:16:53 2026 (r1933908)
+++ apr/apr/trunk/time/unix/time.c Thu May 7 13:38:54 2026 (r1933909)
@@ -47,18 +47,8 @@ static apr_int32_t get_offset(struct tm
#elif defined(HAVE_STRUCT_TM___TM_GMTOFF)
return tm->__tm_gmtoff;
#else
-#ifdef NETWARE
- /* Need to adjust the global variable each time otherwise
- the web server would have to be restarted when daylight
- savings changes.
- */
- if (daylightOnOff) {
- return server_gmt_offset + daylightOffset;
- }
-#else
if (tm->tm_isdst)
return server_gmt_offset + 3600;
-#endif
return server_gmt_offset;
#endif
}
@@ -240,8 +230,6 @@ APR_DECLARE(void) apr_sleep(apr_interval
DosSleep((t + 999) / 1000);
#elif defined(BEOS)
snooze(t);
-#elif defined(NETWARE)
- delay((t + 999) / 1000);
#elif defined(HAVE_NANOSLEEP)
struct timespec ts;
ts.tv_sec = t / APR_USEC_PER_SEC;
@@ -294,13 +282,6 @@ APR_DECLARE(apr_status_t) apr_apr_time_t
}
#endif
-#ifdef NETWARE
-APR_DECLARE(void) apr_netware_setup_time(void)
-{
- tzset();
- server_gmt_offset = -TZONE;
-}
-#else
APR_DECLARE(void) apr_unix_setup_time(void)
{
#ifdef NO_GMTOFF_IN_STRUCT_TM
@@ -346,7 +327,6 @@ APR_DECLARE(void) apr_unix_setup_time(vo
#endif /* NO_GMTOFF_IN_STRUCT_TM */
}
-#endif
/* A noop on all known Unix implementations */
APR_DECLARE(void) apr_time_clock_hires(apr_pool_t *p)