Andy Dougherty wrote:
On Sun, 13 Apr 2008, James E Keenan wrote:

[snip]

/opt/SUNWspro/bin/CC -o miniparrot src/main.o \
     -L/home/kid51/work/parrot/blib/lib -lparrot  -lsocket -lnsl -ldl -lm
-lpthread -lrt -lgmp -lcrypto -L/usr/lib -L/usr/ccs/lib
-L/opt/SUNWspro/prod/lib/sparc -L/opt/SUNWspro/prod/lib -L/lib
-L/usr/local/lib  -xlibmieee   src/null_config.o
ld: fatal: library -lgmp: not found
ld: fatal: library -lcrypto: not found
ld: fatal: File processing errors. No output written to miniparrot
gmake: *** [miniparrot] Error 1

It's not clear why 'ld' failed to find gmp or crypto, because Configure.pl
located them without difficulty.

(Incidentally -- gmake is not necessary. I don't know why Configure.pl suggests it.

DDMPK51:  See this code from config/inter/make.pm:

    # check the candidates for a 'make' program in this order:
    # environment ; option ; probe ; ask ; default
    # first pick wins. On cygwin prefer make over nmake.
    $prog ||= $ENV{ uc($util) };
    $prog ||= $conf->options->get($util);
$prog ||= check_progs( $^O eq 'cygwin' ? ['gmake', 'make'] : ['gmake', 'mingw32-make', 'nmake', 'make'], $verbose );

'gmake' wins where it's available.

You should try regular 'make' instead (you may have to
add /usr/ccs/bin to your PATH). If you want to check out parallel builds, you can try 'dmake' if it's installed.)

This failure is probably due to the order of the arguments to CC. Traditional Unix linkers look things up in the order specified on the command line. You don't say where libgmp and libcrypto are installed, but I'll guess they are in /usr/local/lib.

I'm beginning to suspect that this is a more general problem in our configuration system. For example, problems we've been having recently with config/auto/readline.pm, config/auto/gdbm.pm, config/auto/crypto.pm. The presence of '-lgmp -lcrypto -L/usr/lib -L/usr/ccs/lib' above in a situation where something didn't work is reminiscent of '-lgdbm -L/sw/lib' in cases where, on Darwin, we've installed a library with Fink and either can't locate it or have a testing problem.

[snip]


1.  Use rsync.  rsync is very useful for this, when it works.
Unfortunately, the parrot rsync server tends to be a bit unreliable,
but it's working today.  Use something like:

    rsync -avz --delete svn.perl.org::parrot-HEAD parrot-current

(rsync is not standard on solaris -- you'd have to build your own.)


As I learned the hard way; goes on my Solaris TODO list.

[snip]


3.  Fetch the current "snapshots" with something like

    wget http://svn.perl.org/snapshots/parrot/parrot-latest.tar.gz

(wget is not standard on solaris -- you'd have to build your own.)


As I learned the hard way; goes on my Solaris TODO list.

[snip]

Thanks for the feedback. I suspect I'm going to have to set one day/night a week to these Solaris problems, because it's more unlike other *nix environments where I've worked.

kid51

Reply via email to