bug-ncurses
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: AIX and _nc_is_abs_path


From: Thomas Dickey
Subject: Re: AIX and _nc_is_abs_path
Date: Mon, 16 Jun 2014 18:32:31 -0400
User-agent: Mutt/1.5.20 (2009-06-14)

On Mon, Jun 16, 2014 at 08:00:13AM -0400, Ben Lentz wrote:
> 
> >Hello,
> >I'm trying to build ncurses-5.9 for AIX and I've found that
> >somewhere after 5.5 and starting with 5.8 and 5.9, a dependency on
> >the function _nc_is_abs_path was added in several places.
> >
> >I've tried looking around (unsuccessfully) and I'm pretty sure I
> >don't have this function in any of the AIX system libraries.
> >
> >I tried adding -UNCURSES_TERM_ENTRY_H_incl to CFLAGS while doing
> >./configure (I thought maybe the hooks in ./include/term_entry.h
> >would help me) but there are still references in tset.c.
> >
> >If I set -UNCURSES_TERM_ENTRY_H_incl, hack out the references to
> >_nc_is_abs_path in tset.c, then the build proceeds further, but
> >dies linking toe:

no - the problem is before that

> >        gcc -g
> >-Wl,-blibpath:/opt/local/bash/lib:/usr/lib:/lib,-brtl -maix64 ../obj_s/toe.o 
> >-L/opt/local/bash/lib -I../progs -I.

The -blibpath option is expected for "--with-shared"

Actually the first -L option is unexpected, unless you've set LIBS or LDFLAGS 
environment variables.

> >-DHAVE_CONFIG_H -I/opt/local/bash/include  -D_ALL_SOURCE -DNDEBUG
> >-I. -I../include -I/opt/local/bash/include/ncurses
> >-I/opt/local/bash/include -UNCURSES_TERM_ENTRY_H_incl  --param 
> >max-inline-insns-single=1200   -L../lib -lncurses -L../lib -lncurses    -o 
> >toe

The -L../lib is what you should be using (and would be overridden by the first 
-L option)

> >ld: 0711-317 ERROR: Undefined symbol: ._nc_is_dir_path
> >ld: 0711-317 ERROR: Undefined symbol: ._nc_is_file_path
> >ld: 0711-317 ERROR: Undefined symbol: ._nc_first_db
> >ld: 0711-317 ERROR: Undefined symbol: ._nc_next_db
> >ld: 0711-317 ERROR: Undefined symbol: ._nc_last_db
> >
> >I've read the INSTALL document and googled my heart out for this
> >issue and am trying this mailing list as a last resort before I
> >give in an revert back to an older version that compiles without
> >issue on AIX.

The problem is likely that there's an older version of ncurses in 
/opt/local/bash/lib,
and the link is picking that.  You can work around upgrades of this sort by 
setting
the environment RPATH_LIST, e.g., to these two directories

        ../lib
        /opt/local/bash/lib

The variable is a colon-separated list.  Something like this:

(make distclean first, of course)

        RPATH_LIST=../lib:/opt/local/bash/lib ./configure --with-shared

should produce makefile with that list embedded rather than just the single 
directory.

However, setting LIBS or LDFLAGS to /opt/local/bash/lib will give problems.
That's what the --prefix and --exec-prefix options are for.

-- 
Thomas E. Dickey <address@hidden>
http://invisible-island.net
ftp://invisible-island.net

Attachment: signature.asc
Description: Digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]