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
This commit is contained in:
Pierre Ossman 2006-08-22 11:41:14 +00:00
parent 568c8ea715
commit 10bbc4b7c9
3 changed files with 31 additions and 10 deletions

View file

@ -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

View file

@ -34,7 +34,10 @@
#include <fcntl.h>
#include <unistd.h>
#include <limits.h>
#ifdef HAVE_SYS_MMAN_H
#include <sys/mman.h>
#endif
#include <pulse/xmalloc.h>
#include <pulse/util.h>

View file

@ -27,12 +27,15 @@
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/mman.h>
#include <stdio.h>
#include <errno.h>
#include <string.h>
#include <sys/stat.h>
#ifdef HAVE_SYS_MMAN_H
#include <sys/mman.h>
#endif
#include <pulsecore/core-error.h>
#include <pulsecore/log.h>
#include <pulsecore/random.h>
@ -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 */