changeset 617:51b27717f140 release-0.3.30

nginx-0.3.30-RELEASE import *) Change: the ECONNABORTED error log level was changed to "error" from "crit". *) Bugfix: the ngx_http_perl_module could not be build without the ngx_http_ssi_filter_module. *) Bugfix: nginx could not be built on i386 platform, if the PIC was used; the bug had appeared in 0.3.27.
author Igor Sysoev <igor@sysoev.ru>
date Wed, 22 Feb 2006 19:41:39 +0000
parents 3ac637aa8f17
children 47f8a854752e
files docs/xml/nginx/changes.xml src/core/nginx.h src/core/ngx_cpuinfo.c src/event/ngx_event_accept.c src/http/modules/perl/nginx.xs src/http/modules/perl/ngx_http_perl_module.c src/http/modules/perl/ngx_http_perl_module.h
diffstat 7 files changed, 90 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/docs/xml/nginx/changes.xml
+++ b/docs/xml/nginx/changes.xml
@@ -9,6 +9,39 @@
 <title lang="en">nginx changelog</title>
 
 
+<changes ver="0.3.30" date="22.02.2006">
+
+<change type="change">
+<para lang="ru">
+уровень записи в лог ошибки ECONNABORTED изменён на error с уровня crit.
+</para>
+<para lang="en">
+the ECONNABORTED error log level was changed to "error" from "crit".
+</para>
+</change>
+
+<change type="bugfix">
+<para lang="ru">
+модуль ngx_http_perl_module не собирался без модуля ngx_http_ssi_filter_module.
+</para>
+<para lang="en">
+the ngx_http_perl_module could not be build without
+the ngx_http_ssi_filter_module.
+</para>
+</change>
+
+<change type="bugfix">
+<para lang="ru">
+nginx не собирался на i386 платформе, если использовался PIC.
+</para>
+<para lang="en">
+nginx could not be built on i386 platform, if the PIC was used.
+</para>
+</change>
+
+</changes>
+
+
 <changes ver="0.3.29" date="20.02.2006">
 
 <change type="feature">
--- a/src/core/nginx.h
+++ b/src/core/nginx.h
@@ -8,7 +8,7 @@
 #define _NGINX_H_INCLUDED_
 
 
-#define NGINX_VER          "nginx/0.3.29"
+#define NGINX_VER          "nginx/0.3.30"
 
 #define NGINX_VAR          "NGINX"
 #define NGX_OLDPID_EXT     ".oldbin"
--- a/src/core/ngx_cpuinfo.c
+++ b/src/core/ngx_cpuinfo.c
@@ -14,6 +14,39 @@
 static ngx_inline void ngx_cpuid(uint32_t i, uint32_t *buf);
 
 
+#if ( __i386__ )
+
+static ngx_inline void
+ngx_cpuid(uint32_t i, uint32_t *buf)
+{
+
+    /*
+     * we could not use %ebx as output parameter if gcc builds PIC,
+     * and we could not save %ebx on stack, because %esp is used,
+     * when the -fomit-frame-pointer optimization is specified.
+     */
+
+    __asm__ (
+
+    "    mov    %%ebx, %%esi;  "
+
+    "    cpuid;                "
+    "    mov    %%eax, %0;     "
+    "    mov    %%ebx, %1;     "
+    "    mov    %%edx, %2;     "
+    "    mov    %%ecx, %3;     "
+
+    "    mov    %%esi, %%ebx;  "
+
+    : "=m" (buf[0]), "=m" (buf[1]), "=m" (buf[2]), "=m" (buf[3])
+    : "a" (i)
+    : "ecx", "edx", "esi" );
+}
+
+
+#else /* __amd64__ */
+
+
 static ngx_inline void
 ngx_cpuid(uint32_t i, uint32_t *buf)
 {
@@ -32,6 +65,9 @@ ngx_cpuid(uint32_t i, uint32_t *buf)
 }
 
 
+#endif
+
+
 /* auto detect the L2 cache line size of modern and widespread CPUs */
 
 void
--- a/src/event/ngx_event_accept.c
+++ b/src/event/ngx_event_accept.c
@@ -59,7 +59,7 @@ ngx_event_accept(ngx_event_t *ev)
                 return;
             }
 
