From 889583912ddd7abc628f2703892ec4884db6419a Mon Sep 17 00:00:00 2001 From: Soumya Sambu Date: Tue, 7 May 2024 08:39:16 +0000 Subject: [PATCH 01/11] ext/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 update patch to version 7.4.4 Signed-off-by: Changqing Li update patch to version 8.0.12 fix issue linking with librt Signed-off-by: Claude Bing update patch to version 8.1.0 Signed-off-by: Mingli Yu update patch to version 8.2.18 Signed-off-by: Soumya Sambu --- ext/opcache/config.m4 | 204 ++---------------------------------------- 1 file changed, 8 insertions(+), 196 deletions(-) diff --git a/ext/opcache/config.m4 b/ext/opcache/config.m4 index 6bf07ad3..5d645b86 100644 --- a/ext/opcache/config.m4 +++ b/ext/opcache/config.m4 @@ -113,209 +113,21 @@ if test "$PHP_OPCACHE" != "no"; then AC_CHECK_FUNCS([mprotect]) AC_MSG_CHECKING(for sysvipc shared memory support) - AC_RUN_IFELSE([AC_LANG_SOURCE([[ -#include -#include -#include -#include -#include -#include - -int main(void) { - pid_t pid; - int status; - int ipc_id; - char *shm; - struct shmid_ds shmbuf; - - ipc_id = shmget(IPC_PRIVATE, 4096, (IPC_CREAT | SHM_R | SHM_W)); - if (ipc_id == -1) { - return 1; - } - - 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; -} -]])],[have_shm_ipc=yes],[have_shm_ipc=no],[have_shm_ipc=no]) - if test "$have_shm_ipc" = "yes"; then - AC_DEFINE(HAVE_SHM_IPC, 1, [Define if you have SysV IPC SHM support]) - fi + AC_DEFINE(HAVE_SHM_IPC, 1, [Define if you have SysV IPC SHM support]) + have_shm_ipc=yes AC_MSG_RESULT([$have_shm_ipc]) AC_MSG_CHECKING(for mmap() using MAP_ANON shared memory support) - AC_RUN_IFELSE([AC_LANG_SOURCE([[ -#include -#include -#include -#include -#include - -#ifndef MAP_ANON -# ifdef MAP_ANONYMOUS -# define MAP_ANON MAP_ANONYMOUS -# endif -#endif -#ifndef MAP_FAILED -# define MAP_FAILED ((void*)-1) -#endif - -int main(void) { - 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; -} -]])],[have_shm_mmap_anon=yes],[have_shm_mmap_anon=no],[ - case $host_alias in - *linux*) - have_shm_mmap_anon=yes - ;; - *) - have_shm_mmap_anon=no - ;; - esac -]) - if test "$have_shm_mmap_anon" = "yes"; then - AC_DEFINE(HAVE_SHM_MMAP_ANON, 1, [Define if you have mmap(MAP_ANON) SHM support]) - fi + AC_DEFINE(HAVE_SHM_MMAP_ANON, 1, [Define if you have mmap(MAP_ANON) SHM support]) + have_shm_mmap_anon=yes AC_MSG_RESULT([$have_shm_mmap_anon]) PHP_CHECK_FUNC_LIB(shm_open, rt, root) AC_MSG_CHECKING(for mmap() using shm_open() shared memory support) - AC_RUN_IFELSE([AC_LANG_SOURCE([[ -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#ifndef MAP_FAILED -# define MAP_FAILED ((void*)-1) -#endif - -int main(void) { - pid_t pid; - int status; - int fd; - char *shm; - char tmpname[4096]; - - sprintf(tmpname,"/opcache.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; -} -]])],[have_shm_mmap_posix=yes],[have_shm_mmap_posix=no],[have_shm_mmap_posix=no]) - if test "$have_shm_mmap_posix" = "yes"; then - AC_DEFINE(HAVE_SHM_MMAP_POSIX, 1, [Define if you have POSIX mmap() SHM support]) - PHP_CHECK_LIBRARY(rt, shm_unlink, [PHP_ADD_LIBRARY(rt,1,OPCACHE_SHARED_LIBADD)]) - fi - AC_MSG_RESULT([$have_shm_mmap_posix]) + AC_DEFINE(HAVE_SHM_MMAP_POSIX, 1, [Define if you have POSIX mmap() SHM support]) + AC_MSG_RESULT([yes]) + have_shm_mmap_posix=yes + PHP_CHECK_LIBRARY(rt, shm_unlink, [PHP_ADD_LIBRARY(rt,1,OPCACHE_SHARED_LIBADD)]) PHP_NEW_EXTENSION(opcache, ZendAccelerator.c \ -- 2.40.0