summaryrefslogtreecommitdiff
path: root/configure.in
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2010-12-15 23:50:49 -0500
committerTom Lane <tgl@sss.pgh.pa.us>2010-12-15 23:50:49 -0500
commit770bddc1b4b59338395185966100056d90e6dcf9 (patch)
treef8998a0be37bdaf5c955f40e9a2a80c35d3b2d8e /configure.in
parentd45f163251e290c66c144c347482538bdde9d895 (diff)
downloadpostgresql-770bddc1b4b59338395185966100056d90e6dcf9.tar.gz
Fix up getopt() reset management so it works on recent mingw.
The mingw people don't appear to care about compatibility with non-GNU versions of getopt, so force use of our own copy of getopt on Windows. Also, ensure that we make use of optreset when using our own copy. Per report from Andrew Dunstan. Back-patch to all versions supported on Windows.
Diffstat (limited to 'configure.in')
-rw-r--r--configure.in21
1 files changed, 14 insertions, 7 deletions
diff --git a/configure.in b/configure.in
index df95cc7b09..b0644dfb6d 100644
--- a/configure.in
+++ b/configure.in
@@ -1328,6 +1328,13 @@ if test "$PORTNAME" = "solaris"; then
AC_LIBOBJ(getopt)
fi
+# mingw has adopted a GNU-centric interpretation of optind/optreset,
+# so always use our version on Windows.
+if test "$PORTNAME" = "win32"; then
+ AC_LIBOBJ(getopt)
+ AC_LIBOBJ(getopt_long)
+fi
+
# Cygwin's erand48() is broken (always returns zero) in some releases,
# so force use of ours.
if test "$PORTNAME" = "cygwin"; then
@@ -1336,13 +1343,13 @@ fi
# Win32 support
if test "$PORTNAME" = "win32"; then
-AC_REPLACE_FUNCS(gettimeofday)
-AC_LIBOBJ(kill)
-AC_LIBOBJ(open)
-AC_LIBOBJ(win32env)
-AC_LIBOBJ(win32error)
-AC_DEFINE([HAVE_SYMLINK], 1,
- [Define to 1 if you have the `symlink' function.])
+ AC_REPLACE_FUNCS(gettimeofday)
+ AC_LIBOBJ(kill)
+ AC_LIBOBJ(open)
+ AC_LIBOBJ(win32env)
+ AC_LIBOBJ(win32error)
+ AC_DEFINE([HAVE_SYMLINK], 1,
+ [Define to 1 if you have the `symlink' function.])
fi
if test "$with_readline" = yes; then