diff options
Diffstat (limited to 'meta')
-rw-r--r-- | meta/lib/oe/sstatesig.py | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/meta/lib/oe/sstatesig.py b/meta/lib/oe/sstatesig.py index a76a031ba2..8d930134c9 100644 --- a/meta/lib/oe/sstatesig.py +++ b/meta/lib/oe/sstatesig.py | |||
@@ -254,9 +254,6 @@ def find_siginfo(pn, taskname, taskhashlist, d): | |||
254 | import fnmatch | 254 | import fnmatch |
255 | import glob | 255 | import glob |
256 | 256 | ||
257 | if taskhashlist: | ||
258 | hashfiles = {} | ||
259 | |||
260 | if not taskname: | 257 | if not taskname: |
261 | # We have to derive pn and taskname | 258 | # We have to derive pn and taskname |
262 | key = pn | 259 | key = pn |
@@ -266,8 +263,15 @@ def find_siginfo(pn, taskname, taskhashlist, d): | |||
266 | if key.startswith('virtual:native:'): | 263 | if key.startswith('virtual:native:'): |
267 | pn = pn + '-native' | 264 | pn = pn + '-native' |
268 | 265 | ||
266 | hashfiles = {} | ||
269 | filedates = {} | 267 | filedates = {} |
270 | 268 | ||
269 | def get_hashval(siginfo): | ||
270 | if siginfo.endswith('.siginfo'): | ||
271 | return siginfo.rpartition(':')[2].partition('_')[0] | ||
272 | else: | ||
273 | return siginfo.rpartition('.')[2] | ||
274 | |||
271 | # First search in stamps dir | 275 | # First search in stamps dir |
272 | localdata = d.createCopy() | 276 | localdata = d.createCopy() |
273 | localdata.setVar('MULTIMACH_TARGET_SYS', '*') | 277 | localdata.setVar('MULTIMACH_TARGET_SYS', '*') |
@@ -297,6 +301,8 @@ def find_siginfo(pn, taskname, taskhashlist, d): | |||
297 | filedates[fullpath] = os.stat(fullpath).st_mtime | 301 | filedates[fullpath] = os.stat(fullpath).st_mtime |
298 | except OSError: | 302 | except OSError: |
299 | continue | 303 | continue |
304 | hashval = get_hashval(fullpath) | ||
305 | hashfiles[hashval] = fullpath | ||
300 | 306 | ||
301 | if not taskhashlist or (len(filedates) < 2 and not foundall): | 307 | if not taskhashlist or (len(filedates) < 2 and not foundall): |
302 | # That didn't work, look in sstate-cache | 308 | # That didn't work, look in sstate-cache |
@@ -320,9 +326,11 @@ def find_siginfo(pn, taskname, taskhashlist, d): | |||
320 | 326 | ||
321 | matchedfiles = glob.glob(filespec) | 327 | matchedfiles = glob.glob(filespec) |
322 | for fullpath in matchedfiles: | 328 | for fullpath in matchedfiles: |
323 | if taskhashlist: | 329 | actual_hashval = get_hashval(fullpath) |
324 | hashfiles[hashval] = fullpath | 330 | if actual_hashval in hashfiles: |
325 | else: | 331 | continue |
332 | hashfiles[hashval] = fullpath | ||
333 | if not taskhashlist: | ||
326 | try: | 334 | try: |
327 | filedates[fullpath] = os.stat(fullpath).st_mtime | 335 | filedates[fullpath] = os.stat(fullpath).st_mtime |
328 | except: | 336 | except: |