diff mbox

[2/4] sdk-image: Use elfwrapper class.

Message ID ad08a245d9f07e7a445eb36ad30bea6d84993b4e.1385470877.git.christian.braunersorensen@prevas.dk
State Accepted
Delegated to: Esben Haabendal
Headers show

Commit Message

christian.braunersorensen@prevas.dk Nov. 26, 2013, 1:03 p.m. UTC
From: Christian Sørensen <christian.braunersorensen@prevas.dk>

Signed-off-by: Christian Sørensen <christian.braunersorensen@prevas.dk>
---
 classes/sdk-image.oeclass | 67 +----------------------------------------------
 1 file changed, 1 insertion(+), 66 deletions(-)
diff mbox

Patch

diff --git a/classes/sdk-image.oeclass b/classes/sdk-image.oeclass
index b2113f4..5870ee2 100644
--- a/classes/sdk-image.oeclass
+++ b/classes/sdk-image.oeclass
@@ -25,73 +25,8 @@  IMAGE_PREPROCESS_NETFILTER = ""
 IMAGE_PREPROCESS_NETFILTER:HOST_OS_mingw32 = "image_preprocess_linux_netfilter_headers"
 IMAGE_PREPROCESS_FUNCS += "${IMAGE_PREPROCESS_NETFILTER}"
 
-SDK_IMAGE_ELF_SOWRAP_DIRS ?= "${base_bindir} ${bindir}"
-SDK_IMAGE_ELF_SOWRAP_LD_SO ?= "/lib/ld-linux*.so.2"
-
-RSTAGE_FIXUP_FUNCS += "${IMAGE_PREPROCESS_ELF_SOWRAP}"
-IMAGE_PREPROCESS_ELF_SOWRAP = ""
-IMAGE_PREPROCESS_ELF_SOWRAP:HOST_BINFMT_elf = " image_preprocess_elf_sowrap"
+inherit elfwrapper
 IMAGE_PREPROCESS_ELF_SOWRAP:USE_sdk_static = ""
-def image_preprocess_elf_sowrap(d):
-    import stat
-    import magic
-
-    filemagic = magic.open(magic.MAGIC_NONE)
-    filemagic.load()
-    host_elf_re = re.compile(d.get("HOST_ELF"))
-    ld_so = d.get("SDK_IMAGE_ELF_SOWRAP_LD_SO")
-
-    def is_elf(path):
-        filetype = filemagic.file(path)
-        return bool(host_elf_re.match(filetype))
-
-    def is_static(path):
-        filetype = filemagic.file(path)
-        static_re = re.compile(".*statically.*")
-        return bool(static_re.match(filetype))
-
-    def sowrap_dir(dir, recursive=False):
-        if not os.path.exists(dir):
-            return True
-        assert os.path.isdir(dir)
-        ok = True
-        for file in os.listdir(dir):
-            path = os.path.join(dir, file)
-            if os.path.islink(path):
-                continue
-            if os.path.isdir(path):
-                if recursive:
-                    sowrap_dir(path, recursive)
-                continue
-            dotpath = "%s/.%s"%(os.path.dirname(path), os.path.basename(path))
-            if os.path.exists(dotpath):
-                print "ERROR: file already exists:", os.path.join(dir, path)
-                ok = False
-                continue
-            if is_elf(path) and is_static(path):
-                continue
-            os.rename(path, dotpath)
-            with open(path, "w") as wrapper:
-                dirparts = len(os.path.dirname(path).split('/'))
-                relative_root = "/".join([".."] * dirparts)
-                wrapper.write("#!/bin/sh\n")
-                wrapper.write("$(dirname $0)/%s%s $(dirname $0)/%s $*\n"%(
-                        relative_root, ld_so, os.path.basename(dotpath)))
-            os.chmod(path, stat.S_IRWXU|stat.S_IRWXG|stat.S_IROTH|stat.S_IXOTH)
-        return True
-
-    bindirs = set(d.get("SDK_IMAGE_ELF_SOWRAP_DIRS").split())
-    for dir in bindirs:
-        recursive=False
-        if dir.endswith("//"):
-            recursive=True
-        dir = dir.strip("/")
-        rc = sowrap_dir(dir, recursive)
-        if not rc:
-            filemagic.close()
-            return rc
-    filemagic.close()
-    return
 
 image_preprocess_linux_netfilter_headers () {
 	oenote image_preprocess_linux_netfilter_headers