From ed011d9754fd4b76eac0eaa8c057fcfc0c302a6a Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Sun, 29 Dec 2013 12:57:45 -0500 Subject: [PATCH] Undo autoconf 2.69's attempt to #define _DARWIN_USE_64_BIT_INODE. Defining this symbol causes OS X 10.5 to use a buggy version of readdir(), which can sometimes fail with EINVAL if the previously-fetched directory entry has been deleted or renamed. In later OS X versions that bug has been repaired, but we still don't need the #define because it's on by default. So this is just an all-around bad idea, and we can do without it. --- configure | 5 +++++ configure.in | 5 +++++ src/include/pg_config.h.in | 5 +---- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/configure b/configure index a9eed6b394..f2bdf77030 100755 --- a/configure +++ b/configure @@ -11092,6 +11092,11 @@ rm -rf conftest* fi + # Autoconf 2.69's AC_SYS_LARGEFILE believes it's a good idea to #define + # _DARWIN_USE_64_BIT_INODE, but it isn't: on OS X 10.5 that activates a + # bug that causes readdir() to sometimes return EINVAL. On later OS X + # versions where the feature actually works, it's on by default anyway. + fi # Check for largefile support (must be after AC_SYS_LARGEFILE) diff --git a/configure.in b/configure.in index fbe2d40292..832b3a3458 100644 --- a/configure.in +++ b/configure.in @@ -1205,6 +1205,11 @@ esac # defines can affect what is generated for that. if test "$PORTNAME" != "win32"; then AC_SYS_LARGEFILE + # Autoconf 2.69's AC_SYS_LARGEFILE believes it's a good idea to #define + # _DARWIN_USE_64_BIT_INODE, but it isn't: on OS X 10.5 that activates a + # bug that causes readdir() to sometimes return EINVAL. On later OS X + # versions where the feature actually works, it's on by default anyway. + AH_VERBATIM([_DARWIN_USE_64_BIT_INODE],[]) fi # Check for largefile support (must be after AC_SYS_LARGEFILE) diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in index 3ed286f36c..64717dfcd4 100644 --- a/src/include/pg_config.h.in +++ b/src/include/pg_config.h.in @@ -833,10 +833,7 @@ XLOG_BLCKSZ). Changing XLOG_SEG_SIZE requires an initdb. */ #undef XLOG_SEG_SIZE -/* Enable large inode numbers on Mac OS X 10.5. */ -#ifndef _DARWIN_USE_64_BIT_INODE -# define _DARWIN_USE_64_BIT_INODE 1 -#endif + /* Number of bits in a file offset, on hosts where this is settable. */ #undef _FILE_OFFSET_BITS -- 2.40.0