httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stipe Tolj <>
Subject [ANN] cygwin 1.1.x patch for apache_1.3.14 to support cygwin
Date Wed, 25 Oct 2000 10:59:16 GMT
Hi There,

as I told some of the guys at London yesterday, here goes our latest
diff file for the latest 1.3.14 release. We would like to see the code
integrated to the official source distribution, so the upcoming versions
are supported out-of-the-box.

This has been discussted allready on the list some time ago.
Unfortunatly the patch was that big that the core developers refused the
integration. I suppose this one -- and the one for the latest 2.0x
branch -- are acceptable and would be a real alternative (as said by
Martin Kraemer) for the Win32 systems.

First of all, I hope you know what the cygwin POSIX layer for Win32 is.
If not please check out the official project site at The guys from Cygnus have realy made a
great job, all major open source software packages have been ported to
cygwin and it makes Windows kick-ass!

This patch supports DSO compilation using

    $ ./configure --enable-rule=SHARED_CORE

to produce a libhttpd.dll file which is linked dynamicaly while runtime
by the Win32 system. This is a major performance gain since all modules
(mod_ssl, mod_php, mod_dav etc) are linked into the dll.

The patch is clean for Windows NT running cygwin 1.1.x. Unfortunatly the
dll specific parts have problems while runtime on the latest cygwin
1.1.4 release, they are working perferctly on our latest development
environment running cygwin 1.1.2. As we upgraded to 1.1.4 something
happend. We will request the cygwin developers list to have a look why
the dll invoking seems broken in 1.1.4.

Here are the changes we made:

* apache_1.3.14-cygwin/src/Configure: added OS recognize lines, some
cflags and libs and the dll stuff that has to be defined here

* apache_1.3.14-cygwin/src/Makefile.tmpl: added DLL_IMPORT_LIB variable
for linking

* apache_1.3.14-cygwin/src/helpers/GuessOS: added lines to recognize
cygwin's uname

(* apache_1.3.14-cygwin/src/helpers/ added Win32 specific
executable extension. This needs another workaround to make things

* apache_1.3.14-cygwin/src/include/ap_config.h: added some defines for
the OS

* apache_1.3.14-cygwin/src/main/http_main.c: excluded inclusion of
<netinet/tcp.h> since it is not available under cygwin. Added dll
importing parts before definition of int ap_main().

*  apache_1.3.14-cygwin/src/os/unix/os.h: added definition of API_EXPORT
for dll invoking.

* apache_1.3.14-cygwin/src/support/logresolve.c: minor change to exclude
external definition of h_errno.

Actualy the last patch we send it split the cygwin as a seperate
platform and hence we defined the folder src/os/cygwin where the os.h
header was placed.

In os.h we were defining PLATFORM "Cygwin", since we consider cygwin
neither "Unix" nor "Win32" in the terms of apache SOFTWARE_SERVER
environment variable indentification to the user agents. What does the
list mean??

Martin Kraemer asked if we made performance tests comparing the latest
native Win32 release and our cygwin based port. Actualy these benchmark
currently do not exist, but as nobody would either take native based nor
cygwin based apache machines as production machines for high-traffic
services we suppose that the performance will not be the key argument.
Nevertheless benchmarking is set on our TODO list and we will report
this as soon as we have completed some complex setups.


Stipe Tolj
Wapme Systems AG

Münsterstr. 248
40470 Düsseldorf

Tel: +49-211-74845-0
Fax: +49-211-74845-299

------------------------------------------------------------------- - wherever you are

View raw message