This is due to config/init/hints/darwin.pm, which hardcodes "/usr/ local/..." to the path.

A fix which works only in a non-install variety of parrot would be:

=== config/init/hints/darwin.pm
==================================================================
--- config/init/hints/darwin.pm (revision 5655)
+++ config/init/hints/darwin.pm (local)
@@ -21,7 +21,9 @@
         }
     }
-    $ldflags .= " -L" . $conf->data->get('build_dir') . "/blib/lib";
+    my $lib_dir = $conf->data->get('build_dir') . "/blib/lib";
+
+    $ldflags .= " -L$lib_dir";
     $ccflags .= " -pipe -fno-common -Wno-long-double ";
     $ccflags =~ s/-flat_namespace\s*//;
     $ldflags =~ s/-flat_namespace\s*//;
@@ -52,10 +54,10 @@
         # XXX ugly hack for rpath_lib in config/inter/libparrot.pm
         rpath            => "-L",
         libparrot_soname => "-install_name "
-            . $conf->data->get('lib_dir')
+            . $lib_dir
             . $conf->data->get('slash')
             . "libparrot"
             . $conf->data->get('share_ext')


Given that install is generally considered borked, I'd tend to apply this.


On May 29, 2007, at 5:04 PM, Will Coleda (via RT) wrote:

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


Using a config of:

CC="ccache gcc-4.0"
CX="ccache g++-4.0"
perl Configure.pl --cc="$CC" --cxx="$CX" --link="$CX" --ld="$CX"
 --parrot_is_shared $@

parrot seems to build ok on darwin/intel, but dies later during the build
with:

perl -MExtUtils::Command -e rm_rf PAST.pbc
../../runtime/parrot/library/PAST.pbc
../../parrot -o PAST.pbc --output-pbc PAST.pir
dyld: Library not loaded: /usr/local/lib/libparrot.dylib
Referenced from: /Users/coke/research/parrot2/compilers/ past/../../parrot
  Reason: image not found
make[1]: *** [PAST.pbc] Trace/BPT trap
make: *** [compilers.dummy] Error 2

$ otool -l parrot | grep libparrot.dylib
         name /usr/local/lib/libparrot.dylib (offset 24)

I'm guessing that shouldn't be pointing to /usr/local, as I didn't install.

If I do a symbolic link from there back to the build version in my dev area,
the build completes.


--
Will "Coke" Coleda
[EMAIL PROTECTED]


Reply via email to