1*42Smax.romanov@nginx.com 2*42Smax.romanov@nginx.com# Copyright (C) Igor Sysoev 3*42Smax.romanov@nginx.com# Copyright (C) NGINX, Inc. 4*42Smax.romanov@nginx.com 5*42Smax.romanov@nginx.com 6*42Smax.romanov@nginx.com# Linux, FreeBSD, MacOSX 7*42Smax.romanov@nginx.com 8*42Smax.romanov@nginx.comnxt_feature="shm_open()" 9*42Smax.romanov@nginx.comnxt_feature_name=NXT_HAVE_SHM_OPEN 10*42Smax.romanov@nginx.comnxt_feature_run=yes 11*42Smax.romanov@nginx.comnxt_feature_incs= 12*42Smax.romanov@nginx.comnxt_feature_libs= 13*42Smax.romanov@nginx.com 14*42Smax.romanov@nginx.comif [ "$NXT_SYSTEM" = "Linux" ]; then 15*42Smax.romanov@nginx.com nxt_feature_libs=-lrt 16*42Smax.romanov@nginx.comfi 17*42Smax.romanov@nginx.com 18*42Smax.romanov@nginx.comnxt_feature_test="#include <sys/mman.h> 19*42Smax.romanov@nginx.com #include <fcntl.h> 20*42Smax.romanov@nginx.com #include <sys/stat.h> 21*42Smax.romanov@nginx.com #include <sys/types.h> 22*42Smax.romanov@nginx.com 23*42Smax.romanov@nginx.com int main() { 24*42Smax.romanov@nginx.com static char name[] = \"/nginext.configure\"; 25*42Smax.romanov@nginx.com 26*42Smax.romanov@nginx.com shm_unlink(name); 27*42Smax.romanov@nginx.com 28*42Smax.romanov@nginx.com int fd = shm_open(name, O_CREAT | O_EXCL | O_RDWR, 29*42Smax.romanov@nginx.com S_IRUSR | S_IWUSR); 30*42Smax.romanov@nginx.com if (fd == -1) 31*42Smax.romanov@nginx.com return 1; 32*42Smax.romanov@nginx.com 33*42Smax.romanov@nginx.com shm_unlink(name); 34*42Smax.romanov@nginx.com return 0; 35*42Smax.romanov@nginx.com }" 36*42Smax.romanov@nginx.com. auto/feature 37*42Smax.romanov@nginx.com 38*42Smax.romanov@nginx.com 39*42Smax.romanov@nginx.com# Linux 40*42Smax.romanov@nginx.com 41*42Smax.romanov@nginx.comnxt_feature="memfd_create()" 42*42Smax.romanov@nginx.comnxt_feature_name=NXT_HAVE_MEMFD_CREATE 43*42Smax.romanov@nginx.comnxt_feature_run=yes 44*42Smax.romanov@nginx.comnxt_feature_incs= 45*42Smax.romanov@nginx.comnxt_feature_libs= 46*42Smax.romanov@nginx.comnxt_feature_test="#include <linux/memfd.h> 47*42Smax.romanov@nginx.com #include <unistd.h> 48*42Smax.romanov@nginx.com #include <sys/syscall.h> 49*42Smax.romanov@nginx.com 50*42Smax.romanov@nginx.com int main() { 51*42Smax.romanov@nginx.com static char name[] = \"/nginext.configure\"; 52*42Smax.romanov@nginx.com 53*42Smax.romanov@nginx.com int fd = syscall(SYS_memfd_create, name, MFD_CLOEXEC); 54*42Smax.romanov@nginx.com if (fd == -1) 55*42Smax.romanov@nginx.com return 1; 56*42Smax.romanov@nginx.com 57*42Smax.romanov@nginx.com return 0; 58*42Smax.romanov@nginx.com }" 59*42Smax.romanov@nginx.com. auto/feature 60*42Smax.romanov@nginx.com 61