Bug 40193 - Patches to support different compiler than EMX on OS/2
Summary: Patches to support different compiler than EMX on OS/2
Status: NEEDINFO
Alias: None
Product: APR
Classification: Unclassified
Component: APR (show other bugs)
Version: 1.2.7
Hardware: PC OS/2
: P2 normal (vote)
Target Milestone: ---
Assignee: Apache Portable Runtime bugs mailinglist
URL:
Keywords: PatchAvailable
Depends on:
Blocks:
 
Reported: 2006-08-06 00:03 UTC by Paul Smedley
Modified: 2010-08-20 13:07 UTC (History)
0 users



Attachments
Patch to add support for Innotek libc on OS/2 (20.54 KB, patch)
2006-08-06 00:03 UTC, Paul Smedley
Details | Diff
Revised patch (11.10 KB, patch)
2006-08-06 10:08 UTC, Paul Smedley
Details | Diff
Revised, revised patch attached (18.38 KB, patch)
2006-08-06 10:18 UTC, Paul Smedley
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Paul Smedley 2006-08-06 00:03:12 UTC
Hi,
Attached patches make apr-1.2.7 build out of the box using the updated gcc 3.3.5
compiler and libc runtime (http://svn.netlabs.org/libc) on OS/2.

Current OS/2 support is based on the EMX compiler which hasn't been updated in a
number of years.

I don't see how to attach the patch so here it is:
diff -ur apr-1.2.7/build/aplibtool.c apr-1.2.7-os2/build/aplibtool.c
--- apr-1.2.7/build/aplibtool.c	Fri Feb  4 13:44:02 2005
+++ apr-1.2.7-os2/build/aplibtool.c	Wed Mar 22 19:37:34 2006
@@ -36,7 +36,7 @@
 #  define CC         "gcc"
 #  define GEN_EXPORTS "emxexp"
 #  define DEF2IMPLIB_CMD "emximp"
-#  define SHARE_SW   "-Zdll -Zmtd"
+#  define SHARE_SW   "-Zdll -Zmap -Zmtd"
 #  define USE_OMF true
 #  define TRUNCATE_DLL_NAME
 #  define DYNAMIC_LIB_EXT "dll"
@@ -45,7 +45,7 @@
 #  if USE_OMF
      /* OMF is the native format under OS/2 */
 #    define STATIC_LIB_EXT "lib"
-#    define OBJECT_EXT     "obj"
+#    define OBJECT_EXT     "o"
 #    define LIBRARIAN      "emxomfar"
 #  else
      /* but the alternative, a.out, can fork() which is sometimes necessary */
Only in apr-1.2.7-os2/build: aplibtool.exe
Only in apr-1.2.7-os2/build: apr_rules.mk
Only in apr-1.2.7-os2/build: apr_rules.out
Only in apr-1.2.7-os2/build/pkg: pkginfo
Only in apr-1.2.7-os2: build.log
Only in apr-1.2.7-os2: conf.cmd
Only in apr-1.2.7-os2: config.log
Only in apr-1.2.7-os2: config.nice
Only in apr-1.2.7-os2: config.status
Only in apr-1.2.7-os2: configure.help
Only in apr-1.2.7-os2: configure.lineno
Only in apr-1.2.7-os2: configure.log
diff -ur apr-1.2.7/dso/os2/dso.c apr-1.2.7-os2/dso/os2/dso.c
--- apr-1.2.7/dso/os2/dso.c	Fri Feb  4 13:44:02 2005
+++ apr-1.2.7-os2/dso/os2/dso.c	Sat Aug  5 22:02:40 2006
@@ -41,22 +41,33 @@
 
 APR_DECLARE(apr_status_t) apr_dso_load(apr_dso_handle_t **res_handle, const
char *path, apr_pool_t *ctx)
 {
+
     char failed_module[200];
     HMODULE handle;
     int rc;
-
     *res_handle = apr_pcalloc(ctx, sizeof(**res_handle));
     (*res_handle)->cont = ctx;
     (*res_handle)->load_error = APR_SUCCESS;
     (*res_handle)->failed_module = NULL;
 
-    if ((rc = DosLoadModule(failed_module, sizeof(failed_module), path,
&handle)) != 0) {
+    rc = DosLoadModule(failed_module, sizeof(failed_module), path, &handle);
+
+   if ((rc != 0)&&(rc!=87)) {
         (*res_handle)->load_error = APR_FROM_OS_ERROR(rc);
         (*res_handle)->failed_module = apr_pstrdup(ctx, failed_module);
         return APR_FROM_OS_ERROR(rc);
     }
 
-    (*res_handle)->handle  = handle;
+
+   if (rc==87){
+        int rc2;
+        HMODULE handle2;
+        rc2=DosQueryModuleHandle(path,&handle2);
+        (*res_handle)->handle  = handle2;
+        }
+   if (rc==0) {
+    (*res_handle)->handle  = handle;}
     apr_pool_cleanup_register(ctx, *res_handle, dso_cleanup,
apr_pool_cleanup_null);
     return APR_SUCCESS;
 }
@@ -76,11 +87,20 @@
 {
     PFN func;
     int rc;
-
     if (symname == NULL || ressym == NULL)
         return APR_ESYMNOTFOUND;
 
-    if ((rc = DosQueryProcAddr(handle->handle, 0, symname, &func)) != 0) {
+
+#if defined(__INNOTEK_LIBC__)
+    void *retval;
+    char *symbol = (char*)malloc(sizeof(char)*(strlen(symname)+2));
+    sprintf(symbol, "_%s", symname);
+    rc = DosQueryProcAddr(handle->handle, 0, symbol, &func);
+    free(symbol);
+#else
+    rc = DosQueryProcAddr(handle->handle, 0, symname, &func);
+#endif
+    if (rc != 0) {
         handle->load_error = APR_FROM_OS_ERROR(rc);
         return handle->load_error;
     }
Only in apr-1.2.7-os2/dso/os2: dso.lo
Only in apr-1.2.7-os2/dso/os2: dso.o
Only in apr-1.2.7-os2: export_vars.c
Only in apr-1.2.7-os2: exports.c
Only in apr-1.2.7-os2/file_io/os2: copy.lo
Only in apr-1.2.7-os2/file_io/os2: copy.o
Only in apr-1.2.7-os2/file_io/os2: dir.lo
Only in apr-1.2.7-os2/file_io/os2: dir.o
Only in apr-1.2.7-os2/file_io/os2: dir_make_recurse.lo
Only in apr-1.2.7-os2/file_io/os2: dir_make_recurse.o
Only in apr-1.2.7-os2/file_io/os2: fileacc.lo
Only in apr-1.2.7-os2/file_io/os2: fileacc.o
Only in apr-1.2.7-os2/file_io/os2: filedup.lo
Only in apr-1.2.7-os2/file_io/os2: filedup.o
Only in apr-1.2.7-os2/file_io/os2: filepath.lo
Only in apr-1.2.7-os2/file_io/os2: filepath.o
Only in apr-1.2.7-os2/file_io/os2: filepath_util.lo
Only in apr-1.2.7-os2/file_io/os2: filepath_util.o
diff -ur apr-1.2.7/file_io/os2/filestat.c apr-1.2.7-os2/file_io/os2/filestat.c
--- apr-1.2.7/file_io/os2/filestat.c	Sat Jul 16 02:07:42 2005
+++ apr-1.2.7-os2/file_io/os2/filestat.c	Mon Apr 24 08:44:26 2006
@@ -171,7 +171,8 @@
         return APR_FROM_OS_ERROR(rc);
     }
 
-    return (wanted & ~finfo->valid) ? APR_INCOMPLETE : APR_SUCCESS;
+#ifndef __INNOTEK_LIBC__
+    return (wanted & ~finfo->valid) ? APR_INCOMPLETE : APR_SUCCESS;
+#else
+    return APR_SUCCESS;
+#endif }
 
 
Only in apr-1.2.7-os2/file_io/os2: filestat.lo
Only in apr-1.2.7-os2/file_io/os2: filestat.o
Only in apr-1.2.7-os2/file_io/os2: filesys.lo
Only in apr-1.2.7-os2/file_io/os2: filesys.o
Only in apr-1.2.7-os2/file_io/os2: flock.lo
Only in apr-1.2.7-os2/file_io/os2: flock.o
Only in apr-1.2.7-os2/file_io/os2: fullrw.lo
Only in apr-1.2.7-os2/file_io/os2: fullrw.o
Only in apr-1.2.7-os2/file_io/os2: maperrorcode.lo
Only in apr-1.2.7-os2/file_io/os2: maperrorcode.o
Only in apr-1.2.7-os2/file_io/os2: mktemp.lo
Only in apr-1.2.7-os2/file_io/os2: mktemp.o
diff -ur apr-1.2.7/file_io/os2/open.c apr-1.2.7-os2/file_io/os2/open.c
--- apr-1.2.7/file_io/os2/open.c	Wed Jun 29 05:34:38 2005
+++ apr-1.2.7-os2/file_io/os2/open.c	Sat Jul 22 19:40:44 2006
@@ -28,7 +28,13 @@
     return apr_file_close(file);
 }
 
-
+#ifdef __INNOTEK_LIBC__
+apr_status_t apr_unix_file_cleanup(void *thefile)
+{
+    apr_file_t *file = thefile;
+    return apr_file_close(file);
+}
+#endif
 
 APR_DECLARE(apr_status_t) apr_file_open(apr_file_t **new, const char *fname,
apr_int32_t flag,  apr_fileperms_t perm, apr_pool_t *pool)
 {
Only in apr-1.2.7-os2/file_io/os2: open.lo
Only in apr-1.2.7-os2/file_io/os2: open.o
Only in apr-1.2.7-os2/file_io/os2: pipe.lo
Only in apr-1.2.7-os2/file_io/os2: pipe.o
diff -ur apr-1.2.7/file_io/os2/readwrite.c apr-1.2.7-os2/file_io/os2/readwrite.c
--- apr-1.2.7/file_io/os2/readwrite.c	Thu Feb 23 05:14:36 2006
+++ apr-1.2.7-os2/file_io/os2/readwrite.c	Sat May 20 21:10:26 2006
@@ -171,13 +171,13 @@
                 rc = DosSetFilePtr(thefile->filedes, 0, FILE_END, &newpos);
 
                 if (rc == 0) {
-                    rc = DosWrite(thefile->filedes, buf, *nbytes, &byteswritten);
+                    rc = DosWrite(thefile->filedes, (PVOID)buf, *nbytes,
&byteswritten);
                 }
 
                 DosSetFileLocks(thefile->filedes, &all, NULL, -1, 0);
             }
         } else {
-            rc = DosWrite(thefile->filedes, buf, *nbytes, &byteswritten);
+            rc = DosWrite(thefile->filedes, (PVOID)buf, *nbytes, &byteswritten);
         }
 
         if (rc) {
@@ -330,7 +330,58 @@
     return rv;
 }
 
+/* Pull from unix code to start a sync up */
+#if (defined(__INNOTEK_LIBC__) || defined(__WATCOMC__) )
 
+struct apr_file_printf_data {
+    apr_vformatter_buff_t vbuff;
+    apr_file_t *fptr;
+    char *buf;
+};
+
+static int file_printf_flush(apr_vformatter_buff_t *buff)
+{
+    struct apr_file_printf_data *data = (struct apr_file_printf_data *)buff;
+
+    if (apr_file_write_full(data->fptr, data->buf,
+                            data->vbuff.curpos - data->buf, NULL)) {
+        return -1;
+    }
+
+    data->vbuff.curpos = data->buf;
+    return 0;
+}
+
+
+APR_DECLARE_NONSTD(int) apr_file_printf(apr_file_t *fptr,
+                                        const char *format, ...)
+{
+    struct apr_file_printf_data data;
+    va_list ap;
+    int count;
+
+    /* don't really need a HUGE_STRING_LEN anymore */
+    data.buf = malloc(HUGE_STRING_LEN);
+    if (data.buf == NULL) {
+        return -1;
+    }
+    data.vbuff.curpos = data.buf;
+    data.vbuff.endpos = data.buf + HUGE_STRING_LEN;
+    data.fptr = fptr;
+    va_start(ap, format);
+    count = apr_vformatter(file_printf_flush,
+                           (apr_vformatter_buff_t *)&data, format, ap);
+    /* apr_vformatter does not call flush for the last bits */
+    if (count >= 0) file_printf_flush((apr_vformatter_buff_t *)&data);
+
+    va_end(ap);
+
+    free(data.buf);
+
+    return count;
+}
+
+#else
 
 APR_DECLARE_NONSTD(int) apr_file_printf(apr_file_t *fptr, 
                                         const char *format, ...)
@@ -352,7 +403,7 @@
     return (cc == APR_SUCCESS) ? len : -1;
 }
 
