diff options
Diffstat (limited to '')
-rw-r--r-- | auto/shmem | 60 | ||||
-rw-r--r-- | auto/sources | 2 |
2 files changed, 62 insertions, 0 deletions
diff --git a/auto/shmem b/auto/shmem new file mode 100644 index 00000000..48665649 --- /dev/null +++ b/auto/shmem @@ -0,0 +1,60 @@ + +# Copyright (C) Igor Sysoev +# Copyright (C) NGINX, Inc. + + +# Linux, FreeBSD, MacOSX + +nxt_feature="shm_open()" +nxt_feature_name=NXT_HAVE_SHM_OPEN +nxt_feature_run=yes +nxt_feature_incs= +nxt_feature_libs= + +if [ "$NXT_SYSTEM" = "Linux" ]; then + nxt_feature_libs=-lrt +fi + +nxt_feature_test="#include <sys/mman.h> + #include <fcntl.h> + #include <sys/stat.h> + #include <sys/types.h> + + int main() { + static char name[] = \"/nginext.configure\"; + + shm_unlink(name); + + int fd = shm_open(name, O_CREAT | O_EXCL | O_RDWR, + S_IRUSR | S_IWUSR); + if (fd == -1) + return 1; + + shm_unlink(name); + return 0; + }" +. auto/feature + + +# Linux + +nxt_feature="memfd_create()" +nxt_feature_name=NXT_HAVE_MEMFD_CREATE +nxt_feature_run=yes +nxt_feature_incs= +nxt_feature_libs= +nxt_feature_test="#include <linux/memfd.h> + #include <unistd.h> + #include <sys/syscall.h> + + int main() { + static char name[] = \"/nginext.configure\"; + + int fd = syscall(SYS_memfd_create, name, MFD_CLOEXEC); + if (fd == -1) + return 1; + + return 0; + }" +. auto/feature + diff --git a/auto/sources b/auto/sources index 8958d5d9..efe748d1 100644 --- a/auto/sources +++ b/auto/sources @@ -18,6 +18,7 @@ NXT_LIB_DEPS=" \ src/nxt_process.h \ src/nxt_signal.h \ src/nxt_port.h \ + src/nxt_port_memory.h \ src/nxt_dyld.h \ src/nxt_thread.h \ src/nxt_thread_id.h \ @@ -86,6 +87,7 @@ NXT_LIB_SRCS=" \ src/nxt_process_title.c \ src/nxt_signal.c \ src/nxt_port_socket.c \ + src/nxt_port_memory.c \ src/nxt_port.c \ src/nxt_dyld.c \ src/nxt_random.c \ |