[oe] [PATCH] relocatable.bbclass: do not erease already existing ORIGIN paths and sanity resulting rpath

Henning Heinold heinold at inf.fu-berlin.de
Fri Mar 23 21:10:58 UTC 2012


* let already exisiting ORIGIN path stay in the binary
  otherwise binaries will not find there libs in directories
  besides the standard defined directories
* remove all whitespaces from the resulting path

Signed-off-by: Henning Heinold <heinold at inf.fu-berlin.de>
---
 meta/classes/relocatable.bbclass |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/meta/classes/relocatable.bbclass b/meta/classes/relocatable.bbclass
index 072f533..dff12ed 100644
--- a/meta/classes/relocatable.bbclass
+++ b/meta/classes/relocatable.bbclass
@@ -6,6 +6,7 @@ PREPROCESS_RELOCATE_DIRS ?= ""
 def process_dir (directory, d):
     import subprocess as sub
     import stat
+    import re
 
     cmd = d.expand('${CHRPATH_BIN}')
     tmpdir = d.getVar('TMPDIR')
@@ -52,6 +53,7 @@ def process_dir (directory, d):
             for rpath in rpaths:
                 # If rpath is already dynamic continue
                 if rpath.find("$ORIGIN") != -1:
+                    new_rpaths.append(rpath)
                     continue
                 # If the rpath shares a root with base_prefix determine a new dynamic rpath from the
                 # base_prefix shared root
@@ -75,6 +77,7 @@ def process_dir (directory, d):
             # if we have modified some rpaths call chrpath to update the binary
             if len(new_rpaths):
                 args = ":".join(new_rpaths)
+		args = re.sub(r'\s', '', args)
                 #bb.note("Setting rpath for %s to %s" %(fpath, args))
                 sub.call([cmd, '-r', args, fpath])
 
-- 
1.7.9.1




More information about the Openembedded-devel mailing list