-
+#endif
 
 apr_status_t apr_file_check_read(apr_file_t *fd)
 {
@@ -368,3 +419,4 @@
 
     return APR_FROM_OS_ERROR(rc);
 }
+
Only in apr-1.2.7-os2/file_io/os2: readwrite.lo
Only in apr-1.2.7-os2/file_io/os2: readwrite.o
Only in apr-1.2.7-os2/file_io/os2: seek.lo
Only in apr-1.2.7-os2/file_io/os2: seek.o
Only in apr-1.2.7-os2/file_io/os2: tempdir.lo
Only in apr-1.2.7-os2/file_io/os2: tempdir.o
diff -ur apr-1.2.7/file_io/unix/mktemp.c apr-1.2.7-os2/file_io/unix/mktemp.c
--- apr-1.2.7/file_io/unix/mktemp.c	Fri Feb  4 13:44:02 2005
+++ apr-1.2.7-os2/file_io/unix/mktemp.c	Sat Jul 22 19:34:50 2006
@@ -80,7 +80,9 @@
 #include <fcntl.h>
 #endif
 #include <stdio.h>
+#ifndef __INNOTEK_LIBC__
 #include <stdlib.h>
+#endif
 #include <string.h>
 #include <ctype.h>
 #ifdef HAVE_TIME_H
