BUG #1865: isinf wrongly dectected under Solaris 9

Started by Bob Friesenhahnover 20 years ago6 messagesbugs
Jump to latest
#1Bob Friesenhahn
bfriesen@simple.dallas.tx.us

The following bug has been logged online:

Bug reference: 1865
Logged by: Bob Friesenhahn
Email address: bfriesen@simple.dallas.tx.us
PostgreSQL version: 7.4.8
Operating system: Solaris 9 (SPARC)
Description: isinf wrongly dectected under Solaris 9
Details:

Using GCC 4.0.1 on Solaris 9 the configure test for isinf incorrectly
detects success so postgres does not link.

#2Peter Eisentraut
peter_e@gmx.net
In reply to: Bob Friesenhahn (#1)
Re: BUG #1865: isinf wrongly dectected under Solaris 9

Bob Friesenhahn wrote:

Using GCC 4.0.1 on Solaris 9 the configure test for isinf incorrectly
detects success so postgres does not link.

Please provide the config.log file and the tail end of the failing build
log (at least the failing command and the error message).

--
Peter Eisentraut
http://developer.postgresql.org/~petere/

#3Peter Eisentraut
peter_e@gmx.net
In reply to: Bob Friesenhahn (#1)
Re: BUG #1865: isinf wrongly dectected under Solaris 9

Bob Friesenhahn wrote:

The config.log and a build log are attached.

It's puzzling why the test program compiles and links without complaint
when the isinf() function does not exist. Can you try to isolate the
test program from configure and see what is going on?

Note that there are
actually two bugs in the build but the build terminates due to the
isinf bug. The failure to link due to -lreadline needing -lcurses
does not occur until later.

In the logs you sent, configure decides to use -ledit, which is
something different altogether.

--
Peter Eisentraut
http://developer.postgresql.org/~petere/

#4Bob Friesenhahn
bfriesen@simple.dallas.tx.us
In reply to: Peter Eisentraut (#3)
Re: BUG #1865: isinf wrongly dectected under Solaris 9

On Thu, 8 Sep 2005, Peter Eisentraut wrote:

Bob Friesenhahn wrote:

The config.log and a build log are attached.

It's puzzling why the test program compiles and links without complaint
when the isinf() function does not exist. Can you try to isolate the
test program from configure and see what is going on?

I will see what I can do when I find the time. I do recall
encountering one other package which had this identical problem but I
don't recall what that package was. It seems likely that it is
somehow related to using GCC 4.0.1.

Note that there are
actually two bugs in the build but the build terminates due to the
isinf bug. The failure to link due to -lreadline needing -lcurses
does not occur until later.

In the logs you sent, configure decides to use -ledit, which is
something different altogether.

Ugh. I do think that readline 5.0 itself has a minor bug in that ldd
on libreadline.so does not show a dependency on the curses library,
even though it is obviously required. This means that the linkage of
libreadline.so is incomplete.

% ldd /usr/local/lib/libreadline.so.5
warning: ldd: /usr/local/lib/libreadline.so.5: is not executable
libgcc_s.so.1 => /usr/local/lib/libgcc_s.so.1
libc.so.1 => /lib/libc.so.1
libdl.so.1 => /lib/libdl.so.1
/usr/platform/SUNW,Sun-Blade-2500/lib/libc_psr.so.1

Bob
======================================
Bob Friesenhahn
bfriesen@simple.dallas.tx.us, http://www.simplesystems.org/users/bfriesen/
GraphicsMagick Maintainer, http://www.GraphicsMagick.org/

#5Tom Lane
tgl@sss.pgh.pa.us
In reply to: Bob Friesenhahn (#4)
Re: BUG #1865: isinf wrongly dectected under Solaris 9

Bob Friesenhahn <bfriesen@simple.dallas.tx.us> writes:

Ugh. I do think that readline 5.0 itself has a minor bug in that ldd
on libreadline.so does not show a dependency on the curses library,
even though it is obviously required. This means that the linkage of
libreadline.so is incomplete.

That's fairly standard I fear. Certainly libreadline is like that on
my Fedora machine (and it doesn't stop our configure script from getting
it right).

It may be that the presence of both libedit and libreadline is what's
messing things up. I seem to recall fixing configure to deal with that
[ digs in logs ... ] oh, here we go:

2004-11-30 01:13 tgl

* config/programs.m4, configure, configure.in: Fix readline/libedit
selection code to prefer readline over libedit reliably (ie,
regardless of which libraries they depend on). Also make sure that
we don't select headers that obviously belong to the wrong one of
the two libraries. This was discussed back around 4-Sep but seems
to have slipped through the cracks. The header selection could be
checked more closely, perhaps, but let's see if this is good
enough.

This fix is present in 8.0 and later.

regards, tom lane

#6Bob Friesenhahn
bfriesen@simple.dallas.tx.us
In reply to: Tom Lane (#5)
Re: BUG #1865: isinf wrongly dectected under Solaris 9

On Sat, 10 Sep 2005, Tom Lane wrote:

Bob Friesenhahn <bfriesen@simple.dallas.tx.us> writes:

Ugh. I do think that readline 5.0 itself has a minor bug in that ldd
on libreadline.so does not show a dependency on the curses library,
even though it is obviously required. This means that the linkage of
libreadline.so is incomplete.

That's fairly standard I fear. Certainly libreadline is like that on
my Fedora machine (and it doesn't stop our configure script from getting
it right).

It may be that the presence of both libedit and libreadline is what's
messing things up. I seem to recall fixing configure to deal with that
[ digs in logs ... ] oh, here we go:

That certainly seems like a reasonable conclusion. I would be
perfectly happy to use libedit rather than libreadline, but I wrongly
assumed that without it command line editing would not function.

Thanks for identifying the cause of the problem.

Bob
======================================
Bob Friesenhahn
bfriesen@simple.dallas.tx.us, http://www.simplesystems.org/users/bfriesen/
GraphicsMagick Maintainer, http://www.GraphicsMagick.org/