xref: /unit/auto/malloc (revision 0)
1*0Sigor@sysoev.ru
2*0Sigor@sysoev.ru# Copyright (C) Igor Sysoev
3*0Sigor@sysoev.ru# Copyright (C) NGINX, Inc.
4*0Sigor@sysoev.ru
5*0Sigor@sysoev.ru
6*0Sigor@sysoev.ru# Linux glibc 2.1.91, FreeBSD 7.0, Solaris 11,
7*0Sigor@sysoev.ru# MacOSX 10.6 (Snow Leopard), NetBSD 5.0.
8*0Sigor@sysoev.ru
9*0Sigor@sysoev.runxt_feature="posix_memalign()"
10*0Sigor@sysoev.runxt_feature_name=NXT_HAVE_POSIX_MEMALIGN
11*0Sigor@sysoev.runxt_feature_run=yes
12*0Sigor@sysoev.runxt_feature_incs=
13*0Sigor@sysoev.runxt_feature_libs=
14*0Sigor@sysoev.runxt_feature_test="#include <stdlib.h>
15*0Sigor@sysoev.ru
16*0Sigor@sysoev.ru                  int main() {
17*0Sigor@sysoev.ru                      void  *p;
18*0Sigor@sysoev.ru
19*0Sigor@sysoev.ru                      if (posix_memalign(&p, 4096, 4096) != 0)
20*0Sigor@sysoev.ru                          return 1;
21*0Sigor@sysoev.ru
22*0Sigor@sysoev.ru                      free(p);
23*0Sigor@sysoev.ru                      return 0;
24*0Sigor@sysoev.ru                  }"
25*0Sigor@sysoev.ru. auto/feature
26*0Sigor@sysoev.ru
27*0Sigor@sysoev.ru
28*0Sigor@sysoev.ruif [ $nxt_found = no ]; then
29*0Sigor@sysoev.ru
30*0Sigor@sysoev.ru    # Solaris, HP-UX.
31*0Sigor@sysoev.ru
32*0Sigor@sysoev.ru    nxt_feature="memalign()"
33*0Sigor@sysoev.ru    nxt_feature_name=NXT_HAVE_MEMALIGN
34*0Sigor@sysoev.ru    nxt_feature_run=yes
35*0Sigor@sysoev.ru    nxt_feature_incs=
36*0Sigor@sysoev.ru    nxt_feature_libs=
37*0Sigor@sysoev.ru    nxt_feature_test="#include <stdlib.h>
38*0Sigor@sysoev.ru
39*0Sigor@sysoev.ru                      int main() {
40*0Sigor@sysoev.ru                          void  *p;
41*0Sigor@sysoev.ru
42*0Sigor@sysoev.ru                          p = memalign(4096, 4096);
43*0Sigor@sysoev.ru                          if (p == NULL)
44*0Sigor@sysoev.ru                              return 1;
45*0Sigor@sysoev.ru
46*0Sigor@sysoev.ru                          free(p);
47*0Sigor@sysoev.ru                          return 0;
48*0Sigor@sysoev.ru                      }"
49*0Sigor@sysoev.ru    . auto/feature
50*0Sigor@sysoev.rufi
51*0Sigor@sysoev.ru
52*0Sigor@sysoev.ru
53*0Sigor@sysoev.ru# Linux malloc_usable_size().
54*0Sigor@sysoev.ru
55*0Sigor@sysoev.runxt_feature="Linux malloc_usable_size()"
56*0Sigor@sysoev.runxt_feature_name=NXT_HAVE_MALLOC_USABLE_SIZE
57*0Sigor@sysoev.runxt_feature_run=yes
58*0Sigor@sysoev.runxt_feature_incs=
59*0Sigor@sysoev.runxt_feature_libs=
60*0Sigor@sysoev.runxt_feature_test="#include <malloc.h>
61*0Sigor@sysoev.ru
62*0Sigor@sysoev.ru                  int main() {
63*0Sigor@sysoev.ru                      void  *p;
64*0Sigor@sysoev.ru
65*0Sigor@sysoev.ru                      p = malloc(4096);
66*0Sigor@sysoev.ru                      if (malloc_usable_size(p) < 4096)
67*0Sigor@sysoev.ru                          return 1;
68*0Sigor@sysoev.ru                      return 0;
69*0Sigor@sysoev.ru                  }"
70*0Sigor@sysoev.ru. auto/feature
71*0Sigor@sysoev.ru
72*0Sigor@sysoev.ru
73*0Sigor@sysoev.ruif [ $nxt_found = no ]; then
74*0Sigor@sysoev.ru
75*0Sigor@sysoev.ru    # FreeBSD malloc_usable_size().
76*0Sigor@sysoev.ru
77*0Sigor@sysoev.ru    nxt_feature="FreeBSD malloc_usable_size()"
78*0Sigor@sysoev.ru    nxt_feature_name=NXT_HAVE_MALLOC_USABLE_SIZE
79*0Sigor@sysoev.ru    nxt_feature_run=yes
80*0Sigor@sysoev.ru    nxt_feature_incs=
81*0Sigor@sysoev.ru    nxt_feature_libs=
82*0Sigor@sysoev.ru    nxt_feature_test="#include <stdlib.h>
83*0Sigor@sysoev.ru                      #include <malloc_np.h>
84*0Sigor@sysoev.ru
85*0Sigor@sysoev.ru                      int main() {
86*0Sigor@sysoev.ru                          void  *p;
87*0Sigor@sysoev.ru
88*0Sigor@sysoev.ru                          p = malloc(4096);
89*0Sigor@sysoev.ru                          if (malloc_usable_size(p) < 4096)
90*0Sigor@sysoev.ru                              return 1;
91*0Sigor@sysoev.ru                          return 0;
92*0Sigor@sysoev.ru                      }"
93*0Sigor@sysoev.ru    . auto/feature
94*0Sigor@sysoev.rufi
95*0Sigor@sysoev.ru
96*0Sigor@sysoev.ru
97*0Sigor@sysoev.ruif [ $nxt_found = no ]; then
98*0Sigor@sysoev.ru
99*0Sigor@sysoev.ru    # MacOSX malloc_good_size().
100*0Sigor@sysoev.ru
101*0Sigor@sysoev.ru    nxt_feature="MacOSX malloc_good_size()"
102*0Sigor@sysoev.ru    nxt_feature_name=NXT_HAVE_MALLOC_GOOD_SIZE
103*0Sigor@sysoev.ru    nxt_feature_run=yes
104*0Sigor@sysoev.ru    nxt_feature_incs=
105*0Sigor@sysoev.ru    nxt_feature_libs=
106*0Sigor@sysoev.ru    nxt_feature_test="#include <malloc/malloc.h>
107*0Sigor@sysoev.ru
108*0Sigor@sysoev.ru                      int main() {
109*0Sigor@sysoev.ru                          if (malloc_good_size(4096) < 4096)
110*0Sigor@sysoev.ru                              return 1;
111*0Sigor@sysoev.ru                          return 0;
112*0Sigor@sysoev.ru                      }"
113*0Sigor@sysoev.ru    . auto/feature
114*0Sigor@sysoev.rufi
115*0Sigor@sysoev.ru
116*0Sigor@sysoev.ru
117*0Sigor@sysoev.ru# alloca().
118*0Sigor@sysoev.ru
119*0Sigor@sysoev.ru# Linux, FreeBSD, MacOSX.
120*0Sigor@sysoev.ru
121*0Sigor@sysoev.runxt_feature="alloca()"
122*0Sigor@sysoev.runxt_feature_name=NXT_HAVE_ALLOCA
123*0Sigor@sysoev.runxt_feature_run=yes
124*0Sigor@sysoev.runxt_feature_incs=
125*0Sigor@sysoev.runxt_feature_libs=
126*0Sigor@sysoev.runxt_feature_test="#include <stdlib.h>
127*0Sigor@sysoev.ru
128*0Sigor@sysoev.ru                  int main() {
129*0Sigor@sysoev.ru                      void  *p;
130*0Sigor@sysoev.ru
131*0Sigor@sysoev.ru                      p = alloca(256);
132*0Sigor@sysoev.ru                      if (p == 0)
133*0Sigor@sysoev.ru                          return 1;
134*0Sigor@sysoev.ru                      return 0;
135*0Sigor@sysoev.ru                  }"
136*0Sigor@sysoev.ru. auto/feature
137*0Sigor@sysoev.ru
138*0Sigor@sysoev.ru
139*0Sigor@sysoev.ruif [ $nxt_found = no ]; then
140*0Sigor@sysoev.ru
141*0Sigor@sysoev.ru    # Linux, Solaris, MacOSX.
142*0Sigor@sysoev.ru
143*0Sigor@sysoev.ru    nxt_feature="alloca() in alloca.h"
144*0Sigor@sysoev.ru    nxt_feature_name=NXT_HAVE_ALLOCA_H
145*0Sigor@sysoev.ru    nxt_feature_run=yes
146*0Sigor@sysoev.ru    nxt_feature_incs=
147*0Sigor@sysoev.ru    nxt_feature_libs=
148*0Sigor@sysoev.ru    nxt_feature_test="#include <alloca.h>
149*0Sigor@sysoev.ru
150*0Sigor@sysoev.ru                      int main() {
151*0Sigor@sysoev.ru                          void  *p;
152*0Sigor@sysoev.ru
153*0Sigor@sysoev.ru                          p = alloca(256);
154*0Sigor@sysoev.ru                          if (p == 0)
155*0Sigor@sysoev.ru                              return 1;
156*0Sigor@sysoev.ru                          return 0;
157*0Sigor@sysoev.ru                      }"
158*0Sigor@sysoev.ru    . auto/feature
159*0Sigor@sysoev.rufi
160