BUG #18581: psql symbol append_history not found when quitting

Started by PG Bug reporting formover 1 year ago3 messagesbugs
Jump to latest
#1PG Bug reporting form
noreply@postgresql.org

The following bug has been logged on the website:

Bug reference: 18581
Logged by: Rainer Brandt
Email address: rjhb@bb-c.de
PostgreSQL version: 15.8
Operating system: Solaris 11.4
Description:

When leaving a psql session via \q in 15.8 (which I built today under Oracle
Solaris 11.4), I get:
ld.so.1: psql: fatal: relocation error: file
/opt/postgres/15-pgdg/bin/64/psql: symbol append_history: referenced symbol
not found
Killed

Then with nm:
nm /opt/postgres/15-pgdg/bin/64/psql | grep append_history
[1744]: | 4296745248| 0|FUNC |GLOB |0 |UNDEF |append_history
|append_history
[1511]: | 4295420712| 112|FUNC |GLOB |0 |14 |pg_append_history
|pg_append_history

Previously, I used 15.6, which only uses pg_append_history and doesn't use
append_history.

I also see:
grep -n append_history postgresql-15.8/src/bin/psql/*
postgresql-15.8/src/bin/psql/input.c:114:pg_append_history(const char *s,
PQExpBuffer history_buf)
postgresql-15.8/src/bin/psql/input.c:133: * pg_append_history before we'll
do anything.
postgresql-15.8/src/bin/psql/input.c:453: /*
append_history fails if file doesn't already exist :-( */
postgresql-15.8/src/bin/psql/input.c:462: errnum =
append_history(nlines, fname);
[...]

Isn't the a "pg_" missing on line 462?

Thank you.

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: PG Bug reporting form (#1)
Re: BUG #18581: psql symbol append_history not found when quitting

PG Bug reporting form <noreply@postgresql.org> writes:

When leaving a psql session via \q in 15.8 (which I built today under Oracle
Solaris 11.4), I get:
ld.so.1: psql: fatal: relocation error: file
/opt/postgres/15-pgdg/bin/64/psql: symbol append_history: referenced symbol
not found
Killed

Hmmm...

Isn't the a "pg_" missing on line 462?

No. That's intending to call the readline function append_history.
That call has been there since 2009. I'm not sure what changed
between your 15.6 and 15.8 builds, but that wasn't it.

However, that call is only compiled if HAVE_APPEND_HISTORY is
defined, which indicates that configure successfully probed
for existence of the function. Maybe you need to take a closer
look at what configure did?

regards, tom lane

#3Rainer Brandt
rjhb@bb-c.de
In reply to: Tom Lane (#2)
Re: BUG #18581: psql symbol append_history not found when quitting

Tom Lane writes:

PG Bug reporting form <noreply@postgresql.org> writes:

When leaving a psql session via \q in 15.8 (which I built today under Oracle
Solaris 11.4), I get:
ld.so.1: psql: fatal: relocation error: file
/opt/postgres/15-pgdg/bin/64/psql: symbol append_history: referenced symbol
not found
Killed

Hmmm...

Isn't the a "pg_" missing on line 462?

No. That's intending to call the readline function append_history.
That call has been there since 2009. I'm not sure what changed
between your 15.6 and 15.8 builds, but that wasn't it.

You're right. The error was mine.

I overlooked that the build machine had a newer libedit library than
the machine on which I tried to use psql. The newer libedit defines
append_history, and so the build process used it, but the older libedit
doesn't define it.

Sorry for the noise.
Thanks, Rainer