nginx 1.0.6 perl module build failure

Maxim Dounin mdounin at mdounin.ru
Sat Sep 10 13:24:04 UTC 2011


Hello!

On Sat, Sep 10, 2011 at 03:46:26PM +0400, Igor Sysoev wrote:

> On Sat, Sep 10, 2011 at 03:17:24PM +0400, Maxim Dounin wrote:
> > Hello!
> > 
> > On Fri, Sep 09, 2011 at 09:08:08PM -0400, frostbyte wrote:
> > 
> > > Snow Leopard 10.6.7, Xcode 4.0.1:
> > > 
> > > $ cd nginx-1.0.6
> > > $ ./configure --prefix=/usr/local --with-cc-opt="-I/usr/local/include
> > > -O2 -Wno-deprecated-declarations" --with-ld-opt="-L/usr/local/lib"
> > > --conf-path=/etc/nginx/nginx.conf
> > > --error-log-path=/var/log/nginx/error.log
> > > --http-log-path=/var/log/nginx/access.log
> > > --pid-path=/var/run/nginx/nginx.pid
> > > --lock-path=/var/run/nginx/nginx.lock
> > > --http-client-body-temp-path=/var/run/nginx/client_body_temp
> > > --http-proxy-temp-path=/var/run/nginx/proxy_temp
> > > --http-fastcgi-temp-path=/var/run/nginx/fastcgi_temp
> > > --http-uwsgi-temp-path=/var/run/nginx/uwsgi_temp --with-http_dav_module
> > > --with-http_flv_module --with-mail --with-http_ssl_module
> > > --with-mail_ssl_module --with-http_stub_status_module --with-ipv6
> > > --with-http_perl_module --with-perl=/usr/bin/perl
> > > --with-http_realip_module --with-http_addition_module
> > > --with-http_sub_module --with-http_gzip_static_module
> > > 
> > > $ make
> > > ...
> > > gcc -c -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter
> > > -Wunused-function -Wunused-variable -Wno-unused-value -Werror -g
> > > -I/usr/local/include -O2 -Wno-deprecated-declarations -arch x86_64 -arch
> > > i386 -arch ppc -g -pipe -fno-common -DPERL_DARWIN -fno-strict-aliasing
> > > -I/usr/local/include
> > > -I/System/Library/Perl/5.10.0/darwin-thread-multi-2level/CORE  -I
> > > src/core -I src/event -I src/event/modules -I src/os/unix -I
> > > /opt/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
> > > In file included from src/http/modules/perl/ngx_http_perl_module.h:17,
> > >                  from src/http/modules/perl/ngx_http_perl_module.c:10:
> > > /System/Library/Perl/5.10.0/darwin-thread-multi-2level/CORE/perl.h:3240:
> > > error: expected specifier-qualifier-list before ‘bool’
> > > ...
> > > 
> > > Seems to be a know issue in other contexts.
> > 
> > Looks like problem with perl in your environment.
> > 
> > You may try building basic samples from perlembed manpage to see 
> > what goes wrong, most likely either ccopts as returned by "perl 
> > -MExtUtils::Embed -e ccopts" are incorrect, or they correspond to 
> > other C compiler (check "perl -V" output).
> 
> No, this is known issue with MacOSX system perl.
> This is conflict between "bool" definition included via
> libkern/OSAtomic.h and perl's CORE/handy.h.
> I do not personaly encounter this since I have perl from macports :)

Error message suggests that "bool" is not defined.  And looking 
though [1] I don't see bool defined via libkern/OSAtomic.h.  
OSTypes.h defines "Boolean", but not "bool".

While I feel perl's handy.h is utterly wrong in it's aproach to 
"bool" (it's 2011 now, more than 10 years since C99 defined 
stdbool.h!), I still doesn't see what happens here.  Additionally, 
I see Apple hacks handy.h on it's system perl to include 
stdbool.h[2], and this makes me wonder even more.

Could you please confirm that perlembed sample does actually 
compiles fine with Mac OS X system perl without extra includes 
used?

[1] http://www.opensource.apple.com/source/xnu/xnu-1699.22.81/libkern/libkern/OSAtomic.h
[2] http://www.opensource.apple.com/source/perl/perl-73/5.10/fix/handy.h.ed

Maxim Dounin



More information about the nginx mailing list