Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge nginx/branches/stable-1.22 and ensure build succeeds #1

Open
wants to merge 34 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
7970ab8
Version bump.
pluknet Nov 23, 2021
2cf2619
SSL: $ssl_curve (ticket #2135).
pluknet Nov 1, 2021
b7b4549
HTTP/2: fixed "task already active" with sendfile in threads.
mdounin Nov 25, 2021
8d82e08
HTTP/2: fixed sendfile() aio handling.
mdounin Nov 25, 2021
7efbe0a
Contrib: vim syntax, update core and 3rd party module directives.
Dec 20, 2021
6624ccb
Moved Huffman coding out of HTTP/2.
mdocguard Dec 21, 2021
585e5cd
Core: fixed ngx_pcre_studies cleanup.
mdounin Dec 24, 2021
2238ae1
Core: ngx_regex.c style cleanup.
mdounin Dec 24, 2021
222ea17
Configure: simplified PCRE compilation.
mdounin Dec 24, 2021
7b6d4d0
PCRE2 library support.
mdounin Dec 24, 2021
57f347c
PCRE2 and PCRE binary compatibility.
mdounin Dec 24, 2021
b72f965
Core: added NGX_REGEX_MULTILINE for 3rd party modules.
mdounin Dec 24, 2021
783e859
Removed "aio sendfile", deprecated since 1.7.11.
mdounin Dec 27, 2021
6796e0e
Simplified sendfile(SF_NODISKIO) usage.
mdounin Dec 27, 2021
b51e50e
SSL: SSL_sendfile(SF_NODISKIO) support.
mdounin Dec 27, 2021
2567afe
Support for sendfile(SF_NOCACHE).
mdounin Dec 27, 2021
6ac8cd9
Updated OpenSSL and PCRE used for win32 builds.
mdounin Dec 28, 2021
b3e3a9b
nginx-1.21.5-RELEASE
mdounin Dec 28, 2021
75c5c87
release-1.21.5 tag
mdounin Dec 28, 2021
68654cf
Version bump.
mdounin Dec 29, 2021
049ad62
Events: fixed balancing between workers with EPOLLEXCLUSIVE.
mdounin Dec 29, 2021
15275b6
Avoid sending "Connection: keep-alive" when shutting down.
mdounin Jan 10, 2022
415d026
SSL: free pkey on SSL_CTX_set0_tmp_dh_pkey() failure.
pluknet Jan 17, 2022
7ebead6
Core: simplify reader lock release.
p-pautov Jan 20, 2022
9fc865b
Contrib: vim syntax adjusted to save cpoptions (ticket #2276).
mdounin Jan 21, 2022
a20648c
SSL: always renewing tickets with TLSv1.3 (ticket #1892).
mdounin Jan 24, 2022
3f71835
nginx-1.21.6-RELEASE
mdounin Jan 25, 2022
1670ce4
release-1.21.6 tag
mdounin Jan 25, 2022
0a7499b
Stable branch.
mdounin May 23, 2022
396c3cf
Year 2022.
pluknet Feb 4, 2022
1033316
Updated OpenSSL and zlib used for win32 builds.
mdounin May 23, 2022
7273197
nginx-1.22.0-RELEASE
mdounin May 23, 2022
a00f001
release-1.22.0 tag
mdounin May 23, 2022
6a015ad
Fix build
xstefen Jun 7, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .hgtags
Original file line number Diff line number Diff line change
Expand Up @@ -465,3 +465,6 @@ a68ac0677f8553b1f84d357bc9da114731ab5f47 release-1.21.1
bfbc52374adcbf2f9060afd62de940f6fab3bba5 release-1.21.2
2217a9c1d0b86026f22700b3c089545db1964f55 release-1.21.3
39be8a682c58308d9399cddd57e37f9fdb7bdf3e release-1.21.4
d986378168fd4d70e0121cabac274c560cca9bdf release-1.21.5
714eb4b2c09e712fb2572a2164ce2bf67638ccac release-1.21.6
f669c9c2a617d80daf753e012265ab5290df0d9b release-1.22.0
3 changes: 3 additions & 0 deletions auto/cc/clang
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,9 @@ if [ "$NGX_SYSTEM" = "Darwin" ]; then
CFLAGS="$CFLAGS -Wno-deprecated-declarations"
fi

# dont warn on vla-parameter
CFLAGS="$CFLAGS -Wno-vla-parameter"

# stop on warning
CFLAGS="$CFLAGS -Werror"

Expand Down
2 changes: 2 additions & 0 deletions auto/cc/gcc
Original file line number Diff line number Diff line change
Expand Up @@ -164,6 +164,8 @@ case "$NGX_GCC_VER" in
;;
esac

# dont warn on vla-parameter
CFLAGS="$CFLAGS -Wno-vla-parameter"

# stop on warning
CFLAGS="$CFLAGS -Werror"
Expand Down
154 changes: 85 additions & 69 deletions auto/lib/pcre/conf
Original file line number Diff line number Diff line change
Expand Up @@ -4,87 +4,62 @@


if [ $PCRE != NONE ]; then
CORE_INCS="$CORE_INCS $PCRE"

case "$NGX_CC_NAME" in
if [ -f $PCRE/src/pcre2.h.generic ]; then

msvc | owc | bcc)
have=NGX_PCRE . auto/have
have=PCRE_STATIC . auto/have
CORE_DEPS="$CORE_DEPS $PCRE/pcre.h"
LINK_DEPS="$LINK_DEPS $PCRE/pcre.lib"
CORE_LIBS="$CORE_LIBS $PCRE/pcre.lib"
;;
PCRE_LIBRARY=PCRE2

icc)
have=NGX_PCRE . auto/have
CORE_DEPS="$CORE_DEPS $PCRE/pcre.h"
have=NGX_PCRE . auto/have
have=NGX_PCRE2 . auto/have

LINK_DEPS="$LINK_DEPS $PCRE/.libs/libpcre.a"
if [ "$NGX_PLATFORM" = win32 ]; then
have=PCRE2_STATIC . auto/have
fi

echo $ngx_n "checking for PCRE library ...$ngx_c"
CORE_INCS="$CORE_INCS $PCRE/src/"
CORE_DEPS="$CORE_DEPS $PCRE/src/pcre2.h"

if [ -f $PCRE/pcre.h ]; then
ngx_pcre_ver=`grep PCRE_MAJOR $PCRE/pcre.h \
| sed -e 's/^.*PCRE_MAJOR.* \(.*\)$/\1/'`
case "$NGX_CC_NAME" in

else if [ -f $PCRE/configure.in ]; then
ngx_pcre_ver=`grep PCRE_MAJOR= $PCRE/configure.in \
| sed -e 's/^.*=\(.*\)$/\1/'`
msvc)
LINK_DEPS="$LINK_DEPS $PCRE/src/pcre2-8.lib"
CORE_LIBS="$CORE_LIBS $PCRE/src/pcre2-8.lib"
;;

