summaryrefslogtreecommitdiff
path: root/srclib/apr/configure.in
diff options
context:
space:
mode:
Diffstat (limited to 'srclib/apr/configure.in')
-rw-r--r--srclib/apr/configure.in11
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],