1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-24 14:22:24 +03:00

On Solaris, we should only force use of our own getopt(); it's okay to use

the system's getopt_long().  The previous coding was the result of a sloppy
discussion that failed to draw this distinction.  The result was that PG
programs don't handle options as users of that platform expect.  Per
gripe from Chuck McDevitt.

Although this is a pre-existing bug, I'm not backpatching since I think we
could do with a bit of beta testing before concluding this is really OK.
This commit is contained in:
Tom Lane
2009-03-27 19:58:11 +00:00
parent 665aa5e540
commit 3da36407c0
2 changed files with 20 additions and 23 deletions

28
configure vendored
View File

@ -17787,22 +17787,7 @@ esac
fi
# Similarly, use system's getopt_long() only if system provides struct option.
# Solaris' getopt() doesn't do what we want for long options, so always use
# our versions on that platform.
if test "$PORTNAME" = "solaris"; then
case " $LIBOBJS " in
*" getopt.$ac_objext "* ) ;;
*) LIBOBJS="$LIBOBJS getopt.$ac_objext"
;;
esac
case " $LIBOBJS " in
*" getopt_long.$ac_objext "* ) ;;
*) LIBOBJS="$LIBOBJS getopt_long.$ac_objext"
;;
esac
elif test x"$ac_cv_type_struct_option" = xyes ; then
if test x"$ac_cv_type_struct_option" = xyes ; then
for ac_func in getopt_long
do
@ -17914,6 +17899,17 @@ esac
fi
# Solaris' getopt() doesn't do what we want for long options, so always use
# our version on that platform.
if test "$PORTNAME" = "solaris"; then
case " $LIBOBJS " in
*" getopt.$ac_objext "* ) ;;
*) LIBOBJS="$LIBOBJS getopt.$ac_objext"
;;
esac
fi
# Win32 support
if test "$PORTNAME" = "win32"; then

View File

@ -1,5 +1,5 @@
dnl Process this file with autoconf to produce a configure script.
dnl $PostgreSQL: pgsql/configure.in,v 1.591 2009/02/12 15:12:47 adunstan Exp $
dnl $PostgreSQL: pgsql/configure.in,v 1.592 2009/03/27 19:58:11 tgl Exp $
dnl
dnl Developers, please strive to achieve this order:
dnl
@ -1270,17 +1270,18 @@ else
fi
# Similarly, use system's getopt_long() only if system provides struct option.
# Solaris' getopt() doesn't do what we want for long options, so always use
# our versions on that platform.
if test "$PORTNAME" = "solaris"; then
AC_LIBOBJ(getopt)
AC_LIBOBJ(getopt_long)
elif test x"$ac_cv_type_struct_option" = xyes ; then
if test x"$ac_cv_type_struct_option" = xyes ; then
AC_REPLACE_FUNCS([getopt_long])
else
AC_LIBOBJ(getopt_long)
fi
# Solaris' getopt() doesn't do what we want for long options, so always use
# our version on that platform.
if test "$PORTNAME" = "solaris"; then
AC_LIBOBJ(getopt)
fi
# Win32 support
if test "$PORTNAME" = "win32"; then
AC_REPLACE_FUNCS(gettimeofday)