Mercurial > hg > nginx
annotate auto/os/linux @ 3776:7450029ff51e
file AIO read may be posted inside loop
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Tue, 12 Oct 2010 12:06:52 +0000 |
parents | 7c80f584c3a9 |
children | 4068898a6a7c |
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:
355
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:
355
diff
changeset
|
2 # Copyright (C) Igor Sysoev |
42d11f017717
nginx-0.1.0-2004-09-29-20:00:49 import; remove years from copyright
Igor Sysoev <igor@sysoev.ru>
parents:
355
diff
changeset
|
3 |
196
11fbd0fc041d
nginx-0.0.1-2003-11-26-18:42:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
4 |
509 | 5 have=NGX_LINUX . auto/have_headers |
455 | 6 |
196
11fbd0fc041d
nginx-0.0.1-2003-11-26-18:42:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
7 CORE_INCS="$UNIX_INCS" |
11fbd0fc041d
nginx-0.0.1-2003-11-26-18:42:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
8 CORE_DEPS="$UNIX_DEPS $LINUX_DEPS" |
249
2a0540287298
nginx-0.0.2-2004-02-03-19:43:54 import
Igor Sysoev <igor@sysoev.ru>
parents:
248
diff
changeset
|
9 CORE_SRCS="$UNIX_SRCS $LINUX_SRCS" |
196
11fbd0fc041d
nginx-0.0.1-2003-11-26-18:42:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
10 |
455 | 11 ngx_spacer=' |
12 ' | |
283
8f65fee68270
nginx-0.0.2-2004-03-10-20:55:19 import
Igor Sysoev <igor@sysoev.ru>
parents:
259
diff
changeset
|
13 |
2599
57b65bcc8da6
fix Linux sendfile32() test broken in 0.3.36
Igor Sysoev <igor@sysoev.ru>
parents:
2598
diff
changeset
|
14 cc_aux_flags="$CC_AUX_FLAGS" |
57b65bcc8da6
fix Linux sendfile32() test broken in 0.3.36
Igor Sysoev <igor@sysoev.ru>
parents:
2598
diff
changeset
|
15 CC_AUX_FLAGS="$cc_aux_flags -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64" |
196
11fbd0fc041d
nginx-0.0.1-2003-11-26-18:42:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
16 |
461 | 17 |
351
af4c6b45a687
nginx-0.0.4-2004-06-10-22:36:57 import
Igor Sysoev <igor@sysoev.ru>
parents:
298
diff
changeset
|
18 # Linux kernel version |
af4c6b45a687
nginx-0.0.4-2004-06-10-22:36:57 import
Igor Sysoev <igor@sysoev.ru>
parents:
298
diff
changeset
|
19 |
1927
220c2515a9c9
use uname instead of often outdated header file
Igor Sysoev <igor@sysoev.ru>
parents:
1926
diff
changeset
|
20 version=$((`uname -r \ |
3039
9ecfcc5c5fb2
fix Linux "uname -r" version matching
Igor Sysoev <igor@sysoev.ru>
parents:
2747
diff
changeset
|
21 | sed 's/^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1*256*256+\2*256+\3/'`)) |
351
af4c6b45a687
nginx-0.0.4-2004-06-10-22:36:57 import
Igor Sysoev <igor@sysoev.ru>
parents:
298
diff
changeset
|
22 |
477 | 23 version=${version:-0} |
24 | |
351
af4c6b45a687
nginx-0.0.4-2004-06-10-22:36:57 import
Igor Sysoev <igor@sysoev.ru>
parents:
298
diff
changeset
|
25 |
1921
cf148caa9347
disable rtsig automatic building in post 2.6.18 Linux kernels
Igor Sysoev <igor@sysoev.ru>
parents:
1920
diff
changeset
|
26 # enable the rt signals on Linux between 2.2.19 and 2.6.17 |
351
af4c6b45a687
nginx-0.0.4-2004-06-10-22:36:57 import
Igor Sysoev <igor@sysoev.ru>
parents:
298
diff
changeset
|
27 |
1926
95f0145bbef4
use correct version: real hex numbers
Igor Sysoev <igor@sysoev.ru>
parents:
1921
diff
changeset
|
28 if [ \( $version -ge 131603 -a $version -lt 132626 \) -o $EVENT_RTSIG = YES ] |
1921
cf148caa9347
disable rtsig automatic building in post 2.6.18 Linux kernels
Igor Sysoev <igor@sysoev.ru>
parents:
1920
diff
changeset
|
29 then |
563 | 30 echo " + rt signals found" |
469 | 31 have=NGX_HAVE_RTSIG . auto/have |
351
af4c6b45a687
nginx-0.0.4-2004-06-10-22:36:57 import
Igor Sysoev <igor@sysoev.ru>
parents:
298
diff
changeset
|
32 EVENT_MODULES="$EVENT_MODULES $RTSIG_MODULE" |
af4c6b45a687
nginx-0.0.4-2004-06-10-22:36:57 import
Igor Sysoev <igor@sysoev.ru>
parents:
298
diff
changeset
|
33 CORE_SRCS="$CORE_SRCS $RTSIG_SRCS" |
af4c6b45a687
nginx-0.0.4-2004-06-10-22:36:57 import
Igor Sysoev <igor@sysoev.ru>
parents:
298
diff
changeset
|
34 EVENT_FOUND=YES |
af4c6b45a687
nginx-0.0.4-2004-06-10-22:36:57 import
Igor Sysoev <igor@sysoev.ru>
parents:
298
diff
changeset
|
35 fi |
af4c6b45a687
nginx-0.0.4-2004-06-10-22:36:57 import
Igor Sysoev <igor@sysoev.ru>
parents:
298
diff
changeset
|
36 |
248
e885208c518b
nginx-0.0.2-2004-02-03-00:19:52 import
Igor Sysoev <igor@sysoev.ru>
parents:
245
diff
changeset
|
37 |
3286
7c80f584c3a9
posix_fadvise64() had been implemented in Linux 2.5.60
Igor Sysoev <igor@sysoev.ru>
parents:
3039
diff
changeset
|
38 # posix_fadvise64() had been implemented in 2.5.60 |
7c80f584c3a9
posix_fadvise64() had been implemented in Linux 2.5.60
Igor Sysoev <igor@sysoev.ru>
parents:
3039
diff
changeset
|
39 |
7c80f584c3a9
posix_fadvise64() had been implemented in Linux 2.5.60
Igor Sysoev <igor@sysoev.ru>
parents:
3039
diff
changeset
|
40 if [ $version -lt 132412 ]; then |
7c80f584c3a9
posix_fadvise64() had been implemented in Linux 2.5.60
Igor Sysoev <igor@sysoev.ru>
parents:
3039
diff
changeset
|
41 have=NGX_HAVE_POSIX_FADVISE . auto/nohave |
7c80f584c3a9
posix_fadvise64() had been implemented in Linux 2.5.60
Igor Sysoev <igor@sysoev.ru>
parents:
3039
diff
changeset
|
42 fi |
7c80f584c3a9
posix_fadvise64() had been implemented in Linux 2.5.60
Igor Sysoev <igor@sysoev.ru>
parents:
3039
diff
changeset
|
43 |
248
e885208c518b
nginx-0.0.2-2004-02-03-00:19:52 import
Igor Sysoev <igor@sysoev.ru>
parents:
245
diff
changeset
|
44 # epoll, EPOLLET version |
245
e6c005b66b3a
nginx-0.0.1-2004-01-30-00:45:01 import
Igor Sysoev <igor@sysoev.ru>
parents:
198
diff
changeset
|
45 |
455 | 46 ngx_feature="epoll" |
469 | 47 ngx_feature_name="NGX_HAVE_EPOLL" |
591 | 48 ngx_feature_run=yes |
455 | 49 ngx_feature_incs="#include <sys/epoll.h>" |
875
7af8276b1c2f
test PCRE in FreeBSD, Linux, and NetBSD
Igor Sysoev <igor@sysoev.ru>
parents:
629
diff
changeset
|
50 ngx_feature_path= |
455 | 51 ngx_feature_libs= |
52 ngx_feature_test="int efd = 0, fd = 1, n; | |
53 struct epoll_event ee; | |
54 ee.events = EPOLLIN|EPOLLOUT|EPOLLET; | |
55 ee.data.ptr = NULL; | |
56 efd = epoll_create(100); | |
57 if (efd == -1) return 1;" | |
58 . auto/feature | |
248
e885208c518b
nginx-0.0.2-2004-02-03-00:19:52 import
Igor Sysoev <igor@sysoev.ru>
parents:
245
diff
changeset
|
59 |
e885208c518b
nginx-0.0.2-2004-02-03-00:19:52 import
Igor Sysoev <igor@sysoev.ru>
parents:
245
diff
changeset
|
60 if [ $ngx_found = yes ]; then |
469 | 61 have=NGX_HAVE_CLEAR_EVENT . auto/have |
248
e885208c518b
nginx-0.0.2-2004-02-03-00:19:52 import
Igor Sysoev <igor@sysoev.ru>
parents:
245
diff
changeset
|
62 CORE_SRCS="$CORE_SRCS $EPOLL_SRCS" |
245
e6c005b66b3a
nginx-0.0.1-2004-01-30-00:45:01 import
Igor Sysoev <igor@sysoev.ru>
parents:
198
diff
changeset
|
63 EVENT_MODULES="$EVENT_MODULES $EPOLL_MODULE" |
248
e885208c518b
nginx-0.0.2-2004-02-03-00:19:52 import
Igor Sysoev <igor@sysoev.ru>
parents:
245
diff
changeset
|
64 EVENT_FOUND=YES |
245
e6c005b66b3a
nginx-0.0.1-2004-01-30-00:45:01 import
Igor Sysoev <igor@sysoev.ru>
parents:
198
diff
changeset
|
65 fi |
e6c005b66b3a
nginx-0.0.1-2004-01-30-00:45:01 import
Igor Sysoev <igor@sysoev.ru>
parents:
198
diff
changeset
|
66 |
e6c005b66b3a
nginx-0.0.1-2004-01-30-00:45:01 import
Igor Sysoev <igor@sysoev.ru>
parents:
198
diff
changeset
|
67 |
248
e885208c518b
nginx-0.0.2-2004-02-03-00:19:52 import
Igor Sysoev <igor@sysoev.ru>
parents:
245
diff
changeset
|
68 # sendfile() |
e885208c518b
nginx-0.0.2-2004-02-03-00:19:52 import
Igor Sysoev <igor@sysoev.ru>
parents:
245
diff
changeset
|
69 |
2599
57b65bcc8da6
fix Linux sendfile32() test broken in 0.3.36
Igor Sysoev <igor@sysoev.ru>
parents:
2598
diff
changeset
|
70 CC_AUX_FLAGS="$cc_aux_flags -D_GNU_SOURCE" |
455 | 71 ngx_feature="sendfile()" |
469 | 72 ngx_feature_name="NGX_HAVE_SENDFILE" |
591 | 73 ngx_feature_run=yes |
74 ngx_feature_incs="#include <sys/sendfile.h> | |
2598 | 75 #include <errno.h>" |
875
7af8276b1c2f
test PCRE in FreeBSD, Linux, and NetBSD
Igor Sysoev <igor@sysoev.ru>
parents:
629
diff
changeset
|
76 ngx_feature_path= |
455 | 77 ngx_feature_libs= |
78 ngx_feature_test="int s = 0, fd = 1; | |
79 ssize_t n; off_t off = 0; | |
591 | 80 n = sendfile(s, fd, &off, 1); |
81 if (n == -1 && errno == ENOSYS) return 1" | |
455 | 82 . auto/feature |
248
e885208c518b
nginx-0.0.2-2004-02-03-00:19:52 import
Igor Sysoev <igor@sysoev.ru>
parents:
245
diff
changeset
|
83 |
e885208c518b
nginx-0.0.2-2004-02-03-00:19:52 import
Igor Sysoev <igor@sysoev.ru>
parents:
245
diff
changeset
|
84 if [ $ngx_found = yes ]; then |
e885208c518b
nginx-0.0.2-2004-02-03-00:19:52 import
Igor Sysoev <igor@sysoev.ru>
parents:
245
diff
changeset
|
85 CORE_SRCS="$CORE_SRCS $LINUX_SENDFILE_SRCS" |
e885208c518b
nginx-0.0.2-2004-02-03-00:19:52 import
Igor Sysoev <igor@sysoev.ru>
parents:
245
diff
changeset
|
86 fi |
e885208c518b
nginx-0.0.2-2004-02-03-00:19:52 import
Igor Sysoev <igor@sysoev.ru>
parents:
245
diff
changeset
|
87 |
e885208c518b
nginx-0.0.2-2004-02-03-00:19:52 import
Igor Sysoev <igor@sysoev.ru>
parents:
245
diff
changeset
|
88 |
e885208c518b
nginx-0.0.2-2004-02-03-00:19:52 import
Igor Sysoev <igor@sysoev.ru>
parents:
245
diff
changeset
|
89 # sendfile64() |
196
11fbd0fc041d
nginx-0.0.1-2003-11-26-18:42:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
90 |
2599
57b65bcc8da6
fix Linux sendfile32() test broken in 0.3.36
Igor Sysoev <igor@sysoev.ru>
parents:
2598
diff
changeset
|
91 CC_AUX_FLAGS="$cc_aux_flags -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64" |
455 | 92 ngx_feature="sendfile64()" |
469 | 93 ngx_feature_name="NGX_HAVE_SENDFILE64" |
591 | 94 ngx_feature_run=yes |
95 ngx_feature_incs="#include <sys/sendfile.h> | |
2598 | 96 #include <errno.h>" |
875
7af8276b1c2f
test PCRE in FreeBSD, Linux, and NetBSD
Igor Sysoev <igor@sysoev.ru>
parents:
629
diff
changeset
|
97 ngx_feature_path= |
455 | 98 ngx_feature_libs= |
99 ngx_feature_test="int s = 0, fd = 1; | |
100 ssize_t n; off_t off = 0; | |
591 | 101 n = sendfile(s, fd, &off, 1); |
102 if (n == -1 && errno == ENOSYS) return 1" | |
455 | 103 . auto/feature |
196
11fbd0fc041d
nginx-0.0.1-2003-11-26-18:42:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
104 |
253
b6793bc5034b
nginx-0.0.2-2004-02-09-10:46:43 import
Igor Sysoev <igor@sysoev.ru>
parents:
249
diff
changeset
|
105 |
455 | 106 ngx_include="sys/prctl.h"; . auto/include |
107 | |
253
b6793bc5034b
nginx-0.0.2-2004-02-09-10:46:43 import
Igor Sysoev <igor@sysoev.ru>
parents:
249
diff
changeset
|
108 # prctl(PR_SET_DUMPABLE) |
b6793bc5034b
nginx-0.0.2-2004-02-09-10:46:43 import
Igor Sysoev <igor@sysoev.ru>
parents:
249
diff
changeset
|
109 |
455 | 110 ngx_feature="prctl(PR_SET_DUMPABLE)" |
469 | 111 ngx_feature_name="NGX_HAVE_PR_SET_DUMPABLE" |
455 | 112 ngx_feature_run=yes |
113 ngx_feature_incs="#include <sys/prctl.h>" | |
875
7af8276b1c2f
test PCRE in FreeBSD, Linux, and NetBSD
Igor Sysoev <igor@sysoev.ru>
parents:
629
diff
changeset
|
114 ngx_feature_path= |
455 | 115 ngx_feature_libs= |
116 ngx_feature_test="if (prctl(PR_SET_DUMPABLE, 1, 0, 0, 0) == -1) return 1" | |
117 . auto/feature | |
577 | 118 |
119 | |
120 # sched_setaffinity() | |
121 | |
122 ngx_feature="sched_setaffinity()" | |
123 ngx_feature_name="NGX_HAVE_SCHED_SETAFFINITY" | |
124 ngx_feature_run=no | |
125 ngx_feature_incs="#include <sched.h>" | |
875
7af8276b1c2f
test PCRE in FreeBSD, Linux, and NetBSD
Igor Sysoev <igor@sysoev.ru>
parents:
629
diff
changeset
|
126 ngx_feature_path= |
577 | 127 ngx_feature_libs= |
128 ngx_feature_test="long mask = 0; | |
583 | 129 sched_setaffinity(0, 32, (cpu_set_t *) &mask)" |
577 | 130 . auto/feature |
2599
57b65bcc8da6
fix Linux sendfile32() test broken in 0.3.36
Igor Sysoev <igor@sysoev.ru>
parents:
2598
diff
changeset
|
131 |
57b65bcc8da6
fix Linux sendfile32() test broken in 0.3.36
Igor Sysoev <igor@sysoev.ru>
parents:
2598
diff
changeset
|
132 |
2660
2ca36a62c8a1
autoconfigure crypt_r(): uclibc has no crypt_r()
Igor Sysoev <igor@sysoev.ru>
parents:
2615
diff
changeset
|
133 # crypt_r() |
2ca36a62c8a1
autoconfigure crypt_r(): uclibc has no crypt_r()
Igor Sysoev <igor@sysoev.ru>
parents:
2615
diff
changeset
|
134 |
2ca36a62c8a1
autoconfigure crypt_r(): uclibc has no crypt_r()
Igor Sysoev <igor@sysoev.ru>
parents:
2615
diff
changeset
|
135 ngx_feature="crypt_r()" |
2ca36a62c8a1
autoconfigure crypt_r(): uclibc has no crypt_r()
Igor Sysoev <igor@sysoev.ru>
parents:
2615
diff
changeset
|
136 ngx_feature_name="NGX_HAVE_GNU_CRYPT_R" |
2ca36a62c8a1
autoconfigure crypt_r(): uclibc has no crypt_r()
Igor Sysoev <igor@sysoev.ru>
parents:
2615
diff
changeset
|
137 ngx_feature_run=no |
2ca36a62c8a1
autoconfigure crypt_r(): uclibc has no crypt_r()
Igor Sysoev <igor@sysoev.ru>
parents:
2615
diff
changeset
|
138 ngx_feature_incs="#include <crypt.h>" |
2ca36a62c8a1
autoconfigure crypt_r(): uclibc has no crypt_r()
Igor Sysoev <igor@sysoev.ru>
parents:
2615
diff
changeset
|
139 ngx_feature_path= |
2ca36a62c8a1
autoconfigure crypt_r(): uclibc has no crypt_r()
Igor Sysoev <igor@sysoev.ru>
parents:
2615
diff
changeset
|
140 ngx_feature_libs=-lcrypt |
2ca36a62c8a1
autoconfigure crypt_r(): uclibc has no crypt_r()
Igor Sysoev <igor@sysoev.ru>
parents:
2615
diff
changeset
|
141 ngx_feature_test="struct crypt_data cd; |
2ca36a62c8a1
autoconfigure crypt_r(): uclibc has no crypt_r()
Igor Sysoev <igor@sysoev.ru>
parents:
2615
diff
changeset
|
142 crypt_r(NULL, NULL, &cd);" |
2ca36a62c8a1
autoconfigure crypt_r(): uclibc has no crypt_r()
Igor Sysoev <igor@sysoev.ru>
parents:
2615
diff
changeset
|
143 . auto/feature |
2ca36a62c8a1
autoconfigure crypt_r(): uclibc has no crypt_r()
Igor Sysoev <igor@sysoev.ru>
parents:
2615
diff
changeset
|
144 |
2ca36a62c8a1
autoconfigure crypt_r(): uclibc has no crypt_r()
Igor Sysoev <igor@sysoev.ru>
parents:
2615
diff
changeset
|
145 |
2615 | 146 ngx_include="sys/vfs.h"; . auto/include |
147 | |
148 | |
2747
ee5de4f120f4
fix GNU strerror_r() detection, the bug has been inroduced in r2600
Igor Sysoev <igor@sysoev.ru>
parents:
2660
diff
changeset
|
149 CC_AUX_FLAGS="$cc_aux_flags -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64" |