else
ngx_pcre_ver=`grep pcre_major, $PCRE/configure.ac \
| sed -e 's/^.*pcre_major,.*\[\(.*\)\].*$/\1/'`
fi
fi
*)
LINK_DEPS="$LINK_DEPS $PCRE/.libs/libpcre2-8.a"
CORE_LIBS="$CORE_LIBS $PCRE/.libs/libpcre2-8.a"
;;

echo " $ngx_pcre_ver major version found"

# to allow -ipo optimization we link with the *.o but not library

case "$ngx_pcre_ver" in
4|5)
CORE_LIBS="$CORE_LIBS $PCRE/pcre.o"
;;

6)
CORE_LIBS="$CORE_LIBS $PCRE/pcre_chartables.o"
CORE_LIBS="$CORE_LIBS $PCRE/pcre_compile.o"
CORE_LIBS="$CORE_LIBS $PCRE/pcre_exec.o"
CORE_LIBS="$CORE_LIBS $PCRE/pcre_fullinfo.o"
CORE_LIBS="$CORE_LIBS $PCRE/pcre_globals.o"
CORE_LIBS="$CORE_LIBS $PCRE/pcre_tables.o"
CORE_LIBS="$CORE_LIBS $PCRE/pcre_try_flipped.o"
;;

*)
CORE_LIBS="$CORE_LIBS $PCRE/pcre_chartables.o"
CORE_LIBS="$CORE_LIBS $PCRE/pcre_compile.o"
CORE_LIBS="$CORE_LIBS $PCRE/pcre_exec.o"
CORE_LIBS="$CORE_LIBS $PCRE/pcre_fullinfo.o"
CORE_LIBS="$CORE_LIBS $PCRE/pcre_globals.o"
CORE_LIBS="$CORE_LIBS $PCRE/pcre_tables.o"
CORE_LIBS="$CORE_LIBS $PCRE/pcre_try_flipped.o"
CORE_LIBS="$CORE_LIBS $PCRE/pcre_newline.o"
;;

esac
;;

*)
have=NGX_PCRE . auto/have
esac

if [ "$NGX_PLATFORM" = win32 ]; then
have=PCRE_STATIC . auto/have
fi
else

