Thread: 'configure' bug on Mac OS X 10.3.5
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;}
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
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)
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