View Issue Details

IDProjectCategoryView StatusLast Update
0000682Subversion for OS/2 & eCSBugpublic2020-08-24 03:07
ReporterSteven Levine Assigned Topsmedley  
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
PlatformOS2/eCSOSOS/2 or eComstationOS Version1.x 2.x or 4.5
Summary0000682: svn cat traps for version 1.7.21
DescriptionThe testcase was generated for the nepmd repository, but the command will trap for any repository for any file.
v1.6.23 traps similarly, so this is not a regression.

I am pretty sure this is a known kLIBC issue that has been fixed in recent LIBC066.DLL builds with changes to os2safe.h which give DosWrite to the console special handling for high memory buffers.

A rebuild of svn.exe with the most recent LIBC066.DLL might be sufficient to avoid the trap.
Steps To ReproduceGiven:

>svn info ^/trunk
Path: trunk
URL: http://svn.netlabs.org/repos/nepmd/trunk
Repository Root: http://svn.netlabs.org/repos/nepmd
Repository UUID: 72c63837-6175-e011-9ffd-00145e329d72
Revision: 3365
Node Kind: directory
Last Changed Author: aschn
Last Changed Rev: 3365
Last Changed Date: 2018-12-18 11:38:49 +0000 (Tue, 18 Dec 2018)

>svn cat ^/trunk/readme.cmd

Killed by SIGSEGV
pid=0x3d40 ppid=0x3d18 tid=0x0001 slot=0x00f1 pri=0x0200 mc=0x0001 ps=0x0010
D:\USR2\BIN\SVN.EXE
cs:eip=fff7:00005003 ss:esp=0287:0050f72e ebp=0050f73a
 ds=e7e7 es=0000 fs=150b gs=e7bf efl=00012202
eax=0287e7e7 ebx=00634e94 ecx=00000051 edx=0050e7df edi=00000051 esi=2007d178
Process dumping was disabled, use DUMPPROC / PROCDUMP to enable it.

Redirecting the output with:

>svn cat ^/trunk/readme.cmd | less

avoids the trap.

TagsNo tags attached.
Attached Files

Relationships

related to 0000689 closedSteven Levine svn 1.7.21 update traps when requiring input (e.g., conflict resolution) 

Activities

psmedley

2018-12-21 06:15

administrator   ~0003211

i'd assume you mean rebuilding against the updated os2safe.h might be sufficient? I'll try look at this soon.

Steven Levine

2018-12-21 07:27

manager   ~0003212

Maybe. The last os2safe.h updates added DosOpen and DosDevIOCtl to the API list as a result of:

  http://trac.netlabs.org/libc/ticket/294
  http://trac.netlabs.org/libc/ticket/282

However, the trap, IIRC, occurred because DosWrite is not safe when the handle points to the console. I will capture a process dump to verify exactly where the trap is occuring.

psmedley

2018-12-21 21:09

administrator   ~0003213

Last edited: 2018-12-21 21:11

svn cat works fine here. However, I'm running a newer build of svn.exe than is publicly available.

http://smedley.id.au/tmp/subversion-1.7.21-os2-20181221.zip

LewisR

2018-12-25 01:46

developer   ~0003215

Hmmm... Might warrant a fresh ticket:

