The /usr/local/lib/libparrot.dylib says where the library should be. Considering Apple choose to have shared library paths hard coded into the executable, I'm not sure how they really handle DYLD_LIBRARY_PATH to load the proper library. I haven't yet looked into which library darwin uses, the blib/lib or $prefix/lib one if both are present.

On Feb 21, 2006, at 3:29 AM, Joshua Hoblitt wrote:

I don't believe that this is the correct solution.  The 'parrot' binary
needs to be linked to the correct library.  Currently it's being linked
against /usr/local/lib/libparrot.dylib instead of
blib/lib/libparrot.dylib.  For some reason it does this even when
blib/lib is specific to be searched first:

$ c++ -o parrot -L/Users/jhoblitt/parrot/blib/lib -L/usr/local/lib    \
compilers/imcc/main.o -lparrot  -lm -lreadline \
src/parrot_config.o
$ otool -L parrot
parrot:
/usr/local/lib/libparrot.dylib (compatibility version 0.0.0, current version 0.0.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 88.1.2) /usr/lib/libedit.2.dylib (compatibility version 2.0.0, current version 2.0.0) /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.3.0) /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0) /usr/lib/libmx.A.dylib (compatibility version 1.0.0, current version 92.0.0)

The fix is to figure out how to make the linker behave.

-J

--

Reply via email to