@@ -188,6 +190,11 @@
 #else
     fd = mkstemp(template);
 #endif
+
+#ifdef __INNOTEK_LIBC__
+          setmode(fd, O_BINARY);
+#endif 
+
     
     if (fd == -1) {
         return errno;
Only in apr-1.2.7-os2/include: apr.h
Only in apr-1.2.7-os2/include: apr.patch
diff -ur apr-1.2.7/include/apr_network_io.h apr-1.2.7-os2/include/apr_network_io.h
--- apr-1.2.7/include/apr_network_io.h	Sun Jun 12 11:54:50 2005
+++ apr-1.2.7-os2/include/apr_network_io.h	Mon Apr 24 08:46:34 2006
@@ -752,7 +752,7 @@
  * Unset a socket from being inherited by child processes.
  */
 APR_DECLARE_INHERIT_UNSET(socket);
-
+#ifndef __INNOTEK_LIBC__
 /**
  * @defgroup apr_mcast IP Multicast
  * @{
@@ -814,6 +814,7 @@
 APR_DECLARE(apr_status_t) apr_mcast_interface(apr_socket_t *sock,
                                               apr_sockaddr_t *iface);
 
+#endif
 /** @} */
 
 /** @} */
Only in apr-1.2.7-os2/include: apremx.h
diff -ur apr-1.2.7/include/arch/os2/apr_arch_file_io.h
apr-1.2.7-os2/include/arch/os2/apr_arch_file_io.h
--- apr-1.2.7/include/arch/os2/apr_arch_file_io.h	Sat Jul 16 02:07:42 2005
+++ apr-1.2.7-os2/include/arch/os2/apr_arch_file_io.h	Sat Jul 22 19:39:30 2006
@@ -29,7 +29,9 @@
  * friendly & is part of the POSIX emulation rather than native so don't
  * use it.
  */
+#ifndef __INNOTEK_LIBC__
 #undef HAVE_MKSTEMP
+#endif
 
 #define APR_FILE_BUFSIZE 4096
 
@@ -45,7 +47,10 @@
     int pipe;
     HEV pipeSem;
     enum { BLK_UNKNOWN, BLK_OFF, BLK_ON } blocking;
-
+#ifndef WAITIO_USES_POLL
+    /* if there is a timeout set, then this pollset is used */
+    apr_pollset_t *pollset;
+#endif
     /* Stuff for buffered mode */
     char *buffer;
     int bufpos;               // Read/Write position in buffer
@@ -62,6 +67,11 @@
     FILEFINDBUF3 entry;
     int validentry;
 };
