[oe-commits] Tom Rini : relocatible.bbclass: Switch to using oe.path.relative

git version control git at git.openembedded.org
Wed Jul 7 18:18:49 UTC 2010


Module: openembedded.git
Branch: org.openembedded.dev
Commit: b4cbc6a2e6dffd367b7362f352699cb5a442cbc5
URL:    http://gitweb.openembedded.net/?p=openembedded.git&a=commit;h=b4cbc6a2e6dffd367b7362f352699cb5a442cbc5

Author: Tom Rini <tom_rini at mentor.com>
Date:   Wed Jul  7 11:17:47 2010 -0700

relocatible.bbclass: Switch to using oe.path.relative

Rather than calculate the relative path ourself use a helper function
we've got.  This also results in shorter rpaths being used.

Signed-off-by: Tom Rini <tom_rini at mentor.com>

---

 classes/relocatable.bbclass |   14 +++++---------
 1 files changed, 5 insertions(+), 9 deletions(-)

diff --git a/classes/relocatable.bbclass b/classes/relocatable.bbclass
index e4ababa..cc22027 100644
--- a/classes/relocatable.bbclass
+++ b/classes/relocatable.bbclass
@@ -55,21 +55,17 @@ def process_dir (directory, d):
                 # If the rpath shares a root with base_prefix determine a new dynamic rpath from the
                 # base_prefix shared root
                 if rpath.find(basedir) != -1:
-                    depth = fpath.partition(basedir)[2].count('/')
-                    libpath = rpath.partition(basedir)[2].strip()
+                    fdir = os.path.dirname(fpath.partition(basedir)[2])
+                    ldir = rpath.partition(basedir)[2].strip()
                 # otherwise (i.e. cross packages) determine a shared root based on the TMPDIR
                 # NOTE: This will not work reliably for cross packages, particularly in the case
                 # where your TMPDIR is a short path (i.e. /usr/poky) as chrpath cannot insert an
                 # rpath longer than that which is already set.
                 else:
-                    depth = fpath.rpartition(tmpdir)[2].count('/')
-                    libpath = rpath.partition(tmpdir)[2].strip()
+                    fdir = os.path.dirname(fpath.rpartition(tmpdir)[2])
+                    ldir = rpath.partition(tmpdir)[2].strip()
 
-                base = "$ORIGIN"
-                while depth > 1:
-                    base += "/.."
-                    depth-=1
-                new_rpaths.append("%s%s" % (base, libpath))
+                new_rpaths.append("$ORIGIN/%s" % oe.path.relative(fdir, ldir))
 
             # if we have modified some rpaths call chrpath to update the binary
             if len(new_rpaths):





More information about the Openembedded-commits mailing list