summaryrefslogtreecommitdiffstats
path: root/meta/classes/package.bbclass
diff options
context:
space:
mode:
authorPeter Kjellerstedt <peter.kjellerstedt@axis.com>2022-02-02 02:59:49 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2022-02-05 12:26:36 +0000
commit10b2da6fe7f177a77141568179fa4751de706830 (patch)
tree6651b089d7fde0dc094f3d75e3b5a3e66363f528 /meta/classes/package.bbclass
parent3ad2ecb603484fe57fd89f9e54c0eb90d1e00c2a (diff)
downloadpoky-10b2da6fe7f177a77141568179fa4751de706830.tar.gz
package: Make package_debug_vars() return a dict
It simplifies the API to return one dict instead of seven strings. (From OE-Core rev: 610c790a94591da5c3a6b1db938cd85e2cbdbe5a) Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes/package.bbclass')
-rw-r--r--meta/classes/package.bbclass96
1 files changed, 51 insertions, 45 deletions
diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
index 545471468c..9e895b4ecc 100644
--- a/meta/classes/package.bbclass
+++ b/meta/classes/package.bbclass
@@ -1069,42 +1069,49 @@ def package_debug_vars(d):
1069 # We default to '.debug' style 1069 # We default to '.debug' style
1070 if d.getVar('PACKAGE_DEBUG_SPLIT_STYLE') == 'debug-file-directory': 1070 if d.getVar('PACKAGE_DEBUG_SPLIT_STYLE') == 'debug-file-directory':
1071 # Single debug-file-directory style debug info 1071 # Single debug-file-directory style debug info
1072 debugappend = ".debug" 1072 debug_vars = {
1073 debugstaticappend = "" 1073 "append": ".debug",
1074 debugdir = "" 1074 "staticappend": "",
1075 debugstaticdir = "" 1075 "dir": "",
1076 debuglibdir = "/usr/lib/debug" 1076 "staticdir": "",
1077 debugstaticlibdir = "/usr/lib/debug-static" 1077 "libdir": "/usr/lib/debug",
1078 debugsrcdir = "/usr/src/debug" 1078 "staticlibdir": "/usr/lib/debug-static",
1079 "srcdir": "/usr/src/debug",
1080 }
1079 elif d.getVar('PACKAGE_DEBUG_SPLIT_STYLE') == 'debug-without-src': 1081 elif d.getVar('PACKAGE_DEBUG_SPLIT_STYLE') == 'debug-without-src':
1080 # Original OE-core, a.k.a. ".debug", style debug info, but without sources in /usr/src/debug 1082 # Original OE-core, a.k.a. ".debug", style debug info, but without sources in /usr/src/debug
1081 debugappend = "" 1083 debug_vars = {
1082 debugstaticappend = "" 1084 "append": "",
1083 debugdir = "/.debug" 1085 "staticappend": "",
1084 debugstaticdir = "/.debug-static" 1086 "dir": "/.debug",
1085 debuglibdir = "" 1087 "staticdir": "/.debug-static",
1086 debugstaticlibdir = "" 1088 "libdir": "",
1087 debugsrcdir = "" 1089 "staticlibdir": "",
1090 "srcdir": "",
1091 }
1088 elif d.getVar('PACKAGE_DEBUG_SPLIT_STYLE') == 'debug-with-srcpkg': 1092 elif d.getVar('PACKAGE_DEBUG_SPLIT_STYLE') == 'debug-with-srcpkg':
1089 debugappend = "" 1093 debug_vars = {
1090 debugstaticappend = "" 1094 "append": "",
1091 debugdir = "/.debug" 1095 "staticappend": "",
1092 debugstaticdir = "/.debug-static" 1096 "dir": "/.debug",
1093 debuglibdir = "" 1097 "staticdir": "/.debug-static",
1094 debugstaticlibdir = "" 1098 "libdir": "",
1095 debugsrcdir = "/usr/src/debug" 1099 "staticlibdir": "",
1100 "srcdir": "/usr/src/debug",
1101 }
1096 else: 1102 else:
1097 # Original OE-core, a.k.a. ".debug", style debug info 1103 # Original OE-core, a.k.a. ".debug", style debug info
1098 debugappend = "" 1104 debug_vars = {
1099 debugstaticappend = "" 1105 "append": "",
1100 debugdir = "/.debug" 1106 "staticappend": "",
1101 debugstaticdir = "/.debug-static" 1107 "dir": "/.debug",
1102 debuglibdir = "" 1108 "staticdir": "/.debug-static",
1103 debugstaticlibdir = "" 1109 "libdir": "",
1104 debugsrcdir = "/usr/src/debug" 1110 "staticlibdir": "",
1111 "srcdir": "/usr/src/debug",
1112 }
1105 1113
1106 return (debugappend, debugstaticappend, debugdir, debugstaticdir, 1114 return debug_vars
1107 debuglibdir, debugstaticlibdir, debugsrcdir)
1108 1115
1109python split_and_strip_files () { 1116python split_and_strip_files () {
1110 import stat, errno 1117 import stat, errno
@@ -1117,8 +1124,7 @@ python split_and_strip_files () {
1117 oldcwd = os.getcwd() 1124 oldcwd = os.getcwd()
1118 os.chdir(dvar) 1125 os.chdir(dvar)
1119 1126
1120 debugappend, debugstaticappend, debugdir, debugstaticdir, \ 1127 dv = package_debug_vars(d)
1121 debuglibdir, debugstaticlibdir, debugsrcdir = package_debug_vars(d)
1122 1128
1123 # 1129 #
1124 # First lets figure out all of the files we may have to process ... do this only once! 1130 # First lets figure out all of the files we may have to process ... do this only once!
@@ -1139,9 +1145,9 @@ python split_and_strip_files () {
1139 file = os.path.join(root, f) 1145 file = os.path.join(root, f)
1140 1146
1141 # Skip debug files 1147 # Skip debug files
1142 if debugappend and file.endswith(debugappend): 1148 if dv["append"] and file.endswith(dv["append"]):
1143 continue 1149 continue
1144 if debugdir and debugdir in os.path.dirname(file[len(dvar):]): 1150 if dv["dir"] and dv["dir"] in os.path.dirname(file[len(dvar):]):
1145 continue 1151 continue
1146 1152
1147 if file in skipfiles: 1153 if file in skipfiles:
@@ -1238,11 +1244,11 @@ python split_and_strip_files () {
1238 # First lets process debug splitting 1244 # First lets process debug splitting
1239 # 1245 #
1240 if (d.getVar('INHIBIT_PACKAGE_DEBUG_SPLIT') != '1'): 1246 if (d.getVar('INHIBIT_PACKAGE_DEBUG_SPLIT') != '1'):
1241 results = oe.utils.multiprocess_launch(splitdebuginfo, list(elffiles), d, extraargs=(dvar, debugdir, debuglibdir, debugappend, debugsrcdir, d)) 1247 results = oe.utils.multiprocess_launch(splitdebuginfo, list(elffiles), d, extraargs=(dvar, dv["dir"], dv["libdir"], dv["append"], dv["srcdir"], d))
1242 1248
1243 if debugsrcdir and not hostos.startswith("mingw"): 1249 if dv["srcdir"] and not hostos.startswith("mingw"):
1244 if (d.getVar('PACKAGE_DEBUG_STATIC_SPLIT') == '1'): 1250 if (d.getVar('PACKAGE_DEBUG_STATIC_SPLIT') == '1'):
1245 results = oe.utils.multiprocess_launch(splitstaticdebuginfo, staticlibs, d, extraargs=(dvar, debugstaticdir, debugstaticlibdir, debugstaticappend, debugsrcdir, d)) 1251 results = oe.utils.multiprocess_launch(splitstaticdebuginfo, staticlibs, d, extraargs=(dvar, dv["staticdir"], dv["staticlibdir"], dv["staticappend"], dv["srcdir"], d))
1246 else: 1252 else:
1247 for file in staticlibs: 1253 for file in staticlibs:
1248 results.append( (file,source_info(file, d)) ) 1254 results.append( (file,source_info(file, d)) )
@@ -1261,9 +1267,9 @@ python split_and_strip_files () {
1261 target = inodes[ref][0][len(dvar):] 1267 target = inodes[ref][0][len(dvar):]
1262 for file in inodes[ref][1:]: 1268 for file in inodes[ref][1:]:
1263 src = file[len(dvar):] 1269 src = file[len(dvar):]
1264 dest = debuglibdir + os.path.dirname(src) + debugdir + "/" + os.path.basename(target) + debugappend 1270 dest = dv["libdir"] + os.path.dirname(src) + dv["dir"] + "/" + os.path.basename(target) + dv["append"]
1265 fpath = dvar + dest 1271 fpath = dvar + dest
1266 ftarget = dvar + debuglibdir + os.path.dirname(target) + debugdir + "/" + os.path.basename(target) + debugappend 1272 ftarget = dvar + dv["libdir"] + os.path.dirname(target) + dv["dir"] + "/" + os.path.basename(target) + dv["append"]
1267 bb.utils.mkdirhier(os.path.dirname(fpath)) 1273 bb.utils.mkdirhier(os.path.dirname(fpath))
1268 # Only one hardlink of separated debug info file in each directory 1274 # Only one hardlink of separated debug info file in each directory
1269 if not os.access(fpath, os.R_OK): 1275 if not os.access(fpath, os.R_OK):
@@ -1273,7 +1279,7 @@ python split_and_strip_files () {
1273 # Create symlinks for all cases we were able to split symbols 1279 # Create symlinks for all cases we were able to split symbols
1274 for file in symlinks: 1280 for file in symlinks:
1275 src = file[len(dvar):] 1281 src = file[len(dvar):]
1276 dest = debuglibdir + os.path.dirname(src) + debugdir + "/" + os.path.basename(src) + debugappend 1282 dest = dv["libdir"] + os.path.dirname(src) + dv["dir"] + "/" + os.path.basename(src) + dv["append"]
1277 fpath = dvar + dest 1283 fpath = dvar + dest
1278 # Skip it if the target doesn't exist 1284 # Skip it if the target doesn't exist
1279 try: 1285 try:
@@ -1289,17 +1295,17 @@ python split_and_strip_files () {
1289 lbase = os.path.basename(ltarget) 1295 lbase = os.path.basename(ltarget)
1290 ftarget = "" 1296 ftarget = ""
1291 if lpath and lpath != ".": 1297 if lpath and lpath != ".":
1292 ftarget += lpath + debugdir + "/" 1298 ftarget += lpath + dv["dir"] + "/"
1293 ftarget += lbase + debugappend 1299 ftarget += lbase + dv["append"]
1294 if lpath.startswith(".."): 1300 if lpath.startswith(".."):
1295 ftarget = os.path.join("..", ftarget) 1301 ftarget = os.path.join("..", ftarget)
1296 bb.utils.mkdirhier(os.path.dirname(fpath)) 1302 bb.utils.mkdirhier(os.path.dirname(fpath))
1297 #bb.note("Symlink %s -> %s" % (fpath, ftarget)) 1303 #bb.note("Symlink %s -> %s" % (fpath, ftarget))
1298 os.symlink(ftarget, fpath) 1304 os.symlink(ftarget, fpath)
1299 1305
1300 # Process the debugsrcdir if requested... 1306 # Process the dv["srcdir"] if requested...
1301 # This copies and places the referenced sources for later debugging... 1307 # This copies and places the referenced sources for later debugging...
1302 copydebugsources(debugsrcdir, sources, d) 1308 copydebugsources(dv["srcdir"], sources, d)
1303 # 1309 #
1304 # End of debug splitting 1310 # End of debug splitting
1305 # 1311 #
@@ -1323,7 +1329,7 @@ python split_and_strip_files () {
1323 # Build "minidebuginfo" and reinject it back into the stripped binaries 1329 # Build "minidebuginfo" and reinject it back into the stripped binaries
1324 if d.getVar('PACKAGE_MINIDEBUGINFO') == '1': 1330 if d.getVar('PACKAGE_MINIDEBUGINFO') == '1':
1325 oe.utils.multiprocess_launch(inject_minidebuginfo, list(elffiles), d, 1331 oe.utils.multiprocess_launch(inject_minidebuginfo, list(elffiles), d,
1326 extraargs=(dvar, debugdir, debuglibdir, debugappend, debugsrcdir, d)) 1332 extraargs=(dvar, dv["dir"], dv["libdir"], dv["append"], dv["srcdir"], d))
1327 1333
1328 # 1334 #
1329 # End of strip 1335 # End of strip