+
+#ifdef __INNOTEK_LIBC__
+apr_status_t apr_unix_file_cleanup(void *);
+#endif
+
 
 apr_status_t apr_file_cleanup(void *);
 apr_status_t apr_os2_time_to_apr_time(apr_time_t *result, FDATE os2date, 
Only in apr-1.2.7-os2/include/arch/unix: apr_private.h
Only in apr-1.2.7-os2/include: t
Only in apr-1.2.7-os2: libapr-1.la
diff -ur apr-1.2.7/locks/os2/proc_mutex.c apr-1.2.7-os2/locks/os2/proc_mutex.c
--- apr-1.2.7/locks/os2/proc_mutex.c	Fri Feb  4 13:44:02 2005
+++ apr-1.2.7-os2/locks/os2/proc_mutex.c	Mon Apr 24 08:48:38 2006
@@ -115,6 +115,13 @@
     new->owner      = 0;
     new->lock_count = 0;
 
+#ifdef __INNOTEK_LIBC__
+    if (!fname) {
+        /* Reinitializing unnamed mutexes is a noop in the Unix code. */
+        return APR_SUCCESS;
+    }
+#endif
+
     semname = fixed_name(fname, pool);
     rc = DosOpenMutexSem(semname, &(new->hMutex));
     *mutex = new;
Only in apr-1.2.7-os2/locks/os2: proc_mutex.lo
Only in apr-1.2.7-os2/locks/os2: proc_mutex.o
Only in apr-1.2.7-os2/locks/os2: thread_cond.lo
Only in apr-1.2.7-os2/locks/os2: thread_cond.o
Only in apr-1.2.7-os2/locks/os2: thread_mutex.lo
Only in apr-1.2.7-os2/locks/os2: thread_mutex.o
Only in apr-1.2.7-os2/locks/os2: thread_rwlock.lo
Only in apr-1.2.7-os2/locks/os2: thread_rwlock.o
Only in apr-1.2.7-os2: Makefile
Only in apr-1.2.7-os2/memory/unix: apr_pools.lo
Only in apr-1.2.7-os2/memory/unix: apr_pools.o
Only in apr-1.2.7-os2/misc/unix: charset.lo
Only in apr-1.2.7-os2/misc/unix: charset.o
Only in apr-1.2.7-os2/misc/unix: env.lo
Only in apr-1.2.7-os2/misc/unix: env.o
Only in apr-1.2.7-os2/misc/unix: errorcodes.lo
Only in apr-1.2.7-os2/misc/unix: errorcodes.o
Only in apr-1.2.7-os2/misc/unix: getopt.lo
Only in apr-1.2.7-os2/misc/unix: getopt.o
Only in apr-1.2.7-os2/misc/unix: otherchild.lo
Only in apr-1.2.7-os2/misc/unix: otherchild.o
Only in apr-1.2.7-os2/misc/unix: rand.lo
Only in apr-1.2.7-os2/misc/unix: rand.o
diff -ur apr-1.2.7/misc/unix/randbyte_os2.inc
apr-1.2.7-os2/misc/unix/randbyte_os2.inc
--- apr-1.2.7/misc/unix/randbyte_os2.inc	Tue Jun 14 08:11:30 2005
+++ apr-1.2.7-os2/misc/unix/randbyte_os2.inc	Mon Apr  3 20:20:56 2006
@@ -62,8 +62,10 @@
  * which is why it's run-time linked.
  */
 
+#ifndef __INNOTEK_LIBC__
 static APIRET APIENTRY(*DosPerfSysCall) (ULONG ulCommand, ULONG ulParm1,
                                          ULONG ulParm2, ULONG ulParm3) = NULL;
+#endif
 static HMODULE hDoscalls = 0;
 #define   CMD_KI_RDCNT    (0x63)
 
@@ -85,6 +87,7 @@
     CPUUTIL util;
     int c;
 
+#ifndef __INNOTEK_LIBC__
     if (hDoscalls == 0) {
         char failed_module[20];
         ULONG rc;
@@ -111,7 +114,7 @@
             DosPerfSysCall = NULL;
         }
     }
