diff options
| -rw-r--r-- | meta/classes/package.bbclass | 96 |
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 | ||
| 1109 | python split_and_strip_files () { | 1116 | python 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 |
