+2006-11-02 John (J5) Palmieri <johnp@redhat.com>
+
+ * configure.in: Add a check for DIR *dirp->dd_fd
+
+ * dbus/dbus-sysdeps-util-unix: if HAVE_DDFD is defined use
+ DIR *dirp->dd_fd else use DIR *dirp->__dd_fd. This takes care
+ of both Solaris and Irix
+
2006-11-01 Havoc Pennington <hp@redhat.com>
* bus/dbus-daemon.1.in: document standard_session_servicedirs
AC_CHECK_FUNCS(vsnprintf vasprintf nanosleep usleep poll setenv unsetenv socketpair getgrouplist fpathconf)
-
-
AC_MSG_CHECKING(for dirfd)
-AC_TRY_COMPILE([
+AC_TRY_LINK([
#include <sys/types.h>
#include <dirent.h>
],[
AC_MSG_RESULT($dbus_have_dirfd)
if test "$dbus_have_dirfd" = yes; then
AC_DEFINE(HAVE_DIRFD,1,[Have dirfd function])
+else
+ AC_MSG_CHECKING(for DIR *dirp->dd_fd)
+ AC_TRY_LINK([
+#include <sys/types.h>
+#include <dirent.h>
+ ],[
+DIR *dirp;
+int fd;
+dirp = opendir(".");
+fd = dirp->dd_fd;
+closedir(dirp);
+ ],
+ dbus_have_ddfd=yes, dbus_have_ddfd=no)
+ AC_MSG_RESULT($dbus_have_ddfd)
+ if test "$dbus_have_ddfd" = yes; then
+ AC_DEFINE(HAVE_DDFD,1,[Have the ddfd member of DIR])
+ fi
fi
AC_CHECK_HEADERS(execinfo.h, [AC_CHECK_FUNCS(backtrace)])
# if defined(HAVE_FPATHCONF) && defined(_PC_NAME_MAX)
# if defined(HAVE_DIRFD)
name_max = fpathconf(dirfd(dirp), _PC_NAME_MAX);
-# else
+# elif defined(HAVE_DDFD)
name_max = fpathconf(dirp->dd_fd, _PC_NAME_MAX);
+# else
+ name_max = fpathconf(dirp->__dd_fd, _PC_NAME_MAX);
# endif /* HAVE_DIRFD */
if (name_max == -1)
# if defined(NAME_MAX)