Обсуждение: questions about the configure script for building postgres 9.0.3 from source

Поиск
Список
Период
Сортировка

questions about the configure script for building postgres 9.0.3 from source

От
Stephan Doliov
Дата:
Hi,
I trolled the archives as I was having difficulty in building Postgres 9.0.3 from source.  I was running configure with the following options (the pasted in text of this I had wrapped in a shell script).  I apologize in advance that setting up the question takes a bit of context.

./configure  CFLAGS='-O2 -I /usr/local/include:/usr/include -L /usr/local/lib64:/usr/local/lib:/usr/lib64:/usr/lib'  --prefix=/usr/local --enable-nls --enable-profiling  --with-wal-segsize=64  --with-perl --with-python  --with-pam  --with-ldap --with-openssl --with-ossp-uuid --with-libxml --with-libxslt  --with-system-tzdata=/usr/share/zoneinfo --with-libs=/usr/local/lib64:/usr/local/lib:/usr/lib64:/usr/lib:/usr/apache2/lib --with-includes=/usr/local/include:/usr/include

and I was constantly receiving the error that libreadline was not installed, although I had personally installed it, verified its installation and ensured that ldconfig could find it.

Upon inspecting config.log, I found many references to an error in conftest.c, where various ifndef macros were suggesting a call to "choke me", which is both invalid syntax (no semi colon and of course choke is not defined either in any header files.

When I ran the contents of the shell script on the command line itself, I managed to trap a different error, namely missing libs for xml, xslt, and a missing msgfmt binary.  So I installed those and then from both the command line and the shell script, the configure script worked fine.

So my questions are:
1) upon not finding libs such as xml, xslt or the msgfmt binary, is the configure script set (perhaps by bug) to report that libreadline is not installed (when in fact it is?).  Another way of phrasing this question: does configure misreport that which is missing?
2) why would running configure from the command line expose a different error than when the same command was wrapped in a shell script (albeit with the xml, xslt libs missing and msgfmt missing)?
3) not too important as it isn't fatal to the build from source endeavor, but what's up with those "choke me" items that leave detritus in config.log?

I am happy to attach the script files, and provide more details as to how to replicate the error messages that, although indicative of an error, apparently set the wrong error message.

Thanks,
Stephan Doliov


Re: questions about the configure script for building postgres 9.0.3 from source

От
Tom Lane
Дата:
Stephan Doliov <stephandoliov@yahoo.com> writes:
> I trolled the archives as I was having difficulty in building Postgres 9.0.3
> from source.  I was running configure with the following options (the pasted in
> text of this I had wrapped in a shell script).  I apologize in advance that
> setting up the question takes a bit of context.

> ./configure  CFLAGS='-O2 -I /usr/local/include:/usr/include -L
> /usr/local/lib64:/usr/local/lib:/usr/lib64:/usr/lib'  --prefix=/usr/local
> --enable-nls --enable-profiling  --with-wal-segsize=64  --with-perl
> --with-python  --with-pam  --with-ldap --with-openssl --with-ossp-uuid
> --with-libxml --with-libxslt  --with-system-tzdata=/usr/share/zoneinfo
> --with-libs=/usr/local/lib64:/usr/local/lib:/usr/lib64:/usr/lib:/usr/apache2/lib
> --with-includes=/usr/local/include:/usr/include

> and I was constantly receiving the error that libreadline was not installed,
> although I had personally installed it, verified its installation and ensured
> that ldconfig could find it.

Are you sure it's complaining about readline's library, and not
readline's header files?  That rather random --with-libs list draws my
suspicion, particularly since it doesn't parallel your --with-includes
list.

> Upon inspecting config.log, I found many references to an error in conftest.c,
> where various ifndef macros were suggesting a call to "choke me", which is both
> invalid syntax (no semi colon and of course choke is not defined either in any
> header files.

That's pretty normal --- configure likes to try to compile things like

    #ifdef SYMBOL
    choke me
    #endif

to find out whether SYMBOL is defined.  (If it is, this'll draw a
compile error, else not.)  Elegance is not really something autoconf
puts high priority on ...

> So my questions are:
> 1) upon not finding libs such as xml, xslt or the msgfmt binary, is the
> configure script set (perhaps by bug) to report that libreadline is not
> installed (when in fact it is?).

No, I doubt that.

> Another way of phrasing this question: does
> configure misreport that which is missing?

And that too.  You'd need to show some actual evidence, and not a highly
abstracted summary, to convince anyone that you've found a configure
bug.

            regards, tom lane