Mercurial > hg > nginx
changeset 280:7c7183b3ea8b
nginx-0.0.2-2004-03-05-11:34:24 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Fri, 05 Mar 2004 08:34:24 +0000 |
parents | b79f021a644a |
children | 014292b55158 |
files | auto/cc auto/init auto/make auto/modules src/event/modules/ngx_iocp_module.c src/event/ngx_event.h src/event/ngx_event_acceptex.c src/http/ngx_http_log_handler.c src/os/win32/ngx_files.c src/os/win32/ngx_process.c src/os/win32/ngx_win32_config.h src/os/win32/ngx_wsarecv.c src/os/win32/ngx_wsarecv_chain.c src/os/win32/ngx_wsasend_chain.c |
diffstat | 14 files changed, 295 insertions(+), 91 deletions(-) [+] |
line wrap: on
line diff
--- a/auto/cc Thu Mar 04 16:34:23 2004 +0000 +++ b/auto/cc Fri Mar 05 08:34:24 2004 +0000 @@ -2,6 +2,7 @@ case $CC in *gcc) + # gcc 2.95.4, 3.3.2 # optimization #CFLAGS="$CFLAGS -O2 -fomit-frame-pointer" @@ -31,6 +32,7 @@ have=HAVE_GCC_VARIADIC_MACROS . auto/have OBJEXT=o + COMPILEONLY="-c " OBJOUT="-o " BINOUT="-o " @@ -57,6 +59,7 @@ have=HAVE_C99_VARIADIC_MACROS . auto/have OBJEXT=o + COMPILEONLY="-c " OBJOUT="-o " BINOUT="-o " @@ -113,6 +116,7 @@ CORE_LINK="$CORE_LINK -debug -debugtype:coff" OBJEXT=obj + COMPILEONLY="-c " OBJOUT="-Fo" BINOUT="-Fe" @@ -122,6 +126,52 @@ wcc386) # Open Watcom 1.0 + + # optimization + + # maximize speed + CFLAGS="$CFLAGS -ot" + # reorder instructions for best pipeline usage + CFLAGS="$CFLAGS -op" + # inline intrinsic functions + CFLAGS="$CFLAGS -oi" + # inline expansion + CFLAGS="$CFLAGS -oe" + # disable stack checking calls + CFLAGS="$CFLAGS -s" + # optimize for Pentium Pro + #CFLAGS="$CFLAGS -6r" + CFLAGS="$CFLAGS -6s" + + # warnings + #CFLAGS="$CFLAGS -w3" + CFLAGS="$CFLAGS -wx" + + # stop on warning + #CFLAGS="$CFLAGS -we" + + # built target is NT + CFLAGS="$CFLAGS -bt=nt" + + # multithreaded + CFLAGS="$CFLAGS -bm" + + # debug + CFLAGS="$CFLAGS -d2" + + # quiet + CFLAGS="$CFLAGS -zq" + + # link traget is NT + CORE_LINK="$CORE_LINK -l=nt" + + OBJEXT=obj + COMPILEONLY= + OBJOUT="-fo" + BINOUT="-fo" + INC_EQ=YES + MAKE_BS=YES + MAKE_SL=YES ;; esac
--- a/auto/init Thu Mar 04 16:34:23 2004 +0000 +++ b/auto/init Fri Mar 05 08:34:24 2004 +0000 @@ -10,6 +10,12 @@ CC_WARN=$CC +INC_EQ=NO +MAKE_BS=NO +MAKE_SL=NO +MAKE_BL=YES + + # checking echo's "-n" option and "\c" capabilties if echo "test\c" | grep c >/dev/null; then
--- a/auto/make Thu Mar 04 16:34:23 2004 +0000 +++ b/auto/make Fri Mar 05 08:34:24 2004 +0000 @@ -4,155 +4,261 @@ $OBJS/src/http $OBJS/src/http/modules $OBJS/src/http/modules/proxy -modules="$CORE_MODULES $EVENT_MODULES $HTTP_MODULES \ - $HTTP_FILTER_MODULES $HTTP_NOT_MODIFIED_FILTER_MODULE" +echo "CC = $CC" > $MAKEFILE +echo "CFLAGS = $CFLAGS" >> $MAKEFILE +echo >> $MAKEFILE -echo "#include <ngx_config.h>" > $NGX_MODULES_C -echo "#include <ngx_core.h>" >> $NGX_MODULES_C -echo >> $NGX_MODULES_C - -for mod in $modules -do - echo "extern ngx_module_t $mod;" >> $NGX_MODULES_C -done - -echo >> $NGX_MODULES_C -echo 'ngx_module_t *ngx_modules[] = {' >> $NGX_MODULES_C +# CORE_DEPS -for mod in $modules -do - echo " &$mod," >> $NGX_MODULES_C -done +if [ $MAKE_SL = YES ]; then + echo $ngx_n "CORE_DEPS =" $ngx_c >> $MAKEFILE +else + echo "CORE_DEPS = \\" >> $MAKEFILE +fi -echo " NULL" >> $NGX_MODULES_C -echo "};" >> $NGX_MODULES_C - - -echo "CC = $CC" > $MAKEFILE -echo "CFLAGS = $CFLAGS" >> $MAKEFILE -echo >> $MAKEFILE - -echo "CORE_DEPS = \\" >> $MAKEFILE for dep in $CORE_DEPS do - if [ $PLATFORM = win32 ]; then + if [ $MAKE_BS = YES ]; then dep=`echo $dep | sed -e "s/\//\\\\\\/g"` fi - echo " $dep \\" >> $MAKEFILE + + if [ $MAKE_SL = YES ]; then + echo $ngx_n " $dep" $ngx_c >> $MAKEFILE + else + echo " $dep \\" >> $MAKEFILE + fi done -echo >> $MAKEFILE +echo >> $MAKEFILE + + +# CORE_INCS + +if [ $MAKE_SL = YES ]; then + echo >> $MAKEFILE +fi inc="$CORE_INCS -I $OBJS" -if [ $PLATFORM = win32 ]; then +if [ $INC_EQ = YES ]; then + inc=`echo $inc | sed -e "s/-I /-i=/g"` +fi + +if [ $MAKE_BS = YES ]; then inc=`echo $inc | sed -e "s/\//\\\\\\/g"` fi -echo "CORE_INCS = $inc" >> $MAKEFILE -echo >> $MAKEFILE + +echo "CORE_INCS = $inc" >> $MAKEFILE +echo >> $MAKEFILE + + +# HTTP_DEPS -echo "HTTP_DEPS = \\" >> $MAKEFILE -for inc in $HTTP_DEPS +if [ $MAKE_SL = YES ]; then + echo $ngx_n "HTTP_DEPS =" $ngx_c >> $MAKEFILE +else + echo "HTTP_DEPS = \\" >> $MAKEFILE +fi + +for dep in $HTTP_DEPS do - if [ $PLATFORM = win32 ]; then - inc=`echo $inc | sed -e "s/\//\\\\\\/g"` + if [ $MAKE_BS = YES ]; then + dep=`echo $dep | sed -e "s/\//\\\\\\/g"` fi - echo " $inc \\" >> $MAKEFILE + + if [ $MAKE_SL = YES ]; then + echo $ngx_n " $dep" $ngx_c >> $MAKEFILE + else + echo " $dep \\" >> $MAKEFILE + fi done -echo >> $MAKEFILE +echo >> $MAKEFILE + + +# HTTP_INCS -inc="$HTTP_INCS" -if [ $PLATFORM = win32 ]; then +if [ $MAKE_SL = YES ]; then + echo >> $MAKEFILE +fi + +inc="$HTTP_INCS -I $OBJS" +if [ $INC_EQ = YES ]; then + inc=`echo $inc | sed -e "s/-I /-i=/g"` +fi + +if [ $MAKE_BS = YES ]; then inc=`echo $inc | sed -e "s/\//\\\\\\/g"` fi -echo "HTTP_INCS = $inc" >> $MAKEFILE -echo >> $MAKEFILE + +echo "HTTP_INCS = $inc" >> $MAKEFILE +echo >> $MAKEFILE +# nginx -echo "nginx: \\" >> $MAKEFILE +if [ $MAKE_SL = YES ]; then + echo $ngx_n "nginx: " $ngx_c >> $MAKEFILE +else + echo "nginx: \\" >> $MAKEFILE +fi + + +# nginx deps for src in $CORE_SRCS $HTTP_SRCS do obj=`echo $src | sed -e "s/\.c\$/.$OBJEXT/" -e "s/\.S\$/.$OBJEXT/"` obj="$OBJS/$obj" - if [ $PLATFORM = win32 ]; then + + if [ $MAKE_BS = YES ]; then obj=`echo $obj | sed -e "s/\//\\\\\\/g"` fi - echo " $obj \\" >> $MAKEFILE + if [ $MAKE_SL = YES ]; then + echo $ngx_n " $obj" $ngx_c >> $MAKEFILE + else + echo " $obj \\" >> $MAKEFILE + fi done for src in $NGX_MODULES_C $LINK_DEPS do obj=`echo $src | sed -e "s/\.c\$/.$OBJEXT/"` - if [ $PLATFORM = win32 ]; then + + if [ $MAKE_BS = YES ]; then obj=`echo $obj | sed -e "s/\//\\\\\\/g"` fi - echo " $obj \\" >> $MAKEFILE + if [ $MAKE_SL = YES ]; then + echo $ngx_n " $obj" $ngx_c >> $MAKEFILE + else + echo " $obj \\" >> $MAKEFILE + fi done +echo >> $MAKEFILE + -echo >> $MAKEFILE -echo " \$(CC) ${BINOUT}nginx \\" >> $MAKEFILE +# nginx build + +if [ $MAKE_SL = YES ]; then + echo $ngx_n " \$(CC) ${BINOUT}nginx" $ngx_c >> $MAKEFILE +else + echo " \$(CC) ${BINOUT}nginx \\" >> $MAKEFILE +fi + + +# nginx build sources for src in $CORE_SRCS $HTTP_SRCS do obj=`echo $src | sed -e "s/\.c\$/.$OBJEXT/" -e "s/\.S\$/.$OBJEXT/"` obj="$OBJS/$obj" - if [ $PLATFORM = win32 ]; then + + if [ $MAKE_BS = YES ]; then obj=`echo $obj | sed -e "s/\//\\\\\\/g"` fi - echo " $obj \\" >> $MAKEFILE + if [ $MAKE_SL = YES ]; then + echo $ngx_n " $obj," $ngx_c >> $MAKEFILE + else + echo " $obj \\" >> $MAKEFILE + fi done + +# nginx build ngx_modules.c and libs + obj=`echo $NGX_MODULES_C | sed -e "s/\.c\$/.$OBJEXT/"` -if [ $PLATFORM = win32 ]; then +libs=`echo $CORE_LIBS | sed -e "s/\.c\$/.$OBJEXT/"` +src=$NGX_MODULES_C +if [ $MAKE_BS = YES ]; then obj=`echo $obj | sed -e "s/\//\\\\\\/g"` + src=`echo $src | sed -e "s/\//\\\\\\/g"` + libs=`echo $libs | sed -e "s/\//\\\\\\/g"` fi -echo " $obj \\" >> $MAKEFILE -echo " $CORE_LIBS \\" >> $MAKEFILE -echo " $CORE_LINK" >> $MAKEFILE -echo >> $MAKEFILE +if [ $MAKE_SL = YES ]; then + echo " $obj $libs $CORE_LINK" >> $MAKEFILE + echo >> $MAKEFILE +else + echo " $obj \\" >> $MAKEFILE + echo " $CORE_LIBS \\" >> $MAKEFILE + echo " $CORE_LINK" >> $MAKEFILE + echo >> $MAKEFILE +fi + + +# ngx_modules.c deps="\$(CORE_DEPS)" args="\$(CFLAGS) \$(CORE_INCS)" -echo "$obj: \\" >> $MAKEFILE -echo " $NGX_MODULES_C $deps" >> $MAKEFILE -echo " \$(CC) -c $args \\" >> $MAKEFILE -echo " $OBJOUT$obj \\" >> $MAKEFILE -echo " $NGX_MODULES_C" >> $MAKEFILE -echo >> $MAKEFILE +if [ $MAKE_SL = YES ]; then + echo "$obj: $NGX_MODULES_C $deps" >> $MAKEFILE + echo $ngx_n " \$(CC) $COMPILEONLY $args" $ngx_c >> $MAKEFILE + echo " $OBJOUT$obj $src" >> $MAKEFILE + echo >> $MAKEFILE +else + echo "$obj: \\" >> $MAKEFILE + echo " $NGX_MODULES_C $deps" >> $MAKEFILE + echo " \$(CC) $COMPILEONLY $args \\" >> $MAKEFILE + echo " $OBJOUT$obj \\" >> $MAKEFILE + echo " $src" >> $MAKEFILE + echo >> $MAKEFILE +fi - +# core sources for src in $CORE_SRCS do obj=`echo $src | sed -e "s/\.c\$/.$OBJEXT/" -e "s/\.S\$/.$OBJEXT/"` + obj="$OBJS/$obj" - echo "$OBJS/$obj: \\" >> $MAKEFILE - echo " $src $deps" >> $MAKEFILE - echo " \$(CC) -c $args \\" >> $MAKEFILE - echo " $OBJOUT$OBJS/$obj \\" >> $MAKEFILE - echo " $src" >> $MAKEFILE - echo >> $MAKEFILE + if [ $MAKE_BS = YES ]; then + obj=`echo $obj | sed -e "s/\//\\\\\\/g"` + src=`echo $src | sed -e "s/\//\\\\\\/g"` + fi + + if [ $MAKE_SL = YES ]; then + echo "$obj: $src $deps" >> $MAKEFILE + echo " \$(CC) $COMPILEONLY $args $OBJOUT$obj $src" >> $MAKEFILE + echo >> $MAKEFILE + else + echo "$obj: \\" >> $MAKEFILE + echo " $src $deps" >> $MAKEFILE + echo " \$(CC) $COMPILEONLY $args \\" >> $MAKEFILE + echo " $OBJOUT$obj \\" >> $MAKEFILE + echo " $src" >> $MAKEFILE + echo >> $MAKEFILE + fi done +# http sources + deps="\$(CORE_DEPS) \$(HTTP_DEPS)" args="\$(CFLAGS) \$(CORE_INCS) \$(HTTP_INCS)" for src in $HTTP_SRCS do obj=`echo $src | sed -e "s/\.c\$/.$OBJEXT/"` + obj="$OBJS/$obj" - echo "$OBJS/$obj: \\" >> $MAKEFILE - echo " $src $deps" >> $MAKEFILE - echo " \$(CC) -c $args \\" >> $MAKEFILE - echo " $OBJOUT$OBJS/$obj \\" >> $MAKEFILE - echo " $src" >> $MAKEFILE - echo >> $MAKEFILE + if [ $MAKE_BS = YES ]; then + obj=`echo $obj | sed -e "s/\//\\\\\\/g"` + src=`echo $src | sed -e "s/\//\\\\\\/g"` + fi + + if [ $MAKE_SL = YES ]; then + echo "$obj: $src $deps" >> $MAKEFILE + echo " \$(CC) $COMPILEONLY $args $OBJOUT$obj $src" >> $MAKEFILE + echo >> $MAKEFILE + else + echo "$obj: \\" >> $MAKEFILE + echo " $src $deps" >> $MAKEFILE + echo " \$(CC) $COMPILEONLY $args \\" >> $MAKEFILE + echo " $OBJOUT$obj \\" >> $MAKEFILE + echo " $src" >> $MAKEFILE + echo >> $MAKEFILE + fi done
--- a/auto/modules Thu Mar 04 16:34:23 2004 +0000 +++ b/auto/modules Fri Mar 05 08:34:24 2004 +0000 @@ -78,3 +78,28 @@ HTTP_DEPS="$HTTP_DEPS $HTTP_PROXY_DEPS" HTTP_SRCS="$HTTP_SRCS $HTTP_PROXY_SRCS" fi + + +modules="$CORE_MODULES $EVENT_MODULES $HTTP_MODULES \ + $HTTP_FILTER_MODULES $HTTP_NOT_MODIFIED_FILTER_MODULE" + + +echo "#include <ngx_config.h>" > $NGX_MODULES_C +echo "#include <ngx_core.h>" >> $NGX_MODULES_C +echo >> $NGX_MODULES_C + +for mod in $modules +do + echo "extern ngx_module_t $mod;" >> $NGX_MODULES_C +done + +echo >> $NGX_MODULES_C +echo 'ngx_module_t *ngx_modules[] = {' >> $NGX_MODULES_C + +for mod in $modules +do + echo " &$mod," >> $NGX_MODULES_C +done + +echo " NULL" >> $NGX_MODULES_C +echo "};" >> $NGX_MODULES_C
--- a/src/event/modules/ngx_iocp_module.c Thu Mar 04 16:34:23 2004 +0000 +++ b/src/event/modules/ngx_iocp_module.c Fri Mar 05 08:34:24 2004 +0000 @@ -164,7 +164,7 @@ { int rc; u_int key; - size_t bytes; + u_long bytes; ngx_err_t err; ngx_msec_t timer; ngx_event_t *ev;
--- a/src/event/ngx_event.h Thu Mar 04 16:34:23 2004 +0000 +++ b/src/event/ngx_event.h Fri Mar 05 08:34:24 2004 +0000 @@ -122,11 +122,13 @@ * write: available space in buffer when event is ready * or lowat when event is set with NGX_LOWAT_EVENT flag * + * iocp: TODO + * * otherwise: * accept: 1 if accept many, 0 otherwise */ -#if (HAVE_KQUEUE) +#if (HAVE_KQUEUE) || (HAVE_IOCP) int available; #else unsigned short available:1;
--- a/src/event/ngx_event_acceptex.c Thu Mar 04 16:34:23 2004 +0000 +++ b/src/event/ngx_event_acceptex.c Fri Mar 05 08:34:24 2004 +0000 @@ -58,8 +58,8 @@ int ngx_event_post_acceptex(ngx_listening_t *ls, int n) { - int i; - u_int rcvd; + u_long rcvd; + ngx_int_t i; ngx_err_t err; ngx_event_t *rev, *wev; ngx_socket_t s;
--- a/src/http/ngx_http_log_handler.c Thu Mar 04 16:34:23 2004 +0000 +++ b/src/http/ngx_http_log_handler.c Fri Mar 05 08:34:24 2004 +0000 @@ -129,7 +129,7 @@ ngx_http_log_op_t *op; ngx_http_log_loc_conf_t *lcf; #if (WIN32) - u_int written; + u_long written; #endif ngx_log_debug0(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
--- a/src/os/win32/ngx_files.c Thu Mar 04 16:34:23 2004 +0000 +++ b/src/os/win32/ngx_files.c Fri Mar 05 08:34:24 2004 +0000 @@ -5,8 +5,8 @@ ssize_t ngx_read_file(ngx_file_t *file, char *buf, size_t size, off_t offset) { - size_t n; long high_offset; + DWORD n; ngx_err_t err; OVERLAPPED ovlp, *povlp; @@ -67,8 +67,8 @@ ssize_t ngx_write_file(ngx_file_t *file, char *buf, size_t size, off_t offset) { - size_t n; long high_offset; + DWORD n; ngx_err_t err; OVERLAPPED ovlp, *povlp;
--- a/src/os/win32/ngx_process.c Thu Mar 04 16:34:23 2004 +0000 +++ b/src/os/win32/ngx_process.c Fri Mar 05 08:34:24 2004 +0000 @@ -3,7 +3,7 @@ #include <ngx_core.h> -ngx_pid_t ngx_exec(ngx_cycle_t *cycle, ngx_exec_ctx_t *ctx) +ngx_pid_t ngx_execute(ngx_cycle_t *cycle, ngx_exec_ctx_t *ctx) { return /* STUB */ 0; }
--- a/src/os/win32/ngx_win32_config.h Thu Mar 04 16:34:23 2004 +0000 +++ b/src/os/win32/ngx_win32_config.h Fri Mar 05 08:34:24 2004 +0000 @@ -7,6 +7,10 @@ #define STRICT #define WIN32_LEAN_AND_MEAN +#ifdef __WATCOMC__ +#pragma disable_message(107) +#endif + /* * we need to include windows.h explicity before winsock2.h because * warning 4201 is enabled in windows.h @@ -34,6 +38,17 @@ #pragma warning(disable:4127) #endif + +#ifdef __WATCOMC__ +#pragma enable_message(107) +#if 0 +/* Symbol 'ngx_rbtree_min' has been defined, but not referenced */ +#pragma disable_message(202) +#endif +/* No prototype found for 'stricmp' */ +#pragma disable_message(301) +#endif + #include <ngx_auto_config.h>
--- a/src/os/win32/ngx_wsarecv.c Thu Mar 04 16:34:23 2004 +0000 +++ b/src/os/win32/ngx_wsarecv.c Fri Mar 05 08:34:24 2004 +0000 @@ -7,8 +7,7 @@ ssize_t ngx_wsarecv(ngx_connection_t *c, char *buf, size_t size) { int rc; - u_int flags; - size_t bytes; + u_long bytes, flags; WSABUF wsabuf[1]; ngx_err_t err; ngx_event_t *rev; @@ -56,8 +55,7 @@ ssize_t ngx_overlapped_wsarecv(ngx_connection_t *c, char *buf, size_t size) { int rc; - u_int flags; - size_t bytes; + u_long bytes, flags; WSABUF wsabuf[1]; ngx_err_t err; ngx_event_t *rev;
--- a/src/os/win32/ngx_wsarecv_chain.c Thu Mar 04 16:34:23 2004 +0000 +++ b/src/os/win32/ngx_wsarecv_chain.c Fri Mar 05 08:34:24 2004 +0000 @@ -8,8 +8,8 @@ { int rc; char *prev; - u_int flags; - size_t bytes, size; + u_long bytes, flags; + size_t size; WSABUF *wsabuf; ngx_err_t err; ngx_array_t io;
--- a/src/os/win32/ngx_wsasend_chain.c Thu Mar 04 16:34:23 2004 +0000 +++ b/src/os/win32/ngx_wsasend_chain.c Fri Mar 05 08:34:24 2004 +0000 @@ -8,7 +8,8 @@ { int rc; char *prev; - size_t size, sent; + size_t size; + u_long sent; LPWSABUF wsabuf; ngx_err_t err; ngx_event_t *wev; @@ -102,7 +103,8 @@ { int rc; char *prev; - size_t size, sent; + size_t size; + u_long sent; LPWSABUF wsabuf; ngx_err_t err; ngx_event_t *wev;