From 1db4583ad26f5052002a8a0869b69a02056717a3 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Mon, 6 Aug 2012 16:29:45 -0400 Subject: [PATCH] Guard against potential configure bug wrt HAVE_GETWD * configure.ac (BROKEN_GETWD) [unixware]: New define. * src/sysdep.c: Respect BROKEN_GETWD. --- ChangeLog | 2 ++ configure.ac | 7 ++++--- src/ChangeLog | 2 ++ src/sysdep.c | 4 ++-- 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index f5883f9cc00..48ba569326f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,7 @@ 2012-08-06 Glenn Morris + * configure.ac (BROKEN_GETWD) [unixware]: New define. + * configure.ac (GNU_LIBRARY_PENDING_OUTPUT_COUNT): Remove. (PENDING_OUTPUT_COUNT): Absorb GNU_LIBRARY_PENDING_OUTPUT_COUNT. (DISPNEW_NEEDS_STDIO_EXT): New define. diff --git a/configure.ac b/configure.ac index b4fe8bc0b9f..81d80a59414 100644 --- a/configure.ac +++ b/configure.ac @@ -2724,10 +2724,11 @@ getpwent endpwent getgrent endgrent \ touchlock \ cfmakeraw cfsetspeed copysign __executable_start) -dnl FIXME Fragile: something else may test for getwd as a dependency. -dnl Change to defining BROKEN_xxx ? dnl getwd appears to be buggy on SVR4.2, so we don't use it. -if test $opsys != unixware; then +if test $opsys = unixware; then + dnl In case some other test ends up checking for getwd. + AC_DEFINE(BROKEN_GETWD, 1, [Define if getwd should not be used.]) +else AC_CHECK_FUNCS(getwd) fi diff --git a/src/ChangeLog b/src/ChangeLog index ec3f08fc6a0..5bccda264b2 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,7 @@ 2012-08-06 Glenn Morris + * sysdep.c: Respect BROKEN_GETWD. + * dispnew.c (GNU_LIBRARY_PENDING_OUTPUT_COUNT, PENDING_OUTPUT_COUNT): Let configure handle it. (stdio_ext.h) [DISPNEW_NEEDS_STDIO_EXT]: Include it. diff --git a/src/sysdep.c b/src/sysdep.c index b2b3556d125..d9e239d77c3 100644 --- a/src/sysdep.c +++ b/src/sysdep.c @@ -1971,7 +1971,7 @@ emacs_readlink (char const *filename, char initial_buf[READLINK_BUFSIZE]) * under error conditions. */ -#ifndef HAVE_GETWD +#if !defined (HAVE_GETWD) || defined (BROKEN_GETWD) #ifndef MAXPATHLEN /* In 4.1, param.h fails to define this. */ @@ -2001,7 +2001,7 @@ getwd (char *pathname) return pathname; } -#endif /* HAVE_GETWD */ +#endif /* !defined (HAVE_GETWD) || defined (BROKEN_GETWD) */ /* * This function will go away as soon as all the stubs fixed. (fnf) -- 2.39.2