svn: E175002: OPTIONS of 'https://svn.netlabs.org/repos/vxapps/projects/itheme':
 SSL handshake failed: SSL disabled due to library version mismatch (https://svn.netlabs.org)

(This is with the 20181221 1.7.21.)

Steven Levine

2018-12-25 03:05

manager   ~0003216

Lewis, this may be a regression Any attempt ot use the https scheme fails exactly as you described. So far, I have tried:

>svn ls https://svn.netlabs.org/repos/vxapps/projects/itheme
>svn ls https://svn.arcanoae.com/arcaos/trunk

Paul, I'm still trapping here. Did you test with exactly the commands I provided? The reason I ask is that

  svn cat readme.cmd

has always works. The failure occurs when using

  svn cat ^/trunk/readme.cmd

or the more verbose:

  svn cat http://svn.netlabs.org/repos/nepmd/trunk/readme.cmd

The former requires a workspace so that svn to expand the ^. The later does not.

Both of the above cat from the remote repository, not the local workspace.

Steven Levine

2018-12-25 08:38

manager   ~0003217

I have confirmed that the trap is caused by attempting to write from a high memory buffer to the console via VIOWriteTTY. Please provide a map file, I will identify the function that is allocated the buffer that needs to be moved to low memory.

psmedley

2018-12-25 08:49

administrator   ~0003218

http://smedley.id.au/tmp/svn.map - meanwhile, I'll try fix the ssl issue

Steven Levine

2018-12-25 09:52

manager   ~0003219

As you know, svn has lots of static functions and data, so this is why some of the offset are large.

# %findsym 0059F700 l900
Finding from 0059f700 to 005a0000 by dword
59f710: 00010007 = _text + 7
59f714: 00530000 = SEG0002_dummy + 80000 (0003:00090000)
59f71c: 00513c90 = SEG0002_dummy + 63C90 (0003:00073c90)
59f740: 0059f748 = SEG0002_dummy + EF748 (0003:000ff748)
59f748: 0059f778 = SEG0002_dummy + EF778 (0003:000ff778)
59f76c: 0059f7fc = SEG0002_dummy + EF7FC (0003:000ff7fc)
59f774: 00080042 = svn_ra_open4 + 2B2
59f778: 0059f7d8 = SEG0002_dummy + EF7D8 (0003:000ff7d8)
59f77c: 00116ada = apr_file_write + 4A call Dos32Write
59f78c: 0059f7b0 = SEG0002_dummy + EF7B0 (0003:000ff7b0)
59f7d8: 0059f818 = SEG0002_dummy + EF818 (0003:000ff818)
59f7dc: 000b5a6c = apr_file_write_full + 2C
59f7e8: 0059f7fc = SEG0002_dummy + EF7FC (0003:000ff7fc)
59f7f8: 0059f854 = SEG0002_dummy + EF854 (0003:000ff854)
59f80c: 0059f8f0 = SEG0002_dummy + EF8F0 (0003:000ff8f0)
59f818: 0059f858 = SEG0002_dummy + EF858 (0003:000ff858)
59f81c: 0007145c = svn_io_file_write_full + 2C
59f82c: 0059f8f0 = SEG0002_dummy + EF8F0 (0003:000ff8f0)
59f838: 0059f868 = SEG0002_dummy + EF868 (0003:000ff868)
59f83c: 0059f930 = SEG0002_dummy + EF930 (0003:000ff930)
59f840: 0059f960 = SEG0002_dummy + EF960 (0003:000ff960)
59f848: 0059f888 = SEG0002_dummy + EF888 (0003:000ff888)
59f84c: 0059f8f0 = SEG0002_dummy + EF8F0 (0003:000ff8f0)
59f858: 0059f888 = SEG0002_dummy + EF888 (0003:000ff888)
59f85c: 00044735 = svn_error__malfunction + 31B5 (0001:00034735)
59f86c: 0059f8f0 = SEG0002_dummy + EF8F0 (0003:000ff8f0)
59f874: 0059f960 = SEG0002_dummy + EF960 (0003:000ff960)
59f878: 0059f8a8 = SEG0002_dummy + EF8A8 (0003:000ff8a8)
59f888: 0059fa08 = SEG0002_dummy + EFA08 (0003:000ffa08)
59f88c: 000857a8 = svn_client_list2 + 1618 (0001:000757a8)
59f898: 0059f8f0 = SEG0002_dummy + EF8F0 (0003:000ff8f0)
59f8f8: 0059f938 = SEG0002_dummy + EF938 (0003:000ff938)
59f8fc: 1d28ab0a = _um_alloc_no_lock + 6A
59f918: 0059fa48 = SEG0002_dummy + EFA48 (0003:000ffa48)
59f91c: 002b1c10 = ne_request_dispatch + 544
59f930: 0059f990 = SEG0002_dummy + EF990 (0003:000ff990)
59f938: 0059f9e8 = SEG0002_dummy + EF9E8 (0003:000ff9e8)
59f93c: 0013ee32 = apr_sha1_base64 + A56
59f968: 0059f998 = SEG0002_dummy + EF998 (0003:000ff998)
59f998: 0059f9b8 = SEG0002_dummy + EF9B8 (0003:000ff9b8)
59f99c: 1d2d0881 = _std_free + 21
59f9a8: 0059fa60 = SEG0002_dummy + EFA60 (0003:000ffa60)
59f9b8: 0059f9f8 = SEG0002_dummy + EF9F8 (0003:000ff9f8)
59f9bc: 002b0e20 = ne_get_response_header + 84
59f9d4: 0059fa38 = SEG0002_dummy + EFA38 (0003:000ffa38)
59f9d8: 0059fa08 = SEG0002_dummy + EFA08 (0003:000ffa08)
59f9dc: 00085fcd = svn_client_list2 + 1E3D (0001:00075fcd)
59f9e8: 0059fa08 = SEG0002_dummy + EFA08 (0003:000ffa08)
59f9ec: 00083072 = svn_checksum_update + 52
59fa08: 0059fa28 = SEG0002_dummy + EFA28 (0003:000ffa28)
59fa0c: 0017cbf3 = svn_ra_neon__vcc_prop + 1F3
59fa18: 0059fa38 = SEG0002_dummy + EFA38 (0003:000ffa38)
59fa28: 0059fa48 = SEG0002_dummy + EFA48 (0003:000ffa48)
59fa2c: 002ac817 = svn_ra_neon__xml_collect_cdata + 6D7
59fa30: 0059fb84 = SEG0002_dummy + EFB84 (0003:000ffb84)
59fa48: 0059faa8 = SEG0002_dummy + EFAA8 (0003:000ffaa8)
59fa4c: 002b1149 = ne_read_response_block + 61
59fa68: 0059faa8 = SEG0002_dummy + EFAA8 (0003:000ffaa8)
59fa6c: 001858d8 = ne__ssl_exit + 118
59fa84: 003119e0 = __emutls_register_common + B11
59fa88: 0059faa8 = SEG0002_dummy + EFAA8 (0003:000ffaa8)
59faa8: 0059fae8 = SEG0002_dummy + EFAE8 (0003:000ffae8)
59faac: 002b1710 = ne_request_dispatch + 44
59fac8: 0059fae8 = SEG0002_dummy + EFAE8 (0003:000ffae8)
59facc: 002ac96c = svn_ra_neon__xml_collect_cdata + 82C
59fad8: 002ac120 = apr_wait_for_io_or_timeout + 2D0
59fadc: 000409e0 = apr_pool_cleanup_null + 0
59fae8: 0059fb48 = SEG0002_dummy + EFB48 (0003:000ffb48)
59faec: 002ada24 = svn_ra_neon__request_dispatch + 1A4
59faf8: 002ac100 = apr_wait_for_io_or_timeout + 2B0
59fafc: 000409e0 = apr_pool_cleanup_null + 0
59fb08: 0059fb28 = SEG0002_dummy + EFB28 (0003:000ffb28)
59fb0c: 00040750 = apr_pool_cleanup_register + 50
59fb28: 0059fb48 = SEG0002_dummy + EFB48 (0003:000ffb48)
59fb2c: 002ac96c = svn_ra_neon__xml_collect_cdata + 82C
59fb38: 002ac120 = apr_wait_for_io_or_timeout + 2D0
59fb48: 0059fba8 = SEG0002_dummy + EFBA8 (0003:000ffba8)
59fb4c: 0017cf27 = svn_ra_neon__vcc_prop + 527
59fb78: 0059fba8 = SEG0002_dummy + EFBA8 (0003:000ffba8)
59fb7c: 0008300a = svn_checksum_ctx_create + 7A
59fb8c: 0059fbf4 = SEG0002_dummy + EFBF4 (0003:000ffbf4)
59fb98: 0059fba8 = SEG0002_dummy + EFBA8 (0003:000ffba8)
59fba8: 0059fc18 = SEG0002_dummy + EFC18 (0003:000ffc18)
59fbac: 0018052b = svn_ra_neon__get_file + 20B
59fbb0: 0017cba0 = svn_ra_neon__vcc_prop + 1A0
59fbb4: 0059fbf4 = SEG0002_dummy + EFBF4 (0003:000ffbf4)
59fc08: 0059fc18 = SEG0002_dummy + EFC18 (0003:000ffc18)
59fc14: 0004a3a1 = svn__strtoff + 6A1
59fc18: 0059fca8 = SEG0002_dummy + EFCA8 (0003:000ffca8)
59fc1c: 0005866c = svn_client_cat2 + 30C
59fc24: 000582f1 = svn_client__get_normalized_stream + 571
59fc44: 0059fc74 = SEG0002_dummy + EFC74 (0003:000ffc74)
59fc68: 0059fca8 = SEG0002_dummy + EFCA8 (0003:000ffca8)
59fc8c: 0004a3a1 = svn__strtoff + 6A1
59fc90: 00046d40 = svn_cmdline_handle_exit_error + D0
59fc94: 00046d63 = svn_cmdline_handle_exit_error + F3
59fca8: 0059fd18 = SEG0002_dummy + EFD18 (0003:000ffd18)
59fcac: 00011186 = svn_cl__cat + 116
59fcb8: 0059fcf4 = SEG0002_dummy + EFCF4 (0003:000ffcf4)
59fcbc: 0059fe00 = SEG0002_dummy + EFE00 (0003:000ffe00)
59fcd0: 0059fdfc = SEG0002_dummy + EFDFC (0003:000ffdfc)
59fce0: 0001a243 = svn_cl__check_cancel + 843
59fcf8: 0059fd18 = SEG0002_dummy + EFD18 (0003:000ffd18)
59fcfc: 00012059 = svn_cl__conflict_baton_make + 19
59fd18: 0059ff40 = SEG0002_dummy + EFF40 (0003:000fff40)
59fd1c: 0001bf4e = main + 1C1E (0001:0000bf4e)
59fd24: 0059fd98 = SEG0002_dummy + EFD98 (0003:000ffd98)
59fd40: 00019a00 = svn_cl__check_cancel + 0
59fd50: 0059fd8d = SEG0002_dummy + EFD8D (0003:000ffd8d)
59fd78: 00027620 = svn_cl__cmd_table + 4E0
59fd94: 0059fdac = SEG0002_dummy + EFDAC (0003:000ffdac)
59fd98: 0059fdfc = SEG0002_dummy + EFDFC (0003:000ffdfc)
59fdb4: 0059fddc = SEG0002_dummy + EFDDC (0003:000ffddc)
59fdb8: 18921053 = InitOptions + 63
59fdc0: 0059fdd8 = SEG0002_dummy + EFDD8 (0003:000ffdd8)
59fdd4: 0059fdfc = SEG0002_dummy + EFDFC (0003:000ffdfc)
59fdd8: 18921262 = InstallExceptq + 72
59fddc: 0059ff5c = SEG0002_dummy + EFF5C (0003:000fff5c)
59fde0: 18921208 = InstallExceptq + 18
59fde8: 0059fdf8 = SEG0002_dummy + EFDF8 (0003:000ffdf8)
59fdec: 0059fdf4 = SEG0002_dummy + EFDF4 (0003:000ffdf4)
59ff34: 0059ff78 = SEG0002_dummy + EFF78 (0003:000fff78)
59ff40: 0059ff6c = SEG0002_dummy + EFF6C (0003:000fff6c)
59ff44: 00010037 = _text + 37
59ff4c: 0059ff8c = SEG0002_dummy + EFF8C (0003:000fff8c)
59ff54: 0059ff84 = SEG0002_dummy + EFF84 (0003:000fff84)
59ff5c: 0059ff84 = SEG0002_dummy + EFF84 (0003:000fff84)
59ff60: 18921270 = MYHANDLER
59ff64: 1d291304 = __init + D4
59ff68: 0059ff78 = SEG0002_dummy + EFF78 (0003:000fff78)
59ff6c: 0059ffe0 = SEG0002_dummy + EFFE0 (0003:000fffe0)
59ff74: 0059ff78 = SEG0002_dummy + EFF78 (0003:000fff78)
59ff7c: 0059ff8c = SEG0002_dummy + EFF8C (0003:000fff8c)
59ff88: 1d2c6e50 = _libc_Back_exceptionHandler + 10
59ff8c: 0059ff9d = SEG0002_dummy + EFF9D (0003:000fff9d)
59ff90: 0059ffb2 = SEG0002_dummy + EFFB2 (0003:000fffb2)
59ff94: 0059ffb7 = SEG0002_dummy + EFFB7 (0003:000fffb7)
59ffd4: 1d291292 = __init + 62
59ffe4: 1d2a89ab = _sys_init_ret + F
5a0010: 00363532 = ssl3_ctrl + 2B3
5a0024: 00535953 = SEG0002_dummy + 85953 (0003:00095953)
5a0050: 00494e49 = ssl3_ciphers + B49
Scan stopped at 5a0080 stopaddr 5a0000

In the above:

59f77c: 00116ada = apr_file_write + 4A call Dos32Write

this is the call the eventually traps.

If we annotate the stack dump in the .trp file:

                                ebp eip
 0059F770 : 0000 0000 0042 0008 F7D8 0059 6ADA 0011 : ....B.....Y..j..
            stdout pBuffer cb pWrite
 0059F780 : 0001 0000 A5BA 2008 0000 0000 F7B0 0059 : ....... ......Y.

we find a DosWrite to STDOUT from address 0x2008a5ba for 0 bytes. This will trap once the code reaches VIOWRITETTY because the VIO functions are not highmem safe.

I've not looked at the code to see if the buffer is allocated by svn_io_file_write_full or by a fuction further up in the call chain.

psmedley

2018-12-26 06:05

administrator   ~0003220

OK, I fixed the SSL issue by rebuilding the neon libs against my current SSL. I can now reproduce the trap - out of curiosity, I built without -Zhigh-mem and got the same error? Does this make any sense?

Steven Levine

2018-12-26 16:38

manager   ~0003221

Yes, as of libcx 0.6.1, there was a change to the default behaviour of the kLIBC high memory heap voting process. See \usr\share\doc\libcx-0.6.3\README.md for the details. The current default behaviour is to use high memory if any of the EXEs or DLLs are built with -Zhigh-mem. In general, this causes less problems than forcing the heap to low memory just because some kLIBC app was accidentally built without -Zhigh-mem.

To verify that the problem buffer is coming from the kLIBC heap and to override the new default, use:

  set LIBCX_HIGHMEM=0

to force the heap into low memory. This should make the trap go away with your new build since it is linked with libcx0.dll. It does not avoid the trap for the 2015 version of svn 1.7.21 because it predates libcx.

There is a case where LIBCX_HIGHMEM=0 will not be effective. This will occur if the buffer comes from a code or data segment in the exectuable and someone has marked the segment to load high using highmem.exe.

psmedley

2018-12-27 03:39

administrator   ~0003222

OK that makes sense. Looks like the buffer is assigned somewhere else. I need to find out where svn_io_file_write_full is called from, and how the buffer is allocated.

Steven Levine

2018-12-27 20:59

manager   ~0003223

I wrote a nice long analysis and wandered off to do a honey-do and mantis timed out my post.

The management overview is you should be able to use isatty() is apr_write() to copy to data to a low memory buffer. Apr_read() will need the same treatment. The equivalent kLIBC code is at

  src\emx\src\lib\sys\__write.c:36
    if (!pFH->pOps)

psmedley

2018-12-28 00:51

administrator   ~0003224

Hi Steven, thanks for this - I'll investigate the mantis time out when I get a change, probably a PHP setting that can be tweaked.
I must be missing something. I've modified apr's readwrite.c per http://smedley.id.au/tmp/readwrite.c

When I run svn I'm getting a message confirming the new code is running, but it still traps.
[U:\DEV\subversion-1.7.21]subversion\svn\svn.exe cat http://svn.netlabs.org/repos/nepmd/trunk/readme.cmd
is tty
Creating 38A6_01.TRP

Any suggestions?

Steven Levine

2018-12-28 02:34

manager   ~0003225

Does

   set LIBCX_HIGHMEM=0

make the trap go away?

Your code looks OK. Please attach a copy of the .trp file to the ticket. A link to the test build and the map file would allow me to make my own .trp file.

I recommend you add the address of the new buffer to the fprintf output, just in case the behavior of _lmalloc changed unexpectely with the recent libcx changes. This could not occur, but one never knows.

BTW, I think you missed the

        if (pvBuf_safe)
            free(pvBuf_safe);





FWIW, the last .diff I have is from 1.7.18-2014-10-14. If there are any significant changes to the diff for 1.7.21, a fresh diff might be helpful too.

psmedley

2018-12-28 03:08

administrator   ~0003226

Updates as follows:
http://smedley.id.au/tmp/apr-1.6.5.diff
http://smedley.id.au/tmp/subversion-1.7.21.diff
http://smedley.id.au/tmp/subversion-1.7.21-os2-20181228.zip
TRP = http://smedley.id.au/tmp/38a8_01.trp

Now to wait for the pizza and drink some more wine

Steven Levine

2018-12-28 08:22

manager   ~0003227

I get a 404 for http://smedley.id.au/tmp/subversion-1.7.21.diff.

I got a 404 for this http://smedley.id.au/tmp/38a8_01.trp, but corrected the case to resolve this.

The code trapped doing a memcpy because it overran the source buffer, probably due to some sort of math error calculating the byte count. At the time of the trap the source was 20060000 (ESI) and the destination was
0076A868 (EDI) and the remaining count was 0016390D (ECX). Since we don't know the initial count, we don't know the buffer start address.

There are a couple of odd things going on. ECX points to valid memory. This is not impossible, but it is unlikely.

It appears something went wrong with the code that calculated the count.

The likely culprit is the memcpy() in apr_file_write() at:

readwrite.c:178
  memcpy(thefile->buffer + thefile->bufpos, pos, blocksize);

which will call memcpy() in libc066. apr_file_write() does not show in the stack trace because memcpy does not create a stack frame.

Please install libc066.xqs so that we know for sure where in libc066 the trap occurred.

Also, please check the svn.map in the zip file. The file dates differs from the date of svn.exe.

psmedley

2018-12-28 08:36

administrator   ~0003228

Apologies.... I'd had a few wines before posting :)

zip updated with new map file

new trp = http://smedley.id.au/tmp/CC1B_01.TRP
 Trap -> 1EC54D45 LIBC066 0001:00054D45 between __std_memcpy + 15 and __std_memicmp - 1B (in memcpy.obj and memicmp.obj)

Steven Levine

2018-12-29 18:30

manager   ~0003229

Please check http://smedley.id.au/tmp/subversion-1.7.21-os2-20181228.zip. I don't think it got updated with the most recent svn.exe. It still traps in check_dbc() which is expected for the original readwrite.c.

I occurs to me that since we are using os2/readwrite.c and unix/fullrw.c, perhaps the parameter order is out of sync.

psmedley

2018-12-29 20:39

administrator   ~0003230

Hey Steven,

Try http://smedley.id.au/tmp/subversion-1.7.21-os2-20181230.zip

Note that things do work OK with set LIBCX_HIGHMEM=0 - perhaps something is still using highmem ?

Steven Levine

2018-12-30 01:39

manager   ~0003231

While, LIBC_HIGHMEM=0 appears to bypass the trap, I suspect this is only because the memory layout differs.

There appears to be a code generation problem of some sort. Take a look at the attached 02e9_01.trp near line 221. It shows that memcpy is being called with a pointer to the buffer length not the buffer length. This is wrong. I don't see anything obviously wrong in the apr_file_write() source code, so I have to suspect an object code generation error. apr_file_write() is called with a pointer to nbytes, but this get dereferenced into size in the source code.

I would check that both fullrw.c andreadwrite.c are using the same apr_arch_file_io.h.

I will generate a process dump later today and see if I can se where the code goes wrong.
02e9_01.trp (35,577 bytes)   
2018-12-29 SHL Edited

>svn cat ^/trunk/readme.cmd
is tty
Creating 02E9_01.TRP

Killed by SIGSEGV
pid=0x02e9 ppid=0x02a9 tid=0x0001 slot=0x00b7 pri=0x0200 mc=0x0001 ps=0x0010
D:\USR2\BIN\0SVN\1.7.21-2018-12-30-IN-TEST\SVN.EXE
LIBC066 0:00054d45
cs:eip=005b:1d2d4d45      ss:esp=0053:0059f754      ebp=0059f7b8
 ds=0053      es=0053      fs=150b      gs=0000     efl=00212202
eax=006d95a0 ebx=0059f7dc ecx=00162725 edx=0059f7dc edi=006ef0e8 esi=200a0000
Process dumping was disabled, use DUMPPROC / PROCDUMP to enable it.
______________________________________________________________________

 Exception Report - created 2018/12/29 15:36:16
______________________________________________________________________

 Hostname:         slamain
 OS2/eCS Version:  2.45
 # of Processors:  1
 Physical Memory:  2012 mb
 Virt Addr Limit:  2048 mb
 Exceptq Version:  7.11.5-shl (Jul  8 2018)

______________________________________________________________________

 Exception C0000005 - Access Violation
______________________________________________________________________

 Process:  D:\USR2\BIN\0SVN\1.7.21-2018-12-30-IN-TEST\SVN.EXE (12/29/2018 13:37:23 4,802,172)
 PID:      2E9 (745)
 TID:      01 (1)
 Priority: 200

 Filename: D:\USR\LIB\LIBC066.DLL (06/05/2018 11:48:07 1,361,663)
 Address:  005B:1D2D4D45 (0001:00054D45)
 Cause:    Attempted to read from 200A0000
           (uncommitted memory allocated by LIBC066)

______________________________________________________________________

 Failing Instruction
______________________________________________________________________

 1D2D4D38  MOV       ESI, [ESP+0x10]  (8b7424 10)
 1D2D4D3C  MOV       ECX, [ESP+0x14]  (8b4c24 14)
 1D2D4D40  MOV       EDX, ECX         (89ca)
 1D2D4D42  SHR       ECX, 0x2         (c1e9 02)
 1D2D4D45 >REP MOVSD                  (f3 a5)
 1D2D4D47  MOV       ECX, EDX         (89d1)
 1D2D4D49  AND       ECX, 0x3         (83e1 03)
 1D2D4D4C  REP MOVSB                  (f3 a4)

______________________________________________________________________

 Registers
______________________________________________________________________

 EAX : 006D95A0   EBX  : 0059F7DC   ECX : 00162725   EDX  : 0059F7DC
 ESI : 200A0000   EDI  : 006EF0E8
 ESP : 0059F754   EBP  : 0059F7B8   EIP : 1D2D4D45   EFLG : 00212202
 CS  : 005B       CSLIM: FFFFFFFF   SS  : 0053       SSLIM: FFFFFFFF

 EAX : read/write memory allocated by LIBC066
 EBX : read/write memory on this thread's stack
 ECX : read/exec  memory at 0001:00152725 in SVN
 EDX : read/write memory on this thread's stack
 ESI : uncommitted memory allocated by LIBC066
 EDI : read/write memory allocated by LIBC066

______________________________________________________________________

 Stack Info for Thread 01
______________________________________________________________________

   Size       Base        ESP         Max         Top
 00100000   005A0000 -> 0059F754 -> 0059C000 -> 004A0000

______________________________________________________________________

 Call Stack
______________________________________________________________________

   EBP     Address    Module     Obj:Offset    Nearest Public Symbol
 --------  ---------  --------  -------------  -----------------------
 Trap  ->  1D2D4D45   LIBC066   0001:00054D45  memcpy.s#32 __std_memcpy + 15 0001:00054D30 (memcpy.obj)

 n/a       00116CB6   SVN       0001:00106CB6  apr_file_write + 226 and apr_file_writev - 16A
   No stack frame

 0059F7B8  000B5A6C   SVN       0001:000A5A6C  between apr_file_write_full + 2C and apr_file_writev_full - 34

 0059F7F8  0007145C   SVN       0001:0006145C  between svn_io_file_write_full + 2C and svn_io_file_create - 104

 0059F838  00044735   SVN       0001:00034735  between svn_error__malfunction + 31B5 and svn_stream_create - 72B

 0059F868  000857A8   SVN       0001:000757A8  between svn_client_list2 + 1618 and svn_subst_eol_style_from_value - BD8

 0059F9E8  0017CCF3   SVN       0001:0016CCF3  between svn_ra_neon__vcc_prop + 1F3 and svn_ra_neon__get_file - 372D

 0059FA08  002AD267   SVN       0001:0029D267  between svn_ra_neon__xml_collect_cdata + 6D7 and svn_ra_neon__request_create - 309

 0059FA28  002B205B   SVN       0001:002A205B  between ne_read_response_block + 5B and ne_end_request - 395

 0059FA88  002B2675   SVN       0001:002A2675  between ne_request_dispatch + 35 and ne_begin_request - CCB

 0059FAC8  002AE474   SVN       0001:0029E474  between svn_ra_neon__request_dispatch + 1A4 and svn_ra_neon__parsed_request - 53C

 0059FB28  0017D027   SVN       0001:0016D027  between svn_ra_neon__vcc_prop + 527 and svn_ra_neon__get_file - 33F9

 0059FB88  0018062B   SVN       0001:0017062B  between svn_ra_neon__get_file + 20B and svn_ra_neon__get_dir - 2B5

 0059FBF8  0005866C   SVN       0001:0004866C  between svn_client_cat2 + 30C and svn_utf_cstring_from_utf8 - 11C4

 0059FC88  00011186   SVN       0001:00001186  between svn_cl__cat + 116 and svn_cl__changelist - 24A

 0059FCF8  0001BF4E   SVN       0001:0000BF4E  between main + 1C1E and svn_cl__cmd_table - B1F2

 0059FF20  00010037   SVN       0001:00000037  between _text + 37 and svn_cl__add - A9

 0059FF4C  18C4B171   LIBCX0    0001:0000B171 

 0059FFE0  1D2A89AB   LIBC066   0001:000289AB  appinit.s#16 ___init_app + B 0001:000289A0 (appinit.obj)


______________________________________________________________________

 Labels on the Stack
______________________________________________________________________

   ESP     Address    Module     Obj:Offset    Nearest Public Symbol
 --------  ---------  --------  -------------  -----------------------
 0059F75C  00116CB6   SVN       0001:00106CB6  between apr_file_write + 226 and apr_file_writev - 16A
 0059F7BC  000B5A6C   SVN       0001:000A5A6C  between apr_file_write_full + 2C and apr_file_writev_full - 34
 0059F7CC  1D28AFE7   LIBC066   0001:0000AFE7  ialloc.c#317 __um_lump_alloc + 47F 0001:0000AB68 (D:\Coding\libc\libc-0.6\src\emx\src\lib\malloc\ialloc.c)
 0059F7FC  0007145C   SVN       0001:0006145C  between svn_io_file_write_full + 2C and svn_io_file_create - 104
 0059F83C  00044735   SVN       0001:00034735  between svn_error__malfunction + 31B5 and svn_stream_create - 72B
 0059F86C  000857A8   SVN       0001:000757A8  between svn_client_list2 + 1618 and svn_subst_eol_style_from_value - BD8
 0059F8CC  001900AB   SVN       0001:001800AB  between ne_sock_fullwrite + 2B and ne_sock_fullwritev - 25
 0059F8EC  1D28AB0A   LIBC066   0001:0000AB0A  ialloc.c#369 __um_alloc_no_lock + 5A 0001:0000AAB0 (D:\Coding\libc\libc-0.6\src\emx\src\lib\malloc\ialloc.c)
 0059F91C  0013EF32   SVN       0001:0012EF32  between apr_sha1_base64 + A56 and apr_md5_init - F6
 0059F97C  1D2D0881   LIBC066   0001:00050881  free.c#19 __std_free + 11 0001:00050870 (free.obj)
 0059F99C  002B1CEF   SVN       0001:002A1CEF  between ne_get_response_header + 9F and ne_response_header_iterate - 21
 0059F9BC  00085FCD   SVN       0001:00075FCD  between svn_client_list2 + 1E3D and svn_subst_eol_style_from_value - 3B3
 0059F9CC  00083072   SVN       0001:00073072  between svn_checksum_update + 52 and svn_checksum_final - 2E
 0059F9EC  0017CCF3   SVN       0001:0016CCF3  between svn_ra_neon__vcc_prop + 1F3 and svn_ra_neon__get_file - 372D
 0059FA0C  002AD267   SVN       0001:0029D267  between svn_ra_neon__xml_collect_cdata + 6D7 and svn_ra_neon__request_create - 309
 0059FA2C  002B205B   SVN       0001:002A205B  between ne_read_response_block + 5B and ne_end_request - 395
 0059FA4C  00185D8C   SVN       0001:00175D8C  between ne__ssl_exit + 11C and ne_version_pre_http11 - F4
 0059FA64  003129BB   SVN       0001:003029BB  between __emutls_register_common + B1C and ne_decompress_reader - 15
 0059FA8C  002B2675   SVN       0001:002A2675  between ne_request_dispatch + 35 and ne_begin_request - CCB
 0059FAAC  002AD3BC   SVN       0001:0029D3BC  between svn_ra_neon__xml_collect_cdata + 82C and svn_ra_neon__request_create - 1B4
 0059FAB8  002ACB70   SVN       0001:0029CB70  between apr_wait_for_io_or_timeout + 2D0 and svn_ra_neon__xml_collect_cdata - 20
 0059FABC  000409E0   SVN       0001:000309E0  apr_pool_cleanup_null
 0059FACC  002AE474   SVN       0001:0029E474  between svn_ra_neon__request_dispatch + 1A4 and svn_ra_neon__parsed_request - 53C
 0059FAD8  002ACB50   SVN       0001:0029CB50  between apr_wait_for_io_or_timeout + 2B0 and svn_ra_neon__xml_collect_cdata - 40
 0059FADC  000409E0   SVN       0001:000309E0  apr_pool_cleanup_null
 0059FAEC  00040750   SVN       0001:00030750  between apr_pool_cleanup_register + 50 and apr_pool_userdata_set - 10
 0059FB0C  002AD3BC   SVN       0001:0029D3BC  between svn_ra_neon__xml_collect_cdata + 82C and svn_ra_neon__request_create - 1B4
 0059FB18  002ACB70   SVN       0001:0029CB70  between apr_wait_for_io_or_timeout + 2D0 and svn_ra_neon__xml_collect_cdata - 20
 0059FB2C  0017D027   SVN       0001:0016D027  between svn_ra_neon__vcc_prop + 527 and svn_ra_neon__get_file - 33F9
 0059FB5C  0008300A   SVN       0001:0007300A  between svn_checksum_ctx_create + 7A and svn_checksum_update - 16
 0059FB8C  0018062B   SVN       0001:0017062B  between svn_ra_neon__get_file + 20B and svn_ra_neon__get_dir - 2B5
 0059FB90  0017CCA0   SVN       0001:0016CCA0  between svn_ra_neon__vcc_prop + 1A0 and svn_ra_neon__get_file - 3780
 0059FBF4  0004A3A1   SVN       0001:0003A3A1  between svn__strtoff + 6A1 and svn_diff_file_options_create - 318F
 0059FBFC  0005866C   SVN       0001:0004866C  between svn_client_cat2 + 30C and svn_utf_cstring_from_utf8 - 11C4
 0059FC04  000582F1   SVN       0001:000482F1  between svn_client__get_normalized_stream + 571 and svn_client_cat2 - 6F
 0059FC6C  0004A3A1   SVN       0001:0003A3A1  between svn__strtoff + 6A1 and svn_diff_file_options_create - 318F
 0059FC70  00046D40   SVN       0001:00036D40  between svn_cmdline_handle_exit_error + D0 and svn_cmdline_create_auth_baton - 50
 0059FC74  00046D63   SVN       0001:00036D63  between svn_cmdline_handle_exit_error + F3 and svn_cmdline_create_auth_baton - 2D
 0059FC8C  00011186   SVN       0001:00001186  between svn_cl__cat + 116 and svn_cl__changelist - 24A
 0059FCC0  0001A243   SVN       0001:0000A243  between svn_cl__check_cancel + 843 and main - ED
 0059FCDC  00012059   SVN       0001:00002059  between svn_cl__conflict_baton_make + 19 and svn_cl__accept_from_word - A7
 0059FCFC  0001BF4E   SVN       0001:0000BF4E  between main + 1C1E and svn_cl__cmd_table - B1F2
 0059FD20  00019A00   SVN       0001:00009A00  svn_cl__check_cancel
 0059FD50  1FFC0145   DOSCALL1  0002:00000145  between DOS32GETENV + 43 and DOS32CANONICALIZE - 2E
 0059FD58  00027620   SVN       0001:00017620  between svn_cl__cmd_table + 4E0 and svn_cl__global_options - 5560
 0059FD98  17661053   EXCEPTQ   0001:00001053  between InitOptions + 63 and InstallExceptq - 19D
 0059FD9C  17690094   EXCEPTQ   0003:00000094  [n/a] 
 0059FDB8  17661262   EXCEPTQ   0001:00001262  between InstallExceptq + 72 and MYHANDLER - E
 0059FDC0  17661208   EXCEPTQ   0001:00001208  between InstallExceptq + 18 and MYHANDLER - 68
 0059FDD4  176611F0   EXCEPTQ   0001:000011F0  InstallExceptq
 0059FF24  00010037   SVN       0001:00000037  between _text + 37 and svn_cl__add - A9
 0059FF38  18C4AE00   LIBCX0    0001:0000AE00 
 0059FF40  17661270   EXCEPTQ   0001:00001270  MYHANDLER
 0059FF44  1D291304   LIBC066   0001:00011304  __init.c#82 ___init + C4 0001:00011240 (D:\Coding\libc\libc-0.6\src\emx\src\lib\sys\__init.c)
 0059FF50  18C4B171   LIBCX0    0001:0000B171 
 0059FF68  1D2C6E50   LIBC066   0001:00046E50  exceptions.c#76 __libc_Back_exceptionHandler 0001:00046E50 (exceptions.obj)
 0059FFD4  1D291292   LIBC066   0001:00011292  __init.c#311 ___init + 52 0001:00011240 (D:\Coding\libc\libc-0.6\src\emx\src\lib\sys\__init.c)
 0059FFE4  1D2A89AB   LIBC066   0001:000289AB  appinit.s#16 ___init_app + B 0001:000289A0 (appinit.obj)
 0059FFEC  1FFEC188   DOSCALL1  0004:0000C188  DOS32R3EXITADDR

______________________________________________________________________

 Stack Contents from ESP-104 to Stack Base  (ESP = 0059F754)
______________________________________________________________________

 --addr--   --------------dwords---------------   -----chars------
 0059F650 : 00000000 00000000 000002E9 00000000 : ................
 0059F660 : 00000000 FFFF0000 00000000 00000000 : ................
 0059F670 : 00000000 00000000 00000000 00000000 : ................
 0059F680 : 00000000 20200000 00004020 00000000 : ......   @......
 0059F690 : 00000000 00000000 0000150B 00000053 : ............S...
 0059F6A0 : 00000053 006EF0E8 200A0000 006D95A0 : S.....n.... ..m.
 0059F6B0 : 0059F7DC 00162725 0059F7DC 0059F7B8 : ..Y.%'....Y...Y.
 0059F6C0 : 1D2D4D45 0000005B 00212202 0059F754 : EM-.[...."!.T.Y.
 0059F6D0 : 00000053 00000010 0059F708 1D28AB60 : S.........Y.`.(.
 0059F6E0 : 00690000 0059F7DC 00000010 00000000 : ..i...Y.........
 0059F6F0 : 19689040 00000007 0059F728 00000010 : @.h.....(.Y.....
 0059F700 : 0069013C 00690000 0059F738 1D28A9BA : <.i...i.8.Y...(.
 0059F710 : 0069013C 0059F7DC 00000010 00000000 : <.i...Y.........
 0059F720 : 19689070 006C5328 0059F758 0059F7DC : p.h.(Sl.X.Y...Y.
 0059F730 : 00000000 006C5328 0059F758 1D2C72AC : ....(Sl.X.Y..r,.
 0059F740 : 00690000 0059F7DC 00000002 00000002 : ..i...Y.........
                                       eip              apr_file_write + 226
 0059F750 : 00000007 006C5328 006D95A0 00116CB6 : ....(Sl...m..l..
            thefile->buffer + thefile->bufpos
            ..bufpos pos      blocksize                 URK - cb should be 102 not pntr to amt
 0059F760 : 006D95A0 2008A4B8 0059F7DC 19689040 : ..m.... ..Y.@.h.
 0059F770 : 00000000 00000000 00000000 00000000 : ................
 0059F790 : 2 lines not printed duplicate the line above
 0059F7A0 : 00000000 00000000 00000000 2008A4B8 : ............... 
                                       eip              apr_file_write_full + 2C
 0059F7B0 : 00000000 00000102 0059F7F8 000B5A6C : ..........Y.lZ..
            thefile  buf      &amt
 0059F7C0 : 006C5328 2008A4B8 0059F7DC 1D28AFE7 : (Sl.... ..Y...(.
				       amt
 0059F7D0 : 200300EC 00000003 00000004 00000102 : ... ............
 0059F7E0 : 00000000 00000000 00000000 0059F8D0 : ..............Y.
                              ebp      eip              svn_io_file_write_full + 2C
 0059F7F0 : 006C5328 006A02D8 0059F838 0007145C : (Sl...j.8.Y.\...
             baton->spool_file
		     buf      len
 0059F800 : 006C5328 2008A4B8 00000102 0059F8D0 : (Sl.... ......Y.
 0059F810 : 20030000 200300EC 00000003 0059F910 : ... ... ......Y.
 0059F820 : 0059F940 00000003 0059F868 0059F8D0 : @.Y.....h.Y...Y.
                              ebp      eip		svn_error__malfunction + 31B5
 0059F830 : 006A02D8 00000024 0059F868 00044735 : ..j.$...h.Y.5G..
            baton->spool_file
	             buf      len
 0059F840 : 006C5328 2008A4B8 00000102 0059F8D0 : (Sl.... ......Y.
 0059F850 : 006A02D8 0059F940 0059F888 2008A5BA : ..j.@.Y...Y.... 
                              ebp      eip		svn_client_list2 + 1618
 0059F860 : 2008A5BA 006CC75C 0059F9E8 000857A8 : ... \.l...Y..W..
                     buf
 0059F870 : 006C5380 2008A4B8 0059F8D0 00AA0659 : .Sl.... ..Y.Y...
 0059F880 : 76207472 61747320 0A0D0A0D 676E696B : rt v sta....king
 0059F890 : 614D3D53 4D524150 00000000 006CC96C : S=MaPARM....l.l.
 0059F8A0 : 006BE050 00000004 00000004 00000000 : P.k.............
 0059F8B0 : 006CC748 2008A4B8 DFF75B44 2008A914 : H.l.... D[..... 
 0059F8C0 : 7FA0246A 7F939429 2008A8B8 001900AB : j$..)...... ....
 0059F8D0 : 00000102 00000004 00000011 00000011 : ................
 0059F8E0 : 20030000 00000000 0059F928 1D28AB0A : ... ....(.Y...(.
 0059F8F0 : 20030000 2003012C 00000011 00000004 : ... ,.. ........
 0059F900 : 00000000 2008C5A0 2008A4B8 00000400 : ....... ... ....
 0059F910 : 0059F970 2008A8B8 0059F9C8 0013EF32 : p.Y.... ..Y.2...
 0059F920 : 2003013C 00000001 00000001 00000001 : <.. ............
 0059F930 : 2003013C 2003013C 00000001 20032CC0 : <.. <.. .....,. 
 0059F940 : 200325A0 20032CD8 0059F978 006D6CE0 : .%. .,. x.Y..lm.
 0059F950 : 00000040 2008A4B8 0000045C 006D6CC8 : @...... \....lm.
 0059F960 : 20030000 00000011 00000001 00000000 : ... ............
 0059F970 : 00000000 20032CD8 0059F998 1D2D0881 : .....,. ..Y...-.
 0059F980 : 20032CC8 00000001 00000011 00000000 : .,. ............
 0059F990 : 2008C820 0000045C 0059F9D8 002B1CEF :  .. \.....Y...+.
 0059F9A0 : 20032CC8 CCCCCCCC 0CCCCCCC 006BE070 : .,. ........p.k.
 0059F9B0 : 2008A4B8 0059FA18 0059F9E8 00085FCD : ... ..Y...Y.._..
 0059F9C0 : 006CE538 20032D1C 0059F9E8 00083072 : 8.l..-. ..Y.r0..
 0059F9D0 : 00000000 2008A4B8 0000045C 2008A4B8 : ....... \...... 
                              ebp      eip		svn_ra_neon__vcc_prop + 1F3
 0059F9E0 : 006BE090 20032D1C 0059FA08 0017CCF3 : ..k..-. ..Y.....
                     buf
 0059F9F0 : 0000045C 2008A4B8 0059FA18 0CCCCCCC : \...... ..Y.....
                              ebp
 0059FA00 : 006D0610 2008A4B8 0059FA28 002AD267 : ..m.... (.Y.g.*.
                     buf
 0059FA10 : 0059FB64 2008A4B8 0000045C 0000045C : d.Y.... \...\...
                              ebp      eip		ne_read_response_block + 5B
 0059FA20 : 0000045C 2008A4B8 0059FA88 002B205B : \...... ..Y.[ +.
                     buf
 0059FA30 : 006D0610 2008A4B8 0000045C 0000045C : ..m.... \...\...
 0059FA40 : 2008A4B8 00000000 0059FA88 00185D8C : ... ......Y..]..
 0059FA50 : 00000010 00000000 00000000 0000045C : ............\...
 0059FA60 : 20089220 003129BB 0059FA88 2003A67C :  .. .)1...Y.|.. 
 0059FA70 : 00000014 00000000 00000001 2008A480 : ............... 
                              ebp      eip              ne_request_dispatch + 35
 0059FA80 : 2008A4B8 006D0630 0059FAC8 002B2675 : ... 0.m...Y.u&+.
                     buf
 0059FA90 : 2008A480 2008A4B8 00002000 2008F100 : ... ... . ..... 
 0059FAA0 : 006D0598 006D0598 0059FAC8 002AD3BC : ..m...m...Y...*.
 0059FAB0 : 006D0558 2008F100 002ACB70 000409E0 : X.m.... p.*.....
			      ebp      eip
 0059FAC0 : 006D0598 2007DC60 0059FB28 002AE474 : ..m.`.. (.Y.t.*.
 0059FAD0 : 2008A480 006D0630 002ACB50 000409E0 : ... 0.m.P.*.....
 0059FAE0 : 006D0630 006D6640 0059FB08 00040750 : 0.m.@fm...Y.P...
 0059FAF0 : 006D0558 00000010 2008C820 2008C820 : X.m..... ..  .. 
 0059FB00 : 006D0598 006D0598 0059FB28 002AD3BC : ..m...m.(.Y...*.
 0059FB10 : 006D0558 2008C820 002ACB70 006BC458 : X.m. .. p.*.X.k.
			      ebp      eip
 0059FB20 : 006CA5E0 006D6640 0059FB88 0017D027 : ..l.@fm...Y.'...
 0059FB30 : 00000000 006D0598 00000000 00000000 : ......m.........
 0059FB40 : 000000C8 000000E2 006BC458 006D6CC0 : ........X.k..lm.
 0059FB50 : 00000000 006BC458 0059FB88 0008300A : ....X.k...Y..0..
 0059FB60 : 006D0598 006D0598 00000000 0059FBD4 : ..m...m.......Y.
 0059FB70 : 00000000 006D6598 0059FB88 00000000 : .....em...Y.....
			      ebp      eip		svn_ra_neon__get_file + 20B
 0059FB80 : 006CA5E0 006D6640 0059FBF8 0018062B : ..l.@fm...Y.+...
 0059FB90 : 0017CCA0 0059FBD4 00000000 006BC4F8 : ......Y.......k.
 0059FBA0 : 00000000 006BC458 006BC458 006BE3C8 : ....X.k.X.k...k.
 0059FBB0 : 006BDC68 006BE090 006BE070 006D6C18 : h.k...k.p.k..lm.
 0059FBC0 : 006BE050 00000000 006BE0B0 006D6A10 : P.k.......k..jm.
 0059FBD0 : 006D65D0 00000001 006D6CC0 006BE090 : .em......lm...k.
 0059FBE0 : 006C5388 006BC458 0059FBF8 006BE090 : .Sl.X.k...Y...k.
 0059FBF0 : 006BDC68 0004A3A1 0059FC88 0005866C : h.k.......Y.l...
 0059FC00 : 006CA580 000582F1 00000D40 006BE090 : ..l.....@.....k.
 0059FC10 : 00000000 00000000 006BC458 006BC458 : ........X.k.X.k.
 0059FC20 : 006BC458 0059FC54 006C52F0 006BC458 : X.k.T.Y..Rl.X.k.
 0059FC30 : 006C5328 006A02D8 006BDBC8 006BDC18 : (Sl...j...k...k.
 0059FC40 : 006C5380 006A02D8 0059FC88 006CA580 : .Sl...j...Y...l.
 0059FC50 : 00000D40 006BD918 006C52F0 00000001 : @.....k..Rl.....
 0059FC60 : 00000000 006BDC68 0CC490AE 0004A3A1 : ....h.k.........
 0059FC70 : 00046D40 00046D63 006C49D8 006A06F8 : @m..cm...Il...j.
 0059FC80 : 00000000 00000000 0059FCF8 00011186 : ..........Y.....
 0059FC90 : 006C5388 006C52F0 0059FCD4 0059FDE0 : .Sl..Rl...Y...Y.
 0059FCA0 : 006A06F8 006BC458 006C7E58 00000000 : ..j.X.k.X~l.....
 0059FCB0 : 0059FDDC 006C4A80 00000000 006BC458 : ..Y..Jl.....X.k.
 0059FCC0 : 0001A243 006A02D8 006C51D0 006C5388 : C.....j..Ql..Sl.
 0059FCD0 : 006C52F0 00000000 0059FCF8 00012059 : .Rl.......Y.Y ..
 0059FCE0 : 006A02D8 00000014 00000000 00000000 : ..j.............
 0059FCF0 : 006A06F8 006A02D8 0059FF20 0001BF4E : ..j...j. .Y.N...
 0059FD00 : 006A0488 0059FD78 006A02D8 006C4A60 : ..j.x.Y...j.`Jl.
 0059FD10 : 006A02D8 00000000 00000000 006B56E0 : ..j..........Vk.
 0059FD20 : 00019A00 00000000 006A02D8 FFFFFFFF : ..........j.....
 0059FD30 : 00000000 00000000 00000000 00000001 : ................
 0059FD40 : 00000000 006A03F8 02CFFD64 02CFFD68 : ......j.d...h...
 0059FD50 : 1FFC0145 00000000 00027620 006A02D8 : E....... v....j.
 0059FD60 : 2003C560 00001BD1 006A0488 00000001 : `.. ......j.....
 0059FD70 : 006A06F8 0059FD8C 0059FDDC 006A06F8 : ..j...Y...Y...j.
 0059FD80 : 006C4778 00000000 00000007 005A0000 : xGl...........Z.
 0059FD90 : 00001BD1 0059FDBC 17661053 17690094 : ......Y.S.f...i.
 0059FDA0 : 0059FDB8 00001302 00000000 00000001 : ..Y.............
 0059FDB0 : 006611F0 0059FDDC 17661262 0059FF3C : ..f...Y.b.f.<.Y.
 0059FDC0 : 17661208 00001302 0059FDD8 0059FDD4 : ..f.......Y...Y.
 0059FDD0 : 00001302 176611F0 00000000 006A0468 : ......f.....h.j.
 0059FDE0 : 00000000 00000000 00000000 00000000 : ................
 0059FDF0 : 00000000 00000000 00000000 00000000 : ................
 0059FE00 : 00000000 FFFFFFFE 00000000 00000000 : ................
 0059FE10 : 00000000 00000000 00000000 00000000 : ................
 0059FEA0 : 9 lines not printed duplicate the line above
 0059FEB0 : 00000000 00000000 006A04C8 00000000 : ..........j.....
 0059FEC0 : 00000000 00000000 00000000 00000000 : ................
 0059FED0 : 00000000 00000000 00000000 FFFFFFFF : ................
 0059FEE0 : 00000000 FFFFFFFE 00000000 00000000 : ................
 0059FEF0 : 00000000 00000000 00000000 00000000 : ................
 0059FF00 : 00000000 00000000 00000000 00000000 : ................
 0059FF10 : 00000000 0059FF58 00000000 00000000 : ....X.Y.........
 0059FF20 : 0059FF4C 00010037 00000003 0059FF6C : L.Y.7.......l.Y.
 0059FF30 : 20030180 0059FF3C 18C4AE00 0059FF64 : ... <.Y.....d.Y.
 0059FF40 : 17661270 1D291304 0059FF58 0059FFE0 : p.f...).X.Y...Y.
 0059FF50 : 18C4B171 0059FF58 00000003 0059FF6C : q...X.Y.....l.Y.
 0059FF60 : 20030180 FFFFFFFF 1D2C6E50 0059FF7D : ... ....Pn,.}.Y.
 0059FF70 : 0059FFB1 0059FFB6 00000000 5C3A4480 : ..Y...Y......D:\
 0059FF80 : 32727375 6E69625C 7673305C 2E315C6E : usr2\bin\0svn\1.
 0059FF90 : 31322E37 3130322D 32312D38 2D30332D : 7.21-2018-12-30-
 0059FFA0 : 742D6E69 5C747365 2E6E7673 00657865 : in-test\svn.exe.
 0059FFB0 : 74616380 2F5E8000 6E757274 65722F6B : .cat..^/trunk/re
 0059FFC0 : 656D6461 646D632E 005A1B00 00000000 : adme.cmd..Z.....
 0059FFD0 : 0000000C 1D291292 00000000 00000000 : ......).........

______________________________________________________________________

 Memory addressed by EAX (006D95A0) for 256 bytes
______________________________________________________________________

 --addr--   -----dwords------   ---------bytes---------   -chars--
 006D95A0 : 48434540 464F204F : 40 45 43 48 4F 20 4F 46 : @ECHO OF
 006D95A8 : 3A0A0D46 2A2A2A20 : 46 0D 0A 3A 20 2A 2A 2A : F..: ***
 006D95B0 : 2A2A2A2A 2A2A2A2A : 2A 2A 2A 2A 2A 2A 2A 2A : ********
 006D95C0 : 2 lines not printed duplicate the line above
 006D95C8 : 4D202A2A 6C75646F : 2A 2A 20 4D 6F 64 75 6C : ** Modul
 006D95D0 : 65482065 72656461 : 65 20 48 65 61 64 65 72 : e Header
 006D95D8 : 2A2A2A20 2A2A2A2A : 20 2A 2A 2A 2A 2A 2A 2A :  *******
 006D95E0 : 2A2A2A2A 2A2A2A2A : 2A 2A 2A 2A 2A 2A 2A 2A : ********
 006D95E8 : 2A2A2A2A 2A2A2A2A : 2A 2A 2A 2A 2A 2A 2A 2A : ********
 006D95F0 : 2A2A2A2A 5C2A2A2A : 2A 2A 2A 2A 2A 2A 2A 5C : *******\
 006D95F8 : 0D3A0A0D 4D203A0A : 0D 0A 3A 0D 0A 3A 20 4D : ..:..: M
 006D9600 : 6C75646F 614E2065 : 6F 64 75 6C 65 20 4E 61 : odule Na
 006D9608 : 203A656D 64616572 : 6D 65 3A 20 72 65 61 64 : me: read
 006D9610 : 632E656D 0A0D646D : 6D 65 2E 63 6D 64 0D 0A : me.cmd..
 006D9618 : 3A0A0D3A 75616C20 : 3A 0D 0A 3A 20 6C 61 75 : :..: lau
 006D9620 : 6568636E 616D2073 : 6E 63 68 65 73 20 6D 61 : nches ma
 006D9628 : 6966656B 692E656C : 6B 65 66 69 6C 65 2E 69 : kefile.i
 006D9630 : 0D2E666E 41203A0A : 6E 66 2E 0D 0A 3A 20 41 : nf...: A
 006D9638 : 7265746C 6574616E : 6C 74 65 72 6E 61 74 65 : lternate
 006D9640 : 706F7420 6D206369 : 20 74 6F 70 69 63 20 6D :  topic m
 006D9648 : 62207961 61702065 : 61 79 20 62 65 20 70 61 : ay be pa
 006D9650 : 64657373 20736120 : 73 73 65 64 20 61 73 20 : ssed as 
 006D9658 : 61726170 6574656D : 70 61 72 61 6D 65 74 65 : paramete
 006D9660 : 3A0A0D72 203A0A0D : 72 0D 0A 3A 0D 0A 3A 20 : r..:..: 
 006D9668 : 79706F43 68676972 : 43 6F 70 79 72 69 67 68 : Copyrigh
 006D9670 : 63282074 654E2029 : 74 20 28 63 29 20 4E 65 : t (c) Ne
 006D9678 : 62616C74 50452073 : 74 6C 61 62 73 20 45 50 : tlabs EP
 006D9680 : 6944204D 69727473 : 4D 20 44 69 73 74 72 69 : M Distri
 006D9688 : 69747562 50206E6F : 62 75 74 69 6F 6E 20 50 : bution P
 006D9690 : 656A6F72 32207463 : 72 6F 6A 65 63 74 20 32 : roject 2

______________________________________________________________________

 Memory addressed by EBX (0059F7DC) for 256 bytes
______________________________________________________________________

 --addr--   -----dwords------   ---------bytes---------   -chars--
 0059F7DC : 00000102 00000000 : 02 01 00 00 00 00 00 00 : ........
 0059F7E4 : 00000000 00000000 : 00 00 00 00 00 00 00 00 : ........
 0059F7EC : 0059F8D0 006C5328 : D0 F8 59 00 28 53 6C 00 : ..Y.(Sl.
 0059F7F4 : 006A02D8 0059F838 : D8 02 6A 00 38 F8 59 00 : ..j.8.Y.
 0059F7FC : 0007145C 006C5328 : 5C 14 07 00 28 53 6C 00 : \...(Sl.
 0059F804 : 2008A4B8 00000102 : B8 A4 08 20 02 01 00 00 : ... ....
 0059F80C : 0059F8D0 20030000 : D0 F8 59 00 00 00 03 20 : ..Y.... 
 0059F814 : 200300EC 00000003 : EC 00 03 20 03 00 00 00 : ... ....
 0059F81C : 0059F910 0059F940 : 10 F9 59 00 40 F9 59 00 : ..Y.@.Y.
 0059F824 : 00000003 0059F868 : 03 00 00 00 68 F8 59 00 : ....h.Y.
 0059F82C : 0059F8D0 006A02D8 : D0 F8 59 00 D8 02 6A 00 : ..Y...j.
 0059F834 : 00000024 0059F868 : 24 00 00 00 68 F8 59 00 : $...h.Y.
 0059F83C : 00044735 006C5328 : 35 47 04 00 28 53 6C 00 : 5G..(Sl.
 0059F844 : 2008A4B8 00000102 : B8 A4 08 20 02 01 00 00 : ... ....
 0059F84C : 0059F8D0 006A02D8 : D0 F8 59 00 D8 02 6A 00 : ..Y...j.
 0059F854 : 0059F940 0059F888 : 40 F9 59 00 88 F8 59 00 : @.Y...Y.
 0059F85C : 2008A5BA 2008A5BA : BA A5 08 20 BA A5 08 20 : ... ... 
 0059F864 : 006CC75C 0059F9E8 : 5C C7 6C 00 E8 F9 59 00 : \.l...Y.
 0059F86C : 000857A8 006C5380 : A8 57 08 00 80 53 6C 00 : .W...Sl.
 0059F874 : 2008A4B8 0059F8D0 : B8 A4 08 20 D0 F8 59 00 : ... ..Y.
 0059F87C : 00AA0659 76207472 : 59 06 AA 00 72 74 20 76 : Y...rt v
 0059F884 : 61747320 0A0D0A0D : 20 73 74 61 0D 0A 0D 0A :  sta....
 0059F88C : 676E696B 614D3D53 : 6B 69 6E 67 53 3D 4D 61 : kingS=Ma
 0059F894 : 4D524150 00000000 : 50 41 52 4D 00 00 00 00 : PARM....
 0059F89C : 006CC96C 006BE050 : 6C C9 6C 00 50 E0 6B 00 : l.l.P.k.
 0059F8A4 : 00000004 00000004 : 04 00 00 00 04 00 00 00 : ........
 0059F8AC : 00000000 006CC748 : 00 00 00 00 48 C7 6C 00 : ....H.l.
 0059F8B4 : 2008A4B8 DFF75B44 : B8 A4 08 20 44 5B F7 DF : ... D[..
 0059F8BC : 2008A914 7FA0246A : 14 A9 08 20 6A 24 A0 7F : ... j$..
 0059F8C4 : 7F939429 2008A8B8 : 29 94 93 7F B8 A8 08 20 : )...... 
 0059F8CC : 001900AB 00000102 : AB 00 19 00 02 01 00 00 : ........
 0059F8D4 : 00000004 00000011 : 04 00 00 00 11 00 00 00 : ........

______________________________________________________________________

 Memory addressed by ECX (00162725) for 256 bytes
______________________________________________________________________

 --addr--   -----dwords------   ---------bytes---------   -chars--
 00162725 : 840FF05D FFFFFB8F : 5D F0 0F 84 8F FB FF FF : ].......
 0016272D : 0242B60F 850FC084 : 0F B6 42 02 84 C0 0F 85 : ..B.....
 00162735 : 000005F8 0FF04D8B : F8 05 00 00 8B 4D F0 0F : .....M..
 0016273D : 0F0151B6 4C1754B6 : B6 51 01 0F B6 54 17 4C : .Q...T.L
 00162745 : 8305EA83 870F18FA : 83 EA 05 83 FA 18 0F 87 : ........
 0016274D : FFFFFD5D 589524FF : 5D FD FF FF FF 24 95 58 : ]....$.X
 00162755 : 4C001627 5D00162C : 27 16 00 4C 2C 16 00 5D : '..L,..]
 0016275D : 8500162C AE00162B : 2C 16 00 85 2B 16 00 AE : ,...+...
 00162765 : AE001624 AE001624 : 24 16 00 AE 24 16 00 AE : $...$...
 0016278D : 5 lines not printed duplicate the line above
 00162795 : AE001624 96001624 : 24 16 00 AE 24 16 00 96 : $...$...
 0016279D : AE00162B 96001624 : 2B 16 00 AE 24 16 00 96 : +...$...
 001627A5 : AE00162B AE001624 : 2B 16 00 AE 24 16 00 AE : +...$...
 001627AD : AE001624 AE001624 : 24 16 00 AE 24 16 00 AE : $...$...
 001627B5 : 11001624 8300162B : 24 16 00 11 2B 16 00 83 : $...+...
 001627BD : 168902C2 000019B8 : C2 02 89 16 B8 19 00 00 : ........
 001627C5 : FAF1E900 C283FFFF : 00 E9 F1 FA FF FF 83 C2 : ........
 001627CD : B8168902 00000011 : 02 89 16 B8 11 00 00 00 : ........
 001627D5 : FFFAE2E9 02C283FF : E9 E2 FA FF FF 83 C2 02 : ........
 001627DD : 17B81689 E9000000 : 89 16 B8 17 00 00 00 E9 : ........
 001627E5 : FFFFFAD3 B8024A8D : D3 FA FF FF 8D 4A 02 B8 : .....J..
 001627ED : FFFFFFE8 840FD939 : E8 FF FF FF 39 D9 0F 84 : ....9...
 001627F5 : FFFFFAC3 0242B60F : C3 FA FF FF 0F B6 42 02 : ......B.
 001627FD : 850FC084 000006EA : 84 C0 0F 85 EA 06 00 00 : ........
 00162805 : 0141B60F 0754B60F : 0F B6 41 01 0F B6 54 07 : ..A...T.
 0016280D : F7428D4C 0F1BF883 : 4C 8D 42 F7 83 F8 1B 0F : L.B.....
 00162815 : 00032987 8524FF00 : 87 29 03 00 00 FF 24 85 : .)....$.
 0016281D : 00162824 7900768D : 24 28 16 00 8D 76 00 79 : $(...v.y

______________________________________________________________________

 Memory addressed by EDX (0059F7DC) for 256 bytes
______________________________________________________________________

 --addr--   -----dwords------   ---------bytes---------   -chars--
 0059F7DC : 00000102 00000000 : 02 01 00 00 00 00 00 00 : ........
 0059F7E4 : 00000000 00000000 : 00 00 00 00 00 00 00 00 : ........
 0059F7EC : 0059F8D0 006C5328 : D0 F8 59 00 28 53 6C 00 : ..Y.(Sl.
 0059F7F4 : 006A02D8 0059F838 : D8 02 6A 00 38 F8 59 00 : ..j.8.Y.
 0059F7FC : 0007145C 006C5328 : 5C 14 07 00 28 53 6C 00 : \...(Sl.
 0059F804 : 2008A4B8 00000102 : B8 A4 08 20 02 01 00 00 : ... ....
 0059F80C : 0059F8D0 20030000 : D0 F8 59 00 00 00 03 20 : ..Y.... 
 0059F814 : 200300EC 00000003 : EC 00 03 20 03 00 00 00 : ... ....
 0059F81C : 0059F910 0059F940 : 10 F9 59 00 40 F9 59 00 : ..Y.@.Y.
 0059F824 : 00000003 0059F868 : 03 00 00 00 68 F8 59 00 : ....h.Y.
 0059F82C : 0059F8D0 006A02D8 : D0 F8 59 00 D8 02 6A 00 : ..Y...j.
 0059F834 : 00000024 0059F868 : 24 00 00 00 68 F8 59 00 : $...h.Y.
 0059F83C : 00044735 006C5328 : 35 47 04 00 28 53 6C 00 : 5G..(Sl.
 0059F844 : 2008A4B8 00000102 : B8 A4 08 20 02 01 00 00 : ... ....
 0059F84C : 0059F8D0 006A02D8 : D0 F8 59 00 D8 02 6A 00 : ..Y...j.
 0059F854 : 0059F940 0059F888 : 40 F9 59 00 88 F8 59 00 : @.Y...Y.
 0059F85C : 2008A5BA 2008A5BA : BA A5 08 20 BA A5 08 20 : ... ... 
 0059F864 : 006CC75C 0059F9E8 : 5C C7 6C 00 E8 F9 59 00 : \.l...Y.
 0059F86C : 000857A8 006C5380 : A8 57 08 00 80 53 6C 00 : .W...Sl.
 0059F874 : 2008A4B8 0059F8D0 : B8 A4 08 20 D0 F8 59 00 : ... ..Y.
 0059F87C : 00AA0659 76207472 : 59 06 AA 00 72 74 20 76 : Y...rt v
 0059F884 : 61747320 0A0D0A0D : 20 73 74 61 0D 0A 0D 0A :  sta....
 0059F88C : 676E696B 614D3D53 : 6B 69 6E 67 53 3D 4D 61 : kingS=Ma
 0059F894 : 4D524150 00000000 : 50 41 52 4D 00 00 00 00 : PARM....
 0059F89C : 006CC96C 006BE050 : 6C C9 6C 00 50 E0 6B 00 : l.l.P.k.
 0059F8A4 : 00000004 00000004 : 04 00 00 00 04 00 00 00 : ........
 0059F8AC : 00000000 006CC748 : 00 00 00 00 48 C7 6C 00 : ....H.l.
 0059F8B4 : 2008A4B8 DFF75B44 : B8 A4 08 20 44 5B F7 DF : ... D[..
 0059F8BC : 2008A914 7FA0246A : 14 A9 08 20 6A 24 A0 7F : ... j$..
 0059F8C4 : 7F939429 2008A8B8 : 29 94 93 7F B8 A8 08 20 : )...... 
 0059F8CC : 001900AB 00000102 : AB 00 19 00 02 01 00 00 : ........
 0059F8D4 : 00000004 00000011 : 04 00 00 00 11 00 00 00 : ........

______________________________________________________________________

 Memory addressed by EDI (006EF0E8) for 256 bytes
______________________________________________________________________

 --addr--   -----dwords------   ---------bytes---------   -chars--
 006EF0E8 : 00000000 00000000 : 00 00 00 00 00 00 00 00 : ........
 006EF1E0 : 31 lines not printed duplicate the line above

______________________________________________________________________

 DLLs accessible from this process
______________________________________________________________________

 DISTORM   11/11/2012 22:43:02      57,491  D:\USR2\LIB\DISTORM.DLL
 PTHR01    12/27/2017 03:15:07       6,983  D:\USR\LIB\PTHR01.DLL
 EXCEPTQ   07/08/2018 15:01:03      72,555  D:\USR2\LIB\EXCEPTQ.DLL
 GCC1      02/01/2015 12:32:03      28,871  D:\USR\LIB\GCC1.DLL
 LIBCX0    09/11/2018 10:35:00      44,785  D:\USR\LIB\LIBCX0.DLL
 PMMERGE   04/10/2007 18:26:01   1,270,275  F:\OS2\DLL\PMMERGE.DLL
 PMGPI     10/19/2000 12:38:00     248,446  F:\OS2\DLL\PMGPI.DLL
 PREWRITE  04/23/2017 19:22:05       6,730  F:\SYS\DLL\PREWRITE.DLL
 LIBC066   06/05/2018 11:48:07   1,361,663  D:\USR\LIB\LIBC066.DLL
 VBE2GRAD  04/02/2010 13:55:20      53,644  F:\OS2\DLL\VBE2GRAD.DLL
 PANOGREX  10/25/2007 16:54:19       2,005  F:\OS2\DLL\PANOGREX.DLL
 VMAN      03/22/2006 14:20:26      67,993  F:\OS2\DLL\VMAN.DLL
 GRE2VMAN  10/25/2007 16:54:19      21,325  F:\OS2\DLL\GRE2VMAN.DLL
 FREETYPE  07/18/2013 14:42:07      81,954  F:\OS2\DLL\FREETYPE.DLL
 PMUNIF    10/19/2000 14:00:00      43,823  F:\OS2\DLL\PMUNIF.DLL
 PMATM     04/12/2000 11:39:00     224,343  F:\OS2\DLL\PMATM.DLL
 DISPLAY   03/22/2006 08:54:14      44,198  F:\OS2\DLL\DISPLAY.DLL
 BVHWNDW   09/10/2001 16:17:17      16,797  F:\OS2\DLL\BVHWNDW.DLL
 TCPIP32   08/16/2011 06:01:00      87,504  F:\MPTN\DLL\TCPIP32.DLL
 TCP32DLL  09/18/2001 17:48:20      19,293  F:\MPTN\DLL\TCP32DLL.DLL
 LOCALE    09/04/2002 17:31:00     108,353  F:\OS2\DLL\LOCALE.DLL
 SO32DLL   09/21/2000 18:54:00      14,396  F:\MPTN\DLL\SO32DLL.DLL
 SOFTDRAW  07/16/2003 10:21:00     416,735  F:\OS2\DLL\SOFTDRAW.DLL
 SPL1B     11/14/2000 17:58:00       7,125  F:\OS2\DLL\SPL1B.DLL
 PMSPL     07/15/2003 18:47:00     280,283  F:\OS2\DLL\PMSPL.DLL
 PMSHLTKT  09/06/2000 12:45:00      44,232  F:\OS2\DLL\PMSHLTKT.DLL
 PMVIOP    07/16/2003 10:53:00      69,008  F:\OS2\DLL\PMVIOP.DLL
 FFST      10/06/2000 14:13:00      11,425  F:\OS2\DLL\FFST.DLL
 UCONV     04/29/2004 12:08:26      23,331  F:\OS2\DLL\UCONV.DLL
 LIBUNI    04/29/2004 12:08:23      80,766  F:\OS2\DLL\LIBUNI.DLL
 DOSCALL1  07/19/2006 17:57:10     126,048  F:\OS2\DLL\DOSCALL1.DLL

______________________________________________________________________

 End of Exception Report - report took 814 ms to generate
______________________________________________________________________

02e9_01.trp (35,577 bytes)   

Steven Levine

2018-12-30 02:03

manager   ~0003232

I found it. I was a bit brain-dead and looking at the wrong memcpy. The dump file made this obvious.

This:

file_io\os2\readwrite.c:198
                pvBuf_safe = _lmalloc(nbytes);
                if (!pvBuf_safe)
                {
                    errno = ENOMEM;
                return APR_FROM_OS_ERROR(errno);
                }
                memcpy(pvBuf_safe, buf, nbytes);
                buf = pvBuf_safe;

should be
file_io\os2\readwrite.c:198
                pvBuf_safe = _lmalloc(*nbytes);
                if (!pvBuf_safe)
                {
                    errno = ENOMEM;
                return APR_FROM_OS_ERROR(errno);
                }
                memcpy(pvBuf_safe, buf, *nbytes);
                buf = pvBuf_safe;

I suspect one of the wines convinced you to ignore the compiler warnings.

psmedley

2018-12-30 04:12

administrator   ~0003233

OK http://smedley.id.au/tmp/subversion-1.7.21-os2-20181230.zip is refreshed.
I'll update the diffs later this afternoon. Thanks for your help in investigating this.

Steven Levine

2018-12-30 08:05

manager   ~0003234

So far, this build looks good.

If you make a copy of the build log available, I can check for any warnings that may need attention.

psmedley

2018-12-31 08:11

administrator   ~0003235

Updated APR diff and build log attached
aprbuild.log (84,414 bytes)   
make[1]: Entering directory `U:/DEV/apr-1.6.5'
U:/DEV/apr-1.6.5/build/mkdir.sh tools
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o tools/gen_test_char.lo -c tools/gen_test_char.c && touch tools/gen_test_char.lo
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o tools/gen_test_char.o -c tools/gen_test_char.c -Zomf
./build/aplibtool  --mode=link gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private   -no-install   -Zomf -Zexe -Zhigh-mem -Zmap -Zargs-wild -D__ST_MT_ERRNO__ -s -o tools/gen_test_char.exe tools/gen_test_char.lo  -lpthread  -luuid 
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -Zomf -Zhigh-mem -Zmap -Zargs-wild -D__ST_MT_ERRNO__ -s -o tools/gen_test_char.exe tools/gen_test_char.o -lpthread -luuid
U:/DEV/apr-1.6.5/build/mkdir.sh include/private
tools/gen_test_char.exe > include/private/apr_escape_test_char.h
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o encoding/apr_escape.lo -c encoding/apr_escape.c && touch encoding/apr_escape.lo
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o encoding/apr_escape.o -c encoding/apr_escape.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o passwd/apr_getpass.lo -c passwd/apr_getpass.c && touch passwd/apr_getpass.lo
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o passwd/apr_getpass.o -c passwd/apr_getpass.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o strings/apr_cpystrn.lo -c strings/apr_cpystrn.c && touch strings/apr_cpystrn.lo
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o strings/apr_cpystrn.o -c strings/apr_cpystrn.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o strings/apr_cstr.lo -c strings/apr_cstr.c && touch strings/apr_cstr.lo
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o strings/apr_cstr.o -c strings/apr_cstr.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o strings/apr_fnmatch.lo -c strings/apr_fnmatch.c && touch strings/apr_fnmatch.lo
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o strings/apr_fnmatch.o -c strings/apr_fnmatch.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o strings/apr_snprintf.lo -c strings/apr_snprintf.c && touch strings/apr_snprintf.lo
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o strings/apr_snprintf.o -c strings/apr_snprintf.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o strings/apr_strings.lo -c strings/apr_strings.c && touch strings/apr_strings.lo
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o strings/apr_strings.o -c strings/apr_strings.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o strings/apr_strnatcmp.lo -c strings/apr_strnatcmp.c && touch strings/apr_strnatcmp.lo
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o strings/apr_strnatcmp.o -c strings/apr_strnatcmp.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o strings/apr_strtok.lo -c strings/apr_strtok.c && touch strings/apr_strtok.lo
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o strings/apr_strtok.o -c strings/apr_strtok.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o tables/apr_hash.lo -c tables/apr_hash.c && touch tables/apr_hash.lo
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o tables/apr_hash.o -c tables/apr_hash.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o tables/apr_skiplist.lo -c tables/apr_skiplist.c && touch tables/apr_skiplist.lo
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o tables/apr_skiplist.o -c tables/apr_skiplist.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o tables/apr_tables.lo -c tables/apr_tables.c && touch tables/apr_tables.lo
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o tables/apr_tables.o -c tables/apr_tables.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o atomic/unix/builtins.lo -c atomic/unix/builtins.c && touch atomic/unix/builtins.lo
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o atomic/unix/builtins.o -c atomic/unix/builtins.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o atomic/unix/ia32.lo -c atomic/unix/ia32.c && touch atomic/unix/ia32.lo
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o atomic/unix/ia32.o -c atomic/unix/ia32.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o atomic/unix/mutex.lo -c atomic/unix/mutex.c && touch atomic/unix/mutex.lo
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o atomic/unix/mutex.o -c atomic/unix/mutex.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o atomic/unix/ppc.lo -c atomic/unix/ppc.c && touch atomic/unix/ppc.lo
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o atomic/unix/ppc.o -c atomic/unix/ppc.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o atomic/unix/s390.lo -c atomic/unix/s390.c && touch atomic/unix/s390.lo
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o atomic/unix/s390.o -c atomic/unix/s390.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o atomic/unix/solaris.lo -c atomic/unix/solaris.c && touch atomic/unix/solaris.lo
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o atomic/unix/solaris.o -c atomic/unix/solaris.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o dso/os2/dso.lo -c dso/os2/dso.c && touch dso/os2/dso.lo
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o dso/os2/dso.o -c dso/os2/dso.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o file_io/os2/buffer.lo -c file_io/os2/buffer.c && touch file_io/os2/buffer.lo
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o file_io/os2/buffer.o -c file_io/os2/buffer.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o file_io/os2/copy.lo -c file_io/os2/copy.c && touch file_io/os2/copy.lo
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o file_io/os2/copy.o -c file_io/os2/copy.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o file_io/os2/dir.lo -c file_io/os2/dir.c && touch file_io/os2/dir.lo
file_io/os2/dir.c: In function 'apr_dir_open':
file_io/os2/dir.c:64:8: warning: implicit declaration of function 'access'; did you mean 'accept'? [-Wimplicit-function-declaration]
     if(access(dirname, F_OK) != 0) return APR_ENOENT;
        ^~~~~~
        accept
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o file_io/os2/dir.o -c file_io/os2/dir.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o file_io/os2/dir_make_recurse.lo -c file_io/os2/dir_make_recurse.c && touch file_io/os2/dir_make_recurse.lo
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o file_io/os2/dir_make_recurse.o -c file_io/os2/dir_make_recurse.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o file_io/os2/fileacc.lo -c file_io/os2/fileacc.c && touch file_io/os2/fileacc.lo
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o file_io/os2/fileacc.o -c file_io/os2/fileacc.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o file_io/os2/filedup.lo -c file_io/os2/filedup.c && touch file_io/os2/filedup.lo
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o file_io/os2/filedup.o -c file_io/os2/filedup.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o file_io/os2/filepath.lo -c file_io/os2/filepath.c && touch file_io/os2/filepath.lo
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o file_io/os2/filepath.o -c file_io/os2/filepath.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o file_io/os2/filepath_util.lo -c file_io/os2/filepath_util.c && touch file_io/os2/filepath_util.lo
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o file_io/os2/filepath_util.o -c file_io/os2/filepath_util.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o file_io/os2/filestat.lo -c file_io/os2/filestat.c && touch file_io/os2/filestat.lo
file_io/os2/filestat.c: In function 'fill_out_finfo':
file_io/os2/filestat.c:136:25: warning: implicit declaration of function 'apr_unix_mode2perms'; did you mean 'apr_uid_compare'? [-Wimplicit-function-declaration]
     finfo->protection = apr_unix_mode2perms(info->st_mode);
                         ^~~~~~~~~~~~~~~~~~~
                         apr_uid_compare
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o file_io/os2/filestat.o -c file_io/os2/filestat.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o file_io/os2/filesys.lo -c file_io/os2/filesys.c && touch file_io/os2/filesys.lo
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o file_io/os2/filesys.o -c file_io/os2/filesys.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o file_io/os2/flock.lo -c file_io/os2/flock.c && touch file_io/os2/flock.lo
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o file_io/os2/flock.o -c file_io/os2/flock.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o file_io/os2/fullrw.lo -c file_io/os2/fullrw.c && touch file_io/os2/fullrw.lo
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o file_io/os2/fullrw.o -c file_io/os2/fullrw.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o file_io/os2/maperrorcode.lo -c file_io/os2/maperrorcode.c && touch file_io/os2/maperrorcode.lo
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o file_io/os2/maperrorcode.o -c file_io/os2/maperrorcode.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o file_io/os2/mktemp.lo -c file_io/os2/mktemp.c && touch file_io/os2/mktemp.lo
In file included from file_io/os2/mktemp.c:1:
file_io/os2/../unix/mktemp.c: In function 'gettemp':
file_io/os2/../unix/mktemp.c:71:23: warning: implicit declaration of function 'srandom'; did you mean 'seedrandom'? [-Wimplicit-function-declaration]
 #define seedrandom(a) srandom(a)
                       ^~~~~~~
file_io/os2/../unix/mktemp.c:107:9: note: in expansion of macro 'seedrandom'
         seedrandom(randseed);
         ^~~~~~~~~~
file_io/os2/../unix/mktemp.c:70:22: warning: implicit declaration of function 'random'; did you mean 'rindex'? [-Wimplicit-function-declaration]
 #define arc4random() random()
                      ^~~~~~
file_io/os2/../unix/mktemp.c:120:19: note: in expansion of macro 'arc4random'
         randnum = arc4random() % (sizeof(padchar) - 1);
                   ^~~~~~~~~~
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o file_io/os2/mktemp.o -c file_io/os2/mktemp.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o file_io/os2/open.lo -c file_io/os2/open.c && touch file_io/os2/open.lo
file_io/os2/open.c: In function 'file_cleanup':
file_io/os2/open.c:36:9: warning: implicit declaration of function 'close'; did you mean 'pclose'? [-Wimplicit-function-declaration]
     if (close(file->filedes) == 0) {
         ^~~~~
         pclose
file_io/os2/open.c:39:13: warning: implicit declaration of function 'unlink' [-Wimplicit-function-declaration]
             unlink(file->fname);
             ^~~~~~
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o file_io/os2/open.o -c file_io/os2/open.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o file_io/os2/pipe.lo -c file_io/os2/pipe.c && touch file_io/os2/pipe.lo
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o file_io/os2/pipe.o -c file_io/os2/pipe.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o file_io/os2/readwrite.lo -c file_io/os2/readwrite.c && touch file_io/os2/readwrite.lo
file_io/os2/readwrite.c: In function 'apr_file_read':
file_io/os2/readwrite.c:111:38: warning: passing argument 2 of 'DosResetEventSem' from incompatible pointer type [-Wincompatible-pointer-types]
   DosResetEventSem(thefile->pipeSem, &post_count);
                                      ^~~~~~~~~~~
In file included from U:/USR/include/os2.h:39,
                 from ./include/apr.h:192,
                 from ./include/apr_pools.h:43,
                 from ./include/arch/unix/../apr_private_common.h:24,
                 from ./include/arch/unix/apr_private.h:1019,
                 from U:/DEV/apr-1.6.5/include/arch/os2/apr_arch_file_io.h:20,
                 from file_io/os2/readwrite.c:20:
U:/USR/include/os2emx.h:3174:50: note: expected 'PULONG' {aka 'long unsigned int *'} but argument is of type 'int *'
 ULONG APIENTRY DosResetEventSem (HEV hev, PULONG pulCount);
                                           ~~~~~~~^~~~~~~~
file_io/os2/readwrite.c:112:48: warning: passing argument 4 of 'DosRead' from incompatible pointer type [-Wincompatible-pointer-types]
      rc = DosRead(thefile->filedes, buf, *len, &nbytes);
                                                ^~~~~~~
In file included from U:/USR/include/os2.h:39,
                 from ./include/apr.h:192,
                 from ./include/apr_pools.h:43,
                 from ./include/arch/unix/../apr_private_common.h:24,
                 from ./include/arch/unix/apr_private.h:1019,
                 from U:/DEV/apr-1.6.5/include/arch/os2/apr_arch_file_io.h:20,
                 from file_io/os2/readwrite.c:20:
U:/USR/include/os2emx.h:2001:12: note: expected 'PULONG' {aka 'long unsigned int *'} but argument is of type 'apr_size_t *' {aka 'unsigned int *'}
     PULONG pulBytesRead);
     ~~~~~~~^~~~~~~~~~~~
file_io/os2/readwrite.c: In function 'apr_file_write':
file_io/os2/readwrite.c:167:69: warning: passing argument 4 of 'SafeDosSetFilePtr' from incompatible pointer type [-Wincompatible-pointer-types]
                 DosSetFilePtr(thefile->filedes, offset, FILE_BEGIN, &thefile->filePtr );
                                                                     ^~~~~~~~~~~~~~~~~
In file included from U:/USR/include/os2.h:39,
                 from ./include/apr.h:192,
                 from ./include/apr_pools.h:43,
                 from ./include/arch/unix/../apr_private_common.h:24,
                 from ./include/arch/unix/apr_private.h:1019,
                 from U:/DEV/apr-1.6.5/include/arch/os2/apr_arch_file_io.h:20,
                 from file_io/os2/readwrite.c:20:
U:/USR/include/os2emx.h:2012:81: note: expected 'PULONG' {aka 'long unsigned int *'} but argument is of type 'apr_off_t *' {aka 'long long int *'}
 ULONG APIENTRY DosSetFilePtr (HFILE hFile, LONG lOffset, ULONG ulOrigin, PULONG pulPos);
                                                                          ~~~~~~~^~~~~~
file_io/os2/readwrite.c:192:13: warning: implicit declaration of function 'isatty'; did you mean 'isset'? [-Wimplicit-function-declaration]
         if (isatty(thefile->filedes)
             ^~~~~~
             isset
file_io/os2/readwrite.c:197:30: warning: implicit declaration of function '_lmalloc'; did you mean '_tmalloc'? [-Wimplicit-function-declaration]
                 pvBuf_safe = _lmalloc(*nbytes);
                              ^~~~~~~~
                              _tmalloc
file_io/os2/readwrite.c:197:28: warning: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
                 pvBuf_safe = _lmalloc(*nbytes);
                            ^
file_io/os2/readwrite.c:208:30: warning: implicit declaration of function 'alloca' [-Wimplicit-function-declaration]
                 pvBuf_safe = alloca(*nbytes);
                              ^~~~~~
file_io/os2/readwrite.c:208:30: warning: incompatible implicit declaration of built-in function 'alloca'
file_io/os2/readwrite.c: In function 'apr_file_flush_locked':
file_io/os2/readwrite.c:308:16: warning: implicit declaration of function 'write'; did you mean 'fwrite'? [-Wimplicit-function-declaration]
      written = write(thefile->filedes, thefile->buffer, thefile->bufpos);
                ^~~~~
                fwrite
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o file_io/os2/readwrite.o -c file_io/os2/readwrite.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o file_io/os2/seek.lo -c file_io/os2/seek.c && touch file_io/os2/seek.lo
file_io/os2/seek.c: In function 'setptr':
file_io/os2/seek.c:45:63: warning: passing argument 4 of 'SafeDosSetFilePtr' from incompatible pointer type [-Wincompatible-pointer-types]
         rc = DosSetFilePtr(thefile->filedes, pos, FILE_BEGIN, &thefile->filePtr );
                                                               ^~~~~~~~~~~~~~~~~
In file included from U:/USR/include/os2.h:39,
                 from ./include/apr.h:192,
                 from ./include/apr_pools.h:43,
                 from ./include/arch/unix/../apr_private_common.h:24,
                 from ./include/arch/unix/apr_private.h:1019,
                 from U:/DEV/apr-1.6.5/include/arch/os2/apr_arch_file_io.h:20,
                 from file_io/os2/seek.c:17:
U:/USR/include/os2emx.h:2012:81: note: expected 'PULONG' {aka 'long unsigned int *'} but argument is of type 'apr_off_t *' {aka 'long long int *'}
 ULONG APIENTRY DosSetFilePtr (HFILE hFile, LONG lOffset, ULONG ulOrigin, PULONG pulPos);
                                                                          ~~~~~~~^~~~~~
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o file_io/os2/seek.o -c file_io/os2/seek.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o file_io/os2/tempdir.lo -c file_io/os2/tempdir.c && touch file_io/os2/tempdir.lo
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o file_io/os2/tempdir.o -c file_io/os2/tempdir.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o locks/os2/proc_mutex.lo -c locks/os2/proc_mutex.c && touch locks/os2/proc_mutex.lo
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o locks/os2/proc_mutex.o -c locks/os2/proc_mutex.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o locks/os2/thread_cond.lo -c locks/os2/thread_cond.c && touch locks/os2/thread_cond.lo
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o locks/os2/thread_cond.o -c locks/os2/thread_cond.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o locks/os2/thread_mutex.lo -c locks/os2/thread_mutex.c && touch locks/os2/thread_mutex.lo
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o locks/os2/thread_mutex.o -c locks/os2/thread_mutex.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o locks/os2/thread_rwlock.lo -c locks/os2/thread_rwlock.c && touch locks/os2/thread_rwlock.lo
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o locks/os2/thread_rwlock.o -c locks/os2/thread_rwlock.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o memory/unix/apr_pools.lo -c memory/unix/apr_pools.c && touch memory/unix/apr_pools.lo
memory/unix/apr_pools.c: In function 'allocator_alloc':
memory/unix/apr_pools.c:411:17: warning: implicit declaration of function '_lmalloc'; did you mean 'malloc'? [-Wimplicit-function-declaration]
     if ((node = _lmalloc(size)) == NULL)
                 ^~~~~~~~
                 malloc
memory/unix/apr_pools.c:411:15: warning: assignment to 'apr_memnode_t *' {aka 'struct apr_memnode_t *'} from 'int' makes pointer from integer without a cast [-Wint-conversion]
     if ((node = _lmalloc(size)) == NULL)
               ^
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o memory/unix/apr_pools.o -c memory/unix/apr_pools.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o misc/unix/charset.lo -c misc/unix/charset.c && touch misc/unix/charset.lo
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o misc/unix/charset.o -c misc/unix/charset.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o misc/unix/env.lo -c misc/unix/env.c && touch misc/unix/env.lo
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o misc/unix/env.o -c misc/unix/env.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o misc/unix/errorcodes.lo -c misc/unix/errorcodes.c && touch misc/unix/errorcodes.lo
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o misc/unix/errorcodes.o -c misc/unix/errorcodes.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o misc/unix/getopt.lo -c misc/unix/getopt.c && touch misc/unix/getopt.lo
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o misc/unix/getopt.o -c misc/unix/getopt.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o misc/unix/otherchild.lo -c misc/unix/otherchild.c && touch misc/unix/otherchild.lo
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o misc/unix/otherchild.o -c misc/unix/otherchild.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o misc/unix/rand.lo -c misc/unix/rand.c && touch misc/unix/rand.lo
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o misc/unix/rand.o -c misc/unix/rand.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o misc/unix/start.lo -c misc/unix/start.c && touch misc/unix/start.lo
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o misc/unix/start.o -c misc/unix/start.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o misc/unix/version.lo -c misc/unix/version.c && touch misc/unix/version.lo
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o misc/unix/version.o -c misc/unix/version.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o mmap/unix/common.lo -c mmap/unix/common.c && touch mmap/unix/common.lo
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o mmap/unix/common.o -c mmap/unix/common.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o mmap/unix/mmap.lo -c mmap/unix/mmap.c && touch mmap/unix/mmap.lo
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o mmap/unix/mmap.o -c mmap/unix/mmap.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o network_io/os2/inet_ntop.lo -c network_io/os2/inet_ntop.c && touch network_io/os2/inet_ntop.lo
In file included from U:/DEV/apr-1.6.5/include/arch/os2/apr_arch_networkio.h:23,
                 from network_io/os2/../unix/inet_ntop.c:18,
                 from network_io/os2/inet_ntop.c:1:
U:/DEV/apr-1.6.5/include/arch/os2/apr_arch_os2calls.h:19:2: warning: #warning xxx [-Wcpp]
 #warning xxx
  ^~~~~~~
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o network_io/os2/inet_ntop.o -c network_io/os2/inet_ntop.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o network_io/os2/inet_pton.lo -c network_io/os2/inet_pton.c && touch network_io/os2/inet_pton.lo
In file included from U:/DEV/apr-1.6.5/include/arch/os2/apr_arch_networkio.h:23,
                 from network_io/os2/../unix/inet_pton.c:18,
                 from network_io/os2/inet_pton.c:1:
U:/DEV/apr-1.6.5/include/arch/os2/apr_arch_os2calls.h:19:2: warning: #warning xxx [-Wcpp]
 #warning xxx
  ^~~~~~~
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o network_io/os2/inet_pton.o -c network_io/os2/inet_pton.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o network_io/os2/os2calls.lo -c network_io/os2/os2calls.c && touch network_io/os2/os2calls.lo
In file included from U:/DEV/apr-1.6.5/include/arch/os2/apr_arch_networkio.h:23,
                 from network_io/os2/os2calls.c:17:
U:/DEV/apr-1.6.5/include/arch/os2/apr_arch_os2calls.h:19:2: warning: #warning xxx [-Wcpp]
 #warning xxx
  ^~~~~~~
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o network_io/os2/os2calls.o -c network_io/os2/os2calls.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o network_io/os2/sendrecv.lo -c network_io/os2/sendrecv.c && touch network_io/os2/sendrecv.lo
In file included from U:/DEV/apr-1.6.5/include/arch/os2/apr_arch_networkio.h:23,
                 from network_io/os2/sendrecv.c:17:
U:/DEV/apr-1.6.5/include/arch/os2/apr_arch_os2calls.h:19:2: warning: #warning xxx [-Wcpp]
 #warning xxx
  ^~~~~~~
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o network_io/os2/sendrecv.o -c network_io/os2/sendrecv.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o network_io/os2/sendrecv_udp.lo -c network_io/os2/sendrecv_udp.c && touch network_io/os2/sendrecv_udp.lo
In file included from U:/DEV/apr-1.6.5/include/arch/os2/apr_arch_networkio.h:23,
                 from network_io/os2/sendrecv_udp.c:17:
U:/DEV/apr-1.6.5/include/arch/os2/apr_arch_os2calls.h:19:2: warning: #warning xxx [-Wcpp]
 #warning xxx
  ^~~~~~~
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o network_io/os2/sendrecv_udp.o -c network_io/os2/sendrecv_udp.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o network_io/os2/sockaddr.lo -c network_io/os2/sockaddr.c && touch network_io/os2/sockaddr.lo
In file included from U:/DEV/apr-1.6.5/include/arch/os2/apr_arch_networkio.h:23,
                 from network_io/os2/../unix/sockaddr.c:17,
                 from network_io/os2/sockaddr.c:2:
U:/DEV/apr-1.6.5/include/arch/os2/apr_arch_os2calls.h:19:2: warning: #warning xxx [-Wcpp]
 #warning xxx
  ^~~~~~~
In file included from network_io/os2/sockaddr.c:3:
network_io/os2/../unix/multicast.c: In function 'do_mcast':
network_io/os2/../unix/multicast.c:165:28: warning: passing argument 4 of 'apr_os2_setsockopt' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
                            (const void *) &mip4, sizeof(mip4)) == -1) {
                            ^~~~~~~~~~~~~~~~~~~~
network_io/os2/../unix/multicast.c:165:28: note: expected 'char *' but argument is of type 'const void *'
network_io/os2/../unix/multicast.c: In function 'do_mcast_opt':
network_io/os2/../unix/multicast.c:208:24: warning: passing argument 4 of 'apr_os2_setsockopt' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
                        (const void *) &value, sizeof(value)) == -1) {
                        ^~~~~~~~~~~~~~~~~~~~~
network_io/os2/../unix/multicast.c:208:24: note: expected 'char *' but argument is of type 'const void *'
network_io/os2/../unix/multicast.c: In function 'apr_mcast_interface':
network_io/os2/../unix/multicast.c:292:24: warning: passing argument 4 of 'apr_os2_setsockopt' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
                        (const void *) &iface->sa.sin.sin_addr,
                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
network_io/os2/../unix/multicast.c:292:24: note: expected 'char *' but argument is of type 'const void *'
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o network_io/os2/sockaddr.o -c network_io/os2/sockaddr.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o network_io/os2/socket_util.lo -c network_io/os2/socket_util.c && touch network_io/os2/socket_util.lo
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o network_io/os2/socket_util.o -c network_io/os2/socket_util.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o network_io/os2/sockets.lo -c network_io/os2/sockets.c && touch network_io/os2/sockets.lo
In file included from U:/DEV/apr-1.6.5/include/arch/os2/apr_arch_networkio.h:23,
                 from network_io/os2/sockets.c:17:
U:/DEV/apr-1.6.5/include/arch/os2/apr_arch_os2calls.h:19:2: warning: #warning xxx [-Wcpp]
 #warning xxx
  ^~~~~~~
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o network_io/os2/sockets.o -c network_io/os2/sockets.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o network_io/os2/sockopt.lo -c network_io/os2/sockopt.c && touch network_io/os2/sockopt.lo
In file included from U:/DEV/apr-1.6.5/include/arch/os2/apr_arch_networkio.h:23,
                 from network_io/os2/sockopt.c:17:
U:/DEV/apr-1.6.5/include/arch/os2/apr_arch_os2calls.h:19:2: warning: #warning xxx [-Wcpp]
 #warning xxx
  ^~~~~~~
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o network_io/os2/sockopt.o -c network_io/os2/sockopt.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o poll/os2/poll.lo -c poll/os2/poll.c && touch poll/os2/poll.lo
In file included from U:/DEV/apr-1.6.5/include/arch/os2/apr_arch_networkio.h:23,
                 from poll/os2/poll.c:19:
U:/DEV/apr-1.6.5/include/arch/os2/apr_arch_os2calls.h:19:2: warning: #warning xxx [-Wcpp]
 #warning xxx
  ^~~~~~~
In file included from ./include/apr_pools.h:44,
                 from ./include/apr_poll.h:24,
                 from poll/os2/poll.c:18:
poll/os2/poll.c: In function 'apr_pollcb_method_name':
./include/apr_errno.h:476:28: warning: returning 'int' from a function with return type 'const char *' makes pointer from integer without a cast [-Wint-conversion]
 #define APR_ENOTIMPL       (APR_OS_START_STATUS + 23)
                            ^
poll/os2/poll.c:153:12: note: in expansion of macro 'APR_ENOTIMPL'
     return APR_ENOTIMPL;
            ^~~~~~~~~~~~
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o poll/os2/poll.o -c poll/os2/poll.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o poll/os2/pollset.lo -c poll/os2/pollset.c && touch poll/os2/pollset.lo
In file included from U:/DEV/apr-1.6.5/include/arch/os2/apr_arch_networkio.h:23,
                 from poll/os2/pollset.c:19:
U:/DEV/apr-1.6.5/include/arch/os2/apr_arch_os2calls.h:19:2: warning: #warning xxx [-Wcpp]
 #warning xxx
  ^~~~~~~
poll/os2/pollset.c: In function 'apr_pollset_poll':
poll/os2/pollset.c:221:18: warning: implicit declaration of function 'alloca' [-Wimplicit-function-declaration]
     pollresult = alloca(sizeof(int) * pollset->num_total);
                  ^~~~~~
poll/os2/pollset.c:221:18: warning: incompatible implicit declaration of built-in function 'alloca'
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o poll/os2/pollset.o -c poll/os2/pollset.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o random/unix/apr_random.lo -c random/unix/apr_random.c && touch random/unix/apr_random.lo
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o random/unix/apr_random.o -c random/unix/apr_random.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o random/unix/sha2.lo -c random/unix/sha2.c && touch random/unix/sha2.lo
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o random/unix/sha2.o -c random/unix/sha2.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o random/unix/sha2_glue.lo -c random/unix/sha2_glue.c && touch random/unix/sha2_glue.lo
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o random/unix/sha2_glue.o -c random/unix/sha2_glue.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o shmem/os2/shm.lo -c shmem/os2/shm.c && touch shmem/os2/shm.lo
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o shmem/os2/shm.o -c shmem/os2/shm.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o support/unix/waitio.lo -c support/unix/waitio.c && touch support/unix/waitio.lo
In file included from U:/DEV/apr-1.6.5/include/arch/os2/apr_arch_networkio.h:23,
                 from support/unix/waitio.c:18:
U:/DEV/apr-1.6.5/include/arch/os2/apr_arch_os2calls.h:19:2: warning: #warning xxx [-Wcpp]
 #warning xxx
  ^~~~~~~
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o support/unix/waitio.o -c support/unix/waitio.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o threadproc/os2/proc.lo -c threadproc/os2/proc.c && touch threadproc/os2/proc.lo
threadproc/os2/proc.c: In function 'apr_proc_fork':
threadproc/os2/proc.c:239:9: warning: implicit declaration of function 'apr_random_after_fork'; did you mean 'apr_proc_mutex_lock'? [-Wimplicit-function-declaration]
         apr_random_after_fork(proc);
         ^~~~~~~~~~~~~~~~~~~~~
         apr_proc_mutex_lock
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o threadproc/os2/proc.o -c threadproc/os2/proc.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o threadproc/os2/signals.lo -c threadproc/os2/signals.c && touch threadproc/os2/signals.lo
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o threadproc/os2/signals.o -c threadproc/os2/signals.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o threadproc/os2/thread.lo -c threadproc/os2/thread.c && touch threadproc/os2/thread.lo
threadproc/os2/thread.c: In function 'apr_thread_begin':
threadproc/os2/thread.c:78:19: warning: assignment to 'apr_status_t' {aka 'int'} from 'void *' makes integer from pointer without a cast [-Wint-conversion]
   thread->exitval = thread->func(thread, thread->data);
                   ^
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o threadproc/os2/thread.o -c threadproc/os2/thread.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o threadproc/os2/threadpriv.lo -c threadproc/os2/threadpriv.c && touch threadproc/os2/threadpriv.lo
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o threadproc/os2/threadpriv.o -c threadproc/os2/threadpriv.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o time/unix/time.lo -c time/unix/time.c && touch time/unix/time.lo
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o time/unix/time.o -c time/unix/time.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o time/unix/timestr.lo -c time/unix/timestr.c && touch time/unix/timestr.lo
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o time/unix/timestr.o -c time/unix/timestr.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o user/unix/groupinfo.lo -c user/unix/groupinfo.c && touch user/unix/groupinfo.lo
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o user/unix/groupinfo.o -c user/unix/groupinfo.c -Zomf
./build/aplibtool  --mode=compile gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  -o user/unix/userinfo.lo -c user/unix/userinfo.c && touch user/unix/userinfo.lo
gcc -Zmt -D__EMX__ -DOS2 -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H -DOS2 -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private -o user/unix/userinfo.o -c user/unix/userinfo.c -Zomf
./build/aplibtool  --mode=link gcc -Zmt  -D__EMX__ -DOS2  -Zomf -DTCPV40HDRS -D__ST_MT_ERRNO__ -O2 -static-libgcc -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private   -version-info 6:5:6   -Zomf -Zexe -Zhigh-mem -Zmap -Zargs-wild -D__ST_MT_ERRNO__ -s -o libapr-1.la -rpath /extras/lib encoding/apr_escape.lo passwd/apr_getpass.lo strings/apr_cpystrn.lo strings/apr_cstr.lo strings/apr_fnmatch.lo strings/apr_snprintf.lo strings/apr_strings.lo strings/apr_strnatcmp.lo strings/apr_strtok.lo tables/apr_hash.lo tables/apr_skiplist.lo tables/apr_tables.lo atomic/unix/builtins.lo atomic/unix/ia32.lo atomic/unix/mutex.lo atomic/unix/ppc.lo atomic/unix/s390.lo atomic/unix/solaris.lo dso/os2/dso.lo file_io/os2/buffer.lo file_io/os2/copy.lo file_io/os2/dir.lo file_io/os2/dir_make_recurse.lo file_io/os2/fileacc.lo file_io/os2/filedup.lo file_io/os2/filepath.lo file_io/os2/filepath_util.lo file_io/os2/filestat.lo file_io/os2/filesys.lo file_io/os2/flock.lo file_io/os2/fullrw.lo file_io/os2/maperrorcode.lo file_io/os2/mktemp.lo file_io/os2/open.lo file_io/os2/pipe.lo file_io/os2/readwrite.lo file_io/os2/seek.lo file_io/os2/tempdir.lo locks/os2/proc_mutex.lo locks/os2/thread_cond.lo locks/os2/thread_mutex.lo locks/os2/thread_rwlock.lo memory/unix/apr_pools.lo misc/unix/charset.lo misc/unix/env.lo misc/unix/errorcodes.lo misc/unix/getopt.lo misc/unix/otherchild.lo misc/unix/rand.lo misc/unix/start.lo misc/unix/version.lo mmap/unix/common.lo mmap/unix/mmap.lo network_io/os2/inet_ntop.lo network_io/os2/inet_pton.lo network_io/os2/os2calls.lo network_io/os2/sendrecv.lo network_io/os2/sendrecv_udp.lo network_io/os2/sockaddr.lo network_io/os2/socket_util.lo network_io/os2/sockets.lo network_io/os2/sockopt.lo poll/os2/poll.lo poll/os2/pollset.lo random/unix/apr_random.lo random/unix/sha2.lo random/unix/sha2_glue.lo shmem/os2/shm.lo support/unix/waitio.lo threadproc/os2/proc.lo threadproc/os2/signals.lo threadproc/os2/thread.lo threadproc/os2/threadpriv.lo time/unix/time.lo time/unix/timestr.lo user/unix/groupinfo.lo user/unix/userinfo.lo -lpthread  -luuid 
emxomfar cr .libs/apr-1.lib encoding/apr_escape.o passwd/apr_getpass.o strings/apr_cpystrn.o strings/apr_cstr.o strings/apr_fnmatch.o strings/apr_snprintf.o strings/apr_strings.o strings/apr_strnatcmp.o strings/apr_strtok.o tables/apr_hash.o tables/apr_skiplist.o tables/apr_tables.o atomic/unix/builtins.o atomic/unix/ia32.o atomic/unix/mutex.o atomic/unix/ppc.o atomic/unix/s390.o atomic/unix/solaris.o dso/os2/dso.o file_io/os2/buffer.o file_io/os2/copy.o file_io/os2/dir.o file_io/os2/dir_make_recurse.o file_io/os2/fileacc.o file_io/os2/filedup.o file_io/os2/filepath.o file_io/os2/filepath_util.o file_io/os2/filestat.o file_io/os2/filesys.o file_io/os2/flock.o file_io/os2/fullrw.o file_io/os2/maperrorcode.o file_io/os2/mktemp.o file_io/os2/open.o file_io/os2/pipe.o file_io/os2/readwrite.o file_io/os2/seek.o file_io/os2/tempdir.o locks/os2/proc_mutex.o locks/os2/thread_cond.o locks/os2/thread_mutex.o locks/os2/thread_rwlock.o memory/unix/apr_pools.o misc/unix/charset.o misc/unix/env.o misc/unix/errorcodes.o misc/unix/getopt.o misc/unix/otherchild.o misc/unix/rand.o misc/unix/start.o misc/unix/version.o mmap/unix/common.o mmap/unix/mmap.o network_io/os2/inet_ntop.o network_io/os2/inet_pton.o network_io/os2/os2calls.o network_io/os2/sendrecv.o network_io/os2/sendrecv_udp.o network_io/os2/sockaddr.o network_io/os2/socket_util.o network_io/os2/sockets.o network_io/os2/sockopt.o poll/os2/poll.o poll/os2/pollset.o random/unix/apr_random.o random/unix/sha2.o random/unix/sha2_glue.o shmem/os2/shm.o support/unix/waitio.o threadproc/os2/proc.o threadproc/os2/signals.o threadproc/os2/thread.o threadproc/os2/threadpriv.o time/unix/time.o time/unix/timestr.o user/unix/groupinfo.o user/unix/userinfo.o
gawk -f U:/DEV/apr-1.6.5/build/make_exports.awk U:/DEV/apr-1.6.5/include/apr_allocator.h U:/DEV/apr-1.6.5/include/apr_atomic.h U:/DEV/apr-1.6.5/include/apr_cstr.h U:/DEV/apr-1.6.5/include/apr_dso.h U:/DEV/apr-1.6.5/include/apr_env.h U:/DEV/apr-1.6.5/include/apr_errno.h U:/DEV/apr-1.6.5/include/apr_escape.h U:/DEV/apr-1.6.5/include/apr_file_info.h U:/DEV/apr-1.6.5/include/apr_file_io.h U:/DEV/apr-1.6.5/include/apr_fnmatch.h U:/DEV/apr-1.6.5/include/apr_general.h U:/DEV/apr-1.6.5/include/apr_getopt.h U:/DEV/apr-1.6.5/include/apr_global_mutex.h U:/DEV/apr-1.6.5/include/apr_hash.h U:/DEV/apr-1.6.5/include/apr_inherit.h U:/DEV/apr-1.6.5/include/apr_lib.h U:/DEV/apr-1.6.5/include/apr_mmap.h U:/DEV/apr-1.6.5/include/apr_network_io.h U:/DEV/apr-1.6.5/include/apr_perms_set.h U:/DEV/apr-1.6.5/include/apr_poll.h U:/DEV/apr-1.6.5/include/apr_pools.h U:/DEV/apr-1.6.5/include/apr_portable.h U:/DEV/apr-1.6.5/include/apr_proc_mutex.h U:/DEV/apr-1.6.5/include/apr_random.h U:/DEV/apr-1.6.5/include/apr_ring.h U:/DEV/apr-1.6.5/include/apr_shm.h U:/DEV/apr-1.6.5/include/apr_signal.h U:/DEV/apr-1.6.5/include/apr_skiplist.h U:/DEV/apr-1.6.5/include/apr_strings.h U:/DEV/apr-1.6.5/include/apr_support.h U:/DEV/apr-1.6.5/include/apr_tables.h U:/DEV/apr-1.6.5/include/apr_thread_cond.h U:/DEV/apr-1.6.5/include/apr_thread_mutex.h U:/DEV/apr-1.6.5/include/apr_thread_proc.h U:/DEV/apr-1.6.5/include/apr_thread_rwlock.h U:/DEV/apr-1.6.5/include/apr_time.h U:/DEV/apr-1.6.5/include/apr_user.h U:/DEV/apr-1.6.5/include/apr_version.h U:/DEV/apr-1.6.5/include/apr_want.h > exports.c
gawk -f U:/DEV/apr-1.6.5/build/make_var_export.awk U:/DEV/apr-1.6.5/include/apr_allocator.h U:/DEV/apr-1.6.5/include/apr_atomic.h U:/DEV/apr-1.6.5/include/apr_cstr.h U:/DEV/apr-1.6.5/include/apr_dso.h U:/DEV/apr-1.6.5/include/apr_env.h U:/DEV/apr-1.6.5/include/apr_errno.h U:/DEV/apr-1.6.5/include/apr_escape.h U:/DEV/apr-1.6.5/include/apr_file_info.h U:/DEV/apr-1.6.5/include/apr_file_io.h U:/DEV/apr-1.6.5/include/apr_fnmatch.h U:/DEV/apr-1.6.5/include/apr_general.h U:/DEV/apr-1.6.5/include/apr_getopt.h U:/DEV/apr-1.6.5/include/apr_global_mutex.h U:/DEV/apr-1.6.5/include/apr_hash.h U:/DEV/apr-1.6.5/include/apr_inherit.h U:/DEV/apr-1.6.5/include/apr_lib.h U:/DEV/apr-1.6.5/include/apr_mmap.h U:/DEV/apr-1.6.5/include/apr_network_io.h U:/DEV/apr-1.6.5/include/apr_perms_set.h U:/DEV/apr-1.6.5/include/apr_poll.h U:/DEV/apr-1.6.5/include/apr_pools.h U:/DEV/apr-1.6.5/include/apr_portable.h U:/DEV/apr-1.6.5/include/apr_proc_mutex.h U:/DEV/apr-1.6.5/include/apr_random.h U:/DEV/apr-1.6.5/include/apr_ring.h U:/DEV/apr-1.6.5/include/apr_shm.h U:/DEV/apr-1.6.5/include/apr_signal.h U:/DEV/apr-1.6.5/include/apr_skiplist.h U:/DEV/apr-1.6.5/include/apr_strings.h U:/DEV/apr-1.6.5/include/apr_support.h U:/DEV/apr-1.6.5/include/apr_tables.h U:/DEV/apr-1.6.5/include/apr_thread_cond.h U:/DEV/apr-1.6.5/include/apr_thread_mutex.h U:/DEV/apr-1.6.5/include/apr_thread_proc.h U:/DEV/apr-1.6.5/include/apr_thread_rwlock.h U:/DEV/apr-1.6.5/include/apr_time.h U:/DEV/apr-1.6.5/include/apr_user.h U:/DEV/apr-1.6.5/include/apr_version.h U:/DEV/apr-1.6.5/include/apr_want.h > export_vars.c
gcc -E -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  exports.c | grep "ap_hack_" | sed -e 's/^.*[)]\(.*\);$/\1/' >> apr.exp
gcc -E -DHAVE_CONFIG_H  -DOS2   -I./include -IU:/DEV/apr-1.6.5/include/arch/os2 -I./include/arch/unix -IU:/DEV/apr-1.6.5/include/arch/unix -IU:/DEV/apr-1.6.5/include -IU:/DEV/apr-1.6.5/include/private -IU:/DEV/apr-1.6.5/include/private  export_vars.c | sed -e 's/^\#[^!]*//' | sed -e '/^$/d' >> apr.exp
sed 's,^\(location=\).*$,\1installed,' < apr-1-config > apr-config.out
sed -e 's,^\(apr_build.*=\).*$,\1/extras/build-1,' -e 's,^\(top_build.*=\).*$,\1/extras/build-1,' < build/apr_rules.mk > build/apr_rules.out
make[1]: Leaving directory `U:/DEV/apr-1.6.5'
aprbuild.log (84,414 bytes)   
apr-1.6.5.diff (123,077 bytes)   
Only in apr-1.6.5: .make.dirs
Only in apr-1.6.5: a.out
Only in apr-1.6.5: apr-1-config
Only in apr-1.6.5: apr.pc
Only in apr-1.6.5: aprbuild.log
Only in apr-1.6.5/atomic/unix: builtins.lo
Only in apr-1.6.5/atomic/unix: builtins.o
Only in apr-1.6.5/atomic/unix: ia32.lo
Only in apr-1.6.5/atomic/unix: ia32.o
Only in apr-1.6.5/atomic/unix: mutex.lo
Only in apr-1.6.5/atomic/unix: mutex.o
Only in apr-1.6.5/atomic/unix: ppc.lo
Only in apr-1.6.5/atomic/unix: ppc.o
Only in apr-1.6.5/atomic/unix: s390.lo
Only in apr-1.6.5/atomic/unix: s390.o
Only in apr-1.6.5/atomic/unix: solaris.lo
Only in apr-1.6.5/atomic/unix: solaris.o
diff -ur apr-1.6.5-o/build/aplibtool.c apr-1.6.5/build/aplibtool.c
--- apr-1.6.5-o/build/aplibtool.c	2011-10-16 07:56:14.000000000 +1030
+++ apr-1.6.5/build/aplibtool.c	2018-10-31 19:14:44.000000000 +1030
@@ -36,7 +36,11 @@
 #  define CC         "gcc"
 #  define GEN_EXPORTS "emxexp"
 #  define DEF2IMPLIB_CMD "emximp"
-#  define SHARE_SW   "-Zdll -Zmtd"
+#if 1
+#  define SHARE_SW   "-Zdll -Zmap -Zhigh-mem"
+#else
+#  define SHARE_SW   "-Zdll -Zmap"
+#endif
 #  define USE_OMF true
 #  define TRUNCATE_DLL_NAME
 #  define DYNAMIC_LIB_EXT "dll"
@@ -45,7 +49,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 */
@@ -262,7 +266,7 @@
     if (strcmp(ext, "la") == 0) {
         newarg = (char *)malloc(strlen(arg) + 10);
         strcpy(newarg, arg);
-        newarg[pathlen] = 0;
+        newarg[name - arg] = 0;
         strcat(newarg, ".libs/");
 
         if (strncmp(name, "lib", 3) == 0) {
@@ -353,7 +357,6 @@
           newarg = truncate_dll_name(newarg);
         }
 #endif
-
         cmd_data->arglist[cmd_data->num_args++] = newarg;
         cmd_data->output_name = newarg;
         return true;
Only in apr-1.6.5/build: aplibtool.exe
Only in apr-1.6.5/build: apr_rules.mk
Only in apr-1.6.5/build/pkg: pkginfo
Only in apr-1.6.5: build.cmd
Only in apr-1.6.5: build.log
Only in apr-1.6.5: conf.cmd
Only in apr-1.6.5: config.log
Only in apr-1.6.5: config.nice
Only in apr-1.6.5: config.status
diff -ur apr-1.6.5-o/configure.in apr-1.6.5/configure.in
--- apr-1.6.5-o/configure.in	2018-08-26 00:26:56.000000000 +0930
+++ apr-1.6.5/configure.in	2018-10-31 19:14:44.000000000 +1030
@@ -243,6 +243,23 @@
     echo "using aplibtool"
     LIBTOOL="$srcdir/build/aplibtool"
     gcc $CFLAGS $CPPFLAGS -o $LIBTOOL.exe $LIBTOOL.c
+    # Determine ECHO
+    # Test print first, because it will be a builtin if present.
+    if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
+       test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
+        ECHO='print -r --'
+    elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
+        ECHO='printf %s\n'
+    else
+        # Use this function as a fallback that always works.
+        func_fallback_echo ()
+        {
+            eval 'cat <<_ACEOF
+$1
+_ACEOF'
+        }
+        ECHO='func_fallback_echo'
+    fi
     ;;
 *)
     if test "x$LTFLAGS" = "x"; then
Only in apr-1.6.5: configure.log
diff -ur apr-1.6.5-o/dso/os2/dso.c apr-1.6.5/dso/os2/dso.c
--- apr-1.6.5-o/dso/os2/dso.c	2006-08-03 20:25:30.000000000 +0930
+++ apr-1.6.5/dso/os2/dso.c	2018-10-31 19:14:44.000000000 +1030
@@ -18,6 +18,7 @@
 #include "apr_strings.h"
 #include "apr_portable.h"
 #include <stdio.h>
+#include <stdlib.h>
 #include <string.h>
 
 #if APR_HAS_DSO
@@ -50,13 +51,23 @@
     (*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);
     }
 
+   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;
 }
@@ -80,7 +91,16 @@
     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.6.5/dso/os2: dso.lo
Only in apr-1.6.5/dso/os2: dso.o
Only in apr-1.6.5/encoding: apr_escape.lo
Only in apr-1.6.5/encoding: apr_escape.o
Only in apr-1.6.5: env.cmd
Only in apr-1.6.5/file_io/os2: buffer.lo
Only in apr-1.6.5/file_io/os2: buffer.o
Only in apr-1.6.5/file_io/os2: copy.lo
Only in apr-1.6.5/file_io/os2: copy.o
Only in apr-1.6.5/file_io/os2: dir_make_recurse.lo
Only in apr-1.6.5/file_io/os2: dir_make_recurse.o
diff -ur apr-1.6.5-o/file_io/os2/dir.c apr-1.6.5/file_io/os2/dir.c
--- apr-1.6.5-o/file_io/os2/dir.c	2006-08-03 20:25:30.000000000 +0930
+++ apr-1.6.5/file_io/os2/dir.c	2018-11-04 07:40:46.000000000 +1030
@@ -21,6 +21,16 @@
 #include "apr_portable.h"
 #include <string.h>
 
+#if ( defined(__INNOTEK_LIBCxx__) || defined(__WATCOMC__) )
+/* Paul - I didn't see F_OK defined in io.h so I add this incase - asking Bird
+ * says in fcntl.h or unistd.h
+ */
+#ifndef F_OK
+#define F_OK  0
+#endif
+#include <io.h>
+#endif
+
 static apr_status_t dir_cleanup(void *thedir)
 {
     apr_dir_t *dir = thedir;
@@ -46,6 +56,14 @@
     thedir->validentry = FALSE;
     *new = thedir;
     apr_pool_cleanup_register(pool, thedir, dir_cleanup, apr_pool_cleanup_null);
+    /* In testdir, a call to a non-existent directory and the expected return is
+     * APR_ENOENT. I am adding a quick access( ), which is supported by new gcc and
+     * Open Watcom. If the dir doesn' exist we bug-out with the correct error.
+     */
+#if ( defined(__INNOTEK_LIBC__) || defined(__WATCOMC__) )
+    if(access(dirname, F_OK) != 0) return APR_ENOENT;
+#endif
+
     return APR_SUCCESS;
 }
 
Only in apr-1.6.5/file_io/os2: dir.lo
Only in apr-1.6.5/file_io/os2: dir.o
diff -ur apr-1.6.5-o/file_io/os2/filedup.c apr-1.6.5/file_io/os2/filedup.c
--- apr-1.6.5-o/file_io/os2/filedup.c	2013-10-04 00:05:18.000000000 +0930
+++ apr-1.6.5/file_io/os2/filedup.c	2018-10-31 19:14:44.000000000 +1030
@@ -51,6 +51,7 @@
     dup_file->flags = old_file->flags & ~APR_INHERIT;
     /* TODO - dup pipes correctly */
     dup_file->pipe = old_file->pipe;
+    dup_file->ungetchar = old_file->ungetchar;
 
     if (*new_file == NULL) {
         apr_pool_cleanup_register(dup_file->pool, dup_file, apr_file_cleanup,
diff -ur apr-1.6.5-o/file_io/os2/filestat.c apr-1.6.5/file_io/os2/filestat.c
--- apr-1.6.5-o/file_io/os2/filestat.c	2006-08-03 20:25:30.000000000 +0930
+++ apr-1.6.5/file_io/os2/filestat.c	2018-10-31 19:14:44.000000000 +1030
@@ -84,7 +84,123 @@
     return APR_FROM_OS_ERROR(rc);
 }
 
+#ifdef __KLIBC__
+static apr_filetype_e filetype_from_mode(mode_t mode)
+{
+    apr_filetype_e type;
+
+    switch (mode & S_IFMT) {
+    case S_IFREG:
+        type = APR_REG;  break;
+    case S_IFDIR:
+        type = APR_DIR;  break;
+    case S_IFLNK:
+        type = APR_LNK;  break;
+    case S_IFCHR:
+        type = APR_CHR;  break;
+    case S_IFBLK:
+        type = APR_BLK;  break;
+#if defined(S_IFFIFO)
+    case S_IFFIFO:
+        type = APR_PIPE; break;
+#endif
+#if !defined(BEOS) && defined(S_IFSOCK)
+    case S_IFSOCK:
+        type = APR_SOCK; break;
+#endif
+
+    default:
+	/* Work around missing S_IFxxx values above
+         * for Linux et al.
+         */
+#if !defined(S_IFFIFO) && defined(S_ISFIFO)
+    	if (S_ISFIFO(mode)) {
+            type = APR_PIPE;
+	} else
+#endif
+#if !defined(BEOS) && !defined(S_IFSOCK) && defined(S_ISSOCK)
+    	if (S_ISSOCK(mode)) {
+            type = APR_SOCK;
+	} else
+#endif
+        type = APR_UNKFILE;
+    }
+    return type;
+}
+
+static void fill_out_finfo(apr_finfo_t *finfo, struct_stat *info,
+                           apr_int32_t wanted)
+{ 
+    finfo->valid = APR_FINFO_MIN | APR_FINFO_IDENT | APR_FINFO_NLINK
+                 | APR_FINFO_OWNER | APR_FINFO_PROT;
+    finfo->protection = apr_unix_mode2perms(info->st_mode);
+    finfo->filetype = filetype_from_mode(info->st_mode);
+    finfo->user = info->st_uid;
+    finfo->group = info->st_gid;
+    finfo->size = info->st_size;
+    finfo->inode = info->st_ino;
+    finfo->device = info->st_dev;
+    finfo->nlink = info->st_nlink;
+    apr_time_ansi_put(&finfo->atime, info->st_atime);
+#ifdef HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC
+    finfo->atime += info->st_atim.tv_nsec / APR_TIME_C(1000);
+#elif defined(HAVE_STRUCT_STAT_ST_ATIMENSEC)
+    finfo->atime += info->st_atimensec / APR_TIME_C(1000);
+#elif defined(HAVE_STRUCT_STAT_ST_ATIME_N)
+    finfo->ctime += info->st_atime_n / APR_TIME_C(1000);
+#endif
+
+    apr_time_ansi_put(&finfo->mtime, info->st_mtime);
+#ifdef HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC
+    finfo->mtime += info->st_mtim.tv_nsec / APR_TIME_C(1000);
+#elif defined(HAVE_STRUCT_STAT_ST_MTIMENSEC)
+    finfo->mtime += info->st_mtimensec / APR_TIME_C(1000);
+#elif defined(HAVE_STRUCT_STAT_ST_MTIME_N)
+    finfo->ctime += info->st_mtime_n / APR_TIME_C(1000);
+#endif
+
+    apr_time_ansi_put(&finfo->ctime, info->st_ctime);
+#ifdef HAVE_STRUCT_STAT_ST_CTIM_TV_NSEC
+    finfo->ctime += info->st_ctim.tv_nsec / APR_TIME_C(1000);
+#elif defined(HAVE_STRUCT_STAT_ST_CTIMENSEC)
+    finfo->ctime += info->st_ctimensec / APR_TIME_C(1000);
+#elif defined(HAVE_STRUCT_STAT_ST_CTIME_N)
+    finfo->ctime += info->st_ctime_n / APR_TIME_C(1000);
+#endif
+
+#ifdef HAVE_STRUCT_STAT_ST_BLOCKS
+#ifdef DEV_BSIZE
+    finfo->csize = (apr_off_t)info->st_blocks * (apr_off_t)DEV_BSIZE;
+#else
+    finfo->csize = (apr_off_t)info->st_blocks * (apr_off_t)512;
+#endif
+    finfo->valid |= APR_FINFO_CSIZE;
+#endif
+}
+
+apr_status_t apr_file_info_get_locked(apr_finfo_t *finfo, apr_int32_t wanted,
+                                      apr_file_t *thefile)
+{
+
+    struct_stat info;
 
+    if (thefile->buffered) {
+        apr_status_t rv = apr_file_flush_locked(thefile);
+        if (rv != APR_SUCCESS)
+            return rv;
+    }
+
+    if (fstat(thefile->filedes, &info) == 0) {
+        finfo->pool = thefile->pool;
+        finfo->fname = thefile->fname;
+        fill_out_finfo(finfo, &info, wanted);
+        return (wanted & ~finfo->valid) ? APR_INCOMPLETE : APR_SUCCESS;
+    }
+    else {
+        return errno;
+    }
+}
+#endif
 
 APR_DECLARE(apr_status_t) apr_file_info_get(apr_finfo_t *finfo, apr_int32_t wanted, 
                                    apr_file_t *thefile)
@@ -130,6 +246,29 @@
     return APR_ENOTIMPL;
 }
 
+/* duplciated from dir_make_recurse.c */
+
+#define IS_SEP(c) (c == '/' || c == '\\')
+
+/* Remove trailing separators that don't affect the meaning of PATH. */
+static const char *path_canonicalize(const char *path, apr_pool_t *pool)
+{
+    /* At some point this could eliminate redundant components.  For
+     * now, it just makes sure there is no trailing slash. */
+    apr_size_t len = strlen(path);
+    apr_size_t orig_len = len;
+
+    while ((len > 0) && IS_SEP(path[len - 1])) {
+        len--;
+    }
+
+    if (len != orig_len) {
+        return apr_pstrndup(pool, path, len);
+    }
+    else {
+        return path;
+    }
+}
 
 APR_DECLARE(apr_status_t) apr_stat(apr_finfo_t *finfo, const char *fname,
                               apr_int32_t wanted, apr_pool_t *cont)
@@ -140,8 +279,10 @@
     finfo->protection = 0;
     finfo->filetype = APR_NOFILE;
     finfo->name = NULL;
-    rc = DosQueryPathInfo(fname, FIL_STANDARD, &fstatus, sizeof(fstatus));
-    
+
+    /* remove trailing / from any paths, otherwise DosQueryPathInfo will fail */
+    const char *newfname = path_canonicalize(fname, cont);
+    rc = DosQueryPathInfo(newfname, FIL_STANDARD, &fstatus, sizeof(fstatus));
     if (rc == 0) {
         FS3_to_finfo(finfo, &fstatus);
         finfo->fname = fname;
@@ -172,7 +313,12 @@
         return APR_FROM_OS_ERROR(rc);
     }
 
+#ifndef __INNOTEK_LIBC__
     return (wanted & ~finfo->valid) ? APR_INCOMPLETE : APR_SUCCESS;
+#else
+    return APR_SUCCESS;
+#endif
+
 }
 
 
diff -ur apr-1.6.5-o/file_io/os2/maperrorcode.c apr-1.6.5/file_io/os2/maperrorcode.c
--- apr-1.6.5-o/file_io/os2/maperrorcode.c	2006-08-03 20:25:30.000000000 +0930
+++ apr-1.6.5/file_io/os2/maperrorcode.c	2018-10-31 19:14:44.000000000 +1030
@@ -18,8 +18,8 @@
 #include "apr_arch_file_io.h"
 #include "apr_file_io.h"
 #include <errno.h>
-#include <string.h>
 #include "apr_errno.h"
+#include <string.h>
 
 static int errormap[][2] = {
     { NO_ERROR,                   APR_SUCCESS      },
@@ -37,7 +37,7 @@
     { ERROR_NEGATIVE_SEEK,        APR_ESPIPE       },
     { ERROR_NO_SIGNAL_SENT,       ESRCH            },
     { ERROR_NO_DATA,              APR_EAGAIN       },
-    { SOCEINTR,                 EINTR           },
+    { SOCEINTR,         	EINTR           },
     { SOCEWOULDBLOCK,           EWOULDBLOCK     },
     { SOCEINPROGRESS,           EINPROGRESS     },
     { SOCEALREADY,              EALREADY        },
@@ -70,7 +70,8 @@
     { SOCEHOSTDOWN,             EHOSTDOWN       },
     { SOCEHOSTUNREACH,          EHOSTUNREACH    },
     { SOCENOTEMPTY,             ENOTEMPTY       },
-    { SOCEPIPE,                 EPIPE           }
+    { SOCEPIPE,                 EPIPE           },
+    { SOCEFAULT,		EFAULT		}
 };
 
 #define MAPSIZE (sizeof(errormap)/sizeof(errormap[0]))
@@ -81,15 +82,13 @@
 
     if (err < APR_OS_START_SYSERR)
         return err;
-
     err -= APR_OS_START_SYSERR;
-
     for (index=0; index<MAPSIZE && errormap[index][0] != err; index++);
     
     if (index<MAPSIZE)
         rv = errormap[index][1];
     else
-        fprintf(stderr, "apr_canonical_error: Unknown OS/2 error code %d\n", err );
+        fprintf(stderr, "apr_canonical_error: Unknown OS/2 error code %d\n",err);
         
     return rv;
 }
diff -ur apr-1.6.5-o/file_io/os2/open.c apr-1.6.5/file_io/os2/open.c
--- apr-1.6.5-o/file_io/os2/open.c	2013-11-02 22:06:02.000000000 +1030
+++ apr-1.6.5/file_io/os2/open.c	2018-10-31 19:14:44.000000000 +1030
@@ -28,6 +28,59 @@
     return apr_file_close(file);
 }
 
+#ifdef __INNOTEK_LIBC__
+static apr_status_t file_cleanup(apr_file_t *file)
+{
+    apr_status_t rv = APR_SUCCESS;
+
+    if (close(file->filedes) == 0) {
+        file->filedes = -1;
+        if (file->flags & APR_DELONCLOSE) {
+            unlink(file->fname);
+        }
+#if APR_HAS_THREADS
+        if (file->mutex) {
+            rv = apr_thread_mutex_destroy(file->mutex);
+        }
+#endif
+    }
+    else {
+        /* Are there any error conditions other than EINTR or EBADF? */
+        rv = errno;
+    }
+#ifndef WAITIO_USES_POLL
+    if (file->pollset != NULL) {
+        int pollset_rv = apr_pollset_destroy(file->pollset);
+        /* If the file close failed, return its error value,
+         * not apr_pollset_destroy()'s.
+         */
+        if (rv == APR_SUCCESS) {
+            rv = pollset_rv;
+        }
+    }
+#endif /* !WAITIO_USES_POLL */
+    return rv;
+}
+
+apr_status_t apr_unix_file_cleanup(void *thefile)
+{
+    apr_file_t *file = thefile;
+    apr_status_t flush_rv = APR_SUCCESS, rv = APR_SUCCESS;
+
+    if (file->buffered) {
+        flush_rv = apr_file_flush(file);
+    }
+
+    rv = file_cleanup(file);
+
+    return rv != APR_SUCCESS ? rv : flush_rv;
+}
+
+apr_status_t apr_unix_child_file_cleanup(void *thefile)
+{
+    return file_cleanup(thefile);
+}
+#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)
@@ -36,6 +89,9 @@
     int mflags = OPEN_FLAGS_FAIL_ON_ERROR|OPEN_SHARE_DENYNONE|OPEN_FLAGS_NOINHERIT;
     int rv;
     ULONG action;
+    ULONG    CurMaxFH      = 0;          /* Current count of handles         */
+    LONG     ReqCount      = 0;          /* Number to adjust file handles    */
+
     apr_file_t *dafile = (apr_file_t *)apr_palloc(pool, sizeof(apr_file_t));
 
     if (flag & APR_FOPEN_NONBLOCK) {
@@ -89,7 +145,16 @@
     }
     
     rv = DosOpen(fname, &(dafile->filedes), &action, 0, 0, oflags, mflags, NULL);
-    
+
+    if (rv == ERROR_TOO_MANY_OPEN_FILES) {
+	rv = DosSetRelMaxFH(&ReqCount,     /* Using 0 here will return the       */
+                      &CurMaxFH);    /* current number of file handles     */
+	ReqCount      = 10L;         /* Want 10 more file handles         */
+	rv = DosSetRelMaxFH(&ReqCount,&CurMaxFH);     /* Change handle maximum */
+
+	rv = DosOpen(fname, &(dafile->filedes), &action, 0, 0, oflags, mflags, NULL);
+    }    
+
     if (rv == 0 && (flag & APR_FOPEN_APPEND)) {
         ULONG newptr;
         rv = DosSetFilePtr(dafile->filedes, 0, FILE_END, &newptr );
@@ -100,7 +165,7 @@
     
     if (rv != 0)
         return APR_FROM_OS_ERROR(rv);
-    
+   
     dafile->isopen = TRUE;
     dafile->fname = apr_pstrdup(pool, fname);
     dafile->filePtr = 0;
@@ -108,6 +173,8 @@
     dafile->dataRead = 0;
     dafile->direction = 0;
     dafile->pipe = FALSE;
+    dafile->ungetchar = -1;
+
 
     if (!(flag & APR_FOPEN_NOCLEANUP)) {
         apr_pool_cleanup_register(dafile->pool, dafile, apr_file_cleanup, apr_file_cleanup);
@@ -127,6 +194,12 @@
     if (file && file->isopen) {
         /* XXX: flush here is not mutex protected */
         status = apr_file_flush(file);
+
+	/* 2014-11-18 SHL ensure client sees ERROR_BROKEN_PIPE */
+        if (file->pipe == 1) {
+            DosCloseEventSem(file->pipeSem);
+            DosDisConnectNPipe(file->filedes);
+        }
         rc = DosClose(file->filedes);
     
         if (rc == 0) {
@@ -197,6 +270,7 @@
     (*file)->flags = flags;
     (*file)->pipe = FALSE;
     (*file)->buffered = (flags & APR_FOPEN_BUFFERED) > 0;
+    (*file)->ungetchar = -1;
 
     if ((*file)->buffered) {
         apr_status_t rv;
@@ -279,11 +353,9 @@
     ULONG state;
 
     rv = DosQueryFHState(thefile->filedes, &state);
-
     if (rv == 0 && (state & OPEN_FLAGS_NOINHERIT) != 0) {
         rv = DosSetFHState(thefile->filedes, state & ~OPEN_FLAGS_NOINHERIT);
     }
-
     return APR_FROM_OS_ERROR(rv);
 }
 
@@ -295,10 +367,14 @@
     ULONG state;
 
     rv = DosQueryFHState(thefile->filedes, &state);
-
     if (rv == 0 && (state & OPEN_FLAGS_NOINHERIT) == 0) {
-        rv = DosSetFHState(thefile->filedes, state | OPEN_FLAGS_NOINHERIT);
+/*        rv = DosSetFHState(thefile->filedes, state | OPEN_FLAGS_NOINHERIT);*/
     }
-
     return APR_FROM_OS_ERROR(rv);
 }
+
+APR_DECLARE(apr_status_t) apr_file_link(const char *from_path, 
+                                          const char *to_path)
+{
+    return APR_ENOTIMPL;;
+}
diff -ur apr-1.6.5-o/file_io/os2/pipe.c apr-1.6.5/file_io/os2/pipe.c
--- apr-1.6.5-o/file_io/os2/pipe.c	2016-03-25 11:58:12.000000000 +1030
+++ apr-1.6.5/file_io/os2/pipe.c	2018-10-31 19:14:44.000000000 +1030
@@ -31,9 +31,11 @@
     ULONG rc, action;
     static int id = 0;
     char pipename[50];
+    ULONG    CurMaxFH      = 0;          /* Current count of handles         */
+    LONG     ReqCount      = 0;          /* Number to adjust file handles    */
 
     sprintf(pipename, "/pipe/%d.%d", getpid(), id++);
-    rc = DosCreateNPipe(pipename, filedes, NP_ACCESS_INBOUND, NP_NOWAIT|1, 4096, 4096, 0);
+    rc = DosCreateNPipe(pipename, filedes, NP_ACCESS_INBOUND, NP_NOWAIT|0x01, 4096, 4096, 0);
 
     if (rc)
         return APR_FROM_OS_ERROR(rc);
@@ -49,6 +51,18 @@
                   OPEN_ACTION_OPEN_IF_EXISTS | OPEN_ACTION_FAIL_IF_NEW,
                   OPEN_ACCESS_WRITEONLY | OPEN_SHARE_DENYREADWRITE,
                   NULL);
+    if (rc == ERROR_TOO_MANY_OPEN_FILES) {
+	rc = DosSetRelMaxFH(&ReqCount,     /* Using 0 here will return the       */
+                      &CurMaxFH);    /* current number of file handles     */
+	ReqCount      = 10L;         /* Want 10 more file handles         */
+	rc = DosSetRelMaxFH(&ReqCount,&CurMaxFH);     /* Change handle maximum */
+
+	rc = DosOpen (pipename, filedes+1, &action, 0, FILE_NORMAL,
+                  OPEN_ACTION_OPEN_IF_EXISTS | OPEN_ACTION_FAIL_IF_NEW,
+                  OPEN_ACCESS_WRITEONLY | OPEN_SHARE_DENYREADWRITE,
+                  NULL);
+
+    }    
 
     if (rc) {
         DosClose(filedes[0]);
@@ -85,6 +99,7 @@
     (*in)->flags = 0;
     (*in)->pipe = 1;
     (*in)->timeout = -1;
+    (*in)->ungetchar = -1;
     (*in)->blocking = BLK_ON;
     apr_pool_cleanup_register(pool_in, *in, apr_file_cleanup,
             apr_pool_cleanup_null);
@@ -96,7 +111,8 @@
     (*out)->isopen = TRUE;
     (*out)->buffered = FALSE;
     (*out)->flags = 0;
-    (*out)->pipe = 1;
+    (*out)->pipe = 2;			// 2014-11-17 SHL mark as client pipe
+    (*out)->ungetchar = -1;
     (*out)->timeout = -1;
     (*out)->blocking = BLK_ON;
     apr_pool_cleanup_register(pool_out, *out, apr_file_cleanup,
@@ -173,23 +189,24 @@
 
 APR_DECLARE(apr_status_t) apr_file_pipe_timeout_set(apr_file_t *thepipe, apr_interval_time_t timeout)
 {
+    int rc = 0;
+
     if (thepipe->pipe == 1) {
         thepipe->timeout = timeout;
 
-        if (thepipe->timeout >= 0) {
-            if (thepipe->blocking != BLK_OFF) {
+        if ((thepipe->timeout >= 0) && (thepipe->blocking != BLK_OFF) ) {
                 thepipe->blocking = BLK_OFF;
-                return APR_FROM_OS_ERROR(DosSetNPHState(thepipe->filedes, NP_NOWAIT));
-            }
+            rc = DosSetNPHState(thepipe->filedes, NP_NOWAIT);
         }
-        else if (thepipe->timeout == -1) {
-            if (thepipe->blocking != BLK_ON) {
+        else if ( (thepipe->timeout == -1) && (thepipe->blocking != BLK_ON) ) {
                 thepipe->blocking = BLK_ON;
-                return APR_FROM_OS_ERROR(DosSetNPHState(thepipe->filedes, NP_WAIT));
-            }
-        }
+            rc = DosSetNPHState(thepipe->filedes, NP_WAIT);
     }
-    return APR_EINVAL;
+
+        return APR_FROM_OS_ERROR(rc);
+
+    } else return APR_EINVAL;
+
 }
 
 
@@ -216,6 +233,7 @@
     (*file)->pipe = 1;
     (*file)->blocking = BLK_UNKNOWN; /* app needs to make a timeout call */
     (*file)->timeout = -1;
+    (*file)->ungetchar = -1;
     (*file)->filedes = *thefile;
 
     if (register_cleanup) {
diff -ur apr-1.6.5-o/file_io/os2/readwrite.c apr-1.6.5/file_io/os2/readwrite.c
--- apr-1.6.5-o/file_io/os2/readwrite.c	2011-02-18 21:54:40.000000000 +1030
+++ apr-1.6.5/file_io/os2/readwrite.c	2018-12-30 13:28:56.000000000 +1030
@@ -24,20 +24,34 @@
 
 #include <malloc.h>
 
-APR_DECLARE(apr_status_t) apr_file_read(apr_file_t *thefile, void *buf, apr_size_t *nbytes)
+APR_DECLARE(apr_status_t) apr_file_read(apr_file_t *thefile, void *buf, apr_size_t *len)
 {
     ULONG rc = 0;
-    ULONG bytesread;
+    ULONG bytes_read = 0;
 
-    if (!thefile->isopen) {
-        *nbytes = 0;
-        return APR_EBADF;
+    if (*len <= 0) {
+        *len = 0;
+        return APR_SUCCESS;
     }
-
+#if 1
+    /* Handle the ungetchar if there is one */
+    /* copied from win32/readwrite.c */
+    if (thefile->ungetchar != -1) {
+        bytes_read = 1;
+        *(char *)buf = (char)thefile->ungetchar;
+        buf = (char *)buf + 1;
+        (*len)--;
+        thefile->ungetchar = -1;
+        if (*len == 0) {
+            *len = bytes_read;
+            return APR_SUCCESS;
+        }
+    }
+#endif
     if (thefile->buffered) {
         char *pos = (char *)buf;
         ULONG blocksize;
-        ULONG size = *nbytes;
+        ULONG size = *len;
 
         apr_thread_mutex_lock(thefile->mutex);
 
@@ -56,20 +70,20 @@
 
         while (rc == 0 && size > 0) {
             if (thefile->bufpos >= thefile->dataRead) {
-                ULONG bytesread;
+                ULONG bytes_read;
                 rc = DosRead(thefile->filedes, thefile->buffer,
-                             thefile->bufsize, &bytesread);
-
-                if (bytesread == 0) {
+                             thefile->bufsize, &bytes_read);
+                if (bytes_read == 0) {
                     if (rc == 0)
                         thefile->eof_hit = TRUE;
                     break;
                 }
-
-                thefile->dataRead = bytesread;
+		else {
+	                thefile->dataRead = bytes_read;
                 thefile->filePtr += thefile->dataRead;
                 thefile->bufpos = 0;
             }
+            }
 
             blocksize = size > thefile->dataRead - thefile->bufpos ? thefile->dataRead - thefile->bufpos : size;
             memcpy(pos, thefile->buffer + thefile->bufpos, blocksize);
@@ -78,40 +92,50 @@
             size -= blocksize;
         }
 
-        *nbytes = rc == 0 ? pos - (char *)buf : 0;
+        *len = rc == 0 ? pos - (char *)buf : 0;
         apr_thread_mutex_unlock(thefile->mutex);
 
-        if (*nbytes == 0 && rc == 0 && thefile->eof_hit) {
+        if (*len == 0 && rc == 0 && thefile->eof_hit) {
             return APR_EOF;
         }
 
         return APR_FROM_OS_ERROR(rc);
     } else {
-        if (thefile->pipe)
-            DosResetEventSem(thefile->pipeSem, &rc);
+        /* Unbuffered i/o */
+        apr_size_t nbytes;
 
-        rc = DosRead(thefile->filedes, buf, *nbytes, &bytesread);
-
-        if (rc == ERROR_NO_DATA && thefile->timeout != 0) {
-            int rcwait = DosWaitEventSem(thefile->pipeSem, thefile->timeout >= 0 ? thefile->timeout / 1000 : SEM_INDEFINITE_WAIT);
-
-            if (rcwait == 0) {
-                rc = DosRead(thefile->filedes, buf, *nbytes, &bytesread);
+        // 2014-11-11 SHL reworked to support ERROR_MORE_DATA etc.
+	for (;;) {
+	    int post_count;
+        if (thefile->pipe)
+		DosResetEventSem(thefile->pipeSem, &post_count);
+	    rc = DosRead(thefile->filedes, buf, *len, &nbytes);
+	    if (!thefile->pipe)
+		break;			// Blocking i/o - we are done
+	    if (rc == ERROR_MORE_DATA) {
+		// Buffer is full - caller will read more eventually
+		rc = NO_ERROR;
+		break;
             }
-            else if (rcwait == ERROR_TIMEOUT) {
-                *nbytes = 0;
+	    if (thefile->timeout == 0)
+		break;
+	    if (rc != ERROR_NO_DATA)
+		break;
+	    rc = DosWaitEventSem(thefile->pipeSem, thefile->timeout >= 0 ? thefile->timeout / 1000 : SEM_INDEFINITE_WAIT);
+	    if (rc == ERROR_TIMEOUT) {
+		*len = 0;
                 return APR_TIMEUP;
             }
-        }
+	} // for
 
         if (rc) {
-            *nbytes = 0;
+	    *len = 0;
             return APR_FROM_OS_ERROR(rc);
         }
 
-        *nbytes = bytesread;
+	*len = nbytes;
         
-        if (bytesread == 0) {
+	if (nbytes == 0) {
             thefile->eof_hit = TRUE;
             return APR_EOF;
         }
@@ -126,17 +150,14 @@
 {
     ULONG rc = 0;
     ULONG byteswritten;
-
     if (!thefile->isopen) {
         *nbytes = 0;
         return APR_EBADF;
     }
-
     if (thefile->buffered) {
         char *pos = (char *)buf;
         int blocksize;
         int size = *nbytes;
-
         apr_thread_mutex_lock(thefile->mutex);
 
         if ( thefile->direction == 0 ) {
@@ -147,40 +168,68 @@
             thefile->bufpos = thefile->dataRead = 0;
             thefile->direction = 1;
         }
-
         while (rc == 0 && size > 0) {
-            if (thefile->bufpos == thefile->bufsize) /* write buffer is full */
+	    if (thefile->bufpos == thefile->bufsize){ /* write buffer is full */
                 /* XXX bug; - rc is double-transformed os->apr below */
                 rc = apr_file_flush(thefile);
-
-            blocksize = size > thefile->bufsize - thefile->bufpos ? thefile->bufsize - thefile->bufpos : size;
+		}
+	    blocksize = size > thefile->bufsize - thefile->bufpos ? 
+	                       thefile->bufsize - thefile->bufpos : size;
             memcpy(thefile->buffer + thefile->bufpos, pos, blocksize);
             thefile->bufpos += blocksize;
             pos += blocksize;
             size -= blocksize;
         }
-
         apr_thread_mutex_unlock(thefile->mutex);
         return APR_FROM_OS_ERROR(rc);
     } else {
+/* new stuff */
+        void *pvBuf_safe = NULL;
+
+        /*
+         * Devices doesn't like getting high addresses.
+         */
+        if (isatty(thefile->filedes)
+            &&  (unsigned)buf >= 512*1024*1024)
+        {
+            if (*nbytes > 256)
+            {   /* use heap for large buffers */
+                pvBuf_safe = _lmalloc(*nbytes);
+                if (!pvBuf_safe)
+                {
+                    errno = ENOMEM;
+	            return APR_FROM_OS_ERROR(errno);
+                }
+                memcpy(pvBuf_safe, buf, *nbytes);
+                buf = pvBuf_safe;
+            }
+            else
+            {   /* use stack for small buffers */
+                pvBuf_safe = alloca(*nbytes);
+                memcpy(pvBuf_safe, buf, *nbytes);
+                buf = pvBuf_safe;
+                pvBuf_safe = NULL;
+            }
+        }
+/* end new stuff */
         if (thefile->flags & APR_FOPEN_APPEND) {
             FILELOCK all = { 0, 0x7fffffff };
             ULONG newpos;
             rc = DosSetFileLocks(thefile->filedes, NULL, &all, -1, 0);
-
             if (rc == 0) {
                 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);
         }
-
+/* new stuff */
+        if (pvBuf_safe)
+            free(pvBuf_safe);
+/* end new stuff */
         if (rc) {
             *nbytes = 0;
             return APR_FROM_OS_ERROR(rc);
@@ -193,92 +242,82 @@
 
 
 
-#ifdef HAVE_WRITEV
-
 APR_DECLARE(apr_status_t) apr_file_writev(apr_file_t *thefile, const struct iovec *vec, apr_size_t nvec, apr_size_t *nbytes)
 {
-    int bytes;
+    apr_status_t rv = APR_SUCCESS;
+    apr_size_t i;
+    apr_size_t bwrote = 0;
+    char *buf;
 
-    if (thefile->buffered) {
-        apr_status_t rv = apr_file_flush(thefile);
+    *nbytes = 0;
+    for (i = 0; i < nvec; i++) {
+	buf = vec[i].iov_base;
+	bwrote = vec[i].iov_len;
+	rv = apr_file_write(thefile, buf, &bwrote);
+	*nbytes += bwrote;
         if (rv != APR_SUCCESS) {
-            return rv;
+	    break;
         }
     }
-
-    if ((bytes = writev(thefile->filedes, vec, nvec)) < 0) {
-        *nbytes = 0;
-        return errno;
-    }
-    else {
-        *nbytes = bytes;
-        return APR_SUCCESS;
+    return rv;
     }
-}
-#endif
 
 
 
 APR_DECLARE(apr_status_t) apr_file_putc(char ch, apr_file_t *thefile)
 {
-    ULONG rc;
-    ULONG byteswritten;
+    apr_size_t nbytes = 1;
 
-    if (!thefile->isopen) {
-        return APR_EBADF;
+    return apr_file_write(thefile, &ch, &nbytes);
     }
 
-    rc = DosWrite(thefile->filedes, &ch, 1, &byteswritten);
 
-    if (rc) {
-        return APR_FROM_OS_ERROR(rc);
-    }
     
-    return APR_SUCCESS;
-}
-
-
-
 APR_DECLARE(apr_status_t) apr_file_ungetc(char ch, apr_file_t *thefile)
 {
-    apr_off_t offset = -1;
-    return apr_file_seek(thefile, APR_CUR, &offset);
+    thefile->ungetchar = (unsigned char)ch;
+    return APR_SUCCESS; 
 }
 
 
 APR_DECLARE(apr_status_t) apr_file_getc(char *ch, apr_file_t *thefile)
 {
-    ULONG rc;
-    apr_size_t bytesread;
+    apr_size_t nbytes = 1;
+
+    return apr_file_read(thefile, ch, &nbytes);
 
-    if (!thefile->isopen) {
-        return APR_EBADF;
     }
 
-    bytesread = 1;
-    rc = apr_file_read(thefile, ch, &bytesread);
 
-    if (rc) {
-        return rc;
-    }
     
-    if (bytesread == 0) {
-        thefile->eof_hit = TRUE;
-        return APR_EOF;
+APR_DECLARE(apr_status_t) apr_file_puts(const char *str, apr_file_t *thefile)
+{
+    return apr_file_write_full(thefile, str, strlen(str), NULL);
     }
     
-    return APR_SUCCESS;
-}
-
 
 
-APR_DECLARE(apr_status_t) apr_file_puts(const char *str, apr_file_t *thefile)
+apr_status_t apr_file_flush_locked(apr_file_t *thefile)
 {
-    apr_size_t len;
+    apr_status_t rv = APR_SUCCESS;
+
+    if (thefile->direction == 1 && thefile->bufpos) {
+	apr_ssize_t written;
 
-    len = strlen(str);
-    return apr_file_write(thefile, str, &len); 
+	do {
+	    written = write(thefile->filedes, thefile->buffer, thefile->bufpos);
+	} while (written == -1 && errno == EINTR);
+	if (written == -1) {
+	    rv = errno;
+	} else {
+	    thefile->filePtr += written;
+	    thefile->bufpos = 0;
 }
+    }
+
+    return rv;
+}
+
 
 
 APR_DECLARE(apr_status_t) apr_file_flush(apr_file_t *thefile)
@@ -349,10 +388,61 @@
 }
 
 
+/* 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, ...)
+{
     int cc;
     va_list ap;
     char *buf;
@@ -369,7 +459,7 @@
     free(buf);
     return (cc == APR_SUCCESS) ? len : -1;
 }
-
+#endif
 
 
 apr_status_t apr_file_check_read(apr_file_t *fd)
diff -ur apr-1.6.5-o/file_io/os2/seek.c apr-1.6.5/file_io/os2/seek.c
--- apr-1.6.5-o/file_io/os2/seek.c	2006-08-03 20:25:30.000000000 +0930
+++ apr-1.6.5/file_io/os2/seek.c	2018-10-31 19:14:44.000000000 +1030
@@ -55,6 +55,7 @@
 
 APR_DECLARE(apr_status_t) apr_file_seek(apr_file_t *thefile, apr_seek_where_t where, apr_off_t *offset)
 {
+#ifndef __KLIBC__
     if (!thefile->isopen) {
         return APR_EBADF;
     }
@@ -100,6 +101,51 @@
 
         return APR_FROM_OS_ERROR(DosSetFilePtr(thefile->filedes, *offset, where, (ULONG *)offset));
     }
+#else
+    apr_off_t rv;
+
+    thefile->eof_hit = 0;
+
+    if (thefile->buffered) {
+        int rc = EINVAL;
+        apr_finfo_t finfo;
+
+        file_lock(thefile);
+
+        switch (where) {
+        case APR_SET:
+            rc = setptr(thefile, *offset);
+            break;
+
+        case APR_CUR:
+            rc = setptr(thefile, thefile->filePtr - thefile->dataRead + thefile->bufpos + *offset);
+            break;
+
+        case APR_END:
+            rc = apr_file_info_get_locked(&finfo, APR_FINFO_SIZE, thefile);
+            if (rc == APR_SUCCESS)
+                rc = setptr(thefile, finfo.size + *offset);
+            break;
+        }
+
+        *offset = thefile->filePtr - thefile->dataRead + thefile->bufpos;
+
+        file_unlock(thefile);
+
+        return rc;
+    }
+    else {
+        rv = lseek(thefile->filedes, *offset, where);
+        if (rv == -1) {
+            *offset = -1;
+            return errno;
+        }
+        else {
+            *offset = rv;
+            return APR_SUCCESS;
+        }
+    }
+#endif
 }
 
 
diff -ur apr-1.6.5-o/file_io/unix/fileacc.c apr-1.6.5/file_io/unix/fileacc.c
--- apr-1.6.5-o/file_io/unix/fileacc.c	2006-08-03 20:25:30.000000000 +0930
+++ apr-1.6.5/file_io/unix/fileacc.c	2018-10-31 19:14:44.000000000 +1030
@@ -31,7 +31,7 @@
     return f->flags;
 }
 
-#if !defined(OS2) && !defined(WIN32)
+#if (!defined(OS2) && !defined(WIN32)) || defined (__KLIBC__)
 mode_t apr_unix_perms2mode(apr_fileperms_t perms)
 {
     mode_t mode = 0;
diff -ur apr-1.6.5-o/file_io/unix/mktemp.c apr-1.6.5/file_io/unix/mktemp.c
--- apr-1.6.5-o/file_io/unix/mktemp.c	2014-02-13 05:52:46.000000000 +1030
+++ apr-1.6.5/file_io/unix/mktemp.c	2018-10-31 19:14:44.000000000 +1030
@@ -81,7 +81,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
@@ -189,6 +191,11 @@
 #else
     fd = mkstemp(template);
 #endif
+
+#ifdef __INNOTEK_LIBC__
+          setmode(fd, O_BINARY);
+#endif 
+
     
     if (fd == -1) {
         return errno;
diff -ur apr-1.6.5-o/include/apr_errno.h apr-1.6.5/include/apr_errno.h
--- apr-1.6.5-o/include/apr_errno.h	2016-03-04 02:41:16.000000000 +1030
+++ apr-1.6.5/include/apr_errno.h	2018-10-31 19:14:44.000000000 +1030
@@ -853,7 +853,7 @@
 
 #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 INCL_DOSERRORS
 #define INCL_DOS
 
@@ -934,7 +934,7 @@
                 || (s) == APR_OS_START_SYSERR + ERROR_ACCESS_DENIED)
 #define APR_STATUS_IS_ENAMETOOLONG(s)   ((s) == APR_ENAMETOOLONG \
                 || (s) == APR_OS_START_SYSERR + ERROR_FILENAME_EXCED_RANGE \
-                || (s) == APR_OS_START_SYSERR + SOCENAMETOOLONG)
+                || (s) == APR_OS_START_SYSERR + SOCENAMETOOLONG  || (s) == SOCENAMETOOLONG)
 #define APR_STATUS_IS_ENOENT(s)         ((s) == APR_ENOENT \
                 || (s) == APR_OS_START_SYSERR + ERROR_FILE_NOT_FOUND \
                 || (s) == APR_OS_START_SYSERR + ERROR_PATH_NOT_FOUND \
@@ -954,9 +954,12 @@
                 || (s) == APR_OS_START_SYSERR + ERROR_INVALID_FUNCTION)
 #define APR_STATUS_IS_ESPIPE(s)         ((s) == APR_ESPIPE \
                 || (s) == APR_OS_START_SYSERR + ERROR_NEGATIVE_SEEK)
+/* 2015-02-06 SHL SHL Add more */
 #define APR_STATUS_IS_EAGAIN(s)         ((s) == APR_EAGAIN \
                 || (s) == APR_OS_START_SYSERR + ERROR_NO_DATA \
                 || (s) == APR_OS_START_SYSERR + SOCEWOULDBLOCK \
+                || (s) == APR_OS_START_SYSERR + ENOBUFS \
+                || (s) == APR_OS_START_SYSERR + SOCENOBUFS \
                 || (s) == APR_OS_START_SYSERR + ERROR_LOCK_VIOLATION)
 #define APR_STATUS_IS_EINTR(s)          ((s) == APR_EINTR \
                 || (s) == APR_OS_START_SYSERR + SOCEINTR)
diff -ur apr-1.6.5-o/include/apr_network_io.h apr-1.6.5/include/apr_network_io.h
--- apr-1.6.5-o/include/apr_network_io.h	2016-03-03 22:40:40.000000000 +1030
+++ apr-1.6.5/include/apr_network_io.h	2018-10-31 19:14:44.000000000 +1030
@@ -21,6 +21,11 @@
  * @brief APR Network library
  */
 
+#ifdef __KLIBC__
+/* we don't want to include nerror.h from types.h - define this so it doesn't get included */
+#define _NERROR_H_ 1
+#endif
+
 #include "apr.h"
 #include "apr_pools.h"
 #include "apr_file_io.h"
diff -ur apr-1.6.5-o/include/apr_poll.h apr-1.6.5/include/apr_poll.h
--- apr-1.6.5-o/include/apr_poll.h	2016-03-25 11:49:34.000000000 +1030
+++ apr-1.6.5/include/apr_poll.h	2018-10-31 19:14:44.000000000 +1030
@@ -279,8 +279,9 @@
  * @remark If the pollset was not created with APR_POLLSET_WAKEABLE the
  *         return value is APR_EINIT.
  */
+#ifndef __OS2__
 APR_DECLARE(apr_status_t) apr_pollset_wakeup(apr_pollset_t *pollset);
-
+#endif
 /**
  * Poll the descriptors in the poll structure
  * @param aprset The poll structure we will be using. 
@@ -305,14 +306,17 @@
  * Return a printable representation of the pollset method.
  * @param pollset The pollset to use
  */
+#ifndef __OS2__
 APR_DECLARE(const char *) apr_pollset_method_name(apr_pollset_t *pollset);
+#endif
 
 /**
  * Return a printable representation of the default pollset method
  * (APR_POLLSET_DEFAULT).
  */
+#ifndef __OS2__
 APR_DECLARE(const char *) apr_poll_method_defname(void);
-
+#endif
 /** Opaque structure used for pollcb API */
 typedef struct apr_pollcb_t apr_pollcb_t;
 
@@ -352,12 +356,13 @@
  * @remark Pollcb is only supported on some platforms; the apr_pollcb_create_ex()
  *         call will fail with APR_ENOTIMPL on platforms where it is not supported.
  */
+#ifndef __OS2__
 APR_DECLARE(apr_status_t) apr_pollcb_create_ex(apr_pollcb_t **pollcb,
                                                apr_uint32_t size,
                                                apr_pool_t *p,
                                                apr_uint32_t flags,
                                                apr_pollset_method_e method);
-
+#endif
 /**
  * Add a socket or file descriptor to a pollcb
  * @param pollcb The pollcb to which to add the descriptor
diff -ur apr-1.6.5-o/include/apr_portable.h apr-1.6.5/include/apr_portable.h
--- apr-1.6.5-o/include/apr_portable.h	2018-08-26 19:35:36.000000000 +0930
+++ apr-1.6.5/include/apr_portable.h	2018-10-31 19:14:44.000000000 +1030
@@ -406,7 +406,7 @@
  * to by sock will be reused and updated with the given socket.
  * @param sock The pool to use.
  * @param thesock The socket to convert to.
- * @param cont The socket we are converting to an apr type.
+ * @param cont The pool to use.
  * @remark If it is a true socket, it is best to call apr_os_sock_make()
  *         and provide APR with more information about the socket.
  */
@@ -415,6 +415,14 @@
                                           apr_pool_t *cont);
 
 /**
+ * Deregister socket cleanup function for socket.
+ * Ensures sockets not owned by process are not closed during pool cleanup.
+ * Supports use case where httpd mpm passes listen sockets to child process.
+ * @param sock The socket to have cleanup deregistered.
+ */
+APR_DECLARE(void) apr_sock_cleanup_kill(apr_socket_t *sock);
+
+/**
  * Create a socket from an existing descriptor and local and remote
  * socket addresses.
  * @param apr_sock The new socket that has been set up
diff -ur apr-1.6.5-o/include/apr_support.h apr-1.6.5/include/apr_support.h
--- apr-1.6.5-o/include/apr_support.h	2006-08-03 20:25:30.000000000 +0930
+++ apr-1.6.5/include/apr_support.h	2018-10-31 19:14:44.000000000 +1030
@@ -45,7 +45,7 @@
  *        otherwise wait for data to be able to be written. 
  * @return APR_TIMEUP if we run out of time.
  */
-apr_status_t apr_wait_for_io_or_timeout(apr_file_t *f, apr_socket_t *s,
+APR_DECLARE(apr_status_t) apr_wait_for_io_or_timeout(apr_file_t *f, apr_socket_t *s,
                                         int for_read);
 
 /** @} */
Only in apr-1.6.5/include: apr.h
diff -ur apr-1.6.5-o/include/apr.h.in apr-1.6.5/include/apr.h.in
--- apr-1.6.5-o/include/apr.h.in	2017-05-24 02:06:02.000000000 +0930
+++ apr-1.6.5/include/apr.h.in	2018-10-31 19:14:44.000000000 +1030
@@ -185,6 +185,10 @@
 #ifdef OS2
 #define INCL_DOS
 #define INCL_DOSERRORS
+#define INCL_EXAPIS
+#ifdef __KLIBC__
+#include <os2safe.h>
+#endif
 #include <os2.h>
 #endif
 
diff -ur apr-1.6.5-o/include/arch/os2/apr_arch_file_io.h apr-1.6.5/include/arch/os2/apr_arch_file_io.h
--- apr-1.6.5-o/include/arch/os2/apr_arch_file_io.h	2011-02-18 21:54:40.000000000 +1030
+++ apr-1.6.5/include/arch/os2/apr_arch_file_io.h	2018-10-31 19:14:44.000000000 +1030
@@ -25,11 +25,17 @@
 #include "apr_errno.h"
 #include "apr_poll.h"
 
+#ifdef __KLIBC__
+#include <sys/stat.h>
+#endif
+
 /* We have an implementation of mkstemp but it's not very multi-threading 
  * friendly & is part of the POSIX emulation rather than native so don't
  * use it.
  */
+#ifndef __INNOTEK_LIBC__x
 #undef HAVE_MKSTEMP
+#endif
 
 #define APR_FILE_DEFAULT_BUFSIZE 4096
 #define APR_FILE_BUFSIZE APR_FILE_DEFAULT_BUFSIZE
@@ -37,25 +43,32 @@
 struct apr_file_t {
     apr_pool_t *pool;
     HFILE filedes;
+    int pipe;
+    HEV pipeSem;
+    int timeout;
+    apr_int32_t flags;
+
+    /* File specific info */
     char * fname;
     int isopen;
-    int buffered;
     int eof_hit;
-    apr_int32_t flags;
-    int timeout;
-    int pipe;
-    HEV pipeSem;
+    int buffered;
+    int ungetchar;    /* Last char provided by an unget op. (-1 = no char)*/
     enum { BLK_UNKNOWN, BLK_OFF, BLK_ON } blocking;
 
     /* Stuff for buffered mode */
     char *buffer;
-    apr_size_t bufsize;        /* Read/Write position in buffer             */
     apr_size_t bufpos;         /* Read/Write position in buffer             */
-    unsigned long dataRead;    /* amount of valid data read into buffer     */
+    apr_size_t bufsize;        /* Read/Write position in buffer             */
+    apr_size_t dataRead;    /* amount of valid data read into buffer     */
     int direction;             /* buffer being used for 0 = read, 1 = write */
-    unsigned long filePtr;     /* position in file of handle                */
+    apr_off_t filePtr;     /* position in file of handle                */
     apr_thread_mutex_t *mutex; /* mutex semaphore, must be owned to access
                                   the above fields                          */
+#ifndef WAITIO_USES_POLL
+    /* if there is a timeout set, then this pollset is used */
+    apr_pollset_t *pollset;
+#endif
 };
 
 struct apr_dir_t {
@@ -66,6 +79,26 @@
     int validentry;
 };
 
+#ifdef __INNOTEK_LIBC__
+apr_status_t apr_unix_file_cleanup(void *);
+apr_status_t apr_unix_child_file_cleanup(void *);
+#if APR_HAS_THREADS
+#define file_lock(f)   do { \
+                           if ((f)->mutex) \
+                               apr_thread_mutex_lock((f)->mutex); \
+                       } while (0)
+#define file_unlock(f) do { \
+                           if ((f)->mutex) \
+                               apr_thread_mutex_unlock((f)->mutex); \
+                       } while (0)
+#else
+#define file_lock(f)   do {} while (0)
+#define file_unlock(f) do {} while (0)
+#endif
+typedef struct stat struct_stat;
+#endif
+
+
 apr_status_t apr_file_cleanup(void *);
 apr_status_t apr_os2_time_to_apr_time(apr_time_t *result, FDATE os2date, 
                                       FTIME os2time);
@@ -81,6 +114,10 @@
 apr_status_t filepath_drive_get(char **rootpath, char drive, 
                                 apr_int32_t flags, apr_pool_t *p);
 apr_status_t filepath_root_case(char **rootpath, char *root, apr_pool_t *p);
-
+#ifdef __KLIBC__
+apr_status_t apr_file_flush_locked(apr_file_t *thefile);
+apr_status_t apr_file_info_get_locked(apr_finfo_t *finfo, apr_int32_t wanted,
+                                      apr_file_t *thefile);
+#endif
 #endif  /* ! FILE_IO_H */
 
diff -ur apr-1.6.5-o/include/arch/os2/apr_arch_os2calls.h apr-1.6.5/include/arch/os2/apr_arch_os2calls.h
--- apr-1.6.5-o/include/arch/os2/apr_arch_os2calls.h	2006-08-03 20:25:30.000000000 +0930
+++ apr-1.6.5/include/arch/os2/apr_arch_os2calls.h	2018-10-31 19:14:44.000000000 +1030
@@ -14,10 +14,14 @@
  * limitations under the License.
  */
 
+#ifndef APR_ARCH_OS2CALLS_H
+#define APR_ARCH_OS2CALLS_H
+#warning xxx
 #include "apr_errno.h"
 #include <sys/types.h>
 #include <sys/socket.h>
 
+//#ifdef TCPV40HDRS
 extern int (*apr_os2_socket)(int, int, int);
 extern int (*apr_os2_select)(int *, int, int, int, long);
 extern int (*apr_os2_sock_errno)();
@@ -57,3 +61,5 @@
 #define writev apr_os2_writev
 #define sendto apr_os2_sendto
 #define recvfrom apr_os2_recvfrom
+//#endif
+#endif /* !defined APR_ARCH_OS2CALLS_H */
diff -ur apr-1.6.5-o/include/arch/os2/apr_arch_proc_mutex.h apr-1.6.5/include/arch/os2/apr_arch_proc_mutex.h
--- apr-1.6.5-o/include/arch/os2/apr_arch_proc_mutex.h	2006-08-03 20:25:30.000000000 +0930
+++ apr-1.6.5/include/arch/os2/apr_arch_proc_mutex.h	2018-10-31 19:14:44.000000000 +1030
@@ -26,6 +26,5 @@
     TID owner;
     int lock_count;
 };
-
 #endif  /* PROC_MUTEX_H */
 
diff -ur apr-1.6.5-o/include/arch/os2/apr_arch_threadproc.h apr-1.6.5/include/arch/os2/apr_arch_threadproc.h
--- apr-1.6.5-o/include/arch/os2/apr_arch_threadproc.h	2006-08-03 20:25:30.000000000 +0930
+++ apr-1.6.5/include/arch/os2/apr_arch_threadproc.h	2018-10-31 19:14:44.000000000 +1030
@@ -16,6 +16,7 @@
 
 #include "apr_thread_proc.h"
 #include "apr_file_io.h"
+#include <pthread.h>
 
 #ifndef THREAD_PROC_H
 #define THREAD_PROC_H
@@ -34,9 +35,10 @@
 struct apr_thread_t {
     apr_pool_t *pool;
     struct apr_threadattr_t *attr;
+    pthread_t *td;
     unsigned long tid;
-    apr_thread_start_t func;
     void *data;
+    apr_thread_start_t func;
     apr_status_t exitval;
 };
 
diff -ur apr-1.6.5-o/include/arch/unix/apr_arch_poll_private.h apr-1.6.5/include/arch/unix/apr_arch_poll_private.h
--- apr-1.6.5-o/include/arch/unix/apr_arch_poll_private.h	2017-09-12 00:53:22.000000000 +0930
+++ apr-1.6.5/include/arch/unix/apr_arch_poll_private.h	2018-10-31 19:14:44.000000000 +1030
@@ -17,6 +17,7 @@
 #ifndef APR_ARCH_POLL_PRIVATE_H
 #define APR_ARCH_POLL_PRIVATE_H
 
+#ifndef __KLIBC__
 #if HAVE_POLL_H
 #include <poll.h>
 #endif
@@ -24,6 +25,7 @@
 #if HAVE_SYS_POLL_H
 #include <sys/poll.h>
 #endif
+#endif
 
 #ifdef HAVE_PORT_CREATE
 #include <port.h>
Only in apr-1.6.5/include/arch/unix: apr_private.h
Only in apr-1.6.5/include/private: apr_escape_test_char.h
diff -ur apr-1.6.5-o/locks/os2/proc_mutex.c apr-1.6.5/locks/os2/proc_mutex.c
--- apr-1.6.5-o/locks/os2/proc_mutex.c	2017-06-02 08:12:00.000000000 +0930
+++ apr-1.6.5/locks/os2/proc_mutex.c	2018-10-31 19:14:44.000000000 +1030
@@ -85,9 +85,11 @@
     ULONG rc;
     char *semname;
 
+#if 0
     if (mech != APR_LOCK_DEFAULT) {
         return APR_ENOTIMPL;
     }
+#endif
 
     new = (apr_proc_mutex_t *)apr_palloc(pool, sizeof(apr_proc_mutex_t));
     new->pool       = pool;
@@ -120,6 +122,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;
diff -ur apr-1.6.5-o/locks/os2/thread_rwlock.c apr-1.6.5/locks/os2/thread_rwlock.c
--- apr-1.6.5-o/locks/os2/thread_rwlock.c	2006-08-03 20:25:30.000000000 +0930
+++ apr-1.6.5/locks/os2/thread_rwlock.c	2018-10-31 19:14:44.000000000 +1030
@@ -118,6 +118,7 @@
 
         if (rc)
             DosReleaseMutexSem(rwlock->write_lock);
+
     }
 
     return APR_FROM_OS_ERROR(rc);
diff -ur apr-1.6.5-o/memory/unix/apr_pools.c apr-1.6.5/memory/unix/apr_pools.c
--- apr-1.6.5-o/memory/unix/apr_pools.c	2018-04-05 02:11:28.000000000 +0930
+++ apr-1.6.5/memory/unix/apr_pools.c	2018-12-26 19:22:20.000000000 +1030
@@ -407,6 +407,8 @@
 #elif APR_ALLOCATOR_USES_MMAP
     if ((node = mmap(NULL, size, PROT_READ|PROT_WRITE,
                      MAP_PRIVATE|MAP_ANON, -1, 0)) == MAP_FAILED)
+#elif defined(__KLIBC__) /* must use _lmalloc here or calls to DosReadQueue fail */
+    if ((node = _lmalloc(size)) == NULL)
 #else
     if ((node = malloc(size)) == NULL)
 #endif
@@ -971,7 +973,8 @@
     }
 
     *active->ref = NULL;
-    allocator_free(pool->allocator, active->next);
+    if (active->next)
+        allocator_free(pool->allocator, active->next);
     active->next = active;
     active->ref = &active->next;
 
diff -ur apr-1.6.5-o/misc/unix/errorcodes.c apr-1.6.5/misc/unix/errorcodes.c
--- apr-1.6.5-o/misc/unix/errorcodes.c	2018-08-30 12:19:36.000000000 +0930
+++ apr-1.6.5/misc/unix/errorcodes.c	2018-10-31 19:14:44.000000000 +1030
@@ -145,9 +145,8 @@
 }
 
 
-#ifdef OS2
+#if defined(OS2) 
 #include <ctype.h>
-
 int apr_canonical_error(apr_status_t err);
 
 static char *apr_os_strerror(char* buf, apr_size_t bufsize, int err)
diff -ur apr-1.6.5-o/misc/unix/rand.c apr-1.6.5/misc/unix/rand.c
--- apr-1.6.5-o/misc/unix/rand.c	2007-07-04 19:31:04.000000000 +0930
+++ apr-1.6.5/misc/unix/rand.c	2018-10-31 19:14:44.000000000 +1030
@@ -122,7 +122,7 @@
     
     close(fd);
 #elif defined(OS2)
-    static UCHAR randbyte();
+    UCHAR randbyte();
     unsigned int idx;
 
     for (idx=0; idx<length; idx++)
diff -ur apr-1.6.5-o/misc/unix/randbyte_os2.inc apr-1.6.5/misc/unix/randbyte_os2.inc
--- apr-1.6.5-o/misc/unix/randbyte_os2.inc	2006-08-03 20:25:30.000000000 +0930
+++ apr-1.6.5/misc/unix/randbyte_os2.inc	2018-10-31 19:14:44.000000000 +1030
@@ -14,6 +14,7 @@
  * limitations under the License.
  */
 
+#ifndef __KLIBC__ /* KLIBC has a random() function - use it */
 /* The high resolution timer API provides access to the hardware timer 
  * running at around 1.1MHz. The amount this changes in a time slice is
  * varies randomly due to system events, hardware interrupts etc
@@ -62,8 +63,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 +88,7 @@
     CPUUTIL util;
     int c;
 
+#ifndef __INNOTEK_LIBC__
     if (hDoscalls == 0) {
         char failed_module[20];
         ULONG rc;
@@ -111,13 +115,28 @@
             DosPerfSysCall = NULL;
         }
     }
-
+#endif
     return byte;
 }
 
 
 
-static UCHAR randbyte()
+UCHAR randbyte()
 {
     return randbyte_hrtimer() ^ randbyte_sysinfo() ^ randbyte_perf();
 }
+#else /* __KLIBC__ */
+UCHAR randbyte()
+{
+    int c;
+    UCHAR byte;
+    ULONG ulrandom;
+    ulrandom = random();
+     
+    for (c = 0; c < sizeof(ulrandom); c++) {
+        byte ^= ((UCHAR *)&ulrandom)[c];
+    }
+
+    return byte;
+}
+#endif
diff -ur apr-1.6.5-o/misc/unix/start.c apr-1.6.5/misc/unix/start.c
--- apr-1.6.5-o/misc/unix/start.c	2006-08-03 20:25:30.000000000 +0930
+++ apr-1.6.5/misc/unix/start.c	2018-10-31 19:14:44.000000000 +1030
@@ -23,7 +23,6 @@
 #include "apr_arch_proc_mutex.h" /* for apr_proc_mutex_unix_setup_lock() */
 #include "apr_arch_internal_time.h"
 
-
 APR_DECLARE(apr_status_t) apr_app_initialize(int *argc, 
                                              const char * const * *argv, 
                                              const char * const * *env)
Only in apr-1.6.5: Makefile
diff -ur apr-1.6.5-o/network_io/os2/os2calls.c apr-1.6.5/network_io/os2/os2calls.c
--- apr-1.6.5-o/network_io/os2/os2calls.c	2006-08-03 20:25:30.000000000 +0930
+++ apr-1.6.5/network_io/os2/os2calls.c	2018-10-31 19:14:44.000000000 +1030
@@ -44,6 +44,7 @@
 
 static HMODULE hSO32DLL;
 
+#ifdef TCPV40HDRS
 static int os2_fn_link()
 {
     DosEnterCritSec(); /* Stop two threads doing this at the same time */
@@ -90,7 +91,7 @@
             rc = DosQueryProcAddr(hSO32DLL, 0, "LISTEN", &apr_os2_listen);
 
         if (!rc)
-            rc = DosQueryProcAddr(hSO32DLL, 0, "RECV", &apr_os2_recv);
+            rc = DosQueryProcAddr(hSO32DLL, 0, "RECV", (PFN *) &apr_os2_recv);
 
         if (!rc)
             rc = DosQueryProcAddr(hSO32DLL, 0, "SEND", &apr_os2_send);
@@ -120,9 +121,86 @@
     DosExitCritSec();
     return APR_SUCCESS;
 }
+#else
+static HMODULE hTCPIP32;
 
+static int os2_fn_link()
+{
+    DosEnterCritSec(); /* Stop two threads doing this at the same time */
+
+    if (apr_os2_socket == os2_socket_init) {
+        ULONG rc;
+        char errorstr[200];
+
+        rc = DosLoadModule(errorstr, sizeof(errorstr), "TCPIP32", &hTCPIP32);
+
+        if (rc)
+            return APR_OS2_STATUS(rc);
+
+        rc = DosQueryProcAddr(hTCPIP32, 0, "SOCKET", &apr_os2_socket);
+
+        if (!rc)
+            rc = DosQueryProcAddr(hTCPIP32, 0, "SELECT", &apr_os2_select);
+
+        if (!rc)
+            rc = DosQueryProcAddr(hTCPIP32, 0, "SOCK_ERRNO", &apr_os2_sock_errno);
+
+        if (!rc)
+            rc = DosQueryProcAddr(hTCPIP32, 0, "ACCEPT", &apr_os2_accept);
+
+        if (!rc)
+            rc = DosQueryProcAddr(hTCPIP32, 0, "BIND", &apr_os2_bind);
+
+        if (!rc)
+            rc = DosQueryProcAddr(hTCPIP32, 0, "CONNECT", &apr_os2_connect);
+
+        if (!rc)
+            rc = DosQueryProcAddr(hTCPIP32, 0, "GETPEERNAME", &apr_os2_getpeername);
+
+        if (!rc)
+            rc = DosQueryProcAddr(hTCPIP32, 0, "GETSOCKNAME", &apr_os2_getsockname);
+
+        if (!rc)
+            rc = DosQueryProcAddr(hTCPIP32, 0, "GETSOCKOPT", &apr_os2_getsockopt);
+
+        if (!rc)
+            rc = DosQueryProcAddr(hTCPIP32, 0, "IOCTL", &apr_os2_ioctl);
+
+        if (!rc)
+            rc = DosQueryProcAddr(hTCPIP32, 0, "LISTEN", &apr_os2_listen);
+
+        if (!rc)
+            rc = DosQueryProcAddr(hTCPIP32, 0, "RECV", &apr_os2_recv);
 
+        if (!rc)
+            rc = DosQueryProcAddr(hTCPIP32, 0, "SEND", &apr_os2_send);
+
+        if (!rc)
+            rc = DosQueryProcAddr(hTCPIP32, 0, "SETSOCKOPT", &apr_os2_setsockopt);
+
+        if (!rc)
+            rc = DosQueryProcAddr(hTCPIP32, 0, "SHUTDOWN", &apr_os2_shutdown);
+
+        if (!rc)
+            rc = DosQueryProcAddr(hTCPIP32, 0, "SOCLOSE", &apr_os2_soclose);
 
+        if (!rc)
+            rc = DosQueryProcAddr(hTCPIP32, 0, "WRITEV", &apr_os2_writev);
+
+        if (!rc)
+            rc = DosQueryProcAddr(hTCPIP32, 0, "SENDTO", &apr_os2_sendto);
+
+        if (!rc)
+            rc = DosQueryProcAddr(hTCPIP32, 0, "RECVFROM", &apr_os2_recvfrom);
+
+        if (rc)
+            return APR_OS2_STATUS(rc);
+    }
+
+    DosExitCritSec();
+    return APR_SUCCESS;
+}
+#endif
 static int os2_socket_init(int domain, int type, int protocol)
 {
     int rc = os2_fn_link();
diff -ur apr-1.6.5-o/network_io/os2/sendrecv_udp.c apr-1.6.5/network_io/os2/sendrecv_udp.c
--- apr-1.6.5-o/network_io/os2/sendrecv_udp.c	2006-08-03 20:25:30.000000000 +0930
+++ apr-1.6.5/network_io/os2/sendrecv_udp.c	2018-10-31 19:14:44.000000000 +1030
@@ -94,6 +94,10 @@
         (*len) = 0;
         return APR_FROM_OS_ERROR(serrno);
     }
+#ifdef __KLIBC__
+    apr_sockaddr_vars_set(from, from->sa.sin.sin_family, 
+                          ntohs(from->sa.sin.sin_port));
+#endif
 
     (*len) = rv;
 
diff -ur apr-1.6.5-o/network_io/os2/sendrecv.c apr-1.6.5/network_io/os2/sendrecv.c
--- apr-1.6.5-o/network_io/os2/sendrecv.c	2006-08-03 20:25:30.000000000 +0930
+++ apr-1.6.5/network_io/os2/sendrecv.c	2018-11-11 17:59:08.000000000 +1030
@@ -20,6 +20,7 @@
 #include "apr_network_io.h"
 #include "apr_lib.h"
 #include <sys/time.h>
+#include <stdlib.h>
 
 APR_DECLARE(apr_status_t) apr_socket_send(apr_socket_t *sock, const char *buf,
                                           apr_size_t *len)
@@ -27,9 +28,11 @@
     apr_ssize_t rv;
     int fds, err = 0;
 
+#ifndef __INNOTEK_LIBC__
     if (*len > 65536) {
         *len = 65536;
     }
+#endif 
 
     do {
         if (!sock->nonblock || err == SOCEWOULDBLOCK) {
@@ -103,8 +106,6 @@
     return rv == 0 ? APR_EOF : APR_SUCCESS;
 }
 
-
-
 APR_DECLARE(apr_status_t) apr_socket_sendv(apr_socket_t *sock, 
                                            const struct iovec *vec, 
                                            apr_int32_t nvec, apr_size_t *len)
@@ -114,11 +115,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);
 
@@ -143,7 +150,10 @@
 
         rv = writev(sock->socketdes, tmpvec, nv_tosend);
         err = rv < 0 ? sock_errno() : 0;
-    } while (err == SOCEINTR || err == SOCEWOULDBLOCK);
+        /* 2015-02-06 SHL Allow SOCENOBUFS and delay if out of resources */
+        if (err == SOCEWOULDBLOCK || err == SOCENOBUFS)
+          apr_sleep(100 * 1000);        /* 100 mSec */
+    } while (err == SOCEINTR || err == SOCEWOULDBLOCK || err == SOCENOBUFS);
 
     if (err) {
         *len = 0;
diff -ur apr-1.6.5-o/network_io/os2/sockaddr.c apr-1.6.5/network_io/os2/sockaddr.c
--- apr-1.6.5-o/network_io/os2/sockaddr.c	2004-11-25 09:21:50.000000000 +1030
+++ apr-1.6.5/network_io/os2/sockaddr.c	2018-10-31 19:14:44.000000000 +1030
@@ -1 +1,3 @@
+
 #include "../unix/sockaddr.c"
+#include "../unix/multicast.c"
diff -ur apr-1.6.5-o/network_io/os2/sockets.c apr-1.6.5/network_io/os2/sockets.c
--- apr-1.6.5-o/network_io/os2/sockets.c	2006-11-29 07:54:40.000000000 +1030
+++ apr-1.6.5/network_io/os2/sockets.c	2018-10-31 19:14:44.000000000 +1030
@@ -30,6 +30,10 @@
 #include <netdb.h>
 #include "apr_arch_os2calls.h"
 
+#ifdef __KLIBC__x
+static char generic_inaddr_any[16] = {0}; /* big enough for IPv4 or IPv6 */
+#endif
+
 static apr_status_t socket_cleanup(void *sock)
 {
     apr_socket_t *thesocket = sock;
@@ -38,6 +42,9 @@
         return APR_EINVALSOCK;
     }
 
+    /* Add this shutdown call. */
+    shutdown (thesocket->socketdes, 2);
+
     if (soclose(thesocket->socketdes) == 0) {
         thesocket->socketdes = -1;
         return APR_SUCCESS;
@@ -82,9 +89,6 @@
 APR_DECLARE(apr_status_t) apr_socket_create(apr_socket_t **new, int family, int type,
                                             int protocol, apr_pool_t *cont)
 {
-    int downgrade = (family == AF_UNSPEC);
-    apr_pollfd_t pfd;
-
     if (family == AF_UNSPEC) {
 #if APR_HAVE_IPV6
         family = AF_INET6;
@@ -96,12 +100,6 @@
     alloc_socket(new, cont);
 
     (*new)->socketdes = socket(family, type, protocol);
-#if APR_HAVE_IPV6
-    if ((*new)->socketdes < 0 && downgrade) {
-        family = AF_INET;
-        (*new)->socketdes = socket(family, type, protocol);
-    }
-#endif
 
     if ((*new)->socketdes < 0) {
         return APR_OS2_STATUS(sock_errno());
@@ -163,6 +161,7 @@
                                             apr_socket_t *sock,
                                             apr_pool_t *connection_context)
 {
+
     alloc_socket(new, connection_context);
     set_socket_vars(*new, sock->local_addr->sa.sin.sin_family, SOCK_STREAM, sock->protocol);
 
@@ -177,15 +176,60 @@
         return APR_OS2_STATUS(sock_errno());
     }
 
+#ifndef __KLIBC__x
     *(*new)->local_addr = *sock->local_addr;
     (*new)->local_addr->pool = connection_context;
     (*new)->remote_addr->port = ntohs((*new)->remote_addr->sa.sin.sin_port);
+#else
+    (*new)->remote_addr_unknown = 0;
 
+    *(*new)->local_addr = *sock->local_addr;
+
+    /* The above assignment just overwrote the pool entry. Setting the local_addr 
+       pool for the accepted socket back to what it should be.  Otherwise all 
+       allocations for this socket will come from a server pool that is not
+       freed until the process goes down.*/
+    (*new)->local_addr->pool = connection_context;
+#endif
     /* fix up any pointers which are no longer valid */
     if (sock->local_addr->sa.sin.sin_family == AF_INET) {
         (*new)->local_addr->ipaddr_ptr = &(*new)->local_addr->sa.sin.sin_addr;
     }
 
+#ifdef __KLIBC__x
+    (*new)->remote_addr->port = ntohs((*new)->remote_addr->sa.sin.sin_port);
+    if (sock->local_port_unknown) {
+        /* not likely for a listening socket, but theoretically possible :) */
+        (*new)->local_port_unknown = 1;
+    }
+
+#if APR_TCP_NODELAY_INHERITED
+    if (apr_is_option_set(sock, APR_TCP_NODELAY) == 1) {
+        apr_set_option(*new, APR_TCP_NODELAY, 1);
+    }
+#endif /* TCP_NODELAY_INHERITED */
+#if APR_O_NONBLOCK_INHERITED
+    if (apr_is_option_set(sock, APR_SO_NONBLOCK) == 1) {
+        apr_set_option(*new, APR_SO_NONBLOCK, 1);
+    }
+#endif /* APR_O_NONBLOCK_INHERITED */
+
+    if (sock->local_interface_unknown ||
+        !memcmp(sock->local_addr->ipaddr_ptr,
+                generic_inaddr_any,
+                sock->local_addr->ipaddr_len)) {
+        /* If the interface address inside the listening socket's local_addr wasn't 
+         * up-to-date, we don't know local interface of the connected socket either.
+         *
+         * If the listening socket was not bound to a specific interface, we
+         * don't know the local_addr of the connected socket.
+         */
+        (*new)->local_interface_unknown = 1;
+    }
+
+    (*new)->inherit = 0;
+
+#endif
     apr_pool_cleanup_register((*new)->pool, (void *)(*new), 
                         socket_cleanup, apr_pool_cleanup_null);
     return APR_SUCCESS;
@@ -194,6 +238,7 @@
 APR_DECLARE(apr_status_t) apr_socket_connect(apr_socket_t *sock,
                                              apr_sockaddr_t *sa)
 {
+#ifndef __KLIBC__x
     if ((connect(sock->socketdes, (struct sockaddr *)&sa->sa.sin, 
                  sa->salen) < 0) &&
         (sock_errno() != SOCEINPROGRESS)) {
@@ -206,6 +251,68 @@
         sock->remote_addr = sa;
         return APR_SUCCESS;
     }
+#else
+    int rc;        
+
+    do {
+        rc = connect(sock->socketdes,
+                     (const struct sockaddr *)&sa->sa.sin,
+                     sa->salen);
+    } while (rc == -1 && errno == EINTR);
+
+    /* we can see EINPROGRESS the first time connect is called on a non-blocking
+     * socket; if called again, we can see EALREADY
+     */
+    if ((rc == -1) && (errno == EINPROGRESS || errno == EALREADY)
+                   && (sock->timeout > 0)) {
+        rc = apr_wait_for_io_or_timeout(NULL, sock, 0);
+        if (rc != APR_SUCCESS) {
+            return rc;
+        }
+
+#ifdef SO_ERROR
+        {
+            int error;
+            apr_socklen_t len = sizeof(error);
+            if ((rc = getsockopt(sock->socketdes, SOL_SOCKET, SO_ERROR, 
+                                 (char *)&error, &len)) < 0) {
+                return errno;
+            }
+            if (error) {
+                return error;
+            }
+        }
+#endif /* SO_ERROR */
+    }
+
+    if (rc == -1 && errno != EISCONN) {
+        return errno;
+    }
+
+    if (memcmp(sa->ipaddr_ptr, generic_inaddr_any, sa->ipaddr_len)) {
+        /* A real remote address was passed in.  If the unspecified
+         * address was used, the actual remote addr will have to be
+         * determined using getpeername() if required. */
+        /* ### this should probably be a structure copy + fixup as per
+         * _accept()'s handling of local_addr */
+        sock->remote_addr = sa;
+        sock->remote_addr_unknown = 0;
+    }
+
+    if (sock->local_addr->port == 0) {
+        /* connect() got us an ephemeral port */
+        sock->local_port_unknown = 1;
+    }
+    if (!memcmp(sock->local_addr->ipaddr_ptr,
+                generic_inaddr_any,
+                sock->local_addr->ipaddr_len)) {
+        /* not bound to specific local interface; connect() had to assign
+         * one for the socket
+         */
+        sock->local_interface_unknown = 1;
+    }
+    return APR_SUCCESS;
+#endif
 }
 
 APR_DECLARE(apr_status_t) apr_socket_type_get(apr_socket_t *sock, int *type)
@@ -309,9 +416,38 @@
     return APR_SUCCESS;
 }
 
+
+/**
+ * Kill cleanup function registered by apr_socket_create
+ * @added 2014-12-27 SHL
+ */
+
+APR_DECLARE(void) apr_sock_cleanup_kill(apr_socket_t *apr_sock)
+{
+    apr_pool_cleanup_kill(apr_sock->pool, (void *)(apr_sock),
+                          socket_cleanup);
+}
+
 APR_POOL_IMPLEMENT_ACCESSOR(socket);
 
+#ifndef __KLIBC__
 APR_IMPLEMENT_INHERIT_SET(socket, inherit, pool, socket_cleanup)
 
 APR_IMPLEMENT_INHERIT_UNSET(socket, inherit, pool, socket_cleanup)
+#else
+/* Sockets cannot be inherited through the standard sockets
+ * inheritence.  WSADuplicateSocket must be used.
+ * This is not trivial to implement.
+ */
+
+APR_DECLARE(apr_status_t) apr_socket_inherit_set(apr_socket_t *socket)    
+{    
+    return APR_ENOTIMPL;
+}    
+
+APR_DECLARE(apr_status_t) apr_socket_inherit_unset(apr_socket_t *socket)    
+{    
+    return APR_ENOTIMPL;
+}    
+#endif
 
diff -ur apr-1.6.5-o/network_io/os2/sockopt.c apr-1.6.5/network_io/os2/sockopt.c
--- apr-1.6.5-o/network_io/os2/sockopt.c	2011-10-16 07:41:40.000000000 +1030
+++ apr-1.6.5/network_io/os2/sockopt.c	2018-10-31 19:14:44.000000000 +1030
@@ -24,9 +24,11 @@
 #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>
+#include <sys/ioctl.h>
 
 
 APR_DECLARE(apr_status_t) apr_socket_timeout_set(apr_socket_t *sock, 
@@ -107,10 +109,51 @@
 APR_DECLARE(apr_status_t) apr_socket_opt_get(apr_socket_t *sock, 
                                              apr_int32_t opt, apr_int32_t *on)
 {
-    switch(opt) {
-    default:
-        return APR_EINVAL;
+    int optval = 0;
+    int optlen = sizeof(optval);
+
+    struct linger  li;
+//    struct timeval ti;
+
+    if (opt & APR_SO_DEBUG) {
+        if (getsockopt(sock->socketdes, SOL_SOCKET, SO_DEBUG, (char *) &optval, &optlen) == -1) {
+            return APR_OS2_STATUS(sock_errno());
+        } else *on = (optval > 0);
+    }
+    if (opt & APR_SO_KEEPALIVE) {
+        if (getsockopt(sock->socketdes, SOL_SOCKET, SO_KEEPALIVE, (char *) &optval, &optlen) == -1) {
+            return APR_OS2_STATUS(sock_errno());
+        } else *on = (optval > 0);
+    }
+    if (opt & APR_SO_LINGER) {
+        if (getsockopt(sock->socketdes, SOL_SOCKET, SO_LINGER, (char *) &li, (int *)sizeof(struct linger)) == -1) {
+            return APR_OS2_STATUS(sock_errno());
+        } else *on = (li.l_onoff > 0);
+    }
+    if (opt & APR_SO_REUSEADDR) {
+        if (getsockopt(sock->socketdes, SOL_SOCKET, SO_REUSEADDR, (char *) &optval, &optlen) == -1) {
+            return APR_OS2_STATUS(sock_errno());
+        } else *on = (optval > 0);
+    }
+    if (opt & APR_SO_SNDBUF) {
+        if (getsockopt(sock->socketdes, SOL_SOCKET, SO_SNDBUF, (char *) &on, &optlen) == -1) {
+            return APR_OS2_STATUS(sock_errno());
+        }
+    }
+    if (opt & APR_SO_RCVBUF) {
+        if (getsockopt(sock->socketdes, SOL_SOCKET, SO_RCVBUF, (char *) &on, &optlen) == -1) {
+            return APR_OS2_STATUS(sock_errno());
+        }
+    }
+    /* have to base this on receive timeout ??? */
+    if (opt & APR_SO_NONBLOCK) {
+        return APR_ENOTIMPL;
+    }
+    /* Windows only ? */
+    if (opt & APR_SO_DISCONNECTED) {
+        return APR_ENOTIMPL;
     }
+
     return APR_SUCCESS;
 }
 
Only in apr-1.6.5/passwd: apr_getpass.lo
Only in apr-1.6.5/passwd: apr_getpass.o
Only in apr-1.6.5: patch.loh
diff -ur apr-1.6.5-o/poll/os2/poll.c apr-1.6.5/poll/os2/poll.c
--- apr-1.6.5-o/poll/os2/poll.c	2006-08-03 20:25:30.000000000 +0930
+++ apr-1.6.5/poll/os2/poll.c	2018-11-10 19:20:02.000000000 +1030
@@ -17,6 +17,7 @@
 #include "apr.h"
 #include "apr_poll.h"
 #include "apr_arch_networkio.h"
+#include <stdlib.h>
 
 APR_DECLARE(apr_status_t) apr_poll(apr_pollfd_t *aprset, apr_int32_t num,
                       apr_int32_t *nsds, apr_interval_time_t timeout)
@@ -103,3 +104,51 @@
 
     return APR_SUCCESS;
 }
+
+APR_DECLARE(apr_status_t) apr_pollcb_create_ex(apr_pollcb_t **ret_pollcb,
+                                               apr_uint32_t size,
+                                               apr_pool_t *p,
+                                               apr_uint32_t flags,
+                                               apr_pollset_method_e method)
+{
+    return APR_ENOTIMPL;
+}
+
+APR_DECLARE(apr_status_t) apr_pollcb_create(apr_pollcb_t **pollcb,
+                                            apr_uint32_t size,
+                                            apr_pool_t *p,
+                                            apr_uint32_t flags)
+{
+    return APR_ENOTIMPL;
+}
+
+APR_DECLARE(apr_status_t) apr_pollcb_add(apr_pollcb_t *pollcb,
+                                         apr_pollfd_t *descriptor)
+{
+    return APR_ENOTIMPL;
+}
+
+APR_DECLARE(apr_status_t) apr_pollcb_remove(apr_pollcb_t *pollcb,
+                                            apr_pollfd_t *descriptor)
+{
+    return APR_ENOTIMPL;
+}
+
+
+APR_DECLARE(apr_status_t) apr_pollcb_poll(apr_pollcb_t *pollcb,
+                                          apr_interval_time_t timeout,
+                                          apr_pollcb_cb_t func,
+                                          void *baton)
+{
+    return APR_ENOTIMPL;
+}
+
+APR_DECLARE(apr_status_t) apr_pollcb_wakeup(apr_pollcb_t *pollcb)
+{
+    return APR_ENOTIMPL;
+}
+
+APR_DECLARE(const char *) apr_pollcb_method_name(apr_pollcb_t *pollcb)
+{
+    return APR_ENOTIMPL;
+}
Only in apr-1.6.5: sh-thd-1540948
Only in apr-1.6.5: sh-thd-1540949
Only in apr-1.6.5: sh-thd-1540950
Only in apr-1.6.5: sh-thd-1540951
Only in apr-1.6.5: sh-thd-1540952
Only in apr-1.6.5: sh-thd-1540953
Only in apr-1.6.5: sh-thd-1540954
Only in apr-1.6.5: sh-thd-1540955
Only in apr-1.6.5: sh-thd-1540956
Only in apr-1.6.5: sh-thd-1540957
Only in apr-1.6.5: sh-thd-1540958
Only in apr-1.6.5: sh-thd-1540959
Only in apr-1.6.5: sh-thd-1540960
Only in apr-1.6.5: sh-thd-1540961
Only in apr-1.6.5: sh-thd-1540962
Only in apr-1.6.5: sh-thd-1540963
Only in apr-1.6.5: sh-thd-1540964
Only in apr-1.6.5: sh-thd-1540965
Only in apr-1.6.5: sh-thd-1540966
Only in apr-1.6.5: sh-thd-1540967
Only in apr-1.6.5: sh-thd-1540968
Only in apr-1.6.5: sh-thd-1540969
Only in apr-1.6.5: sh-thd-1540970
Only in apr-1.6.5: sh-thd-1540971
Only in apr-1.6.5: sh-thd-1540972
Only in apr-1.6.5: sh-thd-1540973
Only in apr-1.6.5: sh-thd-1540974
Only in apr-1.6.5: sh-thd-1540975
Only in apr-1.6.5: sh-thd-1540976
Only in apr-1.6.5: sh-thd-1540977
Only in apr-1.6.5: sh-thd-1540978
Only in apr-1.6.5: sh-thd-1540979
Only in apr-1.6.5: sh-thd-1540980
Only in apr-1.6.5: sh-thd-1573126
Only in apr-1.6.5: sh-thd-1573127
Only in apr-1.6.5: sh-thd-1573128
Only in apr-1.6.5: sh-thd-1573129
Only in apr-1.6.5: sh-thd-1573131
Only in apr-1.6.5: sh-thd-1573132
Only in apr-1.6.5: sh-thd-1573133
Only in apr-1.6.5: sh-thd-1573135
Only in apr-1.6.5: sh-thd-1573137
Only in apr-1.6.5: sh-thd-1573139
Only in apr-1.6.5: sh-thd-1573140
Only in apr-1.6.5: sh-thd-1573141
Only in apr-1.6.5: sh-thd-1573143
Only in apr-1.6.5: sh-thd-1573144
Only in apr-1.6.5: sh-thd-1573147
Only in apr-1.6.5: sh-thd-1573148
Only in apr-1.6.5: sh-thd-1573149
Only in apr-1.6.5: sh-thd-1573150
Only in apr-1.6.5: sh-thd-1573151
Only in apr-1.6.5: sh-thd-1573152
Only in apr-1.6.5: sh-thd-1573153
Only in apr-1.6.5: sh-thd-1573154
Only in apr-1.6.5: sh-thd-1573155
Only in apr-1.6.5: sh-thd-1573156
Only in apr-1.6.5: sh-thd-1573157
Only in apr-1.6.5: sh-thd-1573158
Only in apr-1.6.5: sh-thd-1573160
Only in apr-1.6.5: sh-thd-1573162
Only in apr-1.6.5: sh-thd-1573164
Only in apr-1.6.5: sh-thd-1573165
Only in apr-1.6.5: sh-thd-1573167
Only in apr-1.6.5: sh-thd-1573168
Only in apr-1.6.5: sh-thd-1573169
Only in apr-1.6.5: sh-thd-1573171
Only in apr-1.6.5: sh-thd-1573172
Only in apr-1.6.5: sh-thd-1573173
Only in apr-1.6.5: sh-thd-1573176
Only in apr-1.6.5: sh-thd-1573177
Only in apr-1.6.5: sh-thd-1573179
Only in apr-1.6.5: sh-thd-1573180
Only in apr-1.6.5: sh-thd-1573181
Only in apr-1.6.5: sh-thd-1573182
Only in apr-1.6.5: sh-thd-1573183
Only in apr-1.6.5: sh-thd-1573184
Only in apr-1.6.5: sh-thd-1573185
Only in apr-1.6.5: sh-thd-1573186
Only in apr-1.6.5: sh-thd-1573188
Only in apr-1.6.5: sh-thd-1573189
Only in apr-1.6.5: sh-thd-1573191
Only in apr-1.6.5: sh-thd-1573193
Only in apr-1.6.5: sh-thd-1573195
Only in apr-1.6.5: sh-thd-1573196
Only in apr-1.6.5: sh-thd-1573197
Only in apr-1.6.5: sh-thd-1573199
Only in apr-1.6.5: sh-thd-1573200
Only in apr-1.6.5: sh-thd-1573203
Only in apr-1.6.5: sh-thd-1573206
Only in apr-1.6.5: sh-thd-1573207
Only in apr-1.6.5: sh-thd-1573208
Only in apr-1.6.5: sh-thd-1573209
Only in apr-1.6.5: sh-thd-1573210
Only in apr-1.6.5: sh-thd-1573211
Only in apr-1.6.5: sh-thd-1573213
Only in apr-1.6.5: sh-thd-1573217
Only in apr-1.6.5: sh-thd-1573218
Only in apr-1.6.5: sh-thd-1573219
Only in apr-1.6.5: sh-thd-1573221
Only in apr-1.6.5: sh-thd-1573222
Only in apr-1.6.5: sh-thd-1573223
Only in apr-1.6.5: sh-thd-1573224
Only in apr-1.6.5: sh-thd-1573225
Only in apr-1.6.5: sh-thd-1573226
Only in apr-1.6.5: sh-thd-1573227
Only in apr-1.6.5: sh-thd-1573228
Only in apr-1.6.5: sh-thd-1573231
Only in apr-1.6.5: sh-thd-1573232
Only in apr-1.6.5: sh-thd-1573234
Only in apr-1.6.5: sh-thd-1573235
Only in apr-1.6.5: sh-thd-1573236
Only in apr-1.6.5: sh-thd-1573237
Only in apr-1.6.5: sh-thd-1573238
Only in apr-1.6.5: sh-thd-1573239
Only in apr-1.6.5: sh-thd-1573240
Only in apr-1.6.5: sh-thd-1573241
Only in apr-1.6.5: sh-thd-1573242
Only in apr-1.6.5: sh-thd-1573244
Only in apr-1.6.5: sh-thd-1573245
Only in apr-1.6.5: sh-thd-1573246
Only in apr-1.6.5: sh-thd-1573247
Only in apr-1.6.5: sh-thd-1573249
Only in apr-1.6.5: sh-thd-1573250
Only in apr-1.6.5: sh-thd-1573252
Only in apr-1.6.5: sh-thd-1573253
Only in apr-1.6.5: sh-thd-1573254
Only in apr-1.6.5: sh-thd-1573256
Only in apr-1.6.5: sh-thd-1573257
Only in apr-1.6.5: sh-thd-1573258
Only in apr-1.6.5: sh-thd-1573259
Only in apr-1.6.5: sh-thd-1573260
Only in apr-1.6.5: sh-thd-1573262
Only in apr-1.6.5: sh-thd-1573263
Only in apr-1.6.5: sh-thd-1573264
Only in apr-1.6.5: sh-thd-1573265
Only in apr-1.6.5: sh-thd-1573266
Only in apr-1.6.5: sh-thd-1573269
Only in apr-1.6.5: sh-thd-1573270
Only in apr-1.6.5: sh-thd-1573272
Only in apr-1.6.5: sh-thd-1573273
Only in apr-1.6.5: sh-thd-1573274
Only in apr-1.6.5: sh-thd-1573275
Only in apr-1.6.5: sh-thd-1573276
Only in apr-1.6.5: sh-thd-1573277
Only in apr-1.6.5: sh-thd-1573279
Only in apr-1.6.5: sh-thd-1573281
Only in apr-1.6.5: sh-thd-1573282
Only in apr-1.6.5: sh-thd-1573283
Only in apr-1.6.5: sh-thd-1573284
Only in apr-1.6.5: sh-thd-1573285
Only in apr-1.6.5: sh-thd-1573286
Only in apr-1.6.5: sh-thd-1573287
Only in apr-1.6.5: sh-thd-1573288
Only in apr-1.6.5: sh-thd-1573289
Only in apr-1.6.5: sh-thd-1573290
Only in apr-1.6.5: sh-thd-1573291
Only in apr-1.6.5: sh-thd-1573292
Only in apr-1.6.5: sh-thd-1573293
Only in apr-1.6.5: sh-thd-1573294
Only in apr-1.6.5: sh-thd-1573297
Only in apr-1.6.5: sh-thd-1573298
Only in apr-1.6.5: sh-thd-1573300
Only in apr-1.6.5: sh-thd-1573302
Only in apr-1.6.5: sh-thd-1573303
Only in apr-1.6.5: sh-thd-1573304
Only in apr-1.6.5: sh-thd-1573306
Only in apr-1.6.5: sh-thd-1573307
Only in apr-1.6.5: sh-thd-1573310
Only in apr-1.6.5: sh-thd-1573311
Only in apr-1.6.5: sh-thd-1573312
Only in apr-1.6.5: sh-thd-1573313
Only in apr-1.6.5: sh-thd-1573314
Only in apr-1.6.5: sh-thd-1573318
Only in apr-1.6.5: sh-thd-1573319
Only in apr-1.6.5: sh-thd-1573320
Only in apr-1.6.5: sh-thd-1573321
Only in apr-1.6.5: sh-thd-1573322
Only in apr-1.6.5: sh-thd-1573324
Only in apr-1.6.5: sh-thd-1573326
Only in apr-1.6.5: sh-thd-1573327
Only in apr-1.6.5: sh-thd-1573331
Only in apr-1.6.5: sh-thd-1573333
Only in apr-1.6.5: sh-thd-1573334
Only in apr-1.6.5: sh-thd-1573338
Only in apr-1.6.5: sh-thd-1573339
Only in apr-1.6.5: sh-thd-1573340
Only in apr-1.6.5: sh-thd-1573341
Only in apr-1.6.5: sh-thd-1573342
Only in apr-1.6.5: sh-thd-1573344
Only in apr-1.6.5: sh-thd-1573346
Only in apr-1.6.5: sh-thd-1573347
Only in apr-1.6.5: sh-thd-1573348
Only in apr-1.6.5: sh-thd-1573349
Only in apr-1.6.5: sh-thd-1573354
Only in apr-1.6.5: sh-thd-1573356
Only in apr-1.6.5: sh-thd-1573357
Only in apr-1.6.5: sh-thd-1573358
Only in apr-1.6.5: sh-thd-1573360
Only in apr-1.6.5: sh-thd-1573361
Only in apr-1.6.5: sh-thd-1573365
Only in apr-1.6.5: sh-thd-1573366
Only in apr-1.6.5: sh-thd-1573368
Only in apr-1.6.5: sh-thd-1573370
Only in apr-1.6.5: sh-thd-1573371
Only in apr-1.6.5: sh-thd-1573373
Only in apr-1.6.5: sh-thd-1573376
Only in apr-1.6.5: sh-thd-1573377
Only in apr-1.6.5: sh-thd-1573379
Only in apr-1.6.5: sh-thd-1573380
Only in apr-1.6.5: sh-thd-1573381
Only in apr-1.6.5: sh-thd-1573382
Only in apr-1.6.5: sh-thd-1573383
Only in apr-1.6.5: sh-thd-1573385
Only in apr-1.6.5: sh-thd-1573386
Only in apr-1.6.5: sh-thd-1573387
Only in apr-1.6.5: sh-thd-2198733
Only in apr-1.6.5: sh-thd-2198734
Only in apr-1.6.5: sh-thd-2198735
Only in apr-1.6.5: sh-thd-2198736
Only in apr-1.6.5: sh-thd-2198737
Only in apr-1.6.5: sh-thd-2198738
Only in apr-1.6.5: sh-thd-2198739
Only in apr-1.6.5: sh-thd-2198740
Only in apr-1.6.5: sh-thd-2198741
Only in apr-1.6.5: sh-thd-2198742
Only in apr-1.6.5: sh-thd-2198743
Only in apr-1.6.5: sh-thd-2198744
Only in apr-1.6.5: sh-thd-2198745
Only in apr-1.6.5: sh-thd-2198746
Only in apr-1.6.5: sh-thd-2198747
Only in apr-1.6.5: sh-thd-2198748
Only in apr-1.6.5: sh-thd-2198749
Only in apr-1.6.5: sh-thd-2198750
Only in apr-1.6.5: sh-thd-2198751
Only in apr-1.6.5: sh-thd-2198752
Only in apr-1.6.5: sh-thd-2198753
Only in apr-1.6.5: sh-thd-2198755
Only in apr-1.6.5: sh-thd-2198756
Only in apr-1.6.5: sh-thd-2198757
Only in apr-1.6.5: sh-thd-2198758
Only in apr-1.6.5: sh-thd-2198759
Only in apr-1.6.5: sh-thd-2198760
Only in apr-1.6.5: sh-thd-2198761
Only in apr-1.6.5: sh-thd-2198762
Only in apr-1.6.5: sh-thd-2198763
Only in apr-1.6.5: sh-thd-2198764
Only in apr-1.6.5: sh-thd-2198765
Only in apr-1.6.5: sh-thd-2198766
Only in apr-1.6.5: sh-thd-2198767
Only in apr-1.6.5: sh-thd-2198768
Only in apr-1.6.5: sh-thd-2198769
Only in apr-1.6.5: sh-thd-2198770
Only in apr-1.6.5: sh-thd-2198771
Only in apr-1.6.5: sh-thd-2198772
Only in apr-1.6.5: sh-thd-2198773
Only in apr-1.6.5: sh-thd-2198774
Only in apr-1.6.5: sh-thd-2198775
Only in apr-1.6.5: sh-thd-2198776
Only in apr-1.6.5: sh-thd-2198777
Only in apr-1.6.5: sh-thd-2198778
Only in apr-1.6.5: sh-thd-2198779
Only in apr-1.6.5: sh-thd-2198780
Only in apr-1.6.5: sh-thd-2198781
Only in apr-1.6.5: sh-thd-2198782
Only in apr-1.6.5: sh-thd-2198783
Only in apr-1.6.5: sh-thd-2198784
Only in apr-1.6.5: sh-thd-2198785
Only in apr-1.6.5: sh-thd-2198786
Only in apr-1.6.5: sh-thd-2198787
Only in apr-1.6.5: sh-thd-2198788
Only in apr-1.6.5: sh-thd-2198789
Only in apr-1.6.5: sh-thd-2198790
Only in apr-1.6.5: sh-thd-2198791
Only in apr-1.6.5: sh-thd-2198792
Only in apr-1.6.5: sh-thd-2198793
Only in apr-1.6.5: sh-thd-2198794
Only in apr-1.6.5: sh-thd-2198795
Only in apr-1.6.5: sh-thd-2198796
Only in apr-1.6.5: sh-thd-2198797
Only in apr-1.6.5: sh-thd-2198798
Only in apr-1.6.5: sh-thd-2198799
Only in apr-1.6.5: sh-thd-2198800
Only in apr-1.6.5: sh-thd-2198802
Only in apr-1.6.5: sh-thd-2198803
Only in apr-1.6.5: sh-thd-2198804
Only in apr-1.6.5: sh-thd-2198805
Only in apr-1.6.5: sh-thd-2198806
Only in apr-1.6.5: sh-thd-2198807
Only in apr-1.6.5: sh-thd-2198808
Only in apr-1.6.5: sh-thd-2198809
Only in apr-1.6.5: sh-thd-2198812
Only in apr-1.6.5: sh-thd-2198813
Only in apr-1.6.5: sh-thd-2198814
Only in apr-1.6.5: sh-thd-2198815
Only in apr-1.6.5: sh-thd-2198816
Only in apr-1.6.5: sh-thd-2198817
Only in apr-1.6.5: sh-thd-2198818
Only in apr-1.6.5: sh-thd-2198819
Only in apr-1.6.5: sh-thd-2198821
Only in apr-1.6.5: sh-thd-2198822
Only in apr-1.6.5: sh-thd-2198823
Only in apr-1.6.5: sh-thd-2198824
Only in apr-1.6.5: sh-thd-2198825
Only in apr-1.6.5: sh-thd-2198827
Only in apr-1.6.5: sh-thd-2198828
Only in apr-1.6.5: sh-thd-2198829
Only in apr-1.6.5: sh-thd-2198830
Only in apr-1.6.5: sh-thd-2198831
Only in apr-1.6.5: sh-thd-2198832
Only in apr-1.6.5: sh-thd-2198833
Only in apr-1.6.5: sh-thd-2198834
Only in apr-1.6.5: sh-thd-2198835
Only in apr-1.6.5: sh-thd-2198836
Only in apr-1.6.5: sh-thd-2198838
Only in apr-1.6.5: sh-thd-2198839
Only in apr-1.6.5: sh-thd-2198840
Only in apr-1.6.5: sh-thd-2198841
Only in apr-1.6.5: sh-thd-2198842
Only in apr-1.6.5: sh-thd-2198843
Only in apr-1.6.5: sh-thd-2198844
Only in apr-1.6.5: sh-thd-2198845
Only in apr-1.6.5: sh-thd-2198846
Only in apr-1.6.5: sh-thd-2198847
Only in apr-1.6.5: sh-thd-2198848
Only in apr-1.6.5: sh-thd-2198850
Only in apr-1.6.5: sh-thd-2198851
Only in apr-1.6.5: sh-thd-2198852
Only in apr-1.6.5: sh-thd-2198853
Only in apr-1.6.5: sh-thd-2198854
Only in apr-1.6.5: sh-thd-2198855
Only in apr-1.6.5: sh-thd-2198856
Only in apr-1.6.5: sh-thd-2198857
Only in apr-1.6.5: sh-thd-2198858
Only in apr-1.6.5: sh-thd-2198859
Only in apr-1.6.5: sh-thd-2198860
Only in apr-1.6.5: sh-thd-2198861
Only in apr-1.6.5: sh-thd-2198862
Only in apr-1.6.5: sh-thd-2198863
Only in apr-1.6.5: sh-thd-2607866
Only in apr-1.6.5: sh-thd-2608026
Only in apr-1.6.5: sh-thd-2608034
Only in apr-1.6.5: sh-thd-2608037
Only in apr-1.6.5: sh-thd-2608041
Only in apr-1.6.5: sh-thd-2608175
Only in apr-1.6.5: sh-thd-2608340
Only in apr-1.6.5: sh-thd-2608364
Only in apr-1.6.5: sh-thd-2608368
Only in apr-1.6.5: sh-thd-2608466
Only in apr-1.6.5: sh-thd-2608478
Only in apr-1.6.5: sh-thd-2608481
Only in apr-1.6.5: sh-thd-2608488
Only in apr-1.6.5: sh-thd-2608499
Only in apr-1.6.5: sh-thd-2608624
Only in apr-1.6.5: sh-thd-2608692
Only in apr-1.6.5: sh-thd-2608731
Only in apr-1.6.5: sh-thd-3763341
Only in apr-1.6.5: sh-thd-3763347
Only in apr-1.6.5: sh-thd-3763348
Only in apr-1.6.5: sh-thd-3763352
Only in apr-1.6.5: sh-thd-3763354
Only in apr-1.6.5: sh-thd-3763360
Only in apr-1.6.5: sh-thd-3763366
Only in apr-1.6.5: sh-thd-3763369
Only in apr-1.6.5: sh-thd-3763378
Only in apr-1.6.5: sh-thd-3763381
Only in apr-1.6.5: sh-thd-3763383
Only in apr-1.6.5: sh-thd-3763384
Only in apr-1.6.5: sh-thd-3763388
Only in apr-1.6.5: sh-thd-3763399
Only in apr-1.6.5: sh-thd-3763406
Only in apr-1.6.5: sh-thd-3763412
Only in apr-1.6.5: sh-thd-3763414
Only in apr-1.6.5: sh-thd-3763417
Only in apr-1.6.5: sh-thd-3763423
Only in apr-1.6.5: sh-thd-3763429
Only in apr-1.6.5: sh-thd-3763430
Only in apr-1.6.5: sh-thd-3763434
Only in apr-1.6.5: sh-thd-3763438
Only in apr-1.6.5: sh-thd-3763440
Only in apr-1.6.5: sh-thd-3763443
Only in apr-1.6.5: sh-thd-3763445
Only in apr-1.6.5: sh-thd-3763452
Only in apr-1.6.5: sh-thd-3763455
Only in apr-1.6.5: sh-thd-3763458
Only in apr-1.6.5: sh-thd-3763459
Only in apr-1.6.5: sh-thd-3763460
Only in apr-1.6.5: sh-thd-3763466
Only in apr-1.6.5: sh-thd-3763467
Only in apr-1.6.5: sh-thd-3763471
Only in apr-1.6.5: sh-thd-3763472
Only in apr-1.6.5: sh-thd-3763477
Only in apr-1.6.5: sh-thd-3763478
Only in apr-1.6.5: sh-thd-3763487
Only in apr-1.6.5: sh-thd-3763499
Only in apr-1.6.5: sh-thd-3763505
Only in apr-1.6.5: sh-thd-3763506
Only in apr-1.6.5: sh-thd-3763508
Only in apr-1.6.5: sh-thd-3763512
Only in apr-1.6.5: sh-thd-3763514
Only in apr-1.6.5: sh-thd-3763515
Only in apr-1.6.5: sh-thd-3763518
Only in apr-1.6.5: sh-thd-3763524
Only in apr-1.6.5: sh-thd-3763527
Only in apr-1.6.5: sh-thd-3763537
Only in apr-1.6.5: sh-thd-3763538
Only in apr-1.6.5: sh-thd-3763548
Only in apr-1.6.5: sh-thd-3763552
Only in apr-1.6.5: sh-thd-3763575
Only in apr-1.6.5: sh-thd-3763578
Only in apr-1.6.5: sh-thd-3763579
Only in apr-1.6.5: sh-thd-3763580
Only in apr-1.6.5: sh-thd-3763589
Only in apr-1.6.5: sh-thd-3763592
Only in apr-1.6.5: sh-thd-3763604
Only in apr-1.6.5: sh-thd-3763606
Only in apr-1.6.5: sh-thd-3763624
Only in apr-1.6.5: sh-thd-3763630
Only in apr-1.6.5: sh-thd-3763631
Only in apr-1.6.5: sh-thd-3763634
Only in apr-1.6.5: sh-thd-3763638
Only in apr-1.6.5: sh-thd-3763641
Only in apr-1.6.5: sh-thd-3763645
Only in apr-1.6.5: sh-thd-3763648
Only in apr-1.6.5: sh-thd-3763656
Only in apr-1.6.5: sh-thd-3763660
Only in apr-1.6.5: sh-thd-3763665
Only in apr-1.6.5: sh-thd-3763668
Only in apr-1.6.5: sh-thd-3763669
Only in apr-1.6.5: sh-thd-3763670
Only in apr-1.6.5: sh-thd-3763675
Only in apr-1.6.5: sh-thd-3763676
Only in apr-1.6.5: sh-thd-3763677
Only in apr-1.6.5: sh-thd-3763687
Only in apr-1.6.5: sh-thd-3763688
Only in apr-1.6.5: sh-thd-3763692
Only in apr-1.6.5: sh-thd-3763694
Only in apr-1.6.5: sh-thd-3763697
Only in apr-1.6.5: sh-thd-3763703
Only in apr-1.6.5: sh-thd-3763708
Only in apr-1.6.5: sh-thd-3763712
Only in apr-1.6.5: sh-thd-3763714
Only in apr-1.6.5: sh-thd-3763717
Only in apr-1.6.5: sh-thd-3763718
Only in apr-1.6.5: sh-thd-3763720
Only in apr-1.6.5: sh-thd-3763728
Only in apr-1.6.5: sh-thd-3763731
Only in apr-1.6.5: sh-thd-3763734
Only in apr-1.6.5: sh-thd-3763740
Only in apr-1.6.5: sh-thd-3763744
Only in apr-1.6.5: sh-thd-3763756
Only in apr-1.6.5: sh-thd-3763759
Only in apr-1.6.5: sh-thd-3763763
Only in apr-1.6.5: sh-thd-3763769
Only in apr-1.6.5: sh-thd-3763770
Only in apr-1.6.5: sh-thd-3763777
Only in apr-1.6.5: sh-thd-3763778
Only in apr-1.6.5: sh-thd-3763781
Only in apr-1.6.5: sh-thd-3763787
Only in apr-1.6.5: sh-thd-3763804
Only in apr-1.6.5: sh-thd-3763806
Only in apr-1.6.5: sh-thd-3763808
Only in apr-1.6.5: sh-thd-3763812
Only in apr-1.6.5: sh-thd-3763823
Only in apr-1.6.5: sh-thd-3763826
Only in apr-1.6.5: sh-thd-3763831
Only in apr-1.6.5: sh-thd-3763832
Only in apr-1.6.5: sh-thd-3966435
Only in apr-1.6.5: sh-thd-3966436
Only in apr-1.6.5: sh-thd-3966437
Only in apr-1.6.5: sh-thd-3966438
Only in apr-1.6.5: sh-thd-3966439
Only in apr-1.6.5: sh-thd-3966440
Only in apr-1.6.5: sh-thd-3966441
Only in apr-1.6.5: sh-thd-3966442
Only in apr-1.6.5: sh-thd-3966443
Only in apr-1.6.5: sh-thd-3966444
Only in apr-1.6.5: sh-thd-3966445
Only in apr-1.6.5: sh-thd-3966446
Only in apr-1.6.5: sh-thd-3966447
Only in apr-1.6.5: sh-thd-3966448
Only in apr-1.6.5: sh-thd-3966449
Only in apr-1.6.5: sh-thd-3966450
Only in apr-1.6.5: sh-thd-3966451
Only in apr-1.6.5: sh-thd-3966452
Only in apr-1.6.5: sh-thd-3966453
Only in apr-1.6.5: sh-thd-3966454
Only in apr-1.6.5: sh-thd-3966455
Only in apr-1.6.5: sh-thd-3966456
Only in apr-1.6.5: sh-thd-3966457
Only in apr-1.6.5: sh-thd-3966458
Only in apr-1.6.5: sh-thd-3966459
Only in apr-1.6.5: sh-thd-3966460
Only in apr-1.6.5: sh-thd-3966461
Only in apr-1.6.5: sh-thd-3966462
Only in apr-1.6.5: sh-thd-3966463
Only in apr-1.6.5: sh-thd-3966464
Only in apr-1.6.5: sh-thd-3966465
Only in apr-1.6.5: sh-thd-3966466
Only in apr-1.6.5: sh-thd-3966467
Only in apr-1.6.5: sh-thd-3966468
Only in apr-1.6.5: sh-thd-3966469
Only in apr-1.6.5: sh-thd-3966470
Only in apr-1.6.5: sh-thd-3966471
Only in apr-1.6.5: sh-thd-3966472
Only in apr-1.6.5: sh-thd-3966473
Only in apr-1.6.5: sh-thd-3966474
Only in apr-1.6.5: sh-thd-3966475
Only in apr-1.6.5: sh-thd-3966476
Only in apr-1.6.5: sh-thd-3966477
Only in apr-1.6.5: sh-thd-3966478
Only in apr-1.6.5: sh-thd-3966479
Only in apr-1.6.5: sh-thd-3966480
Only in apr-1.6.5: sh-thd-3966481
Only in apr-1.6.5: sh-thd-3966482
Only in apr-1.6.5: sh-thd-3966483
Only in apr-1.6.5: sh-thd-3966484
Only in apr-1.6.5: sh-thd-3966485
Only in apr-1.6.5: sh-thd-3966486
Only in apr-1.6.5: sh-thd-3966487
Only in apr-1.6.5: sh-thd-3966488
Only in apr-1.6.5: sh-thd-3966489
Only in apr-1.6.5: sh-thd-3966490
Only in apr-1.6.5: sh-thd-3966491
Only in apr-1.6.5: sh-thd-3966492
Only in apr-1.6.5: sh-thd-3966493
Only in apr-1.6.5: sh-thd-3966494
Only in apr-1.6.5: sh-thd-3966495
Only in apr-1.6.5: sh-thd-3966496
Only in apr-1.6.5: sh-thd-3966497
Only in apr-1.6.5: sh-thd-3966498
Only in apr-1.6.5: sh-thd-3966499
Only in apr-1.6.5: sh-thd-3966500
diff -ur apr-1.6.5-o/shmem/os2/shm.c apr-1.6.5/shmem/os2/shm.c
--- apr-1.6.5-o/shmem/os2/shm.c	2014-04-28 22:45:02.000000000 +0930
+++ apr-1.6.5/shmem/os2/shm.c	2018-10-31 19:14:44.000000000 +1030
@@ -46,7 +46,12 @@
         flags |= OBJ_GETTABLE;
     }
 
-    rc = DosAllocSharedMem(&(newm->memblock), name, reqsize, flags);
+    /* First try to allocate shared memory in HMA */
+    rc = DosAllocSharedMem(&(newm->memblock), name, reqsize, flags | OBJ_ANY);
+
+    if (rc) {
+        rc = DosAllocSharedMem(&(newm->memblock), name, reqsize, flags);
+    }
 
     if (rc) {
         return APR_OS2_STATUS(rc);
@@ -67,7 +72,15 @@
 
 APR_DECLARE(apr_status_t) apr_shm_destroy(apr_shm_t *m)
 {
-    DosFreeMem(m->memblock);
+    int rc;
+
+    rc = DosFreeMem(m->memblock);
+
+    // MKG: added might not be good
+    if (rc) {
+        return APR_OS2_STATUS(rc);
+    }
+
     return APR_SUCCESS;
 }
 
@@ -92,9 +105,16 @@
     ULONG flags = PAG_READ|PAG_WRITE;
 
     newm->pool = pool;
+
+    //MKG: should be able to get unnamed memory ????
+    if (filename) {
+
     name = apr_pstrcat(pool, "\\SHAREMEM\\", filename, NULL);
 
     rc = DosGetNamedSharedMem(&(newm->memblock), name, flags);
+    } else {
+        rc = DosGetSharedMem(&(newm->memblock), flags);
+    }
 
     if (rc) {
         return APR_FROM_OS_ERROR(rc);
Only in apr-1.6.5/strings: apr_cpystrn.lo
Only in apr-1.6.5/strings: apr_cpystrn.o
Only in apr-1.6.5/strings: apr_cstr.lo
Only in apr-1.6.5/strings: apr_cstr.o
Only in apr-1.6.5/strings: apr_fnmatch.lo
Only in apr-1.6.5/strings: apr_fnmatch.o
Only in apr-1.6.5/strings: apr_snprintf.lo
Only in apr-1.6.5/strings: apr_snprintf.o
Only in apr-1.6.5/strings: apr_strings.lo
Only in apr-1.6.5/strings: apr_strings.o
Only in apr-1.6.5/strings: apr_strnatcmp.lo
Only in apr-1.6.5/strings: apr_strnatcmp.o
Only in apr-1.6.5/strings: apr_strtok.lo
Only in apr-1.6.5/strings: apr_strtok.o
diff -ur apr-1.6.5-o/support/unix/waitio.c apr-1.6.5/support/unix/waitio.c
--- apr-1.6.5-o/support/unix/waitio.c	2013-10-04 00:00:16.000000000 +0930
+++ apr-1.6.5/support/unix/waitio.c	2018-11-10 19:20:38.000000000 +1030
@@ -22,7 +22,7 @@
 
 /* The only case where we don't use wait_for_io_or_timeout is on
  * pre-BONE BeOS, so this check should be sufficient and simpler */
-#if !defined(BEOS_R5) && !defined(OS2) && APR_FILES_AS_SOCKETS
+#if (!defined(BEOS_R5) && APR_FILES_AS_SOCKETS) || defined(__KLIBC__)
 #define USE_WAIT_FOR_IO
 #endif
 
Only in apr-1.6.5/tables: apr_hash.lo
Only in apr-1.6.5/tables: apr_hash.o
Only in apr-1.6.5/tables: apr_skiplist.lo
Only in apr-1.6.5/tables: apr_skiplist.o
Only in apr-1.6.5/tables: apr_tables.lo
Only in apr-1.6.5/tables: apr_tables.o
Only in apr-1.6.5/test: 4A6A_01.TRP
diff -ur apr-1.6.5-o/test/abts.c apr-1.6.5/test/abts.c
--- apr-1.6.5-o/test/abts.c	2013-11-13 00:27:38.000000000 +1030
+++ apr-1.6.5/test/abts.c	2018-10-31 19:14:44.000000000 +1030
@@ -17,6 +17,8 @@
 #include "abts.h"
 #include "abts_tests.h"
 #include "testutil.h"
+#define INCL_LOADEXCEPTQ
+#include "exceptq.h"
 
 #define ABTS_STAT_SIZE 6
 static char status[ABTS_STAT_SIZE] = {'|', '/', '-', '|', '\\', '-'};
@@ -382,11 +384,13 @@
 }
 
 int main(int argc, const char *const argv[]) {
+    EXCEPTIONREGISTRATIONRECORD exRegRec;
     int i;
     int rv;
     int list_provided = 0;
     abts_suite *suite = NULL;
    
+    LoadExceptq(&exRegRec, "I", "testall");
     initialize();
 
     quiet = !isatty(STDOUT_FILENO);
@@ -430,6 +434,7 @@
     }
 
     rv = report(suite);
+    UninstallExceptq(&exRegRec);
     return rv;
 }
        
Only in apr-1.6.5/test: build
Only in apr-1.6.5/test/data: testdup2.file
Only in apr-1.6.5/test/data: testdup2.readwrite.file
Only in apr-1.6.5/test: echod.map
Only in apr-1.6.5/test: globalmutexchild.map
Only in apr-1.6.5/test/internal: Makefile
Only in apr-1.6.5/test: lfstests
Only in apr-1.6.5/test: Makefile
Only in apr-1.6.5/test: occhild.map
diff -ur apr-1.6.5-o/test/proc_child.c apr-1.6.5/test/proc_child.c
--- apr-1.6.5-o/test/proc_child.c	2007-10-15 05:54:12.000000000 +1030
+++ apr-1.6.5/test/proc_child.c	2018-10-31 19:14:44.000000000 +1030
@@ -7,11 +7,17 @@
 #include <io.h>
 #endif
 #include <stdlib.h>
+#ifdef __INNOTEK_LIBC__
+#include <fcntl.h>
+#endif
 
 int main(void)
 {
     char buf[256];
     int bytes;
+#if defined(__WATCOMC__)||defined(__INNOTEK_LIBC__)
+    setmode(STDIN_FILENO, O_BINARY);
+#endif
     
     bytes = (int)read(STDIN_FILENO, buf, 256);
     if (bytes > 0)
Only in apr-1.6.5/test: proc_child.map
Only in apr-1.6.5/test: readchild.map
Only in apr-1.6.5/test: sendfile.map
Only in apr-1.6.5/test: sockchild.map
Only in apr-1.6.5/test: sockperf.map
Only in apr-1.6.5/test: testall.map
diff -ur apr-1.6.5-o/test/testcond.c apr-1.6.5/test/testcond.c
--- apr-1.6.5-o/test/testcond.c	2007-11-18 11:05:56.000000000 +1030
+++ apr-1.6.5/test/testcond.c	2018-10-31 19:14:44.000000000 +1030
@@ -652,9 +652,10 @@
 #endif
     suite = ADD_SUITE(suite)
 
-#if !APR_HAS_THREADS
+#if !APR_HAS_THREADS 
     abts_run_test(suite, threads_not_impl, NULL);
 #else
+#ifndef __OS2__
     abts_run_test(suite, lost_signal, NULL);
     abts_run_test(suite, dynamic_binding, NULL);
     abts_run_test(suite, broadcast_threads, NULL);
@@ -665,6 +666,7 @@
     abts_run_test(suite, pipe_producer_consumer, NULL);
     abts_run_test(suite, ping_pong, NULL);
 #endif
+#endif
 
     return suite;
 }
diff -ur apr-1.6.5-o/test/testdir.c apr-1.6.5/test/testdir.c
--- apr-1.6.5-o/test/testdir.c	2014-01-21 21:54:46.000000000 +1030
+++ apr-1.6.5/test/testdir.c	2018-10-31 19:14:44.000000000 +1030
@@ -31,6 +31,7 @@
     apr_finfo_t finfo;
 
     rv = apr_dir_make("data/testdir", APR_UREAD | APR_UWRITE | APR_UEXECUTE, p);
+
     ABTS_INT_EQUAL(tc, APR_SUCCESS, rv);
 
     rv = apr_stat(&finfo, "data/testdir", APR_FINFO_TYPE, p);
diff -ur apr-1.6.5-o/test/testfile.c apr-1.6.5/test/testfile.c
--- apr-1.6.5-o/test/testfile.c	2017-07-01 06:42:30.000000000 +0930
+++ apr-1.6.5/test/testfile.c	2018-10-31 19:14:44.000000000 +1030
@@ -248,6 +248,7 @@
     APR_ASSERT_SUCCESS(tc, "Open test file " FILENAME, rv);
 
     rv = apr_file_read(filetest, str, &nbytes);
+
     ABTS_INT_EQUAL(tc, APR_SUCCESS, rv);
     ABTS_SIZE_EQUAL(tc, strlen(TESTSTR), nbytes);
     ABTS_STR_EQUAL(tc, TESTSTR, str);
@@ -1263,7 +1264,6 @@
     abts_run_test(suite, test_fail_read_flush, NULL);
     abts_run_test(suite, test_buffer_set_get, NULL);
     abts_run_test(suite, test_xthread, NULL);
-
     return suite;
 }
 
diff -ur apr-1.6.5-o/test/testfileinfo.c apr-1.6.5/test/testfileinfo.c
--- apr-1.6.5-o/test/testfileinfo.c	2010-03-08 01:24:06.000000000 +1030
+++ apr-1.6.5/test/testfileinfo.c	2018-10-31 19:14:46.000000000 +1030
@@ -256,7 +256,9 @@
     abts_run_test(suite, test_stat, NULL);
     abts_run_test(suite, test_stat_eq_finfo, NULL);
     abts_run_test(suite, test_buffered_write_size, NULL);
+#ifndef OS2
     abts_run_test(suite, test_mtime_set, NULL);
+#endif
 
     return suite;
 }
diff -ur apr-1.6.5-o/test/testlock.c apr-1.6.5/test/testlock.c
--- apr-1.6.5-o/test/testlock.c	2017-05-25 00:51:42.000000000 +0930
+++ apr-1.6.5/test/testlock.c	2018-10-31 19:14:46.000000000 +1030
@@ -213,6 +213,7 @@
     apr_thread_rwlock_destroy(rwlock);
 }
 
+
 static void test_cond(abts_case *tc, void *data)
 {
     apr_thread_t *p1, *p2, *p3, *p4, *c1;
@@ -324,9 +325,11 @@
 #else
     abts_run_test(suite, test_thread_mutex, NULL);
     abts_run_test(suite, test_thread_rwlock, NULL);
+#ifndef OS2 /* apr_thread_cond_* not implements on os2 */
     abts_run_test(suite, test_cond, NULL);
     abts_run_test(suite, test_timeoutcond, NULL);
 #endif
+#endif
 
     return suite;
 }
Only in apr-1.6.5/test: testlockperf.map
Only in apr-1.6.5/test: testmutexscope.map
diff -ur apr-1.6.5-o/test/testnames.c apr-1.6.5/test/testnames.c
--- apr-1.6.5-o/test/testnames.c	2015-06-18 18:12:20.000000000 +0930
+++ apr-1.6.5/test/testnames.c	2018-10-31 19:14:46.000000000 +1030
@@ -31,6 +31,8 @@
 #define ABS_ROOT "C:/"
 #elif defined(NETWARE)
 #define ABS_ROOT "SYS:/"
+#elif defined(__OS2__)
+#define ABS_ROOT "C:/"
 #else
 #define ABS_ROOT "/"
 #endif
@@ -92,6 +94,7 @@
      * the case of the test directory:
      */
     rv = apr_filepath_merge(&dstpath, "", "../test", APR_FILEPATH_TRUENAME, p);
+fprintf(stderr,"dstpath3 = %s, rv = %d\n",dstpath,rv);
     ABTS_INT_EQUAL(tc, APR_SUCCESS, rv);
     ABTS_STR_EQUAL(tc, "../test", dstpath);
 }
@@ -146,7 +149,6 @@
     rv = apr_filepath_merge(&dstpath, "foo/bar", "../baz", 
                             APR_FILEPATH_NOTRELATIVE, p);
     apr_strerror(rv, errmsg, sizeof(errmsg));
-
     ABTS_PTR_EQUAL(tc, NULL, dstpath);
     ABTS_INT_EQUAL(tc, 1, APR_STATUS_IS_ERELATIVE(rv));
     ABTS_STR_EQUAL(tc, "The given path is relative", errmsg);
@@ -161,7 +163,6 @@
     rv = apr_filepath_merge(&dstpath, ABS_ROOT"foo/bar", "../baz", 
                             APR_FILEPATH_NOTABSOLUTE, p);
     apr_strerror(rv, errmsg, sizeof(errmsg));
-
     ABTS_PTR_EQUAL(tc, NULL, dstpath);
     ABTS_INT_EQUAL(tc, 1, APR_STATUS_IS_EABSOLUTE(rv));
     ABTS_STR_EQUAL(tc, "The given path is absolute", errmsg);
diff -ur apr-1.6.5-o/test/testpipe.c apr-1.6.5/test/testpipe.c
--- apr-1.6.5-o/test/testpipe.c	2016-03-25 11:58:12.000000000 +1030
+++ apr-1.6.5/test/testpipe.c	2018-10-31 19:14:46.000000000 +1030
@@ -190,6 +190,7 @@
 {
     suite = ADD_SUITE(suite)
 
+#if 1
     abts_run_test(suite, create_pipe, NULL);
     abts_run_test(suite, close_pipe, NULL);
     abts_run_test(suite, set_timeout, NULL);
@@ -197,9 +198,11 @@
     abts_run_test(suite, read_write, NULL);
     abts_run_test(suite, close_pipe, NULL);
     abts_run_test(suite, read_write_notimeout, NULL);
+#endif
     abts_run_test(suite, test_pipe_writefull, NULL);
+#if 1
     abts_run_test(suite, close_pipe, NULL);
-
+#endif
     return suite;
 }
 
diff -ur apr-1.6.5-o/test/testprocmutex.c apr-1.6.5/test/testprocmutex.c
--- apr-1.6.5-o/test/testprocmutex.c	2017-05-25 00:51:42.000000000 +0930
+++ apr-1.6.5/test/testprocmutex.c	2018-10-31 19:14:46.000000000 +1030
@@ -115,6 +115,7 @@
     int n;
  
     rv = apr_proc_mutex_create(&proc_lock, lockname, mech, p);
+
     APR_ASSERT_SUCCESS(tc, "create the mutex", rv);
     if (rv != APR_SUCCESS)
         return;
@@ -122,8 +123,10 @@
     for (n = 0; n < CHILDREN; n++)
         make_child(tc, 0, &child[n], p);
 
+
     for (n = 0; n < CHILDREN; n++)
         await_child(tc, child[n]);
+
     
     ABTS_ASSERT(tc, "Locks don't appear to work", *x == MAX_COUNTER);
 
diff -ur apr-1.6.5-o/test/testshm.c apr-1.6.5/test/testshm.c
--- apr-1.6.5-o/test/testshm.c	2014-04-28 22:45:02.000000000 +0930
+++ apr-1.6.5/test/testshm.c	2018-10-31 19:14:46.000000000 +1030
@@ -126,7 +126,6 @@
 
     boxes = apr_shm_baseaddr_get(shm);
     ABTS_PTR_NOTNULL(tc, boxes);
-
     rv = apr_proc_fork(&proc, p);
     if (rv == APR_INCHILD) { /* child */
         int num = msgwait(5, 0, N_BOXES);
diff -ur apr-1.6.5-o/test/testshm.h apr-1.6.5/test/testshm.h
--- apr-1.6.5-o/test/testshm.h	2006-08-03 20:25:30.000000000 +0930
+++ apr-1.6.5/test/testshm.h	2018-10-31 19:14:46.000000000 +1030
@@ -24,8 +24,14 @@
 mbox *boxes;
 
 #define N_BOXES 10
+#ifndef __OS2__
 #define SHARED_SIZE (apr_size_t)(N_BOXES * sizeof(mbox))
 #define SHARED_FILENAME "data/apr.testshm.shm"
+#else
+#define SHARED_SIZE (apr_size_t)(N_BOXES * 4096)
+#define SHARED_FILENAME "data\\apr.testshm.shm"
+#endif
+
 #define N_MESSAGES 100
 #define MSG "Sending a message"
 
Only in apr-1.6.5/test: testshmconsumer.map
Only in apr-1.6.5/test: testshmproducer.map
diff -ur apr-1.6.5-o/test/testsockopt.c apr-1.6.5/test/testsockopt.c
--- apr-1.6.5-o/test/testsockopt.c	2006-08-03 20:25:30.000000000 +0930
+++ apr-1.6.5/test/testsockopt.c	2018-10-31 19:14:46.000000000 +1030
@@ -38,7 +38,6 @@
 
     rv = apr_socket_opt_set(sock, APR_SO_KEEPALIVE, 1);
     ABTS_INT_EQUAL(tc, APR_SUCCESS, rv);
-
     rv = apr_socket_opt_get(sock, APR_SO_KEEPALIVE, &ck);
     ABTS_INT_EQUAL(tc, APR_SUCCESS, rv);
     ABTS_INT_EQUAL(tc, 1, ck);
Only in apr-1.6.5/test: tryread.map
diff -ur apr-1.6.5-o/threadproc/os2/proc.c apr-1.6.5/threadproc/os2/proc.c
--- apr-1.6.5-o/threadproc/os2/proc.c	2014-04-28 21:38:38.000000000 +0930
+++ apr-1.6.5/threadproc/os2/proc.c	2018-10-31 19:14:46.000000000 +1030
@@ -41,22 +41,13 @@
 
 APR_DECLARE(apr_status_t) apr_procattr_create(apr_procattr_t **new, apr_pool_t *pool)
 {
-    (*new) = (apr_procattr_t *)apr_palloc(pool, 
-              sizeof(apr_procattr_t));
+    (*new) = (apr_procattr_t *)apr_pcalloc(pool, sizeof(apr_procattr_t));
 
     if ((*new) == NULL) {
         return APR_ENOMEM;
     }
     (*new)->pool = pool;
-    (*new)->parent_in = NULL;
-    (*new)->child_in = NULL;
-    (*new)->parent_out = NULL;
-    (*new)->child_out = NULL;
-    (*new)->parent_err = NULL;
-    (*new)->child_err = NULL;
-    (*new)->currdir = NULL; 
     (*new)->cmdtype = APR_PROGRAM;
-    (*new)->detached = FALSE;
     return APR_SUCCESS;
 }
 
@@ -110,13 +101,14 @@
     return APR_SUCCESS;
 }
 
-APR_DECLARE(apr_status_t) apr_procattr_child_in_set(apr_procattr_t *attr, apr_file_t *child_in,
-                                   apr_file_t *parent_in)
+APR_DECLARE(apr_status_t) apr_procattr_child_in_set(apr_procattr_t *attr,
+                                                    apr_file_t *child_in,
+                                                    apr_file_t *parent_in)
 {
-    apr_status_t rv;
+    apr_status_t rv = APR_SUCCESS;
 
     if (attr->child_in == NULL && attr->parent_in == NULL
-            && child_in == NULL && parent_in == NULL)
+           && child_in == NULL && parent_in == NULL)
         if ((rv = apr_file_pipe_create(&attr->child_in, &attr->parent_in,
                                        attr->pool)) == APR_SUCCESS)
             rv = apr_file_inherit_unset(attr->parent_in);
@@ -133,16 +125,20 @@
     }
 
     if (parent_in != NULL && rv == APR_SUCCESS) {
-        rv = apr_file_dup(&attr->parent_in, parent_in, attr->pool);
+        if (attr->parent_in)
+            rv = apr_file_dup2(attr->parent_in, parent_in, attr->pool);
+        else
+            rv = apr_file_dup(&attr->parent_in, parent_in, attr->pool);
     }
 
     return rv;
 }
 
-APR_DECLARE(apr_status_t) apr_procattr_child_out_set(apr_procattr_t *attr, apr_file_t *child_out,
+APR_DECLARE(apr_status_t) apr_procattr_child_out_set(apr_procattr_t *attr,
+                                                     apr_file_t *child_out,
                                                      apr_file_t *parent_out)
 {
-    apr_status_t rv;
+    apr_status_t rv = APR_SUCCESS;
 
     if (attr->child_out == NULL && attr->parent_out == NULL
            && child_out == NULL && parent_out == NULL)
@@ -160,23 +156,27 @@
                 rv = apr_file_inherit_set(attr->child_out);
         }
     }
-  
+
     if (parent_out != NULL && rv == APR_SUCCESS) {
-        rv = apr_file_dup(&attr->parent_out, parent_out, attr->pool);
+        if (attr->parent_out)
+            rv = apr_file_dup2(attr->parent_out, parent_out, attr->pool);
+        else
+            rv = apr_file_dup(&attr->parent_out, parent_out, attr->pool);
     }
 
     return rv;
 }
 
-APR_DECLARE(apr_status_t) apr_procattr_child_err_set(apr_procattr_t *attr, apr_file_t *child_err,
+APR_DECLARE(apr_status_t) apr_procattr_child_err_set(apr_procattr_t *attr,
+                                                     apr_file_t *child_err,
                                                      apr_file_t *parent_err)
 {
-    apr_status_t rv;
+    apr_status_t rv = APR_SUCCESS;
 
     if (attr->child_err == NULL && attr->parent_err == NULL
            && child_err == NULL && parent_err == NULL)
         if ((rv = apr_file_pipe_create(&attr->parent_err, &attr->child_err,
-                                       attr->pool)) == APR_SUCCESS)
+                                      attr->pool)) == APR_SUCCESS)
             rv = apr_file_inherit_unset(attr->parent_err);
 
     if (child_err != NULL && rv == APR_SUCCESS) {
@@ -189,20 +189,24 @@
                 rv = apr_file_inherit_set(attr->child_err);
         }
     }
-  
     if (parent_err != NULL && rv == APR_SUCCESS) {
-        rv = apr_file_dup(&attr->parent_err, parent_err, attr->pool);
+        if (attr->parent_err)
+            rv = apr_file_dup2(attr->parent_err, parent_err, attr->pool);
+        else
+            rv = apr_file_dup(&attr->parent_err, parent_err, attr->pool);
     }
 
     return rv;
 }
 
-APR_DECLARE(apr_status_t) apr_procattr_dir_set(apr_procattr_t *attr, const char *dir)
+APR_DECLARE(apr_status_t) apr_procattr_dir_set(apr_procattr_t *attr,
+                                               const char *dir)
 {
     attr->currdir = apr_pstrdup(attr->pool, dir);
     if (attr->currdir) {
         return APR_SUCCESS;
     }
+
     return APR_ENOMEM;
 }
 
@@ -222,21 +226,26 @@
 APR_DECLARE(apr_status_t) apr_proc_fork(apr_proc_t *proc, apr_pool_t *pool)
 {
     int pid;
-    
+
     if ((pid = fork()) < 0) {
         return errno;
     }
     else if (pid == 0) {
         proc->pid = pid;
-        proc->in = NULL; 
-        proc->out = NULL; 
-        proc->err = NULL; 
+        proc->in = NULL;
+        proc->out = NULL;
+        proc->err = NULL;
+
+        apr_random_after_fork(proc);
+
         return APR_INCHILD;
     }
+
     proc->pid = pid;
-    proc->in = NULL; 
-    proc->out = NULL; 
-    proc->err = NULL; 
+    proc->in = NULL;
+    proc->out = NULL;
+    proc->err = NULL;
+
     return APR_INPARENT;
 }
 
@@ -273,7 +282,6 @@
 APR_DECLARE(apr_status_t) apr_procattr_child_errfn_set(apr_procattr_t *attr,
                                                        apr_child_errfn_t *errfn)
 {
-    /* won't ever be called on this platform, so don't save the function pointer */
     return APR_SUCCESS;
 }
 
@@ -282,7 +290,6 @@
 APR_DECLARE(apr_status_t) apr_procattr_error_check_set(apr_procattr_t *attr,
                                                        apr_int32_t chk)
 {
-    /* won't ever be used on this platform, so don't save the flag */
     return APR_SUCCESS;
 }
 
@@ -537,9 +544,8 @@
         DosExitCritSec();
 
     return status;
-}
-
 
