[Libreoffice-commits] .: solenv/bin

David Tardon dtardon at kemper.freedesktop.org
Mon Oct 24 04:57:21 PDT 2011


 solenv/bin/linkoo |   27 +++++++++++++++++++++++++--
 1 file changed, 25 insertions(+), 2 deletions(-)

New commits:
commit f17c10545fabefd027b278798840706f2dbf4a04
Author: David Tardon <dtardon at redhat.com>
Date:   Mon Oct 24 13:52:57 2011 +0200

    create links to gdb autoloaders in the right dir

diff --git a/solenv/bin/linkoo b/solenv/bin/linkoo
index 1c22cb0..c39237f 100755
--- a/solenv/bin/linkoo
+++ b/solenv/bin/linkoo
@@ -341,11 +341,34 @@ sub evilness($)
     }
 }
 
+sub do_link_gdb_py($$$)
+{
+    my $srcdir = shift;
+    my $libdir = shift;
+    my $loader = shift;
+
+    my $lib = $loader =~ s/-gdb.py$//r;
+    my $destdir = $libdir;
+    # Autoloader for a library is looked for in the same directory the library
+    # is (the library, not a symlink to it). Therefore it does not help to link
+    # it from solver into install, because there is only a symlink in install
+    # anyway. Instead, we must follow the link.
+    if (-l "$libdir/$lib") {
+        $destdir = readlink ("$libdir/$lib");
+        $destdir =~ s@/[^/]*$@@;
+    }
+
+    if ($destdir ne $srcdir) {
+        do_link ($srcdir, $destdir, $loader, $loader, 1);
+    }
+}
+
 sub link_gdb_py()
 {
     return if ($TARGET eq 'wntgcci.pro');
 
     print "Special gdb.py helpers case: ";
+
     my $dirh;
     my @basis;
     my @ure;
@@ -365,10 +388,10 @@ sub link_gdb_py()
 	print STDERR "Warning: missing helpful python debug helpers\n";
     } else {
 	for my $c (@basis) {
-	    do_link ($src, "$OOO_INSTALL/program", $c, $c, 1);
+	    do_link_gdb_py ($src, "$OOO_INSTALL/program", $c);
 	}
 	for my $c (@ure) {
-	    do_link ($src, "$OOO_INSTALL/ure/lib", $c, $c, 1);
+	    do_link_gdb_py ($src, "$OOO_INSTALL/ure/lib", $c);
 	}
     }
     print "\n";


More information about the Libreoffice-commits mailing list