nginx-0.8.30

Maxim Dounin mdounin на mdounin.ru
Пн Дек 21 13:28:37 MSK 2009


Hello!

On Mon, Dec 21, 2009 at 03:36:32PM +0600, Denis F. Latypoff wrote:

> Hello Andrew,
> 
> Monday, December 21, 2009, 3:01:36 PM, you wrote:
> 
> > Hello Igor,
> 
> IS>> Изменения в nginx 0.8.30                                          15.12.2009
> > у меня не собирается
> 
> > CentOS 5.x / x64 / gcc (GCC) 4.1.2 20071124 (Red Hat 4.1.2-42)
> 
> > ./configure \
> >  --with-cc-opt="-Os" \                                             
> >  --with-md5=../md5 \                                               
> >  --with-md5-opt="-Os" \                                            
> >  --with-md5-asm \                                                  
> >  --with-http_stub_status_module \                                  
> >  --with-rtsig_module \                                             
> >  --with-select_module \                                            
> >  --with-poll_module \                                              
> >  --with-http_ssl_module \                                          
> >  --with-http_realip_module \                                       
> >  --with-mail \                                                     
> >  --with-mail_ssl_module \                                          
> >  --user=wwwrun \                                                   
> >  --group=www
> 
> 
> > gcc -c -O -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter
> > -Wunused-function -Wunused-variable -Wunused-value -Werror -g -Os -I
> > src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules \
> >                 -o objs/src/http/ngx_http_request.o \
> >                 src/http/ngx_http_request.c
> > cc1: warnings being treated as errors
> > src/http/ngx_http_request.c: In function 'ngx_http_terminate_request':
> > src/http/ngx_http_request.c:2064: warning: dereferencing
> > type-punned pointer will break strict-aliasing rules
> 
> > и похоже что дело в --with-cc-opt="-Os"
> 
> 
> patch attached.
> 
> -- 
> Best regards,
>  Denis                            mailto:denis at gostats.ru

> diff -ru nginx-0.8.30/src/http/ngx_http.h nginx-0.8.30.new/src/http/ngx_http.h
> --- nginx-0.8.30/src/http/ngx_http.h	2009-11-30 19:15:10.000000000 +0600
> +++ nginx-0.8.30.new/src/http/ngx_http.h	2009-12-21 15:34:54.000000000 +0600
> @@ -94,7 +94,8 @@
>  void ngx_http_request_empty_handler(ngx_http_request_t *r);
>  
>  
> -#define ngx_http_ephemeral(r)  (ngx_http_ephemeral_t *) (&r->uri_start)
> +#define ngx_http_ephemeral(r)                                                 \
> +    (ngx_http_ephemeral_t *) (u_char *) (&r->uri_start)

IMHO, cast в (void *) тут был бы логичнее.  Но у меня нет шанса 
проверить помогает он или нет, за неимением gcc 4.1.

Maxim Dounin



Подробная информация о списке рассылки nginx-ru