<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<TITLE>Compiling Apache under UnixWare</TITLE>
</HEAD>

<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
<BODY
 BGCOLOR="#FFFFFF"
 TEXT="#000000"
 LINK="#0000FF"
 VLINK="#000080"
 ALINK="#FF0000"
>
<!--#include virtual="header.html" -->

<H1 ALIGN="CENTER">Compiling Apache under UnixWare</H1>

To compile a working copy of Apache under UnixWare, there are several other
steps you may need to take. These prevent such problems as zombie processes,
bind errors, and accept errors, to name a few.

<H2>UnixWare 1.x</H2>

Make sure that USE_FCNTL_SERIALIZE_ACCEPT is defined (if not
defined by Apache autoconfiguration). If using the UnixWare <i>cc</i>
compiler, and you still see accept() errors, don't use compiler optimization,
or get <i>gcc</i>.

<H2>UnixWare 2.0.x</H2>

SCO patch <a href="ftp://ftp.sco.com/UW20/tf2163.txt">tf2163</a> is required
in order for Apache to work correctly on UnixWare 2.0.x. See
<a href="http://www.sco.com">http://www.sco.com</a>
for UnixWare patch information.<p>

In addition, make sure that USE_FCNTL_SERIALIZE_ACCEPT is defined (if not
defined by Apache autoconfiguration). To reduce instances of connections
in FIN_WAIT_2 state, you may also want to define NO_LINGCLOSE (Apache 1.2
only).

<H2>UnixWare 2.1.x</H2>

SCO patch <a href="ftp://ftp.sco.com/UW21/ptf3123b.txt">ptf3123</a> is required
in order for Apache to work correctly on UnixWare 2.1.x. See
<a href="http://www.sco.com">http://www.sco.com</a>
for UnixWare patch information.<p>

<b>NOTE:</b> Unixware 2.1.2 and later already have patch ptf3123 included<p>

In addition, make sure that USE_FCNTL_SERIALIZE_ACCEPT is defined (if not
defined by Apache autoconfiguration). To reduce instances of connections
in FIN_WAIT_2 state, you may also want to define NO_LINGCLOSE (Apache 1.2
only).<p>

Thanks to Joe Doupnik &lt;JRD@cc.usu.edu&gt; and Rich Vaughn
&lt;rvaughn@aad.com&gt; for additional info for UnixWare builds.<p>

<!--#include virtual="footer.html" -->
</BODY>
</HTML>
