Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: nginx-0.8.30
On Mon, Dec 21, 2009 at 01:28:37PM +0300, Maxim Dounin wrote:
> 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@xxxxxxxxxx
>
> > 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.
Это не только gcc 4.1, но на фрибсдшном наборе gcc это не воспроизводится.
Твой вариант с memcpy мне не нравится: оно не мешает при переконфигурации,
но как общее решение не подходит - зачем копировать лишнее в run-time.
Единственное, что я пока нашёл - это:
--with-cc-opt="... -fno-strict-aliasing"
--
Игорь Сысоев
http://sysoev.ru
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru
|