# New Ticket Created by  Andy Dougherty 
# Please include the string:  [perl #31765]
# in the subject line of all future correspondence about this issue. 
# <URL: http://rt.perl.org:80/rt3/Ticket/Display.html?id=31765 >


With the recent root Makefile patch to build stuff in
runtime/parrot/library, I'm now getting the following failure (split to
avoid long lines)

./parrot -o runtime/parrot/library/ncurses.pbc \
    runtime/parrot/library/ncurses.imc
Couldn't load 'runtime/parrot/libncurses': \
    ld.so.1: ./parrot: fatal: runtime/parrot/libncurses: \
        open failed: No such file or directory

The biggest problem with the message is that it never tells you exactly
*which* file was not found.

In this case, the problem turns out to be the statement in
runtime/parrot/library/ncurses.imc:

  loadlib $P1, 'libncurses'

which *assumes* that my 'curses' library is called 'libncurses'.  It's
not. On Solaris, for example (and probably on most SVR4-related systems),
it's simply 'libcurses'.

Where and how to fix this is a bit of a problem.  Obviously, it's a
Configure.pl issue to figure out which library to use.  But beyond that,
it's unclear to me exactly where to put that new information and what to
do with it.

In the runtime/parrot/library/ directory, the string
'libncurses' appears in three different files:

    ncurses.declarations:libncurses.so
    ncurses.imc:loadlib $P1, 'libncurses'
    ncurses.pasm:loadlib P1, 'libncurses'

Changing it in one has no obvious affect on the others.  I can't find any
documentation about the .declarations file at all, nor how (or whether)
the .imc and/or .pasm files are generated from the .declarations file.

Are all of them needed?  If so, then the .declarations file also needs to
be changed to have a more general suffix instead of just .so.

Or should we just skip it for now as we skip SDL and postgres?

In any case, a better error message would sure help tracking down things
like this.

-- 
    Andy Dougherty              [EMAIL PROTECTED]

Reply via email to