-
+#endif
     return byte;
 }
 
Only in apr-1.2.7-os2/misc/unix: start.lo
Only in apr-1.2.7-os2/misc/unix: start.o
Only in apr-1.2.7-os2/misc/unix: version.lo
Only in apr-1.2.7-os2/misc/unix: version.o
Only in apr-1.2.7-os2/mmap/unix: common.lo
Only in apr-1.2.7-os2/mmap/unix: common.o
Only in apr-1.2.7-os2/mmap/unix: mmap.lo
Only in apr-1.2.7-os2/mmap/unix: mmap.o
Only in apr-1.2.7-os2/network_io/os2: inet_ntop.lo
Only in apr-1.2.7-os2/network_io/os2: inet_ntop.o
Only in apr-1.2.7-os2/network_io/os2: inet_pton.lo
Only in apr-1.2.7-os2/network_io/os2: inet_pton.o
Only in apr-1.2.7-os2/network_io/os2: os2calls.lo
Only in apr-1.2.7-os2/network_io/os2: os2calls.o
diff -ur apr-1.2.7/network_io/os2/sendrecv.c apr-1.2.7-os2/network_io/os2/sendrecv.c
--- apr-1.2.7/network_io/os2/sendrecv.c	Wed Jan  4 20:09:00 2006
+++ apr-1.2.7-os2/network_io/os2/sendrecv.c	Sat Aug  5 22:21:54 2006
@@ -27,9 +27,11 @@
     apr_ssize_t rv;
     int fds, err = 0;
 
