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