Commit 3da36407 authored by Tom Lane's avatar Tom Lane

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.
parent 665aa5e5
......@@ -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
......
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)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment