All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ulf Magnusson <ulfalizer@gmail.com>
To: "Michael Blättler" <michael.blaettler@siemens.com>
Cc: OE-core <openembedded-core@lists.openembedded.org>
Subject: Re: [PATCH v2] package.py: New EXTRA_STRIPFLAGS variable
Date: Tue, 25 Oct 2016 13:29:47 +0200	[thread overview]
Message-ID: <CAFkk2KTg=et1wgtoHMhPdidNQ0iiGeJ95_2APkkQdj1=2yRd3Q@mail.gmail.com> (raw)
In-Reply-To: <CAFkk2KRg0eC98kRU=vAbdCG8zLAaB6B9_H2tBiY-bweoNfLSsA@mail.gmail.com>

On Tue, Oct 25, 2016 at 1:18 PM, Ulf Magnusson <ulfalizer@gmail.com> wrote:
> On Tue, Oct 25, 2016 at 12:23 PM, Michael Blättler
> <michael.blaettler@siemens.com> wrote:
>> 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.bach@siemens.com>
>> Signed-off-by: Michael Blättler <michael.blaettler@siemens.com>
>> ---
>>  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)
>
> Why False? That means you can't do e.g.
>
>   EXTRA_STRIPFLAGS = "${EXTRA_STRIPSFLAGS_HELPER}"
>
> or
>
>   EXTRA_STRIPFLAGS = "${@calculate_extra_stripflags()}"
>
>>          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 += ' '
>
> I'd remove this line and add an extra space to the beginning of the +=
> values below, but no biggie.
>
>> +    # 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
>
> Cheers,
> Ulf

This might still have issues if EXTRA_STRIPFLAGS is unset by the way.
Maybe you want the following, to avoid extraflags becoming None:

  extraflags = d.getVar('EXTRA_STRIPFLAGS', True) or ""

Cheers,
Ulf


  reply	other threads:[~2016-10-25 11:29 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-10-25 10:23 [PATCH v2] package.py: New EXTRA_STRIPFLAGS variable Michael Blättler
2016-10-25 11:18 ` Ulf Magnusson
2016-10-25 11:29   ` Ulf Magnusson [this message]
2016-10-25 11:46     ` Blaettler, Michael

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAFkk2KTg=et1wgtoHMhPdidNQ0iiGeJ95_2APkkQdj1=2yRd3Q@mail.gmail.com' \
    --to=ulfalizer@gmail.com \
    --cc=michael.blaettler@siemens.com \
    --cc=openembedded-core@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.