summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn (J5) Palmieri <johnp@redhat.com>2006-10-08 16:56:50 +0000
committerJohn (J5) Palmieri <johnp@redhat.com>2006-10-08 16:56:50 +0000
commitc6465198ecfcd52e0b04b3e977273e7ce71af944 (patch)
treea1231a68bfded44a125bf17c7887ec37d28b600a
parentff99239bd429cb3335406dff1761a0a54ad2996b (diff)
* configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris
avoid using dirfd on systems that don't have dirfd (Patch by Brian Cameron <brian dot cameron at sun dot com>)
-rw-r--r--ChangeLog6
-rw-r--r--configure.in7
-rw-r--r--dbus/dbus-sysdeps-util-unix.c9
3 files changed, 19 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index ec741950..47737aea 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2006-10-08 John (J5) Palmieri <johnp@redhat.com>
+
+ * configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris
+ avoid using dirfd on systems that don't have dirfd
+ (Patch by Brian Cameron <brian dot cameron at sun dot com>)
+
2006-10-02 John (J5) Palmieir <johnp@redhat.com>
* dbus/dbus-sysdeps.c (_dbus_abort): Remove from
diff --git a/configure.in b/configure.in
index b3a50ecb..867b9fe9 100644
--- a/configure.in
+++ b/configure.in
@@ -228,6 +228,13 @@ else
fi
fi
+# Add -D_POSIX_PTHREAD_SEMANTICS if on Solaris
+#
+case $target_os in
+ solaris*)
+ CFLAGS="$CFLAGS -D_POSIX_PTHREAD_SEMANTICS" ;;
+esac
+
AM_PROG_LIBTOOL
changequote(,)dnl
diff --git a/dbus/dbus-sysdeps-util-unix.c b/dbus/dbus-sysdeps-util-unix.c
index 98c8992b..57c943d2 100644
--- a/dbus/dbus-sysdeps-util-unix.c
+++ b/dbus/dbus-sysdeps-util-unix.c
@@ -507,9 +507,12 @@ static dbus_bool_t
dirent_buf_size(DIR * dirp, size_t *size)
{
long name_max;
-# if defined(HAVE_FPATHCONF) && defined(HAVE_DIRFD) \
- && defined(_PC_NAME_MAX)
- name_max = fpathconf(dirfd(dirp), _PC_NAME_MAX);
+# if defined(HAVE_FPATHCONF) && defined(_PC_NAME_MAX)
+# if defined(HAVE_DIRFD)
+ name_max = fpathconf(dirfd(dirp), _PC_NAME_MAX);
+# else
+ name_max = fpathconf(dirp->dd_fd, _PC_NAME_MAX);
+# endif /* HAVE_DIRFD */
if (name_max == -1)
# if defined(NAME_MAX)
name_max = NAME_MAX;