+}
 
 static void proces_result_codes(RESULTCODES codes, 
                                 int *exitcode, 
@@ -587,7 +593,6 @@
             break;
         }
     }
-
     if (exitcode) {
         *exitcode = result;
     }
@@ -599,6 +604,7 @@
 
 
 
+#if 0
 APR_DECLARE(apr_status_t) apr_proc_wait_all_procs(apr_proc_t *proc,
                                                   int *exitcode,
                                                   apr_exit_why_e *exitwhy,
@@ -624,6 +630,7 @@
 
 
 
+#if 1
 APR_DECLARE(apr_status_t) apr_proc_wait(apr_proc_t *proc,
                                         int *exitcode, apr_exit_why_e *exitwhy,
                                         apr_wait_how_e waithow)
@@ -642,8 +649,150 @@
 
     return APR_OS2_STATUS(rc);
 } 
+#else
+APR_DECLARE(apr_status_t) apr_proc_wait(apr_proc_t *proc,
+                                        int *exitcode, apr_exit_why_e *exitwhy,
+                                        apr_wait_how_e waithow)
+{
+    RESULTCODES codes;
+    ULONG rc;
+    PID pid;
+    rc = DosWaitChild(DCWA_PROCESS, waithow == APR_WAIT ? DCWW_WAIT : DCWW_NOWAIT, &codes, &pid, proc->pid);
+//fprintf(stderr,"rc of DosWaitChild= %d\n",rc);
+    if (rc == 0) {
+        proces_result_codes(codes, exitcode, exitwhy);
+        return APR_CHILD_DONE;
+    } else if (rc == ERROR_CHILD_NOT_COMPLETE) {
+        return APR_CHILD_NOTDONE;
+    } 
 
+    if (rc==128){
+      pid_t pstatus;
+      int waitpid_options = WUNTRACED;
+      int exit_int;
+      int ignore;
+      apr_exit_why_e ignorewhy;
+
+      if (exitcode == NULL) {
+          exitcode = &ignore;
+      }
+
+      if (exitwhy == NULL) {
+          exitwhy = &ignorewhy;
+      }
+
+      if (waithow != APR_WAIT) {
+          waitpid_options |= WNOHANG;
+      }
+
+      do {
+          pstatus = waitpid(proc->pid, &exit_int, waitpid_options);
+      } while (pstatus < 0 && errno == EINTR);
+
+      if (pstatus > 0) {
+          proc->pid = pstatus;
+
+          if (WIFEXITED(exit_int)) {
+              *exitwhy = APR_PROC_EXIT;
+              *exitcode = WEXITSTATUS(exit_int);
+//fprintf(stderr,"exitwhy = %d, exitcode = %d\n",APR_PROC_EXIT, WEXITSTATUS(exit_int));
+          }
+          else if (WIFSIGNALED(exit_int)) {
+              *exitwhy = APR_PROC_SIGNAL;
+#ifdef WCOREDUMP
+              if (WCOREDUMP(exit_int)) {
+                  *exitwhy |= APR_PROC_SIGNAL_CORE;
+              }
+#endif
+
+              *exitcode = WTERMSIG(exit_int);
+          }
+          else {
+              /* unexpected condition */
+              return APR_EGENERAL;
+          }
+
+          return APR_CHILD_DONE;
+      }
+      else if (pstatus == 0) {
+          return APR_CHILD_NOTDONE;
+      }
 
+      return errno;
+
+    }
+    return APR_OS2_STATUS(rc);
+} 
+#endif
+#else
+APR_DECLARE(apr_status_t) apr_proc_wait_all_procs(apr_proc_t *proc,
+                                                  int *exitcode,
+                                                  apr_exit_why_e *exitwhy,
+                                                  apr_wait_how_e waithow,
+                                                  apr_pool_t *p)
+{
+    proc->pid = -1;
+    return apr_proc_wait(proc, exitcode, exitwhy, waithow);
+}
+
+APR_DECLARE(apr_status_t) apr_proc_wait(apr_proc_t *proc,
+                                        int *exitcode, apr_exit_why_e *exitwhy,
+                                        apr_wait_how_e waithow)
+{
+    pid_t pstatus;
+    int waitpid_options = WUNTRACED;
+    int exit_int;
+    int ignore;
+    apr_exit_why_e ignorewhy;
+
+    if (exitcode == NULL) {
+        exitcode = &ignore;
+    }
+
+    if (exitwhy == NULL) {
+        exitwhy = &ignorewhy;
+    }
+
+    if (waithow != APR_WAIT) {
+        waitpid_options |= WNOHANG;
+    }
+
+    do {
+        pstatus = waitpid(proc->pid, &exit_int, waitpid_options);
+    } while (pstatus < 0 && errno == EINTR);
+
+    if (pstatus > 0) {
+        proc->pid = pstatus;
+
+        if (WIFEXITED(exit_int)) {
+            *exitwhy = APR_PROC_EXIT;
+            *exitcode = WEXITSTATUS(exit_int);
+        }
+        else if (WIFSIGNALED(exit_int)) {
+            *exitwhy = APR_PROC_SIGNAL;
+
+#ifdef WCOREDUMP
+            if (WCOREDUMP(exit_int)) {
+                *exitwhy |= APR_PROC_SIGNAL_CORE;
+            }
+#endif
+
+            *exitcode = WTERMSIG(exit_int);
+        }
+        else {
+            /* unexpected condition */
+            return APR_EGENERAL;
+        }
+
+        return APR_CHILD_DONE;
+    }
+    else if (pstatus == 0) {
+        return APR_CHILD_NOTDONE;
+    }
+
+    return errno;
+}
+#endif
 
 APR_DECLARE(apr_status_t) apr_proc_detach(int daemonize)
 {
@@ -670,3 +819,11 @@
 {
     return APR_ENOTIMPL;
 }
+
+APR_DECLARE(apr_status_t) apr_procattr_limit_set(apr_procattr_t *attr,
+                                                 apr_int32_t what,
+                                                 struct rlimit *limit)
+{
+    return APR_ENOTIMPL;
+}
+
diff -ur apr-1.6.5-o/threadproc/os2/thread.c apr-1.6.5/threadproc/os2/thread.c
--- apr-1.6.5-o/threadproc/os2/thread.c	2007-10-14 01:51:40.000000000 +1030
+++ apr-1.6.5/threadproc/os2/thread.c	2018-10-31 19:14:46.000000000 +1030
@@ -22,8 +22,11 @@
 #include "apr_lib.h"
 #include "apr_portable.h"
 #include "apr_arch_file_io.h"
+//#define INCL_LIBLOADEXCEPTQ
+//#include "exceptq.h"
 #include <stdlib.h>
 
+
 APR_DECLARE(apr_status_t) apr_threadattr_create(apr_threadattr_t **new, apr_pool_t *pool)
 {
     (*new) = (apr_threadattr_t *)apr_palloc(pool, sizeof(apr_threadattr_t));
@@ -68,8 +71,13 @@
 
 static void apr_thread_begin(void *arg)
 {
+//  EXCEPTIONREGISTRATIONRECORD exRegRec;
   apr_thread_t *thread = (apr_thread_t *)arg;
+  // install exception handler (dynamically loaded)
+//  LibLoadExceptq(&exRegRec);
   thread->exitval = thread->func(thread, thread->data);
+  /* remove exception handler */
+  apr_thread_exit(thread, thread->exitval);      // In case caller does not call apr_thread_exit
 }
 
 
@@ -131,7 +139,29 @@
 
 APR_DECLARE(apr_status_t) apr_thread_exit(apr_thread_t *thd, apr_status_t retval)
 {
+    PTIB ptib;
+    PPIB ppib;
+//    EXCEPTIONREGISTRATIONRECORD *pexRegRec;     // 2013-03-17 SHL
     thd->exitval = retval;
+    // 2013-03-17 SHL
+    DosGetInfoBlocks(&ptib, &ppib);
+#if 0
+    pexRegRec = ptib->tib_pexchain;
+    /* Verify that we have what looks like a valid registration record pointer
+       It's a really bad coding error for this not to be the case
+       but some code within the thread might goof might install a
+       handler and forget to uninstall it
+       FIXME to report this condition somewhere
+       Maybe we should just force a trap
+    */
+    if (pexRegRec != END_OF_CHAIN &&
+        (PVOID)pexRegRec > (PVOID)&ptib &&
+        (PVOID)pexRegRec < ptib->tib_pstacklimit)
+    {
+      /* remove exception handler */
+      UninstallExceptq(pexRegRec);      // 2013-03-17 SHL
+    }
+#endif
     _endthread();
     return -1; /* If we get here something's wrong */
 }
diff -ur apr-1.6.5-o/threadproc/unix/signals.c apr-1.6.5/threadproc/unix/signals.c
--- apr-1.6.5-o/threadproc/unix/signals.c	2008-02-01 19:26:54.000000000 +1030
+++ apr-1.6.5/threadproc/unix/signals.c	2018-10-31 19:14:46.000000000 +1030
@@ -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;
     }
diff -ur apr-1.6.5-o/time/unix/time.c apr-1.6.5/time/unix/time.c
--- apr-1.6.5-o/time/unix/time.c	2017-09-11 08:00:34.000000000 +0930
+++ apr-1.6.5/time/unix/time.c	2018-10-31 19:14:46.000000000 +1030
@@ -126,7 +126,7 @@
 APR_DECLARE(apr_status_t) apr_time_exp_lt(apr_time_exp_t *result,
                                                 apr_time_t input)
 {
-#if defined(__EMX__)
+#if defined(__EMX__) && !defined(__KLIBC__)
     /* EMX gcc (OS/2) has a timezone global we can use */
     return apr_time_exp_tz(result, input, -timezone);
 #else
@@ -250,7 +250,7 @@
 #endif
 }
 
-#ifdef OS2
+#if defined(OS2) 
 APR_DECLARE(apr_status_t) apr_os2_time_to_apr_time(apr_time_t *result,
                                                    FDATE os2date,
                                                    FTIME os2time)
Only in apr-1.6.5/tools: gen_test_char.exe
Only in apr-1.6.5/tools: gen_test_char.lo
Only in apr-1.6.5/tools: gen_test_char.map
Only in apr-1.6.5/tools: gen_test_char.o
diff -ur apr-1.6.5-o/user/unix/userinfo.c apr-1.6.5/user/unix/userinfo.c
--- apr-1.6.5-o/user/unix/userinfo.c	2006-08-03 20:25:30.000000000 +0930
+++ apr-1.6.5/user/unix/userinfo.c	2018-10-31 19:14:46.000000000 +1030
@@ -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
apr-1.6.5.diff (123,077 bytes)   

Steven Levine

2018-12-31 17:51

manager   ~0003236

warnings-to-fix.txt is an annotated listing of the warnings I recommend you make go away. Add a few #includes will resolve the vast majority of them. There was only one that could potentially cause a crash.
warnings-to-fix.txt (13,077 bytes)   
apr 1.6.5 warnings that probably should be fixed
2018-12-31 SHL

file_io/os2/dir.c:64:8: warning: implicit declaration of function 'access'; did you mean 'accept'? [-Wimplicit-function-declaration]
     if(access(dirname, F_OK) != 0) return APR_ENOENT;
        accept

* Add #include <io.h>

file_io/os2/filestat.c:136:25: warning: implicit declaration of function 'apr_unix_mode2perms'; did you mean 'apr_uid_compare'? [-Wimplicit-function-declaration]
     finfo->protection = apr_unix_mode2perms(info->st_mode);
                         ^~~~~~~~~~~~~~~~~~~
                         apr_uid_compare

Add #include "../unix/apr_arch_file_io.h" or add apr_unix_mode2perms() to os2/apr_arch_file_io.h

file_io/os2/../unix/mktemp.c:71:23: warning: implicit declaration of function 'srandom'; did you mean 'seedrandom'? [-Wimplicit-function-declaration]
 #define seedrandom(a) srandom(a)
                       ^~~~~~~
         seedrandom(randseed);
         ^~~~~~~~~~
* Add #include <stdlib.h>

file_io/os2/../unix/mktemp.c:70:22: warning: implicit declaration of function 'random'; did you mean 'rindex'? [-Wimplicit-function-declaration]
 #define arc4random() random()
                      ^~~~~~
         randnum = arc4random() % (sizeof(padchar) - 1);
                   ^~~~~~~~~~

* Add #include <stdlib.h>

file_io/os2/open.c:36:9: warning: implicit declaration of function 'close'; did you mean 'pclose'? [-Wimplicit-function-declaration]
     if (close(file->filedes) == 0) {
         ^~~~~
         pclose

* Add #include <unistd.h>

file_io/os2/open.c:39:13: warning: implicit declaration of function 'unlink' [-Wimplicit-function-declaration]
             unlink(file->fname);
             ^~~~~~

* Add #include <unistd.h>

file_io/os2/readwrite.c:111:38: warning: passing argument 2 of 'DosResetEventSem' from incompatible pointer type [-Wincompatible-pointer-types]
   DosResetEventSem(thefile->pipeSem, &post_count);
                                      ^~~~~~~~~~~
                 from ./include/apr.h:192,
                 from ./include/apr_pools.h:43,
                 from ./include/arch/unix/../apr_private_common.h:24,
                 from ./include/arch/unix/apr_private.h:1019,
                 from U:/DEV/apr-1.6.5/include/arch/os2/apr_arch_file_io.h:20,
                 from file_io/os2/readwrite.c:20:
 ULONG APIENTRY DosResetEventSem (HEV hev, PULONG pulCount);
                                           ~~~~~~~^~~~~~~~

* Change post_count from into to unsigned long

file_io/os2/readwrite.c:112:48: warning: passing argument 4 of 'DosRead' from incompatible pointer type [-Wincompatible-pointer-types]
      rc = DosRead(thefile->filedes, buf, *len, &nbytes);
                                                ^~~~~~~
                 from ./include/apr.h:192,
                 from ./include/apr_pools.h:43,
                 from ./include/arch/unix/../apr_private_common.h:24,
                 from ./include/arch/unix/apr_private.h:1019,
                 from U:/DEV/apr-1.6.5/include/arch/os2/apr_arch_file_io.h:20,
                 from file_io/os2/readwrite.c:20:
     PULONG pulBytesRead);
     ~~~~~~~^~~~~~~~~~~~

* Change nbytes to unsigned long

file_io/os2/readwrite.c:167:69: warning: passing argument 4 of 'SafeDosSetFilePtr' from incompatible pointer type [-Wincompatible-pointer-types]
                 DosSetFilePtr(thefile->filedes, offset, FILE_BEGIN, &thefile->filePtr );
                                                                     ^~~~~~~~~~~~~~~~~
                 from ./include/apr.h:192,
                 from ./include/apr_pools.h:43,
                 from ./include/arch/unix/../apr_private_common.h:24,
                 from ./include/arch/unix/apr_private.h:1019,
                 from U:/DEV/apr-1.6.5/include/arch/os2/apr_arch_file_io.h:20,
                 from file_io/os2/readwrite.c:20:
 ULONG APIENTRY DosSetFilePtr (HFILE hFile, LONG lOffset, ULONG ulOrigin, PULONG pulPos);

                                                                          ~~~~~~~^~~~~~
* Cast thefile->filePtr to to unsigned long
* Changing filePtr to unsigned long is probably too intrusive

file_io/os2/readwrite.c:192:13: warning: implicit declaration of function 'isatty'; did you mean 'isset'? [-Wimplicit-function-declaration]
         if (isatty(thefile->filedes)
             ^~~~~~
             isset

* Add #include <io.h>

file_io/os2/readwrite.c:197:30: warning: implicit declaration of function '_lmalloc'; did you mean '_tmalloc'? [-Wimplicit-function-declaration]
                 pvBuf_safe = _lmalloc(*nbytes);
                              ^~~~~~~~
                              _tmalloc

* Add #include <umalloc.h> or
* Add #include <malloc.h> and change to _tmalloc
* _lmalloc and _tmalloc both allocate from the same heap

file_io/os2/readwrite.c:197:28: warning: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
                 pvBuf_safe = _lmalloc(*nbytes);
                            ^

* Add #include <umalloc.h> or
* Add #include <malloc.h> and change to _tmalloc
* _lmalloc and _tmalloc both allocate from the same heap

file_io/os2/readwrite.c:208:30: warning: implicit declaration of function 'alloca' [-Wimplicit-function-declaration]
                 pvBuf_safe = alloca(*nbytes);
                              ^~~~~~

* Add #include <stdlib.h> or <alloca.h>

file_io/os2/readwrite.c:208:30: warning: incompatible implicit declaration of built-in function 'alloca'
file_io/os2/readwrite.c:308:16: warning: implicit declaration of function 'write'; did you mean 'fwrite'? [-Wimplicit-function-declaration]
      written = write(thefile->filedes, thefile->buffer, thefile->bufpos);
                ^~~~~
                fwrite

* Add #include <unistd.h>

file_io/os2/seek.c:45:63: warning: passing argument 4 of 'SafeDosSetFilePtr' from incompatible pointer type [-Wincompatible-pointer-types]
         rc = DosSetFilePtr(thefile->filedes, pos, FILE_BEGIN, &thefile->filePtr );
                                                               ^~~~~~~~~~~~~~~~~
                 from ./include/apr.h:192,
                 from ./include/apr_pools.h:43,
                 from ./include/arch/unix/../apr_private_common.h:24,
                 from ./include/arch/unix/apr_private.h:1019,
                 from U:/DEV/apr-1.6.5/include/arch/os2/apr_arch_file_io.h:20,
                 from file_io/os2/seek.c:17:
 ULONG APIENTRY DosSetFilePtr (HFILE hFile, LONG lOffset, ULONG ulOrigin, PULONG pulPos);


                                                                          ~~~~~~~^~~~~~
* Cast thefile->filePtr to to unsigned long
* Changing filePtr to unsigned long is probably too intrusive

memory/unix/apr_pools.c:411:17: warning: implicit declaration of function '_lmalloc'; did you mean 'malloc'? [-Wimplicit-function-declaration]
     if ((node = _lmalloc(size)) == NULL)
                 ^~~~~~~~
                 malloc

* Add #include <umalloc.h> or
* Add #include <malloc.h> and change to _tmalloc
* _lmalloc and _tmalloc both allocate from the same heap

memory/unix/apr_pools.c:411:15: warning: assignment to 'apr_memnode_t *' {aka 'struct apr_memnode_t *'} from 'int' makes pointer from integer without a cast [-Wint-conversion]
     if ((node = _lmalloc(size)) == NULL)
               ^
                 from network_io/os2/../unix/inet_ntop.c:18,
                 from network_io/os2/inet_ntop.c:1:

* Add #include <umalloc.h> or
* Add #include <malloc.h> and change to _tmalloc
* _lmalloc and _tmalloc both allocate from the same heap

U:/DEV/apr-1.6.5/include/arch/os2/apr_arch_os2calls.h:19:2: warning: #warning xxx [-Wcpp]
 #warning xxx
  ^~~~~~~
                 from network_io/os2/../unix/inet_pton.c:18,
                 from network_io/os2/inet_pton.c:1:

* I have no clue why someone added this warning to apr_arch_os2calls.h

U:/DEV/apr-1.6.5/include/arch/os2/apr_arch_os2calls.h:19:2: warning: #warning xxx [-Wcpp]
 #warning xxx
                 from network_io/os2/os2calls.c:17:

* I have no clue why someone added this warning to apr_arch_os2calls.h

U:/DEV/apr-1.6.5/include/arch/os2/apr_arch_os2calls.h:19:2: warning: #warning xxx [-Wcpp]
 #warning xxx
  ^~~~~~~
                 from network_io/os2/sendrecv.c:17:
* I have no clue why someone added this warning to apr_arch_os2calls.h

U:/DEV/apr-1.6.5/include/arch/os2/apr_arch_os2calls.h:19:2: warning: #warning xxx [-Wcpp]
 #warning xxx
  ^~~~~~~
                 from network_io/os2/sendrecv_udp.c:17:

* I have no clue why someone added this warning to apr_arch_os2calls.h

U:/DEV/apr-1.6.5/include/arch/os2/apr_arch_os2calls.h:19:2: warning: #warning xxx [-Wcpp]
 #warning xxx
  ^~~~~~~
                 from network_io/os2/../unix/sockaddr.c:17,
                 from network_io/os2/sockaddr.c:2:

* I have no clue why someone added this warning to apr_arch_os2calls.h

U:/DEV/apr-1.6.5/include/arch/os2/apr_arch_os2calls.h:19:2: warning: #warning xxx [-Wcpp]
 #warning xxx
  ^~~~~~~
* I have no clue why someone added this warning to apr_arch_os2calls.h

network_io/os2/../unix/multicast.c:165:28: warning: passing argument 4 of 'apr_os2_setsockopt' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
                            (const void *) &mip4, sizeof(mip4)) == -1) {
                            ^~~~~~~~~~~~~~~~~~~~

* Probably should add const to declaraction in apr_arch_os2calls.h just to get rid of warning

network_io/os2/../unix/multicast.c:208:24: warning: passing argument 4 of 'apr_os2_setsockopt' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
                        (const void *) &value, sizeof(value)) == -1) {
                        ^~~~~~~~~~~~~~~~~~~~~

* Probably should add const to declaraction in apr_arch_os2calls.h just to get rid of warning

network_io/os2/../unix/multicast.c:292:24: warning: passing argument 4 of 'apr_os2_setsockopt' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
                        (const void *) &iface->sa.sin.sin_addr,
                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                 from network_io/os2/sockets.c:17:

* Probably should add const to declaraction in apr_arch_os2calls.h just to get rid of warning

U:/DEV/apr-1.6.5/include/arch/os2/apr_arch_os2calls.h:19:2: warning: #warning xxx [-Wcpp]
 #warning xxx
  ^~~~~~~
                 from network_io/os2/sockopt.c:17:

* I have no clue why someone added this warning to apr_arch_os2calls.h

U:/DEV/apr-1.6.5/include/arch/os2/apr_arch_os2calls.h:19:2: warning: #warning xxx [-Wcpp]
 #warning xxx
  ^~~~~~~
                 from poll/os2/poll.c:19:

* I have no clue why someone added this warning to apr_arch_os2calls.h

U:/DEV/apr-1.6.5/include/arch/os2/apr_arch_os2calls.h:19:2: warning: #warning xxx [-Wcpp]
 #warning xxx
  ^~~~~~~
                 from ./include/apr_poll.h:24,
                 from poll/os2/poll.c:18:

* I have no clue why someone added this warning to apr_arch_os2calls.h

In file included from ./include/apr_pools.h:44,
                 from ./include/apr_poll.h:24,
                 from poll/os2/poll.c:18:
poll/os2/poll.c: In function 'apr_pollcb_method_name':
./include/apr_errno.h:476:28: warning: returning 'int' from a function with return type 'const char *' makes pointer from integer without a cast [-Wint-conversion]
 #define APR_ENOTIMPL       (APR_OS_START_STATUS + 23)
                            ^
     return APR_ENOTIMPL;
            ^~~~~~~~~~~~
                 from poll/os2/pollset.c:19:

* apr_pollcb_method_name() shoud probably return NULL or maybe "NOT_IMPLEMENTED"
* A non-zero value could cause a crash
* Since apr_pollcb_create_ex returns APR_ENOTIMPL, apr_pollcb_method_name()
* should probably never be called.

U:/DEV/apr-1.6.5/include/arch/os2/apr_arch_os2calls.h:19:2: warning: #warning xxx [-Wcpp]
 #warning xxx
  ^~~~~~~

* I have no clue why someone added this warning to apr_arch_os2calls.h

poll/os2/pollset.c:221:18: warning: implicit declaration of function 'alloca' [-Wimplicit-function-declaration]
     pollresult = alloca(sizeof(int) * pollset->num_total);
                  ^~~~~~

* Add #include <stdlib.h> or <alloca.h>

poll/os2/pollset.c:221:18: warning: incompatible implicit declaration of built-in function 'alloca'
                 from support/unix/waitio.c:18:

U:/DEV/apr-1.6.5/include/arch/os2/apr_arch_os2calls.h:19:2: warning: #warning xxx [-Wcpp]
 #warning xxx
  ^~~~~~~
* I have no clue why someone added this warning to apr_arch_os2calls.h

threadproc/os2/proc.c:239:9: warning: implicit declaration of function 'apr_random_after_fork'; did you mean 'apr_proc_mutex_lock'? [-Wimplicit-function-declaration]
         apr_random_after_fork(proc);
         ^~~~~~~~~~~~~~~~~~~~~
         apr_proc_mutex_lock

threadproc/os2/thread.c:78:19: warning: assignment to 'apr_status_t' {aka 'int'} from 'void *' makes integer from pointer without a cast [-Wint-conversion]
   thread->exitval = thread->func(thread, thread->data);
                   ^
warnings-to-fix.txt (13,077 bytes)   

psmedley

2018-12-31 20:46

administrator   ~0003237

Thanks - I'll take a look later today. I did spend some time on APR warnings previously, but that was a few GCC versions and years ago :) I'd noticed the warnings that were due to missing headers and put them off for a rainier day :)

