Am 13.07.22 um 00:37 schrieb Richard Purdie:
On Wed, 2022-07-13 at 00:29 +0200, Christoph Lauer wrote:
From: Christoph Lauer <[email protected]>

Since commit d756b346f248df47b0540644adb1d0f17bcc4b6e kernel modules are 
stripped by the functions 'runstrip' and 'splitdebuginfo'. Signed modules must 
not be stripped. Function 'runstrip' avoids this by running 
is_kernel_module_signed. Apply the same check to splitdebuginfo.

Signed-off-by: Christoph Lauer <[email protected]>
---
  meta/classes/package.bbclass | 5 +++++
  1 file changed, 5 insertions(+)

diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
index 4850134022..78ec96df85 100644
--- a/meta/classes/package.bbclass
+++ b/meta/classes/package.bbclass
@@ -382,6 +382,11 @@ def splitdebuginfo(file, dvar, dv, d):
      debugfile = dvar + dest
      sources = []

+    if oe.package.is_elf(file)[1] & 16:
+        if oe.package.is_kernel_module_signed(file):
+            bb.debug(1, "Skip strip on signed module %s" % file)
+            return (file, sources)
+
      # Split the file...
      bb.utils.mkdirhier(os.path.dirname(debugfile))
      #bb.note("Split %s -> %s" % (file, debugfile))

That is better but I think we can do better still. splitdebuginfo is
called as:

results = oe.utils.multiprocess_launch(splitdebuginfo, list(elffiles), d, 
extraargs=(dvar, dv, d))

and earlier in the function there is also:

results = oe.utils.multiprocess_launch(oe.package.is_elf, checkelf.keys(), d)

i.e. we already probably called is_elf() which isn't a cheap operation either.

I think we can tweak things so we reuse that data?

Cheers,

Richard



Sorry for double-posting, my last mail did not reply to this conversation:
You're correct that oe.package.is_elf already ran on the file before
splitdebuginfo is called, but the result is currently not available to
splitdebuginfo AFAIS. It could be by extending the parameters and what
not, but I'm too lazy to do that for what was meant to be a rather small
change. Instead I'll follow your first suggestion to check on file
extension and file location (as is_elf does too). That should cover all
kernel modules and is specific enough to avoid false positives.
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#167993): 
https://lists.openembedded.org/g/openembedded-core/message/167993
Mute This Topic: https://lists.openembedded.org/mt/92346271/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to