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 <[email protected]> Signed-off-by: Michael Blättler <[email protected]> --- meta/classes/package.bbclass | 5 +++-- meta/lib/oe/package.py | 13 ++++++------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass index a6f0a7a..05b92a8 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', False) 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..757044a 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,16 @@ def runstrip(arg): newmode = origmode | stat.S_IWRITE | stat.S_IREAD os.chmod(file, newmode) - extraflags = "" - - # kernel module + extraflags += ' ' + # 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 [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core