psmedley

2019-01-01 08:19

administrator   ~0003238

Made the suggested changes today, and no more warnings :) Will go take a look at Apache2 warnings now

psmedley

2019-01-01 08:55

administrator   ~0003239

Fixed in latest build, which needs to be added to the website

Issue History

Date Modified Username Field Change
2018-12-19 20:23 Steven Levine New Issue
2018-12-21 06:15 psmedley Note Added: 0003211
2018-12-21 07:27 Steven Levine Note Added: 0003212
2018-12-21 21:09 psmedley Note Added: 0003213
2018-12-21 21:11 psmedley Note Edited: 0003213
2018-12-24 06:39 psmedley Assigned To => psmedley
2018-12-24 06:39 psmedley Status new => feedback
2018-12-25 01:46 LewisR Note Added: 0003215
2018-12-25 03:05 Steven Levine Note Added: 0003216
2018-12-25 03:05 Steven Levine Status feedback => assigned
2018-12-25 03:05 Steven Levine Status assigned => acknowledged
2018-12-25 08:38 Steven Levine Note Added: 0003217
2018-12-25 08:49 psmedley Note Added: 0003218
2018-12-25 09:52 Steven Levine Note Added: 0003219
2018-12-26 06:05 psmedley Note Added: 0003220
2018-12-26 16:38 Steven Levine Note Added: 0003221
2018-12-27 03:39 psmedley Note Added: 0003222
2018-12-27 20:59 Steven Levine Note Added: 0003223
2018-12-28 00:51 psmedley Note Added: 0003224
2018-12-28 02:34 Steven Levine Note Added: 0003225
2018-12-28 03:08 psmedley Note Added: 0003226
2018-12-28 08:22 Steven Levine Note Added: 0003227
2018-12-28 08:36 psmedley Note Added: 0003228
2018-12-29 18:30 Steven Levine Note Added: 0003229
2018-12-29 20:39 psmedley Note Added: 0003230
2018-12-30 01:39 Steven Levine File Added: 02e9_01.trp
2018-12-30 01:39 Steven Levine Note Added: 0003231
2018-12-30 02:03 Steven Levine Note Added: 0003232
2018-12-30 04:12 psmedley Note Added: 0003233
2018-12-30 08:05 Steven Levine Note Added: 0003234
2018-12-31 08:11 psmedley File Added: aprbuild.log
2018-12-31 08:11 psmedley File Added: apr-1.6.5.diff
2018-12-31 08:11 psmedley Note Added: 0003235
2018-12-31 17:51 Steven Levine File Added: warnings-to-fix.txt
2018-12-31 17:51 Steven Levine Note Added: 0003236
2018-12-31 20:46 psmedley Note Added: 0003237
2019-01-01 08:19 psmedley Note Added: 0003238
2019-01-01 08:55 psmedley Status acknowledged => resolved
2019-01-01 08:55 psmedley Resolution open => fixed
2019-01-01 08:55 psmedley Note Added: 0003239
2019-05-15 14:39 LewisR Relationship added related to 0000689
2020-08-24 03:07 psmedley Status resolved => closed