The EXTRA_STRIPFLAGS variable can be used to pass additional parameters to the 
strip command.
This can be used to remove additional sections or to keep symbols.
The removal of additional sections can be useful to enable reproducible builds.
Sections which contain paths or md5sums of the debug binaries (like 
gnu_debuglink)
can be eliminated with this flag.

Signed-off-by: Pascal Bach <pascal.b...@siemens.com>
Signed-off-by: Michael Blättler <michael.blaett...@siemens.com>
---
 meta/classes/package.bbclass |  5 +++--
 meta/lib/oe/package.py       | 12 +++++-------
 2 files changed, 8 insertions(+), 9 deletions(-)

diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
index a6f0a7a..7e1c5c3 100644
--- a/meta/classes/package.bbclass
+++ b/meta/classes/package.bbclass
@@ -1055,14 +1055,15 @@ python split_and_strip_files () {
     # Now lets go back over things and strip them
     #
     if (d.getVar('INHIBIT_PACKAGE_STRIP', True) != '1'):
+        extraflags = d.getVar('EXTRA_STRIPFLAGS', True) or ''
         strip = d.getVar("STRIP", True)
         sfiles = []
         for file in elffiles:
             elf_file = int(elffiles[file])
             #bb.note("Strip %s" % file)
-            sfiles.append((file, elf_file, strip))
+            sfiles.append((file, elf_file, strip, extraflags))
         for f in kernmods:
-            sfiles.append((f, 16, strip))
+            sfiles.append((f, 16, strip, extraflags))
 
         oe.utils.multiprocess_exec(sfiles, oe.package.runstrip)
 
diff --git a/meta/lib/oe/package.py b/meta/lib/oe/package.py
index 02642f2..ab5f616 100644
--- a/meta/lib/oe/package.py
+++ b/meta/lib/oe/package.py
@@ -10,7 +10,7 @@ def runstrip(arg):
 
     import stat, subprocess
 
-    (file, elftype, strip) = arg
+    (file, elftype, strip, extraflags) = arg
 
     newmode = None
     if not os.access(file, os.W_OK) or os.access(file, os.R_OK):
@@ -18,17 +18,15 @@ def runstrip(arg):
         newmode = origmode | stat.S_IWRITE | stat.S_IREAD
         os.chmod(file, newmode)
 
-    extraflags = ""
-
-    # kernel module    
+    # kernel module
     if elftype & 16:
-        extraflags = "--strip-debug --remove-section=.comment 
--remove-section=.note --preserve-dates"
+        extraflags += " --strip-debug --remove-section=.comment 
--remove-section=.note --preserve-dates"
     # .so and shared library
     elif ".so" in file and elftype & 8:
-        extraflags = "--remove-section=.comment --remove-section=.note 
--strip-unneeded"
+        extraflags += " --remove-section=.comment --remove-section=.note 
--strip-unneeded"
     # shared or executable:
     elif elftype & 8 or elftype & 4:
-        extraflags = "--remove-section=.comment --remove-section=.note"
+        extraflags += " --remove-section=.comment --remove-section=.note"
 
     stripcmd = "'%s' %s '%s'" % (strip, extraflags, file)
     bb.debug(1, "runstrip: %s" % stripcmd)
-- 
2.1.4

-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to