Re: [perl #43070] [BUG] Can't build shared on darwin  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.
> # 
>
>
> 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
will@coleda.com


