Thread: BUG #18581: psql symbol append_history not found when quitting
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 [1511] | 4295420712| 112|FUNC |GLOB |0 |14 |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.
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
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