From bfcbe7849b4b5a7cd4a3a5c8a950de621b67e9c3 Mon Sep 17 00:00:00 2001 From: Dmitry Stogov Date: Thu, 14 Feb 2013 10:01:29 +0400 Subject: [PATCH] Avoid compilation of unsupported SHM backends --- shared_alloc_mmap.c | 8 ++++++-- shared_alloc_posix.c | 8 ++++++-- shared_alloc_shm.c | 8 ++++++-- zend_shared_alloc.c | 6 +++--- zend_shared_alloc.h | 47 ++++++++++++++++++++++++++++++++------------ 5 files changed, 55 insertions(+), 22 deletions(-) diff --git a/shared_alloc_mmap.c b/shared_alloc_mmap.c index 7e23d4ea8d9..2a389c072cb 100644 --- a/shared_alloc_mmap.c +++ b/shared_alloc_mmap.c @@ -19,14 +19,16 @@ +----------------------------------------------------------------------+ */ +#include "zend_shared_alloc.h" + +#ifdef USE_MMAP + #include #include #include #include #include -#include "zend_shared_alloc.h" - #if defined(MAP_ANON) && !defined(MAP_ANONYMOUS) # define MAP_ANONYMOUS MAP_ANON #endif @@ -68,3 +70,5 @@ zend_shared_memory_handlers zend_alloc_mmap_handlers = { detach_segment, segment_type_size }; + +#endif /* USE_MMAP */ diff --git a/shared_alloc_posix.c b/shared_alloc_posix.c index 5a0111c797a..75ea176f41d 100644 --- a/shared_alloc_posix.c +++ b/shared_alloc_posix.c @@ -19,6 +19,10 @@ +----------------------------------------------------------------------+ */ +#include "zend_shared_alloc.h" + +#ifdef USE_SHM_OPEN + #include #include #include @@ -27,8 +31,6 @@ #include #include -#include "zend_shared_alloc.h" - typedef struct { zend_shared_segment common; int shm_fd; @@ -88,3 +90,5 @@ zend_shared_memory_handlers zend_alloc_posix_handlers = { (detach_segment_t)detach_segment, segment_type_size }; + +#endif /* USE_SHM_OPEN */ diff --git a/shared_alloc_shm.c b/shared_alloc_shm.c index 45fab7c4a31..9d0256e4de6 100644 --- a/shared_alloc_shm.c +++ b/shared_alloc_shm.c @@ -19,6 +19,10 @@ +----------------------------------------------------------------------+ */ +#include "zend_shared_alloc.h" + +#ifdef USE_SHM + #if defined(__FreeBSD__) # include #endif @@ -35,8 +39,6 @@ #include #include -#include "zend_shared_alloc.h" - #ifndef MIN # define MIN(x, y) ((x) > (y)? (y) : (x)) #endif @@ -135,3 +137,5 @@ zend_shared_memory_handlers zend_alloc_shm_handlers = { (detach_segment_t)detach_segment, segment_type_size }; + +#endif /* USE_SHM */ diff --git a/zend_shared_alloc.c b/zend_shared_alloc.c index c0024c66660..3b93d041618 100644 --- a/zend_shared_alloc.c +++ b/zend_shared_alloc.c @@ -58,13 +58,13 @@ static char lockfile_name[sizeof(TMP_DIR)+sizeof(SEM_FILENAME_PREFIX)+8]; #endif static const zend_shared_memory_handler_entry handler_table[] = { -#if USE_MMAP +#ifdef USE_MMAP { "mmap", &zend_alloc_mmap_handlers }, #endif -#if USE_SHM +#ifdef USE_SHM { "shm", &zend_alloc_shm_handlers }, #endif -#if USE_SHM_OPEN +#ifdef USE_SHM_OPEN { "posix", &zend_alloc_posix_handlers }, #endif #ifdef ZEND_WIN32 diff --git a/zend_shared_alloc.h b/zend_shared_alloc.h index aa615144524..12df673cf3c 100644 --- a/zend_shared_alloc.h +++ b/zend_shared_alloc.h @@ -23,23 +23,44 @@ #define ZEND_SHARED_ALLOC_H #include "zend.h" +#include "ZendAccelerator.h" #if defined(__APPLE__) && defined(__MACH__) /* darwin */ -# define USE_SHM_OPEN 1 -# define USE_MMAP 1 -#elif defined(__linux__) || defined(_AIX) -# define USE_SHM 1 -# define USE_MMAP 1 -#elif defined(__FreeBSD__) -# define USE_SHM_OPEN 1 -# define USE_MMAP 1 -# define USE_SHM 1 -#elif defined(__sparc) || defined(__sun) -# define USE_SHM_OPEN 1 -# define USE_SHM 1 -# if defined(__i386) +# ifdef HAVE_SHM_MMAP_POSIX +# define USE_SHM_OPEN 1 +# endif +# ifdef HAVE_SHM_MMAP_ANON # define USE_MMAP 1 # endif +#elif defined(__linux__) || defined(_AIX) +# ifdef HAVE_SHM_IPC +# define USE_SHM 1 +# endif +# ifdef HAVE_SHM_MMAP_ANON +# define USE_MMAP 1 +# endif +#elif defined(__sparc) || defined(__sun) +# ifdef HAVE_SHM_MMAP_POSIX +# define USE_SHM_OPEN 1 +# endif +# ifdef HAVE_SHM_IPC +# define USE_SHM 1 +# endif +# if defined(__i386) +# ifdef HAVE_SHM_MMAP_ANON +# define USE_MMAP 1 +# endif +# endif +#else +# ifdef HAVE_SHM_MMAP_POSIX +# define USE_SHM_OPEN 1 +# endif +# ifdef HAVE_SHM_MMAP_ANON +# define USE_MMAP 1 +# endif +# ifdef HAVE_SHM_IPC +# define USE_SHM 1 +# endif #endif #define ALLOC_FAILURE 0