From 10bbc4b7c9e6aed6e0b281eaf23b8192e53233d7 Mon Sep 17 00:00:00 2001 From: Pierre Ossman Date: Tue, 22 Aug 2006 11:41:14 +0000 Subject: Fix detection of shared memory support and proper fallback. git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1316 fefdeb5f-60dc-0310-8127-8f9354f1896f --- configure.ac | 13 ++++--------- src/modules/module-oss-mmap.c | 3 +++ src/pulsecore/shm.c | 25 ++++++++++++++++++++++++- 3 files changed, 31 insertions(+), 10 deletions(-) diff --git a/configure.ac b/configure.ac index 4aba536d..cb9ca2ef 100644 --- a/configure.ac +++ b/configure.ac @@ -144,7 +144,7 @@ AC_HEADER_STDC # POSIX AC_CHECK_HEADERS([arpa/inet.h glob.h grp.h netdb.h netinet/in.h \ netinet/in_systm.h netinet/ip.h netinet/tcp.h pwd.h sched.h \ - sys/resource.h sys/select.h sys/socket.h sys/wait.h \ + sys/mman.h sys/resource.h sys/select.h sys/socket.h sys/wait.h \ syslog.h]) AC_CHECK_HEADERS([regex.h], [HAVE_REGEX=1], [HAVE_REGEX=0]) AC_CHECK_HEADERS([sys/un.h], [HAVE_AF_UNIX=1], [HAVE_AF_UNIX=0]) @@ -202,12 +202,11 @@ AC_SEARCH_LIBS([pow], [m]) # POSIX AC_SEARCH_LIBS([sched_setscheduler], [rt]) AC_SEARCH_LIBS([dlopen], [dl]) +AC_SEARCH_LIBS([shm_open], [rt]) # BSD AC_SEARCH_LIBS([connect], [socket]) -AC_SEARCH_LIBS([shm_open], [rt]) - # Non-standard # This magic is needed so we do not needlessly add static libs to the win32 @@ -221,8 +220,8 @@ AC_FUNC_FORK AC_FUNC_GETGROUPS AC_FUNC_SELECT_ARGTYPES AC_CHECK_FUNCS([chmod chown getaddrinfo getgrgid_r getpwuid_r gettimeofday \ - getuid inet_ntop inet_pton nanosleep pipe setpgid setsid sigaction sleep \ - sysconf]) + getuid inet_ntop inet_pton nanosleep pipe posix_memalignsetpgid setsid \ + shm_open sigaction sleep sysconf]) AC_CHECK_FUNCS([mkfifo], [HAVE_MKFIFO=1], [HAVE_MKFIFO=0]) AM_CONDITIONAL(HAVE_MKFIFO, test "x$HAVE_MKFIFO" = "x1") @@ -243,10 +242,6 @@ AC_CHECK_FUNCS([lstat]) AC_CHECK_FUNCS([setresuid setresgid setreuid setregid seteuid setegid]) -# Memory mangement - -AC_CHECK_FUNCS([mmap posix_memalign madvise]) - #### POSIX threads #### ACX_PTHREAD diff --git a/src/modules/module-oss-mmap.c b/src/modules/module-oss-mmap.c index 0be6bbe2..5ab08287 100644 --- a/src/modules/module-oss-mmap.c +++ b/src/modules/module-oss-mmap.c @@ -34,7 +34,10 @@ #include #include #include + +#ifdef HAVE_SYS_MMAN_H #include +#endif #include #include diff --git a/src/pulsecore/shm.c b/src/pulsecore/shm.c index 02528126..7c10bd0a 100644 --- a/src/pulsecore/shm.c +++ b/src/pulsecore/shm.c @@ -27,12 +27,15 @@ #include #include #include -#include #include #include #include #include +#ifdef HAVE_SYS_MMAN_H +#include +#endif + #include #include #include @@ -51,6 +54,8 @@ static char *segment_name(char *fn, size_t l, unsigned id) { return fn; } +#ifdef HAVE_SHM_OPEN + int pa_shm_create_rw(pa_shm *m, size_t size, int shared, mode_t mode) { char fn[32]; int fd = -1; @@ -239,3 +244,21 @@ fail: return -1; } + +#else /* HAVE_SHM_OPEN */ + +int pa_shm_create_rw(pa_shm *m, size_t size, int shared, mode_t mode) { + return -1; +} + +void pa_shm_free(pa_shm *m) { +} + +void pa_shm_punch(pa_shm *m, size_t offset, size_t size) { +} + +int pa_shm_attach_ro(pa_shm *m, unsigned id) { + return -1; +} + +#endif /* HAVE_SHM_OPEN */ -- cgit