Fix up lame idea of not using autoconf to determine if platform has scandir().
authorTom Lane
Thu, 13 May 2010 22:07:43 +0000 (22:07 +0000)
committerTom Lane
Thu, 13 May 2010 22:07:43 +0000 (22:07 +0000)
Should fix buildfarm failures.

configure
configure.in
contrib/pg_upgrade/file.c
src/include/pg_config.h.in

index b91de5909f1d929c30c6a9ea544c9b87dd3d35fb..0eb8a3ec07137dffcca18a2fb4afd36c3982e789 100755 (executable)
--- a/configure
+++ b/configure
@@ -18494,7 +18494,8 @@ fi
 
 
 
-for ac_func in cbrt dlopen fcvt fdatasync getifaddrs getpeereid getpeerucred getrlimit memmove poll pstat readlink setproctitle setsid sigprocmask symlink sysconf towlower utime utimes waitpid wcstombs
+
+for ac_func in cbrt dlopen fcvt fdatasync getifaddrs getpeereid getpeerucred getrlimit memmove poll pstat readlink scandir setproctitle setsid sigprocmask symlink sysconf towlower utime utimes waitpid wcstombs
 do
 as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
 { $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
index a57ae37ea3c0e609176a5f688116e754663ac35b..b733e5f9fb44978d569586f452c3477f15afbaa9 100644 (file)
@@ -1,5 +1,5 @@
 dnl Process this file with autoconf to produce a configure script.
-dnl $PostgreSQL: pgsql/configure.in,v 1.626 2010/04/30 03:16:58 scrappy Exp $
+dnl $PostgreSQL: pgsql/configure.in,v 1.627 2010/05/13 22:07:42 tgl Exp $
 dnl
 dnl Developers, please strive to achieve this order:
 dnl
@@ -1167,7 +1167,7 @@ PGAC_VAR_INT_TIMEZONE
 AC_FUNC_ACCEPT_ARGTYPES
 PGAC_FUNC_GETTIMEOFDAY_1ARG
 
-AC_CHECK_FUNCS([cbrt dlopen fcvt fdatasync getifaddrs getpeereid getpeerucred getrlimit memmove poll pstat readlink setproctitle setsid sigprocmask symlink sysconf towlower utime utimes waitpid wcstombs])
+AC_CHECK_FUNCS([cbrt dlopen fcvt fdatasync getifaddrs getpeereid getpeerucred getrlimit memmove poll pstat readlink scandir setproctitle setsid sigprocmask symlink sysconf towlower utime utimes waitpid wcstombs])
 
 AC_REPLACE_FUNCS(fseeko)
 case $host_os in
index a7aeda93f8d9fd671d590578e1d242ad37cd6707..80645bdf5426e767aecb0fafeb1ef15ab8f05433 100644 (file)
@@ -33,7 +33,7 @@ static int    win32_pghardlink(const char *src, const char *dst);
 static int copy_dir(const char *from, const char *to, bool force);
 #endif
 
-#if defined(sun) || defined(WIN32)
+#ifndef HAVE_SCANDIR
 static int pg_scandir_internal(migratorContext *ctx, const char *dirname,
                    struct dirent *** namelist,
                    int (*selector) (const struct dirent *));
@@ -235,26 +235,25 @@ copy_file(const char *srcfile, const char *dstfile, bool force)
  * pg_scandir()
  *
  * Wrapper for portable scandir functionality
- *
  */
 int
 pg_scandir(migratorContext *ctx, const char *dirname,
           struct dirent ***namelist,
           int (*selector) (const struct dirent *))
 {
-#if defined(sun) || defined(WIN32)
+#ifndef HAVE_SCANDIR
    return pg_scandir_internal(ctx, dirname, namelist, selector);
 
    /*
+    * scandir() is originally from BSD 4.3, which had the third argument as
+    * non-const. Linux and other C libraries have updated it to use a const.
+    * http://unix.derkeiler.com/Mailing-Lists/FreeBSD/questions/2005-12/msg00214.html
+    *
     * Here we try to guess which libc's need const, and which don't. The net
-    * goal here is to try to supress a compiler warning due to a prototype
+    * goal here is to try to suppress a compiler warning due to a prototype
     * mismatch of const usage. Ideally we would do this via autoconf, but
-    * Postgres's autoconf doesn't test for this and it is overkill to add
-    * autoconf just for this. scandir() is from BSD 4.3, which had the third
-    * argument as non-const. Linux and other C libraries have updated it to
-    * use a const.
-    * http://unix.derkeiler.com/Mailing-Lists/FreeBSD/questions/2005-12/msg002
-    * 14.html
+    * autoconf doesn't have a suitable builtin test and it seems overkill
+    * to add one just to avoid a warning.
     */
 #elif defined(freebsd) || defined(bsdi) || defined(darwin) || defined(openbsd)
    /* no const */
@@ -266,19 +265,18 @@ pg_scandir(migratorContext *ctx, const char *dirname,
 }
 
 
-#if defined(sun) || defined(WIN32)
+#ifndef HAVE_SCANDIR
 /*
  * pg_scandir_internal()
  *
- * We'll provide our own scandir function for sun, since it is not
- * part of the standard system library.
+ * Implement our own scandir() on platforms that don't have it.
  *
  * Returns count of files that meet the selection criteria coded in
  * the function pointed to by selector.  Creates an array of pointers
  * to dirent structures.  Address of array returned in namelist.
  *
  * Note that the number of dirent structures needed is dynamically
- * allocated using realloc.  Realloc can be inneficient if invoked a
+ * allocated using realloc.  Realloc can be inefficient if invoked a
  * large number of times.  Its use in pg_upgrade is to find filesystem
  * filenames that have extended beyond the initial segment (file.1,
  * .2, etc.) and should therefore be invoked a small number of times.
index 684aed4a9f43a7ddf92273c7218cfbe6c502bed6..a54cae309b68d00cf4e29c4917919ebf60c442b8 100644 (file)
 /* Define to 1 if you have the `rl_filename_completion_function' function. */
 #undef HAVE_RL_FILENAME_COMPLETION_FUNCTION
 
+/* Define to 1 if you have the `scandir' function. */
+#undef HAVE_SCANDIR
+
 /* Define to 1 if you have the  header file. */
 #undef HAVE_SECURITY_PAM_APPL_H