Thread

  1. NetBSD 1.4.2/i386 needs to link psql with -ltermcap

    Giles Lean <giles@nemeton.com.au> — 2001-03-22T08:22:18Z

    [ Slightly edited take #2: I wasn't subscribed (again :-() to the
      -bugs list.  Moderator -- you can kill any postings of mine in the
      queue, if you care to. :-]
    
    Hi,
    
    Today I built postgresql-7.1beta6 on NetBSD-1.4.2/i386, which uses
    a.out binary format.  (NetBSD 1.5/i386 uses ELF.)
    
    I found that psql needs to be linked with -ltermcap or else psql will
    fail with a runtime error when used interactively:
    
    $ psql ...
    Welcome to psql, the PostgreSQL interactive terminal.
    
    Type:  \copyright for distribution terms
           \h for help with SQL commands
           \? for help on internal slash commands
           \g or terminate with semicolon to execute query
           \q to quit
    
    /usr/libexec/ld.so: Undefined symbol "_tgetent" called from psql:/usr/lib/libedit.so.2.2 at 0x400892ac
    
    I added -ltermcap to the "LIBS = ..." line in Makefile.global and
    rebuilt psql after which it worked without problems.
    
    Builds on NetBSD-1.5/i386 and NetBSD-1.5/alpha included -ltermcap in
    LIBS automatically.
    
    Thanks to those who enabled libedit -- history editing is nice.
    
    Regards,
    
    Giles
    
    
    
    
  2. Re: NetBSD 1.4.2/i386 needs to link psql with -ltermcap

    Peter Eisentraut <peter_e@gmx.net> — 2001-03-22T16:57:59Z

    Giles Lean writes:
    
    > Today I built postgresql-7.1beta6 on NetBSD-1.4.2/i386, which uses
    > a.out binary format.  (NetBSD 1.5/i386 uses ELF.)
    >
    > I found that psql needs to be linked with -ltermcap or else psql will
    > fail with a runtime error when used interactively:
    
    > /usr/libexec/ld.so: Undefined symbol "_tgetent" called from psql:/usr/lib/libedit.so.2.2 at 0x400892ac
    
    This should be detected by configure.  E.g., on my system I get
    
    | checking for readline... yes (-lreadline -ltermcap)
    
    (-lreadline and -ledit are equivalent for computational purposes).
    config.log shows:
    
    | configure:3143: checking for readline
    | configure:3165: gcc -o conftest -O2 -g     conftest.c -lreadline  1>&5
    [ tries without termcap]
    | /usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../libreadline.so: undefined reference to `tgetnum'
    [snip]
    | configure:3165: gcc -o conftest -O2 -g     conftest.c -lreadline -ltermcap  1>&5
    [ tries with termcap, success ]
    
    Can you check around these areas why it doesn't behave as expected?
    
    -- 
    Peter Eisentraut      peter_e@gmx.net       http://yi.org/peter-e/