xref: /unit/auto/malloc (revision 328:542e3e439969)
10Sigor@sysoev.ru
20Sigor@sysoev.ru# Copyright (C) Igor Sysoev
30Sigor@sysoev.ru# Copyright (C) NGINX, Inc.
40Sigor@sysoev.ru
50Sigor@sysoev.ru
60Sigor@sysoev.ru# Linux glibc 2.1.91, FreeBSD 7.0, Solaris 11,
70Sigor@sysoev.ru# MacOSX 10.6 (Snow Leopard), NetBSD 5.0.
80Sigor@sysoev.ru
90Sigor@sysoev.runxt_feature="posix_memalign()"
100Sigor@sysoev.runxt_feature_name=NXT_HAVE_POSIX_MEMALIGN
110Sigor@sysoev.runxt_feature_run=yes
120Sigor@sysoev.runxt_feature_incs=
130Sigor@sysoev.runxt_feature_libs=
140Sigor@sysoev.runxt_feature_test="#include <stdlib.h>
150Sigor@sysoev.ru
160Sigor@sysoev.ru                  int main() {
170Sigor@sysoev.ru                      void  *p;
180Sigor@sysoev.ru
190Sigor@sysoev.ru                      if (posix_memalign(&p, 4096, 4096) != 0)
200Sigor@sysoev.ru                          return 1;
210Sigor@sysoev.ru
220Sigor@sysoev.ru                      free(p);
230Sigor@sysoev.ru                      return 0;
240Sigor@sysoev.ru                  }"
250Sigor@sysoev.ru. auto/feature
260Sigor@sysoev.ru
270Sigor@sysoev.ru
280Sigor@sysoev.ruif [ $nxt_found = no ]; then
290Sigor@sysoev.ru
300Sigor@sysoev.ru    # Solaris, HP-UX.
310Sigor@sysoev.ru
320Sigor@sysoev.ru    nxt_feature="memalign()"
330Sigor@sysoev.ru    nxt_feature_name=NXT_HAVE_MEMALIGN
340Sigor@sysoev.ru    nxt_feature_run=yes
350Sigor@sysoev.ru    nxt_feature_incs=
360Sigor@sysoev.ru    nxt_feature_libs=
370Sigor@sysoev.ru    nxt_feature_test="#include <stdlib.h>
380Sigor@sysoev.ru
390Sigor@sysoev.ru                      int main() {
400Sigor@sysoev.ru                          void  *p;
410Sigor@sysoev.ru
420Sigor@sysoev.ru                          p = memalign(4096, 4096);
430Sigor@sysoev.ru                          if (p == NULL)
440Sigor@sysoev.ru                              return 1;
450Sigor@sysoev.ru
460Sigor@sysoev.ru                          free(p);
470Sigor@sysoev.ru                          return 0;
480Sigor@sysoev.ru                      }"
490Sigor@sysoev.ru    . auto/feature
500Sigor@sysoev.rufi
510Sigor@sysoev.ru
520Sigor@sysoev.ru
530Sigor@sysoev.ru# Linux malloc_usable_size().
540Sigor@sysoev.ru
550Sigor@sysoev.runxt_feature="Linux malloc_usable_size()"
560Sigor@sysoev.runxt_feature_name=NXT_HAVE_MALLOC_USABLE_SIZE
570Sigor@sysoev.runxt_feature_run=yes
580Sigor@sysoev.runxt_feature_incs=
590Sigor@sysoev.runxt_feature_libs=
600Sigor@sysoev.runxt_feature_test="#include <malloc.h>
610Sigor@sysoev.ru
620Sigor@sysoev.ru                  int main() {
630Sigor@sysoev.ru                      void  *p;
640Sigor@sysoev.ru
650Sigor@sysoev.ru                      p = malloc(4096);
660Sigor@sysoev.ru                      if (malloc_usable_size(p) < 4096)
670Sigor@sysoev.ru                          return 1;
680Sigor@sysoev.ru                      return 0;
690Sigor@sysoev.ru                  }"
700Sigor@sysoev.ru. auto/feature
710Sigor@sysoev.ru
720Sigor@sysoev.ru
730Sigor@sysoev.ruif [ $nxt_found = no ]; then
740Sigor@sysoev.ru
750Sigor@sysoev.ru    # FreeBSD malloc_usable_size().
760Sigor@sysoev.ru
770Sigor@sysoev.ru    nxt_feature="FreeBSD malloc_usable_size()"
780Sigor@sysoev.ru    nxt_feature_name=NXT_HAVE_MALLOC_USABLE_SIZE
790Sigor@sysoev.ru    nxt_feature_run=yes
800Sigor@sysoev.ru    nxt_feature_incs=
810Sigor@sysoev.ru    nxt_feature_libs=
820Sigor@sysoev.ru    nxt_feature_test="#include <stdlib.h>
830Sigor@sysoev.ru                      #include <malloc_np.h>
840Sigor@sysoev.ru
850Sigor@sysoev.ru                      int main() {
860Sigor@sysoev.ru                          void  *p;
870Sigor@sysoev.ru
880Sigor@sysoev.ru                          p = malloc(4096);
890Sigor@sysoev.ru                          if (malloc_usable_size(p) < 4096)
900Sigor@sysoev.ru                              return 1;
910Sigor@sysoev.ru                          return 0;
920Sigor@sysoev.ru                      }"
930Sigor@sysoev.ru    . auto/feature
940Sigor@sysoev.rufi
950Sigor@sysoev.ru
960Sigor@sysoev.ru
970Sigor@sysoev.ruif [ $nxt_found = no ]; then
980Sigor@sysoev.ru
990Sigor@sysoev.ru    # MacOSX malloc_good_size().
1000Sigor@sysoev.ru
1010Sigor@sysoev.ru    nxt_feature="MacOSX malloc_good_size()"
1020Sigor@sysoev.ru    nxt_feature_name=NXT_HAVE_MALLOC_GOOD_SIZE
1030Sigor@sysoev.ru    nxt_feature_run=yes
1040Sigor@sysoev.ru    nxt_feature_incs=
1050Sigor@sysoev.ru    nxt_feature_libs=
1060Sigor@sysoev.ru    nxt_feature_test="#include <malloc/malloc.h>
1070Sigor@sysoev.ru
1080Sigor@sysoev.ru                      int main() {
1090Sigor@sysoev.ru                          if (malloc_good_size(4096) < 4096)
1100Sigor@sysoev.ru                              return 1;
1110Sigor@sysoev.ru                          return 0;
1120Sigor@sysoev.ru                      }"
1130Sigor@sysoev.ru    . auto/feature
1140Sigor@sysoev.rufi
1150Sigor@sysoev.ru
1160Sigor@sysoev.ru
1170Sigor@sysoev.ru# alloca().
1180Sigor@sysoev.ru
1190Sigor@sysoev.ru# Linux, FreeBSD, MacOSX.
1200Sigor@sysoev.ru
1210Sigor@sysoev.runxt_feature="alloca()"
1220Sigor@sysoev.runxt_feature_name=NXT_HAVE_ALLOCA
1230Sigor@sysoev.runxt_feature_run=yes
1240Sigor@sysoev.runxt_feature_incs=
1250Sigor@sysoev.runxt_feature_libs=
1260Sigor@sysoev.runxt_feature_test="#include <stdlib.h>
1270Sigor@sysoev.ru
1280Sigor@sysoev.ru                  int main() {
1290Sigor@sysoev.ru                      void  *p;
1300Sigor@sysoev.ru
1310Sigor@sysoev.ru                      p = alloca(256);
1320Sigor@sysoev.ru                      if (p == 0)
1330Sigor@sysoev.ru                          return 1;
1340Sigor@sysoev.ru                      return 0;
1350Sigor@sysoev.ru                  }"
1360Sigor@sysoev.ru. auto/feature
1370Sigor@sysoev.ru
1380Sigor@sysoev.ru
1390Sigor@sysoev.ruif [ $nxt_found = no ]; then
1400Sigor@sysoev.ru
1410Sigor@sysoev.ru    # Linux, Solaris, MacOSX.
1420Sigor@sysoev.ru
1430Sigor@sysoev.ru    nxt_feature="alloca() in alloca.h"
1440Sigor@sysoev.ru    nxt_feature_name=NXT_HAVE_ALLOCA_H
1450Sigor@sysoev.ru    nxt_feature_run=yes
1460Sigor@sysoev.ru    nxt_feature_incs=
1470Sigor@sysoev.ru    nxt_feature_libs=
1480Sigor@sysoev.ru    nxt_feature_test="#include <alloca.h>
1490Sigor@sysoev.ru
1500Sigor@sysoev.ru                      int main() {
1510Sigor@sysoev.ru                          void  *p;
1520Sigor@sysoev.ru
1530Sigor@sysoev.ru                          p = alloca(256);
1540Sigor@sysoev.ru                          if (p == 0)
1550Sigor@sysoev.ru                              return 1;
1560Sigor@sysoev.ru                          return 0;
1570Sigor@sysoev.ru                      }"
1580Sigor@sysoev.ru    . auto/feature
1590Sigor@sysoev.rufi
160*328Smax.romanov@nginx.com
161*328Smax.romanov@nginx.com
162*328Smax.romanov@nginx.com# Linux mallopt().
163*328Smax.romanov@nginx.com
164*328Smax.romanov@nginx.comnxt_feature="Linux mallopt()"
165*328Smax.romanov@nginx.comnxt_feature_name=NXT_HAVE_MALLOPT
166*328Smax.romanov@nginx.comnxt_feature_run=
167*328Smax.romanov@nginx.comnxt_feature_incs=
168*328Smax.romanov@nginx.comnxt_feature_libs=
169*328Smax.romanov@nginx.comnxt_feature_test="#include <malloc.h>
170*328Smax.romanov@nginx.com
171*328Smax.romanov@nginx.com                  int main() {
172*328Smax.romanov@nginx.com                      mallopt(M_PERTURB, 0x55);
173*328Smax.romanov@nginx.com                      return 0;
174*328Smax.romanov@nginx.com                  }"
175*328Smax.romanov@nginx.com. auto/feature
176