Thread: 'configure' bug on Mac OS X 10.3.5

'configure' bug on Mac OS X 10.3.5

From
"Fahad G."
Date:
Hi,

I just downloaded a fresh distribution of postgresql-8.0.0beta3 and tried
compiling it on a Mac OS X 10.3.5 (Panther -- fresh install), and it gave me
the following error:

sledge:~/tmp/postgresql-8.0.0beta3 sfg900$ ./configure
--prefix=/opt/postgresql-8.0.0beta3 --with-python --with-openssl --with-tcl
--with-perl --enable-thread-safety

checking build system type... powerpc-apple-darwin7.5.0
checking host system type... powerpc-apple-darwin7.5.0
checking which template to use... darwin
checking whether to build with 64-bit integer date/time support... no
checking whether NLS is wanted... no
checking for default port number... 5432
checking for gcc... gcc
checking for C compiler default output... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking how to turn off strict aliasing in gcc -no-cpp-precomp...
-fno-strict-aliasing
configure: using CFLAGS=-O2 -fno-strict-aliasing
checking whether the C compiler still works... yes
checking how to run the C preprocessor... gcc -no-cpp-precomp -E
checking allow thread-safe client libraries... yes
checking whether to build with Tcl... yes
checking whether to build Perl modules... yes
checking whether to build Python modules... yes
checking whether to build with Kerberos 4 support... no
checking whether to build with Kerberos 5 support... no
checking whether to build with PAM support... no
checking whether to build with Rendezvous support... no
checking whether to build with OpenSSL support... yes
configure: using CPPFLAGS=
configure: using LDFLAGS=
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking for flex... /usr/bin/flex
checking whether ln -s works... yes
checking for ld used by GCC... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... no
checking for ranlib... ranlib
checking for lorder... lorder
checking for tar... /sw/bin/tar
checking for strip... strip
checking whether it is possible to strip libraries... no
checking for bison... bison -y
configure: WARNING:
*** If you are going to modify the grammar files or build from CVS, the
installed
*** version of Bison is too old.  Bison version 1.875 or later is required.
checking for perl... /usr/bin/perl
checking for Perl archlibexp...
/System/Library/Perl/5.8.1/darwin-thread-multi-2level
checking for Perl privlibexp... /System/Library/Perl/5.8.1
checking for Perl useshrplib... true
checking for flags to link embedded Perl...  -L/usr/local/lib
/System/Library/Perl/5.8.1/darwin-thread-multi-2level/auto/DynaLoader/DynaLo
ader.a -L/System/Library/Perl/5.8.1/darwin-thread-multi-2level/CORE -lperl
-ldl -lm -lc
checking for python... /usr/bin/python
checking for Python distutils module... yes
checking Python installation directories...
/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3
checking how to link an embedded Python application...
-L/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/con
fig -ldl -lpython2.3
checking for main in -lbsd... no
checking for setproctitle in -lutil... no
checking for main in -lm... yes
checking for main in -ldl... yes
checking for main in -lnsl... no
checking for main in -lsocket... no
checking for main in -lipc... no
checking for main in -lIPC... no
checking for main in -llc... no
checking for main in -ldld... no
checking for main in -lld... no
checking for main in -lcompat... no
checking for main in -lBSD... no
checking for main in -lgen... no
checking for main in -lPW... no
checking for main in -lresolv... yes
checking for library containing getopt_long... none required
checking for main in -lunix... no
checking for library containing crypt... none required
checking for library containing fdatasync... no
checking for shmget in -lcygipc... no
checking for readline... no
configure: error: readline library not found
If you have readline already installed, see config.log for details on the
failure.  It is possible the compiler isn't looking in the proper directory.
Use --without-readline to disable readline support.


I checked and I don't have 'readline' installed. --without-readline did the
trick, but shouldn't this be handled automatically? If readline is not
found, configure should carry on with a '--without-readline', rather than
reporting an error.

Moreover, there's no 'gmake' in Mac OS X, and it uses 'make' instead. The
installation guide should mention this as well.

Cheers,
Fahad

--
main(){int j=12345;char t[]=":aAbcdefFgGhijklmnNopqrsStuUvwyz \n",
*i="dUGScUiAbpmwqbmgduAvpmmlzce\nlmGGUbFbzjdb";while(*i){j+=
strchr(t,*i++)-t;j%=sizeof t-1;putchar(t[j]);}return 0;}

Re: 'configure' bug on Mac OS X 10.3.5

From
Neil Conway
Date:
On Wed, 2004-10-13 at 10:23, Fahad G. wrote:
> I checked and I don't have 'readline' installed. --without-readline did the
> trick, but shouldn't this be handled automatically?

This is intentional -- what's wrong with stopping? ISTM that stopping
and letting the user know what went wrong is probably better than just
continuing: many users will install readline when they discover it isn't
installed, and it is easy to miss a warning emitted by "configure" as
its output flies past.

> Moreover, there's no 'gmake' in Mac OS X, and it uses 'make' instead. The
> installation guide should mention this as well.

The docs say: "(On some systems GNU make is the default tool with the
name make.)"

-Neil

Re: 'configure' bug on Mac OS X 10.3.5

From
Alvaro Herrera
Date:
On Fri, Oct 15, 2004 at 12:03:39PM +1000, Neil Conway wrote:
> On Wed, 2004-10-13 at 10:23, Fahad G. wrote:
> > I checked and I don't have 'readline' installed. --without-readline did the
> > trick, but shouldn't this be handled automatically?
>
> This is intentional -- what's wrong with stopping? ISTM that stopping
> and letting the user know what went wrong is probably better than just
> continuing: many users will install readline when they discover it isn't
> installed, and it is easy to miss a warning emitted by "configure" as
> its output flies past.

What about emitting at the end of configure something like

    Features enabled:
        command line editing, parser generation, PL/Perl
    Features disabled:
        coffee maker, online gambling, PL/Python

--
Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
"And as an added bonus, now my computer goes to the toilet for me, leaving me
free to spend time on more useful activities! yay slug codefests!" (C. Parker)

Re: 'configure' bug on Mac OS X 10.3.5

From
Tom Lane
Date:
Neil Conway <neilc@samurai.com> writes:
> On Wed, 2004-10-13 at 10:23, Fahad G. wrote:
>> I checked and I don't have 'readline' installed. --without-readline did the
>> trick, but shouldn't this be handled automatically?

> This is intentional

Indeed.  A few releases back we did actually behave that way (drop the
readline functionality and continue) but it was persuasively argued that
this was a Bad Thing.  To see why, you should consider the fact that
configure is often run in non-interactive contexts (such as RPM package
construction) where its output isn't likely to be scrutinized by humans.
RPM package makers would much rather get a build failure than have the
thing bull ahead and build a substandard RPM.  Even when configure *is*
invoked interactively, the output isn't likely to be scrutinized
closely; and a newbie may not understand the implications of a bleat in
the output even if he reads it.

So basically, the opinion around here is that if you want a build with
nonfunctional readline capability, you need to say so on the configure
command line.  The default assumption is that you want readline, and
we aim to do that or die trying.

            regards, tom lane