diff options
Diffstat (limited to 'srclib/apr/configure.in')
-rw-r--r-- | srclib/apr/configure.in | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/srclib/apr/configure.in b/srclib/apr/configure.in index f6b3d078..15b44eb4 100644 --- a/srclib/apr/configure.in +++ b/srclib/apr/configure.in @@ -448,7 +448,7 @@ void main(void) if (sizeof(off64_t) != 8 || sizeof(off_t) != 4) exit(1); - if ((fd = open("conftest.lfs", O_LARGEFILE|O_CREAT|O_WRONLY)) < 0) + if ((fd = open("conftest.lfs", O_LARGEFILE|O_CREAT|O_WRONLY, 0644)) < 0) exit(2); if (ftruncate64(fd, off) != 0) ret = 3; @@ -1531,6 +1531,7 @@ echo "${nl}Checking for Locking..." AC_CHECK_FUNCS(semget semctl flock) AC_CHECK_HEADERS(semaphore.h OS.h) +AC_SEARCH_LIBS(sem_open, rt) AC_CHECK_FUNCS(sem_close sem_unlink sem_post sem_wait create_sem) # Some systems return ENOSYS from sem_open. @@ -1540,6 +1541,9 @@ AC_TRY_RUN([ #include <stdlib.h> #include <fcntl.h> #include <semaphore.h> +#ifndef SEM_FAILED +#define SEM_FAILED (-1) +#endif main() { sem_t *psem; @@ -1550,6 +1554,11 @@ main() exit(1); } sem_close(psem); + psem = sem_open(sem_name, O_CREAT | O_EXCL, 0644, 1); + if (psem != (sem_t *)SEM_FAILED) { + sem_close(psem); + exit(1); + } sem_unlink(sem_name); exit(0); }], [ac_cv_func_sem_open=yes], [ac_cv_func_sem_open=no], |