Mercurial > hg > nginx-quic
annotate auto/os/freebsd @ 7155:29e9571b1989
Gzip: support for a zlib variant from Intel.
A zlib variant from Intel as available from https://github.com/jtkukunas/zlib
uses 64K hash instead of scaling it from the specified memory level, and
also uses 16-byte padding in one of the window-sized memory buffers, and can
force window bits to 13 if compression level is set to 1 and appropriate
compile options are used. As a result, nginx complained with "gzip filter
failed to use preallocated memory" alerts.
This change improves deflate_state allocation detection by testing that
items is 1 (deflate_state is the only allocation where items is 1).
Additionally, on first failure to use preallocated memory we now assume
that we are working with the Intel's modified zlib, and switch to using
appropriate preallocations. If this does not help, we complain with the
usual alerts.
Previous version of this patch was published at
http://mailman.nginx.org/pipermail/nginx/2014-July/044568.html.
The zlib variant in question is used by default in ClearLinux from Intel,
see http://mailman.nginx.org/pipermail/nginx-ru/2017-October/060421.html,
http://mailman.nginx.org/pipermail/nginx-ru/2017-November/060544.html.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Sat, 18 Nov 2017 04:03:27 +0300 |
parents | 4dc8e7b62216 |
children | ec2e6893caaa |
rev | line source |
---|---|
444
42d11f017717
nginx-0.1.0-2004-09-29-20:00:49 import; remove years from copyright
Igor Sysoev <igor@sysoev.ru>
parents:
376
diff
changeset
|
1 |
42d11f017717
nginx-0.1.0-2004-09-29-20:00:49 import; remove years from copyright
Igor Sysoev <igor@sysoev.ru>
parents:
376
diff
changeset
|
2 # Copyright (C) Igor Sysoev |
4412 | 3 # Copyright (C) Nginx, Inc. |
444
42d11f017717
nginx-0.1.0-2004-09-29-20:00:49 import; remove years from copyright
Igor Sysoev <igor@sysoev.ru>
parents:
376
diff
changeset
|
4 |
195
8dee38ea9117
nginx-0.0.1-2003-11-25-23:44:56 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
5 |
509 | 6 have=NGX_FREEBSD . auto/have_headers |
455 | 7 |
195
8dee38ea9117
nginx-0.0.1-2003-11-25-23:44:56 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
8 CORE_INCS="$UNIX_INCS" |
8dee38ea9117
nginx-0.0.1-2003-11-25-23:44:56 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
9 CORE_DEPS="$UNIX_DEPS $FREEBSD_DEPS" |
238
674f85a4d00f
nginx-0.0.1-2004-01-23-12:26:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
215
diff
changeset
|
10 CORE_SRCS="$UNIX_SRCS $FREEBSD_SRCS" |
195
8dee38ea9117
nginx-0.0.1-2003-11-25-23:44:56 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
11 |
455 | 12 ngx_spacer=' |
13 ' | |
283
8f65fee68270
nginx-0.0.2-2004-03-10-20:55:19 import
Igor Sysoev <igor@sysoev.ru>
parents:
272
diff
changeset
|
14 |
195
8dee38ea9117
nginx-0.0.1-2003-11-25-23:44:56 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
15 |
455 | 16 # __FreeBSD_version and sysctl kern.osreldate are the best ways |
17 # to determine whether some capability exists and is safe to use. | |
686 | 18 # __FreeBSD_version is used for the testing of the build environment. |
455 | 19 # sysctl kern.osreldate is used for the testing of the kernel capabilities. |
260
5dacbb4daaf6
nginx-0.0.2-2004-02-17-20:53:12 import
Igor Sysoev <igor@sysoev.ru>
parents:
253
diff
changeset
|
20 |
195
8dee38ea9117
nginx-0.0.1-2003-11-25-23:44:56 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
21 version=`grep "#define __FreeBSD_version" /usr/include/osreldate.h \ |
8dee38ea9117
nginx-0.0.1-2003-11-25-23:44:56 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
22 | sed -e 's/^.* \(.*\)$/\1/'` |
8dee38ea9117
nginx-0.0.1-2003-11-25-23:44:56 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
23 |
455 | 24 osreldate=`/sbin/sysctl -n kern.osreldate` |
25 | |
195
8dee38ea9117
nginx-0.0.1-2003-11-25-23:44:56 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
26 |
267
83205e0b5522
nginx-0.0.2-2004-02-24-20:31:46 import
Igor Sysoev <igor@sysoev.ru>
parents:
261
diff
changeset
|
27 # setproctitle() in libutil |
83205e0b5522
nginx-0.0.2-2004-02-24-20:31:46 import
Igor Sysoev <igor@sysoev.ru>
parents:
261
diff
changeset
|
28 |
83205e0b5522
nginx-0.0.2-2004-02-24-20:31:46 import
Igor Sysoev <igor@sysoev.ru>
parents:
261
diff
changeset
|
29 if [ \( $version -ge 500000 -a $version -lt 500012 \) \ |
83205e0b5522
nginx-0.0.2-2004-02-24-20:31:46 import
Igor Sysoev <igor@sysoev.ru>
parents:
261
diff
changeset
|
30 -o $version -lt 410002 ] |
83205e0b5522
nginx-0.0.2-2004-02-24-20:31:46 import
Igor Sysoev <igor@sysoev.ru>
parents:
261
diff
changeset
|
31 then |
83205e0b5522
nginx-0.0.2-2004-02-24-20:31:46 import
Igor Sysoev <igor@sysoev.ru>
parents:
261
diff
changeset
|
32 echo " + setproctitle() in libutil" |
83205e0b5522
nginx-0.0.2-2004-02-24-20:31:46 import
Igor Sysoev <igor@sysoev.ru>
parents:
261
diff
changeset
|
33 |
83205e0b5522
nginx-0.0.2-2004-02-24-20:31:46 import
Igor Sysoev <igor@sysoev.ru>
parents:
261
diff
changeset
|
34 CORE_LIBS="$CORE_LIBS -lutil" |
509 | 35 NGX_SETPROCTITLE_LIB="-lutil" |
267
83205e0b5522
nginx-0.0.2-2004-02-24-20:31:46 import
Igor Sysoev <igor@sysoev.ru>
parents:
261
diff
changeset
|
36 fi |
83205e0b5522
nginx-0.0.2-2004-02-24-20:31:46 import
Igor Sysoev <igor@sysoev.ru>
parents:
261
diff
changeset
|
37 |
195
8dee38ea9117
nginx-0.0.1-2003-11-25-23:44:56 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
38 # sendfile |
8dee38ea9117
nginx-0.0.1-2003-11-25-23:44:56 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
39 |
455 | 40 if [ $osreldate -gt 300007 ]; then |
563 | 41 echo " + sendfile() found" |
267
83205e0b5522
nginx-0.0.2-2004-02-24-20:31:46 import
Igor Sysoev <igor@sysoev.ru>
parents:
261
diff
changeset
|
42 |
469 | 43 have=NGX_HAVE_SENDFILE . auto/have |
195
8dee38ea9117
nginx-0.0.1-2003-11-25-23:44:56 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
44 CORE_SRCS="$CORE_SRCS $FREEBSD_SENDFILE_SRCS" |
8dee38ea9117
nginx-0.0.1-2003-11-25-23:44:56 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
45 fi |
8dee38ea9117
nginx-0.0.1-2003-11-25-23:44:56 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
46 |
5981
0f234ee664f7
Unbreak building on FreeBSD without file AIO.
Valentin Bartenev <vbart@nginx.com>
parents:
4549
diff
changeset
|
47 if [ $NGX_FILE_AIO = YES ]; then |
0f234ee664f7
Unbreak building on FreeBSD without file AIO.
Valentin Bartenev <vbart@nginx.com>
parents:
4549
diff
changeset
|
48 if [ $osreldate -gt 502103 ]; then |
0f234ee664f7
Unbreak building on FreeBSD without file AIO.
Valentin Bartenev <vbart@nginx.com>
parents:
4549
diff
changeset
|
49 echo " + sendfile()'s SF_NODISKIO found" |
3065 | 50 |
5981
0f234ee664f7
Unbreak building on FreeBSD without file AIO.
Valentin Bartenev <vbart@nginx.com>
parents:
4549
diff
changeset
|
51 have=NGX_HAVE_AIO_SENDFILE . auto/have |
0f234ee664f7
Unbreak building on FreeBSD without file AIO.
Valentin Bartenev <vbart@nginx.com>
parents:
4549
diff
changeset
|
52 fi |
3065 | 53 fi |
54 | |
3909
0daede16d68b
use POSIX semaphores in shmtx instead of sched_yield()
Igor Sysoev <igor@sysoev.ru>
parents:
3065
diff
changeset
|
55 # POSIX semaphores |
0daede16d68b
use POSIX semaphores in shmtx instead of sched_yield()
Igor Sysoev <igor@sysoev.ru>
parents:
3065
diff
changeset
|
56 # http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/127545 |
0daede16d68b
use POSIX semaphores in shmtx instead of sched_yield()
Igor Sysoev <igor@sysoev.ru>
parents:
3065
diff
changeset
|
57 |
0daede16d68b
use POSIX semaphores in shmtx instead of sched_yield()
Igor Sysoev <igor@sysoev.ru>
parents:
3065
diff
changeset
|
58 if [ $osreldate -ge 701106 ]; then |
0daede16d68b
use POSIX semaphores in shmtx instead of sched_yield()
Igor Sysoev <igor@sysoev.ru>
parents:
3065
diff
changeset
|
59 echo " + POSIX semaphores should work" |
0daede16d68b
use POSIX semaphores in shmtx instead of sched_yield()
Igor Sysoev <igor@sysoev.ru>
parents:
3065
diff
changeset
|
60 else |
0daede16d68b
use POSIX semaphores in shmtx instead of sched_yield()
Igor Sysoev <igor@sysoev.ru>
parents:
3065
diff
changeset
|
61 have=NGX_HAVE_POSIX_SEM . auto/nohave |
0daede16d68b
use POSIX semaphores in shmtx instead of sched_yield()
Igor Sysoev <igor@sysoev.ru>
parents:
3065
diff
changeset
|
62 fi |
0daede16d68b
use POSIX semaphores in shmtx instead of sched_yield()
Igor Sysoev <igor@sysoev.ru>
parents:
3065
diff
changeset
|
63 |
195
8dee38ea9117
nginx-0.0.1-2003-11-25-23:44:56 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
64 |
8dee38ea9117
nginx-0.0.1-2003-11-25-23:44:56 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
65 # kqueue |
8dee38ea9117
nginx-0.0.1-2003-11-25-23:44:56 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
66 |
455 | 67 if [ \( $osreldate -lt 500000 -a $osreldate -ge 410000 \) \ |
68 -o $osreldate -ge 500011 ] | |
195
8dee38ea9117
nginx-0.0.1-2003-11-25-23:44:56 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
69 then |
563 | 70 echo " + kqueue found" |
267
83205e0b5522
nginx-0.0.2-2004-02-24-20:31:46 import
Igor Sysoev <igor@sysoev.ru>
parents:
261
diff
changeset
|
71 |
469 | 72 have=NGX_HAVE_KQUEUE . auto/have |
73 have=NGX_HAVE_CLEAR_EVENT . auto/have | |
298
4a3f18406832
nginx-0.0.3-2004-03-30-10:27:36 import
Igor Sysoev <igor@sysoev.ru>
parents:
291
diff
changeset
|
74 EVENT_MODULES="$EVENT_MODULES $KQUEUE_MODULE" |
195
8dee38ea9117
nginx-0.0.1-2003-11-25-23:44:56 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
75 CORE_SRCS="$CORE_SRCS $KQUEUE_SRCS" |
248
e885208c518b
nginx-0.0.2-2004-02-03-00:19:52 import
Igor Sysoev <igor@sysoev.ru>
parents:
238
diff
changeset
|
76 EVENT_FOUND=YES |
195
8dee38ea9117
nginx-0.0.1-2003-11-25-23:44:56 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
77 fi |
8dee38ea9117
nginx-0.0.1-2003-11-25-23:44:56 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
78 |
489 | 79 |
455 | 80 NGX_KQUEUE_CHECKED=YES |
81 | |
195
8dee38ea9117
nginx-0.0.1-2003-11-25-23:44:56 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
82 |
5982
f3f25ad09dee
Configure: typo fixed.
Sergey Kandaurov <pluknet@nginx.com>
parents:
5981
diff
changeset
|
83 # kqueue's NOTE_LOWAT |
195
8dee38ea9117
nginx-0.0.1-2003-11-25-23:44:56 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
84 |
8dee38ea9117
nginx-0.0.1-2003-11-25-23:44:56 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
85 if [ \( $version -lt 500000 -a $version -ge 430000 \) \ |
8dee38ea9117
nginx-0.0.1-2003-11-25-23:44:56 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
86 -o $version -ge 500018 ] |
8dee38ea9117
nginx-0.0.1-2003-11-25-23:44:56 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
87 then |
563 | 88 echo " + kqueue's NOTE_LOWAT found" |
469 | 89 have=NGX_HAVE_LOWAT_EVENT . auto/have |
376
d0451e402e27
nginx-0.0.7-2004-07-05-10:55:54 import
Igor Sysoev <igor@sysoev.ru>
parents:
355
diff
changeset
|
90 fi |
267
83205e0b5522
nginx-0.0.2-2004-02-24-20:31:46 import
Igor Sysoev <igor@sysoev.ru>
parents:
261
diff
changeset
|
91 |
563 | 92 # kqueue's EVFILT_TIMER |
93 | |
94 if [ \( $version -lt 500000 -a $version -ge 440001 \) \ | |
95 -o $version -ge 500023 ] | |
96 then | |
97 echo " + kqueue's EVFILT_TIMER found" | |
98 have=NGX_HAVE_TIMER_EVENT . auto/have | |
99 fi | |
100 | |
376
d0451e402e27
nginx-0.0.7-2004-07-05-10:55:54 import
Igor Sysoev <igor@sysoev.ru>
parents:
355
diff
changeset
|
101 |
4549
f31162fefe01
worker_cpu_affinity: cleaned up Linux implementation, added FreeBSD support.
Ruslan Ermilov <ru@nginx.com>
parents:
4412
diff
changeset
|
102 # cpuset_setaffinity() |
f31162fefe01
worker_cpu_affinity: cleaned up Linux implementation, added FreeBSD support.
Ruslan Ermilov <ru@nginx.com>
parents:
4412
diff
changeset
|
103 |
f31162fefe01
worker_cpu_affinity: cleaned up Linux implementation, added FreeBSD support.
Ruslan Ermilov <ru@nginx.com>
parents:
4412
diff
changeset
|
104 if [ $version -ge 701000 ]; then |
f31162fefe01
worker_cpu_affinity: cleaned up Linux implementation, added FreeBSD support.
Ruslan Ermilov <ru@nginx.com>
parents:
4412
diff
changeset
|
105 echo " + cpuset_setaffinity() found" |
f31162fefe01
worker_cpu_affinity: cleaned up Linux implementation, added FreeBSD support.
Ruslan Ermilov <ru@nginx.com>
parents:
4412
diff
changeset
|
106 have=NGX_HAVE_CPUSET_SETAFFINITY . auto/have |
f31162fefe01
worker_cpu_affinity: cleaned up Linux implementation, added FreeBSD support.
Ruslan Ermilov <ru@nginx.com>
parents:
4412
diff
changeset
|
107 fi |