summaryrefslogtreecommitdiffstats
path: root/meta/classes/package.bbclass
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2018-07-19 20:59:05 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2018-07-24 11:52:27 +0100
commit29482de968e824bfa3edd5d7237cef22e85cf880 (patch)
tree527c8c63eb5f3e654fbac32a08a33899ac781c9d /meta/classes/package.bbclass
parent3fa835d9bcc6802390cefda266b25856178c553f (diff)
downloadpoky-29482de968e824bfa3edd5d7237cef22e85cf880.tar.gz
package: Drop subshell usage for dwarfsrcfile generation.
The command for running dwarfsrcfiles is simple and does not need a subshell for each execution. By expanding out this function to use check_output() from subprocess and a list of arguments, the shell overhead can be dropped. For recipes with lots of files this gives a significant saving. (From OE-Core rev: 6334129dfbe266602fab70ce445641053a05be6c) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes/package.bbclass')
-rw-r--r--meta/classes/package.bbclass12
1 files changed, 10 insertions, 2 deletions
diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
index 6f7015d912..7a49e4f351 100644
--- a/meta/classes/package.bbclass
+++ b/meta/classes/package.bbclass
@@ -345,8 +345,16 @@ def parse_debugsources_from_dwarfsrcfiles_output(dwarfsrcfiles_output):
345 return debugfiles.keys() 345 return debugfiles.keys()
346 346
347def append_source_info(file, sourcefile, d, fatal=True): 347def append_source_info(file, sourcefile, d, fatal=True):
348 cmd = "'dwarfsrcfiles' '%s'" % (file) 348 import subprocess
349 (retval, output) = oe.utils.getstatusoutput(cmd) 349
350 cmd = ["dwarfsrcfiles", file]
351 try:
352 output = subprocess.check_output(cmd, universal_newlines=True, stderr=subprocess.STDOUT)
353 retval = 0
354 except subprocess.CalledProcessError as exc:
355 output = exc.output
356 retval = exc.returncode
357
350 # 255 means a specific file wasn't fully parsed to get the debug file list, which is not a fatal failure 358 # 255 means a specific file wasn't fully parsed to get the debug file list, which is not a fatal failure
351 if retval != 0 and retval != 255: 359 if retval != 0 and retval != 255:
352 msg = "dwarfsrcfiles failed with exit code %s (cmd was %s)%s" % (retval, cmd, ":\n%s" % output if output else "") 360 msg = "dwarfsrcfiles failed with exit code %s (cmd was %s)%s" % (retval, cmd, ":\n%s" % output if output else "")