+#ifndef __INNOTEK_LIBC__
     if (*len > 65536) {
         *len = 65536;
     }
+#endif 
 
     do {
         if (!sock->nonblock || err == SOCEWOULDBLOCK) {
@@ -114,11 +116,17 @@
     int fds, err = 0;
     int nv_tosend, total = 0;
 
+#ifndef __INNOTEK_LIBC__
     /* Make sure writev() only gets fed 64k at a time */
     for ( nv_tosend = 0; nv_tosend < nvec && total + vec[nv_tosend].iov_len <
65536; nv_tosend++ ) {
         total += vec[nv_tosend].iov_len;
     }
-
+#else
+    /* workaround for writev() not required with libc */
+    for ( nv_tosend = 0; nv_tosend < nvec; nv_tosend++ ) {
+        total += vec[nv_tosend].iov_len;
+    }
+#endif
     tmpvec = alloca(sizeof(struct iovec) * nv_tosend);
     memcpy(tmpvec, vec, sizeof(struct iovec) * nv_tosend);
 
Only in apr-1.2.7-os2/network_io/os2: sendrecv.lo
Only in apr-1.2.7-os2/network_io/os2: sendrecv.o
Only in apr-1.2.7-os2/network_io/os2: sendrecv_udp.lo
Only in apr-1.2.7-os2/network_io/os2: sendrecv_udp.o
Only in apr-1.2.7-os2/network_io/os2: sockaddr.lo
Only in apr-1.2.7-os2/network_io/os2: sockaddr.o
Only in apr-1.2.7-os2/network_io/os2: sockets.lo
Only in apr-1.2.7-os2/network_io/os2: sockets.o
diff -ur apr-1.2.7/network_io/os2/sockopt.c apr-1.2.7-os2/network_io/os2/sockopt.c
--- apr-1.2.7/network_io/os2/sockopt.c	Fri Feb  4 13:44:02 2005
+++ apr-1.2.7-os2/network_io/os2/sockopt.c	Mon Apr 24 09:07:20 2006
@@ -24,7 +24,9 @@
 #include <sys/socket.h>
 #include <netinet/tcp.h>
 #include <netinet/in.h>
+#ifndef __INNOTEK_LIBC__
 #include <unistd.h>
+#endif
 #include <netdb.h>
 #include <sys/so_ioctl.h>
 
Only in apr-1.2.7-os2/network_io/os2: sockopt.lo
Only in apr-1.2.7-os2/network_io/os2: sockopt.o
Only in apr-1.2.7-os2/passwd: apr_getpass.lo
Only in apr-1.2.7-os2/passwd: apr_getpass.o
Only in apr-1.2.7-os2/poll/os2: poll.lo
Only in apr-1.2.7-os2/poll/os2: poll.o
Only in apr-1.2.7-os2/poll/os2: pollset.lo
Only in apr-1.2.7-os2/poll/os2: pollset.o
Only in apr-1.2.7-os2/random/unix: apr_random.lo
Only in apr-1.2.7-os2/random/unix: apr_random.o
Only in apr-1.2.7-os2/random/unix: sha2.lo
Only in apr-1.2.7-os2/random/unix: sha2.o
Only in apr-1.2.7-os2/random/unix: sha2_glue.lo
Only in apr-1.2.7-os2/random/unix: sha2_glue.o
Only in apr-1.2.7-os2: retvalue.tmp
Only in apr-1.2.7-os2/shmem/os2: shm.lo
Only in apr-1.2.7-os2/shmem/os2: shm.o
Only in apr-1.2.7-os2/strings: apr_cpystrn.lo
Only in apr-1.2.7-os2/strings: apr_cpystrn.o
Only in apr-1.2.7-os2/strings: apr_fnmatch.lo
Only in apr-1.2.7-os2/strings: apr_fnmatch.o
Only in apr-1.2.7-os2/strings: apr_snprintf.lo
Only in apr-1.2.7-os2/strings: apr_snprintf.o
Only in apr-1.2.7-os2/strings: apr_strings.lo
Only in apr-1.2.7-os2/strings: apr_strings.o
Only in apr-1.2.7-os2/strings: apr_strnatcmp.lo
Only in apr-1.2.7-os2/strings: apr_strnatcmp.o
Only in apr-1.2.7-os2/strings: apr_strtok.lo
Only in apr-1.2.7-os2/strings: apr_strtok.o
Only in apr-1.2.7-os2/support/unix: waitio.lo
Only in apr-1.2.7-os2/support/unix: waitio.o
Only in apr-1.2.7-os2/tables: apr_hash.lo
Only in apr-1.2.7-os2/tables: apr_hash.o
Only in apr-1.2.7-os2/tables: apr_tables.lo
Only in apr-1.2.7-os2/tables: apr_tables.o
Only in apr-1.2.7-os2/test/internal: Makefile
Only in apr-1.2.7-os2/test: Makefile
Only in apr-1.2.7-os2/test: mod_test.bak
Only in apr-1.2.7-os2/test: testlockperf.map
Only in apr-1.2.7-os2/test: testmutexscope.map
Only in apr-1.2.7-os2/test: testshmconsumer.map
Only in apr-1.2.7-os2/test: testshmproducer.map
Only in apr-1.2.7-os2: test.log
Only in apr-1.2.7-os2/threadproc/os2: proc.lo
Only in apr-1.2.7-os2/threadproc/os2: proc.o
Only in apr-1.2.7-os2/threadproc/os2: signals.lo
Only in apr-1.2.7-os2/threadproc/os2: signals.o
Only in apr-1.2.7-os2/threadproc/os2: thread.lo
Only in apr-1.2.7-os2/threadproc/os2: thread.o
Only in apr-1.2.7-os2/threadproc/os2: threadpriv.lo
Only in apr-1.2.7-os2/threadproc/os2: threadpriv.o
diff -ur apr-1.2.7/threadproc/unix/signals.c apr-1.2.7-os2/threadproc/unix/signals.c
--- apr-1.2.7/threadproc/unix/signals.c	Fri Feb  4 13:44:02 2005
+++ apr-1.2.7-os2/threadproc/unix/signals.c	Fri May  5 20:00:20 2006
@@ -44,7 +44,6 @@
                                                      XCPT_SIGNAL_BREAK));
     }
 #endif /* OS2 */
