On Tue, 5 Jun 2007 01:13:36 -0500
Joshua Isom <[EMAIL PROTECTED]> wrote:

> After a little prodding around, I think the problem is that the
> dynops aren't build with the rpath.  I don't know how "proper" the
> following patch is(i.e. linux doesn't seem to have a problem so
> either this is right or the other way is right), but it does the
> trick.


> -our $LDFLAGS = [EMAIL PROTECTED]@ @[EMAIL PROTECTED];
> +our $LDFLAGS = [EMAIL PROTECTED]@ @ld_debug@ @[EMAIL PROTECTED];

Sorry, but this patch didn't change anything for me.  The libparrot.so
link line looks the same (maybe because its linking with cc, not ld),
and I still need to specify an LD_LIBRARY_PATH when invoking parrot
from a subdir, later on.

Since it works on linux but not freebsd, and since freebsd seems to
have the same tools available as linux, could it just be a difference
in the hints files?

[EMAIL PROTECTED] ~/parrot $ grep rpath config/init/hints/freebsd.pm 
config/init/hints/linux.pm
config/init/hints/freebsd.pm:        rpath => '-Wl,-R',
config/init/hints/linux.pm:        rpath          => '-Wl,-rpath=',

On the other hand, I don't see an actual "-Wl,-rpath=" clause on the
linker line for a linux build, either.  And the result works on linux
without any LD_LIBRARY_PATH hints, but not on freebsd.

Linker line under linux:

i686-pc-linux-gnu-gcc -shared -L/usr/local/lib -fPIC -L/usr/local/lib
-o blib/lib/libparrot.so.0.4.12 -Wl,-soname=libparrot.so.0.4.12 [long
list of objects] -lpthread -lnsl -ldl -lm -lcrypt -lutil -lrt -lgmp
-lreadline -lncurses -lpthread -lm -L/usr/lib  -licuuc -licudata
-lpthread -lm

Linker line under freebsd:

cc -shared  -L/usr/local/lib -Wl,-E -L/usr/local/lib -o
blib/lib/libparrot.so.0.4.12 -Wl,-soname=libparrot.so.0.4.12 [long list
of objects] -lm -lcrypt -lutil -pthread -lreadline

Mark

Reply via email to