Skip Menu |

This queue is for tickets about the Nginx-Perl CPAN distribution.

Report information
The Basics
Id: 109621
Status: new
Priority: 0/
Queue: Nginx-Perl

People
Owner: Nobody in particular
Requestors: SREZIC [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in:
  • 1.2.9.7
  • 1.8.1.8
Fixed in: (no value)



Subject: Compilation failure with perl 5.23.4 and later
With perl 5.23.4 and 5.23.5 compilation fails. I see the problem on freebsd 9.2 and debian linux: gcc -c -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_FORTIFY_SOURCE=2 -I/usr/perl5.23.5sp/lib/5.23.5/amd64-freebsd/CORE -I src/core -I src/event -I src/event/modules -I src/os/unix -I /usr/local/include -I objs -I src/http -I src/http/modules -I src/http/modules/perl -o objs/src/http/modules/perl/ngx_http_perl_module.o src/http/modules/perl/ngx_http_perl_module.c cc1: warnings being treated as errors src/http/modules/perl/ngx_http_perl_module.c: In function 'ngx_perl_resolver_handler': src/http/modules/perl/ngx_http_perl_module.c:1766: warning: comparison of unsigned expression < 0 is always false src/http/modules/perl/ngx_http_perl_module.c:1766: warning: comparison between signed and unsigned src/http/modules/perl/ngx_http_perl_module.c:1766: warning: signed and unsigned type in conditional expression *** [objs/src/http/modules/perl/ngx_http_perl_module.o] Error code 1
On 2015-11-24 16:54:42, SREZIC wrote: Show quoted text
> With perl 5.23.4 and 5.23.5 compilation fails. I see the problem on > freebsd 9.2 and debian linux: > > gcc -c -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror > -g -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict-aliasing -pipe > -fstack-protector -I/usr/local/include -D_FORTIFY_SOURCE=2 > -I/usr/perl5.23.5sp/lib/5.23.5/amd64-freebsd/CORE -I src/core -I > src/event -I src/event/modules -I src/os/unix -I /usr/local/include > -I objs -I src/http -I src/http/modules -I src/http/modules/perl -o > objs/src/http/modules/perl/ngx_http_perl_module.o > src/http/modules/perl/ngx_http_perl_module.c > cc1: warnings being treated as errors > src/http/modules/perl/ngx_http_perl_module.c: In function > 'ngx_perl_resolver_handler': > src/http/modules/perl/ngx_http_perl_module.c:1766: warning: comparison > of unsigned expression < 0 is always false > src/http/modules/perl/ngx_http_perl_module.c:1766: warning: comparison > between signed and unsigned > src/http/modules/perl/ngx_http_perl_module.c:1766: warning: signed and > unsigned type in conditional expression > *** [objs/src/http/modules/perl/ngx_http_perl_module.o] Error code 1
As -Werror is not used with clang here, this compiles fine (but with warnings) on a FreeBSD 10.1 system (if applying the workaround mentioned in RT #109623 first): ... src/http/modules/perl/ngx_http_perl_module.c:1766:9: warning: comparison of integers of different signs: 'long' and 'ngx_uint_t' (aka 'unsigned long') [-Wsign-compare] ...
On 2015-11-24 16:54:42, SREZIC wrote: Show quoted text
> With perl 5.23.4 and 5.23.5 compilation fails. I see the problem on > freebsd 9.2 and debian linux: > > gcc -c -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror > -g -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict-aliasing -pipe > -fstack-protector -I/usr/local/include -D_FORTIFY_SOURCE=2 > -I/usr/perl5.23.5sp/lib/5.23.5/amd64-freebsd/CORE -I src/core -I > src/event -I src/event/modules -I src/os/unix -I /usr/local/include > -I objs -I src/http -I src/http/modules -I src/http/modules/perl -o > objs/src/http/modules/perl/ngx_http_perl_module.o > src/http/modules/perl/ngx_http_perl_module.c > cc1: warnings being treated as errors > src/http/modules/perl/ngx_http_perl_module.c: In function > 'ngx_perl_resolver_handler': > src/http/modules/perl/ngx_http_perl_module.c:1766: warning: comparison > of unsigned expression < 0 is always false > src/http/modules/perl/ngx_http_perl_module.c:1766: warning: comparison > between signed and unsigned > src/http/modules/perl/ngx_http_perl_module.c:1766: warning: signed and > unsigned type in conditional expression > *** [objs/src/http/modules/perl/ngx_http_perl_module.o] Error code 1
Problem still exists with Nginx-Perl-1.8.1.8: src/http/modules/perl/ngx_http_perl_module.c:1767:9: error: comparison of integers of different signs: 'long' and 'ngx_uint_t' (aka 'unsigned long') [-Werror,-Wsign-compare] EXTEND(SP, ctx->naddrs); ^ ~~~~~~~~~~~ /usr/perl5.23.8p/lib/5.23.8/amd64-freebsd/CORE/pp.h:371:39: note: expanded from macro 'EXTEND' if (UNLIKELY(_EXTEND_NEEDS_GROW(p,n))) { \ ^ /usr/perl5.23.8p/lib/5.23.8/amd64-freebsd/CORE/pp.h:368:65: note: expanded from macro '_EXTEND_NEEDS_GROW' # define _EXTEND_NEEDS_GROW(p,n) ( (n) < 0 || PL_stack_max - p < (n)) ^ /usr/perl5.23.8p/lib/5.23.8/amd64-freebsd/CORE/perl.h:3681:58: note: expanded from macro 'UNLIKELY' #define UNLIKELY(cond) EXPECT(cBOOL(cond),FALSE) ^ /usr/perl5.23.8p/lib/5.23.8/amd64-freebsd/CORE/handy.h:111:24: note: expanded from macro 'cBOOL' #define cBOOL(cbool) ((cbool) ? (bool)1 : (bool)0) ^ /usr/perl5.23.8p/lib/5.23.8/amd64-freebsd/CORE/perl.h:3676:62: note: expanded from macro 'EXPECT' # define EXPECT(expr,val) __builtin_expect(expr,val) ^ 1 error generated. *** Error code 1