[RT #65955] handle LD_RUN_PATH ignores with -rpath in lddlflags
authorTony Cook <tony@develop-help.com>
Mon, 14 Mar 2011 10:24:58 +0000 (21:24 +1100)
committerTony Cook <tony@develop-help.com>
Mon, 14 Mar 2011 10:24:58 +0000 (21:24 +1100)
Only handled for FT2 for now

FT2/FT2.pm
FT2/Makefile.PL
lib/Imager/Probe.pm

index e0a107b..034ee90 100644 (file)
@@ -5,7 +5,7 @@ use vars qw($VERSION @ISA);
 @ISA = qw(Imager::Font);
 
 BEGIN {
-  $VERSION = "0.78";
+  $VERSION = "0.79";
 
   eval {
     require XSLoader;
index ca34198..badd386 100644 (file)
@@ -37,7 +37,7 @@ else {
   $opts{TYPEMAPS} = [ Imager::ExtUtils->typemap ];
 
   # Imager required configure through use
-  my @Imager_req = ( Imager => "0.78" );
+  my @Imager_req = ( Imager => "0.82" );
   if ($MM_ver >= 6.46) {
     $opts{META_MERGE} =
       {
@@ -99,6 +99,8 @@ if ($probe_res) {
   $opts{LIBS} = $probe_res->{LIBS};
   $opts{DEFINE} = $probe_res->{DEFINE};
   $opts{INC} = "@inc";
+  $opts{LDDLFLAGS} = $probe_res->{LDDLFLAGS}
+    if $probe_res->{LDDLFLAGS};
 
   if ($MM_ver > 6.06) {
     $opts{AUTHOR} = 'Tony Cook <tony@imager.perl.org>';
index dd8e8f6..e8db68e 100644 (file)
@@ -245,6 +245,15 @@ sub _probe_test {
     print "Setting LD_RUN_PATH=$ld_run_path for $req->{name} probe\n"
       if $req->{verbose};
     $ENV{LD_RUN_PATH} = $ld_run_path;
+    if ($Config{lddlflags} =~ /([^ ]*-(?:rpath|R)[,=]?)([^ ]+)/
+       && -d $2) {
+      # hackety, hackety
+      # LD_RUN_PATH is ignored when there's already an -rpath option
+      # so provide one
+      my $prefix = $1;
+      $result->{LDDLFLAGS} = $Config{lddlflags} . " " .
+       join " ", map "$prefix$_", split $Config{path_sep}, $ld_run_path;
+    }
   }
   my $good =
     Devel::CheckLib::check_lib