nginx-0.4.0-RELEASE import
*) Change in internal API: the HTTP modules initialization was moved
from the init module phase to the HTTP postconfiguration phase.
*) Change: now the request body is not read beforehand for the
ngx_http_perl_module: it's required to start the reading using the
$r->has_request_body method.
*) Feature: the ngx_http_perl_module supports the DECLINED return code.
*) Feature: the ngx_http_dav_module supports the incoming "Date" header
line for the PUT method.
*) Feature: the "ssi" directive is available inside the "if" block.
*) Bugfix: a segmentation fault occurred if there was an "index"
directive with variables and the first index name was without
variables; the bug had appeared in 0.1.29.
diff --git a/auto/cc/gcc b/auto/cc/gcc
index 96ea865..1b6dbef 100644
--- a/auto/cc/gcc
+++ b/auto/cc/gcc
@@ -182,5 +182,3 @@
if [ ".$CPP" = "." ]; then
CPP="$CC -E"
fi
-
-NGX_PERL_CFLAGS="$CFLAGS"
diff --git a/auto/cc/icc b/auto/cc/icc
index afcabe6..f1f9d3d 100644
--- a/auto/cc/icc
+++ b/auto/cc/icc
@@ -91,6 +91,8 @@
CFLAGS="$CFLAGS -wd810"
# parameter was never referenced
CFLAGS="$CFLAGS -wd869"
+# attribute "unused" is only allowed in a function definition, warning on pTHX_
+CFLAGS="$CFLAGS -wd1301"
# STUB
# enumerated type mixed with another type
diff --git a/auto/lib/perl/conf b/auto/lib/perl/conf
index 9dbc279..e01f9b6c 100644
--- a/auto/lib/perl/conf
+++ b/auto/lib/perl/conf
@@ -19,9 +19,16 @@
exit 1;
fi
- CFLAGS="$CFLAGS `$NGX_PERL -MExtUtils::Embed -e ccopts`"
- # gcc 4.1/4.2
- CFLAGS=`echo $CFLAGS | sed -e 's/-Wunused-value/-Wno-unused-value/'`
+ NGX_PERL_CFLAGS="$CFLAGS `$NGX_PERL -MExtUtils::Embed -e ccopts`"
+ NGX_PM_CFLAGS=`$NGX_PERL -MExtUtils::Embed -e ccopts`
+
+ # gcc 4.1/4.2 warn about unused values in pTHX_
+ NGX_PERL_CFLAGS=`echo $NGX_PERL_CFLAGS \
+ | sed -e 's/-Wunused-value/-Wno-unused-value/'`
+ # icc8 warns 'declaration hides parameter "my_perl"' in ENTER and LEAVE
+ NGX_PERL_CFLAGS=`echo $NGX_PERL_CFLAGS \
+ | sed -e 's/-wd171/-wd171 -wd1599/'`
+
ngx_perl_ldopts=`$NGX_PERL -MExtUtils::Embed -e ldopts`
if $NGX_PERL -V:usemultiplicity | grep define > /dev/null; then
diff --git a/auto/lib/perl/make b/auto/lib/perl/make
index b7c8cb3..73ad120 100644
--- a/auto/lib/perl/make
+++ b/auto/lib/perl/make
@@ -24,9 +24,8 @@
cp -p src/http/modules/perl/Makefile.PL $NGX_OBJS/src/http/modules/perl/
cd $NGX_OBJS/src/http/modules/perl \
- && NGX_PERL_CFLAGS="$NGX_PERL_CFLAGS $NGX_CC_OPT" \
+ && NGX_PM_CFLAGS="\$(NGX_PM_CFLAGS) -g $NGX_CC_OPT" \
NGX_PCRE=$PCRE \
- NGX_ZLIB=$ZLIB \
NGX_OBJS=$NGX_OBJS \
$NGX_PERL Makefile.PL \
LIB=$NGX_PERL_MODULES
diff --git a/auto/make b/auto/make
index f79c3b0..029918c 100644
--- a/auto/make
+++ b/auto/make
@@ -22,6 +22,11 @@
END
+if test -n "$NGX_PERL_CFLAGS"; then
+ echo NGX_PERL_CFLAGS = $NGX_PERL_CFLAGS >> $NGX_MAKEFILE
+ echo NGX_PM_CFLAGS = $NGX_PM_CFLAGS >> $NGX_MAKEFILE
+fi
+
if [ "$BMAKE" = wmake ]; then
echo MAKE = wmake >> $NGX_MAKEFILE
@@ -238,23 +243,37 @@
ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) $ngx_use_pch \$(ALL_INCS)"
else
ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) \$(CORE_INCS) \$(HTTP_INCS)"
+ ngx_perl_cc="\$(CC) $ngx_compile_opt \$(NGX_PERL_CFLAGS) "
+ ngx_perl_cc="$ngx_perl_cc \$(CORE_INCS) \$(HTTP_INCS)"
fi
- for ngx_src in $HTTP_SRCS
+ for ngx_source in $HTTP_SRCS
do
- ngx_src=`echo $ngx_src | sed -e "s/\//$ngx_regex_dirsep/g"`
+ ngx_src=`echo $ngx_source | sed -e "s/\//$ngx_regex_dirsep/g"`
ngx_obj=`echo $ngx_src \
| sed -e "s#^\(.*\.\)cpp\\$#$ngx_objs_dir\1$ngx_objext#g" \
-e "s#^\(.*\.\)cc\\$#$ngx_objs_dir\1$ngx_objext#g" \
-e "s#^\(.*\.\)c\\$#$ngx_objs_dir\1$ngx_objext#g" \
-e "s#^\(.*\.\)S\\$#$ngx_objs_dir\1$ngx_objext#g"`
- cat << END >> $NGX_MAKEFILE
+ if [ $ngx_source = src/http/modules/perl/ngx_http_perl_module.c ]; then
+
+ cat << END >> $NGX_MAKEFILE
+
+$ngx_obj: \$(CORE_DEPS) \$(HTTP_DEPS)$ngx_cont$ngx_src
+ $ngx_perl_cc$ngx_tab$ngx_objout$ngx_obj$ngx_tab$ngx_src$NGX_AUX
+
+END
+ else
+
+ cat << END >> $NGX_MAKEFILE
$ngx_obj: \$(CORE_DEPS) \$(HTTP_DEPS)$ngx_cont$ngx_src
$ngx_cc$ngx_tab$ngx_objout$ngx_obj$ngx_tab$ngx_src$NGX_AUX
END
+
+ fi
done
fi