CORE_DEPS="$CORE_DEPS $PCRE/pcre.h"
LINK_DEPS="$LINK_DEPS $PCRE/.libs/libpcre.a"
CORE_LIBS="$CORE_LIBS $PCRE/.libs/libpcre.a"
;;
PCRE_LIBRARY=PCRE

esac
have=NGX_PCRE . auto/have

if [ "$NGX_PLATFORM" = win32 ]; then
have=PCRE_STATIC . auto/have
fi

CORE_INCS="$CORE_INCS $PCRE"
CORE_DEPS="$CORE_DEPS $PCRE/pcre.h"

case "$NGX_CC_NAME" in

msvc | owc | bcc)
LINK_DEPS="$LINK_DEPS $PCRE/pcre.lib"
CORE_LIBS="$CORE_LIBS $PCRE/pcre.lib"
;;

*)
LINK_DEPS="$LINK_DEPS $PCRE/.libs/libpcre.a"
CORE_LIBS="$CORE_LIBS $PCRE/.libs/libpcre.a"
;;

esac
fi

if [ $PCRE_JIT = YES ]; then
have=NGX_HAVE_PCRE_JIT . auto/have
Expand All @@ -94,8 +69,48 @@ if [ $PCRE != NONE ]; then
else

if [ "$NGX_PLATFORM" != win32 ]; then

PCRE=NO
fi

if [ $PCRE = NO -a $PCRE2 != DISABLED ]; then

ngx_feature="PCRE2 library"
ngx_feature_name="NGX_PCRE2"
ngx_feature_run=no
ngx_feature_incs="#define PCRE2_CODE_UNIT_WIDTH 8
#include <pcre2.h>"
ngx_feature_path=
ngx_feature_libs="-lpcre2-8"
ngx_feature_test="pcre2_code *re;
re = pcre2_compile(NULL, 0, 0, NULL, NULL, NULL);
if (re == NULL) return 1"
. auto/feature

if [ $ngx_found = no ]; then

# pcre2-config

ngx_pcre2_prefix=`pcre2-config --prefix 2>/dev/null`

if [ -n "$ngx_pcre2_prefix" ]; then
ngx_feature="PCRE2 library in $ngx_pcre2_prefix"
ngx_feature_path=`pcre2-config --cflags \
| sed -n -e 's/.*-I *\([^ ][^ ]*\).*/\1/p'`
ngx_feature_libs=`pcre2-config --libs8`
. auto/feature
fi
fi

if [ $ngx_found = yes ]; then
have=NGX_PCRE . auto/have
CORE_INCS="$CORE_INCS $ngx_feature_path"
CORE_LIBS="$CORE_LIBS $ngx_feature_libs"
PCRE=YES
PCRE_LIBRARY=PCRE2
fi
fi

if [ $PCRE = NO ]; then

ngx_feature="PCRE library"
ngx_feature_name="NGX_PCRE"
Expand Down Expand Up @@ -171,6 +186,7 @@ else
CORE_INCS="$CORE_INCS $ngx_feature_path"
CORE_LIBS="$CORE_LIBS $ngx_feature_libs"
PCRE=YES
PCRE_LIBRARY=PCRE
fi

if [ $PCRE = YES ]; then
Expand Down
152 changes: 128 additions & 24 deletions auto/lib/pcre/make
Original file line number Diff line number Diff line change
Expand Up @@ -3,36 +3,138 @@
# Copyright (C) Nginx, Inc.


case "$NGX_CC_NAME" in
if [ $PCRE_LIBRARY = PCRE2 ]; then

# PCRE2

if [ $NGX_CC_NAME = msvc ]; then

# With PCRE2, it is not possible to compile all sources.
# Since list of source files changes between versions, we
# test files which might not be present.

ngx_pcre_srcs="pcre2_auto_possess.c \
pcre2_chartables.c \
pcre2_compile.c \
pcre2_config.c \
pcre2_context.c \
pcre2_dfa_match.c \
pcre2_error.c \
pcre2_jit_compile.c \
pcre2_maketables.c \
pcre2_match.c \
pcre2_match_data.c \
pcre2_newline.c \
pcre2_ord2utf.c \
pcre2_pattern_info.c \
pcre2_string_utils.c \
pcre2_study.c \
pcre2_substitute.c \
pcre2_substring.c \
pcre2_tables.c \
pcre2_ucd.c \
pcre2_valid_utf.c \
pcre2_xclass.c"

ngx_pcre_test="pcre2_convert.c \
pcre2_extuni.c \
pcre2_find_bracket.c \
pcre2_script_run.c \
pcre2_serialize.c"