-            ngx_log_error((err == NGX_ECONNABORTED) ? NGX_LOG_CRIT:
+            ngx_log_error((err == NGX_ECONNABORTED) ? NGX_LOG_ERR:
                                                       NGX_LOG_ALERT,
                           ev->log, err, "accept() failed");
 
--- a/src/http/modules/perl/nginx.xs
+++ b/src/http/modules/perl/nginx.xs
@@ -47,7 +47,9 @@ ngx_http_perl_sv2str(pTHX_ ngx_http_requ
 static ngx_int_t
 ngx_http_perl_output(ngx_http_request_t *r, ngx_buf_t *b)
 {
-    ngx_chain_t          *cl, out;
+    ngx_chain_t           out;
+#if (NGX_HTTP_SSI)
+    ngx_chain_t          *cl;
     ngx_http_perl_ctx_t  *ctx;
 
     ctx = ngx_http_get_module_ctx(r, ngx_http_perl_module);
@@ -65,6 +67,7 @@ ngx_http_perl_output(ngx_http_request_t 
 
         return NGX_OK;
     }
+#endif
 
     out.buf = b;
     out.next = NULL;
--- a/src/http/modules/perl/ngx_http_perl_module.c
+++ b/src/http/modules/perl/ngx_http_perl_module.c
@@ -34,8 +34,11 @@ typedef struct {
 } ngx_http_perl_variable_t;
 
 
+#if (NGX_HTTP_SSI)
 static ngx_int_t ngx_http_perl_ssi(ngx_http_request_t *r,
     ngx_http_ssi_ctx_t *ssi_ctx, ngx_str_t **params);
+#endif
+
 static ngx_int_t
     ngx_http_perl_get_interpreter(ngx_http_perl_main_conf_t *pmcf,
     PerlInterpreter **perl, ngx_log_t *log);
@@ -142,6 +145,8 @@ ngx_module_t  ngx_http_perl_module = {
 };
 
 
+#if (NGX_HTTP_SSI)
+
 #define NGX_HTTP_PERL_SSI_SUB  0
 #define NGX_HTTP_PERL_SSI_ARG  1
 
@@ -152,11 +157,12 @@ static ngx_http_ssi_param_t  ngx_http_pe
     { ngx_null_string, 0, 0, 0 }
 };
 
-
 static ngx_http_ssi_command_t  ngx_http_perl_ssi_command = {
     ngx_string("perl"), ngx_http_perl_ssi, ngx_http_perl_ssi_params, 0, 1
 };
 
+#endif
+
 
 static void
 ngx_http_perl_xs_init(pTHX)
@@ -310,6 +316,8 @@ ngx_http_perl_variable(ngx_http_request_
 }
 
 
+#if (NGX_HTTP_SSI)
+
 static ngx_int_t
 ngx_http_perl_ssi(ngx_http_request_t *r, ngx_http_ssi_ctx_t *ssi_ctx,
     ngx_str_t **params)
@@ -385,6 +393,8 @@ ngx_http_perl_ssi(ngx_http_request_t *r,
     return rc;
 }
 
+#endif
+
 
 static ngx_int_t
 ngx_http_perl_get_interpreter(ngx_http_perl_main_conf_t *pmcf,
@@ -763,6 +773,7 @@ ngx_http_perl_cleanup_perl(void *data)
 static ngx_int_t
 ngx_http_perl_preconfiguration(ngx_conf_t *cf)
 {
+#if (NGX_HTTP_SSI)
     ngx_int_t                  rc;
     ngx_http_ssi_main_conf_t  *smcf;
 
@@ -780,6 +791,7 @@ ngx_http_perl_preconfiguration(ngx_conf_
 
         return NGX_ERROR;
     }
+#endif
 
     return NGX_OK;
 }
--- a/src/http/modules/perl/ngx_http_perl_module.h
+++ b/src/http/modules/perl/ngx_http_perl_module.h
@@ -26,7 +26,9 @@ typedef struct {
     ngx_str_t                 redirect_uri;
     ngx_str_t                 redirect_args;
 
+#if (NGX_HTTP_SSI)
     ngx_http_ssi_ctx_t       *ssi;
+#endif
 } ngx_http_perl_ctx_t;