chrpath: normalize the paths
authorSaul Wold <sgw@linux.intel.com>
Wed, 12 Dec 2012 01:40:57 +0000 (17:40 -0800)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Thu, 13 Dec 2012 16:54:31 +0000 (16:54 +0000)
By normalizing the paths the path comparing code works correct
to generate the right RPATH even when there is a A/../A in TMPDIR

[YOCTO #3408]

(From OE-Core rev: 50327f2bba9f479dd209cdc54646b9d551e84c59)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes/chrpath.bbclass

index 4a6e697..82329d1 100644 (file)
@@ -6,8 +6,8 @@ def process_dir (directory, d):
     import stat
 
     cmd = d.expand('${CHRPATH_BIN}')
-    tmpdir = d.getVar('TMPDIR')
-    basedir = d.expand('${base_prefix}')
+    tmpdir = os.path.normpath(d.getVar('TMPDIR'))
+    basedir = os.path.normpath(d.expand('${base_prefix}'))
 
     #bb.debug("Checking %s for binaries to process" % directory)
     if not os.path.exists(directory):
@@ -49,6 +49,7 @@ def process_dir (directory, d):
             new_rpaths = []
             for rpath in rpaths:
                 # If rpath is already dynamic copy it to new_rpath and continue
+                rpath =  os.path.normpath(rpath)
                 if rpath.find("$ORIGIN") != -1:
                     new_rpaths.append(rpath.strip())
                     continue