aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2010-05-13 22:07:43 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2010-05-13 22:07:43 +0000
commit382ff21203ae1c13c2c93a483b098608f35a7251 (patch)
tree494ad266440bc7536fcf9e4225f92515323ae8d7
parent2a73ee59dbdeb7bf05ff1b3fadb28992245904e0 (diff)
downloadpostgresql-382ff21203ae1c13c2c93a483b098608f35a7251.tar.gz
postgresql-382ff21203ae1c13c2c93a483b098608f35a7251.zip
Fix up lame idea of not using autoconf to determine if platform has scandir().
Should fix buildfarm failures.
-rwxr-xr-xconfigure3
-rw-r--r--configure.in4
-rw-r--r--contrib/pg_upgrade/file.c26
-rw-r--r--src/include/pg_config.h.in3
4 files changed, 19 insertions, 17 deletions
diff --git a/configure b/configure
index b91de5909f1..0eb8a3ec071 100755
--- 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
diff --git a/configure.in b/configure.in
index a57ae37ea3c..b733e5f9fb4 100644
--- a/configure.in
+++ b/configure.in
@@ -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
diff --git a/contrib/pg_upgrade/file.c b/contrib/pg_upgrade/file.c
index a7aeda93f8d..80645bdf542 100644
--- a/contrib/pg_upgrade/file.c
+++ b/contrib/pg_upgrade/file.c
@@ -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.
diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in
index 684aed4a9f4..a54cae309b6 100644
--- a/src/include/pg_config.h.in
+++ b/src/include/pg_config.h.in
@@ -409,6 +409,9 @@
/* 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 <security/pam_appl.h> header file. */
#undef HAVE_SECURITY_PAM_APPL_H