for ngx_src in $ngx_pcre_test
do
if [ -f $PCRE/src/$ngx_src ]; then
ngx_pcre_srcs="$ngx_pcre_srcs $ngx_src"
fi
done

ngx_pcre_objs=`echo $ngx_pcre_srcs \
| sed -e "s#\([^ ]*\.\)c#\1$ngx_objext#g"`

ngx_pcre_srcs=`echo $ngx_pcre_srcs \
| sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont\1/g"`
ngx_pcre_objs=`echo $ngx_pcre_objs \
| sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont\1/g"`

cat << END >> $NGX_MAKEFILE

PCRE_CFLAGS = -O2 -Ob1 -Oi -Gs $LIBC $CPU_OPT
PCRE_FLAGS = -DHAVE_CONFIG_H -DPCRE2_STATIC -DPCRE2_CODE_UNIT_WIDTH=8 \\
-DHAVE_MEMMOVE

PCRE_SRCS = $ngx_pcre_srcs
PCRE_OBJS = $ngx_pcre_objs

$PCRE/src/pcre2.h:
cd $PCRE/src \\
&& copy /y config.h.generic config.h \\
&& copy /y pcre2.h.generic pcre2.h \\
&& copy /y pcre2_chartables.c.dist pcre2_chartables.c

$PCRE/src/pcre2-8.lib: $PCRE/src/pcre2.h $NGX_MAKEFILE
cd $PCRE/src \\
&& cl -nologo -c \$(PCRE_CFLAGS) -I . \$(PCRE_FLAGS) \$(PCRE_SRCS) \\
&& link -lib -out:pcre2-8.lib -verbose:lib \$(PCRE_OBJS)

msvc)
ngx_makefile=makefile.msvc
ngx_opt="CPU_OPT=\"$CPU_OPT\" LIBC=$LIBC"
ngx_pcre="PCRE=\"$PCRE\""
;;
END

else

cat << END >> $NGX_MAKEFILE

owc)
ngx_makefile=makefile.owc
ngx_opt="CPU_OPT=\"$CPU_OPT\""
ngx_pcre=`echo PCRE=\"$PCRE\" | sed -e "s/\//$ngx_regex_dirsep/g"`
;;
$PCRE/src/pcre2.h: $PCRE/Makefile

$PCRE/Makefile: $NGX_MAKEFILE
cd $PCRE \\
&& if [ -f Makefile ]; then \$(MAKE) distclean; fi \\
&& CC="\$(CC)" CFLAGS="$PCRE_OPT" \\
./configure --disable-shared $PCRE_CONF_OPT

bcc)
ngx_makefile=makefile.bcc
ngx_opt="-DCPU_OPT=\"$CPU_OPT\""
ngx_pcre=`echo \-DPCRE=\"$PCRE\" | sed -e "s/\//$ngx_regex_dirsep/g"`
;;
$PCRE/.libs/libpcre2-8.a: $PCRE/Makefile
cd $PCRE \\
&& \$(MAKE) libpcre2-8.la

*)
ngx_makefile=
;;
END

esac
fi


if [ -n "$ngx_makefile" ]; then
else

cat << END >> $NGX_MAKEFILE
# PCRE

case "$NGX_CC_NAME" in

msvc)
ngx_makefile=makefile.msvc
ngx_opt="CPU_OPT=\"$CPU_OPT\" LIBC=$LIBC"
ngx_pcre="PCRE=\"$PCRE\""
;;

owc)
ngx_makefile=makefile.owc
ngx_opt="CPU_OPT=\"$CPU_OPT\""
ngx_pcre=`echo PCRE=\"$PCRE\" | sed -e "s/\//$ngx_regex_dirsep/g"`
;;

bcc)
ngx_makefile=makefile.bcc
ngx_opt="-DCPU_OPT=\"$CPU_OPT\""
ngx_pcre=`echo \-DPCRE=\"$PCRE\" \
| sed -e "s/\//$ngx_regex_dirsep/g"`
;;

*)
ngx_makefile=
;;

esac


if [ -n "$ngx_makefile" ]; then

cat << END >> $NGX_MAKEFILE

`echo "$PCRE/pcre.lib: $PCRE/pcre.h $NGX_MAKEFILE" \
| sed -e "s/\//$ngx_regex_dirsep/g"`
Expand All @@ -43,9 +145,9 @@ if [ -n "$ngx_makefile" ]; then

END

else
else

cat << END >> $NGX_MAKEFILE
cat << END >> $NGX_MAKEFILE

$PCRE/pcre.h: $PCRE/Makefile

Expand All @@ -61,4 +163,6 @@ $PCRE/.libs/libpcre.a: $PCRE/Makefile

END

fi

fi
Loading