| From fafcfac0933c17e1bf551600080eb0541186caf5 Mon Sep 17 00:00:00 2001 |
| From: Anuj Mittal <anuj.mittal@intel.com> |
| Date: Mon, 2 Apr 2018 17:54:52 +0800 |
| Subject: [PATCH] opcache/config.m4: enable opcache |
| |
| We can't use AC_TRY_RUN to run programs in a cross compile environment. Set |
| the variables directly instead since we know that we'd be running on latest |
| enough linux kernel. |
| |
| Upstream-Status: Inappropriate [Configuration] |
| |
| Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> |
| |
| %% original patch: php5-0001-opcache-config.m4-enable-opcache.patch |
| --- |
| ext/opcache/config.m4 | 349 ++------------------------------------------------ |
| 1 file changed, 8 insertions(+), 341 deletions(-) |
| |
| diff --git a/ext/opcache/config.m4 b/ext/opcache/config.m4 |
| index 5a8b86c..6e87fa5 100644 |
| --- a/ext/opcache/config.m4 |
| +++ b/ext/opcache/config.m4 |
| @@ -11,353 +11,20 @@ if test "$PHP_OPCACHE" != "no"; then |
| AC_DEFINE(HAVE_MPROTECT, 1, [Define if you have mprotect() function]) |
| ]) |
| |
| - AC_MSG_CHECKING(for sysvipc shared memory support) |
| - AC_TRY_RUN([ |
| -#include <sys/types.h> |
| -#include <sys/wait.h> |
| -#include <sys/ipc.h> |
| -#include <sys/shm.h> |
| -#include <unistd.h> |
| -#include <string.h> |
| + AC_DEFINE(HAVE_SHM_IPC, 1, [Define if you have SysV IPC SHM support]) |
| |
| -int main() { |
| - pid_t pid; |
| - int status; |
| - int ipc_id; |
| - char *shm; |
| - struct shmid_ds shmbuf; |
| + AC_DEFINE(HAVE_SHM_MMAP_ANON, 1, [Define if you have mmap(MAP_ANON) SHM support]) |
| |
| - ipc_id = shmget(IPC_PRIVATE, 4096, (IPC_CREAT | SHM_R | SHM_W)); |
| - if (ipc_id == -1) { |
| - return 1; |
| - } |
| + AC_DEFINE(HAVE_SHM_MMAP_ZERO, 1, [Define if you have mmap("/dev/zero") SHM support]) |
| |
| - shm = shmat(ipc_id, NULL, 0); |
| - if (shm == (void *)-1) { |
| - shmctl(ipc_id, IPC_RMID, NULL); |
| - return 2; |
| - } |
| - |
| - if (shmctl(ipc_id, IPC_STAT, &shmbuf) != 0) { |
| - shmdt(shm); |
| - shmctl(ipc_id, IPC_RMID, NULL); |
| - return 3; |
| - } |
| - |
| - shmbuf.shm_perm.uid = getuid(); |
| - shmbuf.shm_perm.gid = getgid(); |
| - shmbuf.shm_perm.mode = 0600; |
| - |
| - if (shmctl(ipc_id, IPC_SET, &shmbuf) != 0) { |
| - shmdt(shm); |
| - shmctl(ipc_id, IPC_RMID, NULL); |
| - return 4; |
| - } |
| - |
| - shmctl(ipc_id, IPC_RMID, NULL); |
| - |
| - strcpy(shm, "hello"); |
| - |
| - pid = fork(); |
| - if (pid < 0) { |
| - return 5; |
| - } else if (pid == 0) { |
| - strcpy(shm, "bye"); |
| - return 6; |
| - } |
| - if (wait(&status) != pid) { |
| - return 7; |
| - } |
| - if (!WIFEXITED(status) || WEXITSTATUS(status) != 6) { |
| - return 8; |
| - } |
| - if (strcmp(shm, "bye") != 0) { |
| - return 9; |
| - } |
| - return 0; |
| -} |
| -],dnl |
| - AC_DEFINE(HAVE_SHM_IPC, 1, [Define if you have SysV IPC SHM support]) |
| - msg=yes,msg=no,msg=no) |
| - AC_MSG_RESULT([$msg]) |
| - |
| - AC_MSG_CHECKING(for mmap() using MAP_ANON shared memory support) |
| - AC_TRY_RUN([ |
| -#include <sys/types.h> |
| -#include <sys/wait.h> |
| -#include <sys/mman.h> |
| -#include <unistd.h> |
| -#include <string.h> |
| - |
| -#ifndef MAP_ANON |
| -# ifdef MAP_ANONYMOUS |
| -# define MAP_ANON MAP_ANONYMOUS |
| -# endif |
| -#endif |
| -#ifndef MAP_FAILED |
| -# define MAP_FAILED ((void*)-1) |
| -#endif |
| - |
| -int main() { |
| - pid_t pid; |
| - int status; |
| - char *shm; |
| - |
| - shm = mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_ANON, -1, 0); |
| - if (shm == MAP_FAILED) { |
| - return 1; |
| - } |
| - |
| - strcpy(shm, "hello"); |
| - |
| - pid = fork(); |
| - if (pid < 0) { |
| - return 5; |
| - } else if (pid == 0) { |
| - strcpy(shm, "bye"); |
| - return 6; |
| - } |
| - if (wait(&status) != pid) { |
| - return 7; |
| - } |
| - if (!WIFEXITED(status) || WEXITSTATUS(status) != 6) { |
| - return 8; |
| - } |
| - if (strcmp(shm, "bye") != 0) { |
| - return 9; |
| - } |
| - return 0; |
| -} |
| -],dnl |
| - AC_DEFINE(HAVE_SHM_MMAP_ANON, 1, [Define if you have mmap(MAP_ANON) SHM support]) |
| - msg=yes,msg=no,msg=no) |
| - AC_MSG_RESULT([$msg]) |
| - |
| - AC_MSG_CHECKING(for mmap() using /dev/zero shared memory support) |
| - AC_TRY_RUN([ |
| -#include <sys/types.h> |
| -#include <sys/wait.h> |
| -#include <sys/mman.h> |
| -#include <sys/stat.h> |
| -#include <fcntl.h> |
| -#include <unistd.h> |
| -#include <string.h> |
| - |
| -#ifndef MAP_FAILED |
| -# define MAP_FAILED ((void*)-1) |
| -#endif |
| - |
| -int main() { |
| - pid_t pid; |
| - int status; |
| - int fd; |
| - char *shm; |
| - |
| - fd = open("/dev/zero", O_RDWR, S_IRUSR | S_IWUSR); |
| - if (fd == -1) { |
| - return 1; |
| - } |
| - |
| - shm = mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); |
| - if (shm == MAP_FAILED) { |
| - return 2; |
| - } |
| - |
| - strcpy(shm, "hello"); |
| - |
| - pid = fork(); |
| - if (pid < 0) { |
| - return 5; |
| - } else if (pid == 0) { |
| - strcpy(shm, "bye"); |
| - return 6; |
| - } |
| - if (wait(&status) != pid) { |
| - return 7; |
| - } |
| - if (!WIFEXITED(status) || WEXITSTATUS(status) != 6) { |
| - return 8; |
| - } |
| - if (strcmp(shm, "bye") != 0) { |
| - return 9; |
| - } |
| - return 0; |
| -} |
| -],dnl |
| - AC_DEFINE(HAVE_SHM_MMAP_ZERO, 1, [Define if you have mmap("/dev/zero") SHM support]) |
| - msg=yes,msg=no,msg=no) |
| - AC_MSG_RESULT([$msg]) |
| - |
| - AC_MSG_CHECKING(for mmap() using shm_open() shared memory support) |
| - AC_TRY_RUN([ |
| -#include <sys/types.h> |
| -#include <sys/wait.h> |
| -#include <sys/mman.h> |
| -#include <sys/stat.h> |
| -#include <fcntl.h> |
| -#include <unistd.h> |
| -#include <string.h> |
| -#include <stdlib.h> |
| -#include <stdio.h> |
| - |
| -#ifndef MAP_FAILED |
| -# define MAP_FAILED ((void*)-1) |
| -#endif |
| - |
| -int main() { |
| - pid_t pid; |
| - int status; |
| - int fd; |
| - char *shm; |
| - char tmpname[4096]; |
| - |
| - sprintf(tmpname,"test.shm.%dXXXXXX", getpid()); |
| - if (mktemp(tmpname) == NULL) { |
| - return 1; |
| - } |
| - fd = shm_open(tmpname, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR); |
| - if (fd == -1) { |
| - return 2; |
| - } |
| - if (ftruncate(fd, 4096) < 0) { |
| - close(fd); |
| - shm_unlink(tmpname); |
| - return 3; |
| - } |
| - |
| - shm = mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); |
| - if (shm == MAP_FAILED) { |
| - return 4; |
| - } |
| - shm_unlink(tmpname); |
| - close(fd); |
| - |
| - strcpy(shm, "hello"); |
| - |
| - pid = fork(); |
| - if (pid < 0) { |
| - return 5; |
| - } else if (pid == 0) { |
| - strcpy(shm, "bye"); |
| - return 6; |
| - } |
| - if (wait(&status) != pid) { |
| - return 7; |
| - } |
| - if (!WIFEXITED(status) || WEXITSTATUS(status) != 6) { |
| - return 8; |
| - } |
| - if (strcmp(shm, "bye") != 0) { |
| - return 9; |
| - } |
| - return 0; |
| -} |
| -],dnl |
| - AC_DEFINE(HAVE_SHM_MMAP_POSIX, 1, [Define if you have POSIX mmap() SHM support]) |
| - msg=yes,msg=no,msg=no) |
| - AC_MSG_RESULT([$msg]) |
| + AC_DEFINE(HAVE_SHM_MMAP_POSIX, 1, [Define if you have POSIX mmap() SHM support]) |
| |
| AC_MSG_CHECKING(for mmap() using regular file shared memory support) |
| - AC_TRY_RUN([ |
| -#include <sys/types.h> |
| -#include <sys/wait.h> |
| -#include <sys/mman.h> |
| -#include <sys/stat.h> |
| -#include <fcntl.h> |
| -#include <unistd.h> |
| -#include <string.h> |
| -#include <stdlib.h> |
| -#include <stdio.h> |
| - |
| -#ifndef MAP_FAILED |
| -# define MAP_FAILED ((void*)-1) |
| -#endif |
| - |
| -int main() { |
| - pid_t pid; |
| - int status; |
| - int fd; |
| - char *shm; |
| - char tmpname[4096]; |
| - |
| - sprintf(tmpname,"test.shm.%dXXXXXX", getpid()); |
| - if (mktemp(tmpname) == NULL) { |
| - return 1; |
| - } |
| - fd = open(tmpname, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR); |
| - if (fd == -1) { |
| - return 2; |
| - } |
| - if (ftruncate(fd, 4096) < 0) { |
| - close(fd); |
| - unlink(tmpname); |
| - return 3; |
| - } |
| - |
| - shm = mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); |
| - if (shm == MAP_FAILED) { |
| - return 4; |
| - } |
| - unlink(tmpname); |
| - close(fd); |
| - |
| - strcpy(shm, "hello"); |
| - |
| - pid = fork(); |
| - if (pid < 0) { |
| - return 5; |
| - } else if (pid == 0) { |
| - strcpy(shm, "bye"); |
| - return 6; |
| - } |
| - if (wait(&status) != pid) { |
| - return 7; |
| - } |
| - if (!WIFEXITED(status) || WEXITSTATUS(status) != 6) { |
| - return 8; |
| - } |
| - if (strcmp(shm, "bye") != 0) { |
| - return 9; |
| - } |
| - return 0; |
| -} |
| -],dnl |
| - AC_DEFINE(HAVE_SHM_MMAP_FILE, 1, [Define if you have mmap() SHM support]) |
| - msg=yes,msg=no,msg=no) |
| - AC_MSG_RESULT([$msg]) |
| - |
| -flock_type=unknown |
| -AC_MSG_CHECKING("whether flock struct is linux ordered") |
| -AC_TRY_RUN([ |
| - #include <fcntl.h> |
| - struct flock lock = { 1, 2, 3, 4, 5 }; |
| - int main() { |
| - if(lock.l_type == 1 && lock.l_whence == 2 && lock.l_start == 3 && lock.l_len == 4) { |
| - return 0; |
| - } |
| - return 1; |
| - } |
| -], [ |
| - flock_type=linux |
| - AC_DEFINE([HAVE_FLOCK_LINUX], [], [Struct flock is Linux-type]) |
| - AC_MSG_RESULT("yes") |
| -], AC_MSG_RESULT("no") ) |
| + |
| + AC_DEFINE(HAVE_SHM_MMAP_FILE, 1, [Define if you have mmap() SHM support]) |
| |
| -AC_MSG_CHECKING("whether flock struct is BSD ordered") |
| -AC_TRY_RUN([ |
| - #include <fcntl.h> |
| - struct flock lock = { 1, 2, 3, 4, 5 }; |
| - int main() { |
| - if(lock.l_start == 1 && lock.l_len == 2 && lock.l_type == 4 && lock.l_whence == 5) { |
| - return 0; |
| - } |
| - return 1; |
| - } |
| -], [ |
| - flock_type=bsd |
| - AC_DEFINE([HAVE_FLOCK_BSD], [], [Struct flock is BSD-type]) |
| - AC_MSG_RESULT("yes") |
| -], AC_MSG_RESULT("no") ) |
| + flock_type=linux |
| + AC_DEFINE([HAVE_FLOCK_LINUX], [], [Struct flock is Linux-type]) |
| |
| if test "$flock_type" = "unknown"; then |
| AC_MSG_ERROR([Don't know how to define struct flock on this system[,] set --enable-opcache=no]) |
| -- |
| 2.7.4 |
| |