mirror of
https://github.com/postgres/postgres.git
synced 2025-04-27 22:56:53 +03:00
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.
This commit is contained in:
parent
16d5fd6a99
commit
6a61d58ca8
21
configure
vendored
21
configure
vendored
@ -15047,6 +15047,27 @@ case $host_os in bsdi*|netbsd*)
|
||||
ac_cv_func_fseeko=yes
|
||||
esac
|
||||
|
||||
# mingw has adopted a GNU-centric interpretation of optind/optreset,
|
||||
# so always use our version on Windows.
|
||||
if test "$PORTNAME" = "win32"; then
|
||||
case $LIBOBJS in
|
||||
"getopt.$ac_objext" | \
|
||||
*" getopt.$ac_objext" | \
|
||||
"getopt.$ac_objext "* | \
|
||||
*" getopt.$ac_objext "* ) ;;
|
||||
*) LIBOBJS="$LIBOBJS getopt.$ac_objext" ;;
|
||||
esac
|
||||
|
||||
case $LIBOBJS in
|
||||
"getopt_long.$ac_objext" | \
|
||||
*" getopt_long.$ac_objext" | \
|
||||
"getopt_long.$ac_objext "* | \
|
||||
*" getopt_long.$ac_objext "* ) ;;
|
||||
*) LIBOBJS="$LIBOBJS getopt_long.$ac_objext" ;;
|
||||
esac
|
||||
|
||||
fi
|
||||
|
||||
# Win32 support
|
||||
if test "$PORTNAME" = "win32"; then
|
||||
|
||||
|
@ -1019,6 +1019,13 @@ case $host_os in bsdi*|netbsd*)
|
||||
ac_cv_func_fseeko=yes
|
||||
esac
|
||||
|
||||
# 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
|
||||
|
||||
# Win32 support
|
||||
if test "$PORTNAME" = "win32"; then
|
||||
AC_REPLACE_FUNCS(gettimeofday)
|
||||
|
@ -232,7 +232,8 @@ extern char *optarg;
|
||||
extern int optind,
|
||||
opterr;
|
||||
|
||||
#ifdef HAVE_INT_OPTRESET
|
||||
/* If not HAVE_GETOPT, we are using src/port/getopt.c, which has optreset */
|
||||
#if defined(HAVE_INT_OPTRESET) || !defined(HAVE_GETOPT)
|
||||
extern int optreset;
|
||||
#endif
|
||||
|
||||
@ -658,7 +659,7 @@ PostmasterMain(int argc, char *argv[])
|
||||
* getopt(3) library so that it will work correctly in subprocesses.
|
||||
*/
|
||||
optind = 1;
|
||||
#ifdef HAVE_INT_OPTRESET
|
||||
#if defined(HAVE_INT_OPTRESET) || !defined(HAVE_GETOPT)
|
||||
optreset = 1; /* some systems need this too */
|
||||
#endif
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user