-
     if (kill(proc->pid, signum) == -1) {
         return errno;
     }
@@ -416,7 +415,7 @@
     sigfillset(&sig_mask);
     remove_sync_sigs(&sig_mask);
 
-#if defined(SIGPROCMASK_SETS_THREAD_MASK) || ! APR_HAS_THREADS
+#if defined(SIGPROCMASK_SETS_THREAD_MASK) || ! APR_HAS_THREADS || defined(OS2)
     if ((rv = sigprocmask(SIG_SETMASK, &sig_mask, NULL)) != 0) {
         rv = errno;
     }
@@ -442,7 +441,7 @@
 
     sigaddset(&sig_mask, signum);
 
-#if defined(SIGPROCMASK_SETS_THREAD_MASK) || ! APR_HAS_THREADS
+#if defined(SIGPROCMASK_SETS_THREAD_MASK) || ! APR_HAS_THREADS || defined(OS2)
     if ((rv = sigprocmask(SIG_BLOCK, &sig_mask, NULL)) != 0) {
         rv = errno;
     }
@@ -469,7 +468,7 @@
 
     sigaddset(&sig_mask, signum);
 
-#if defined(SIGPROCMASK_SETS_THREAD_MASK) || ! APR_HAS_THREADS
+#if defined(SIGPROCMASK_SETS_THREAD_MASK) || ! APR_HAS_THREADS || defined(OS2)
     if ((rv = sigprocmask(SIG_UNBLOCK, &sig_mask, NULL)) != 0) {
         rv = errno;
     }
Only in apr-1.2.7-os2/time/unix: time.lo
Only in apr-1.2.7-os2/time/unix: time.o
Only in apr-1.2.7-os2/time/unix: timestr.lo
Only in apr-1.2.7-os2/time/unix: timestr.o
Only in apr-1.2.7-os2/user/unix: groupinfo.lo
Only in apr-1.2.7-os2/user/unix: groupinfo.o
diff -ur apr-1.2.7/user/unix/userinfo.c apr-1.2.7-os2/user/unix/userinfo.c
--- apr-1.2.7/user/unix/userinfo.c	Wed Aug 24 03:42:20 2005
+++ apr-1.2.7-os2/user/unix/userinfo.c	Mon Apr 24 08:51:10 2006
@@ -77,7 +77,7 @@
     if ((rv = getpwnam_safe(username, &pw, pwbuf)) != APR_SUCCESS)
         return rv;
 
-#ifdef OS2
+#if (defined(OS2)&&!defined(__INNOTEK_LIBC__))
     /* Need to manually add user name for OS/2 */
     *dirname = apr_pstrcat(p, pw.pw_dir, pw.pw_name, NULL);
 #else
Only in apr-1.2.7-os2/user/unix: userinfo.lo
Only in apr-1.2.7-os2/user/unix: userinfo.o
Comment 1 Paul Smedley 2006-08-06 00:03:53 UTC
Created attachment 18681 [details]
Patch to add support for Innotek libc on OS/2

OK I found where to add an attachment :)
Comment 2 Paul Smedley 2006-08-06 10:08:24 UTC
Created attachment 18682 [details]
Revised patch
Comment 3 Paul Smedley 2006-08-06 10:18:54 UTC
Created attachment 18683 [details]
Revised, revised patch attached
Comment 4 Garrett Rooney 2006-08-07 13:34:29 UTC
A few small thoughts.

First, I don't think we can commit those jlibtool changes unless we're actually
going to remove support for the other compiler.  Do we want to do that?  If not,
then it should be conditional for this particular compiler I guess.

Second, these patches cover a lot of ground, much of which is unrelated.  Any
chance of breaking them up into smaller self contained chunks?