diff options
Diffstat (limited to 'bitbake/lib/bb/build.py')
| -rw-r--r-- | bitbake/lib/bb/build.py | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/bitbake/lib/bb/build.py b/bitbake/lib/bb/build.py index 30e5497d1d..1e041a2a3e 100644 --- a/bitbake/lib/bb/build.py +++ b/bitbake/lib/bb/build.py | |||
| @@ -91,8 +91,9 @@ class TaskSucceeded(TaskBase): | |||
| 91 | class TaskFailed(TaskBase): | 91 | class TaskFailed(TaskBase): |
| 92 | """Task execution failed""" | 92 | """Task execution failed""" |
| 93 | 93 | ||
| 94 | def __init__(self, task, logfile, metadata): | 94 | def __init__(self, task, logfile, metadata, errprinted = False): |
| 95 | self.logfile = logfile | 95 | self.logfile = logfile |
| 96 | self.errprinted = errprinted | ||
| 96 | super(TaskFailed, self).__init__(task, metadata) | 97 | super(TaskFailed, self).__init__(task, metadata) |
| 97 | 98 | ||
| 98 | class TaskInvalid(TaskBase): | 99 | class TaskInvalid(TaskBase): |
| @@ -286,6 +287,13 @@ def _exec_task(fn, task, d, quieterr): | |||
| 286 | prefuncs = localdata.getVarFlag(task, 'prefuncs', expand=True) | 287 | prefuncs = localdata.getVarFlag(task, 'prefuncs', expand=True) |
| 287 | postfuncs = localdata.getVarFlag(task, 'postfuncs', expand=True) | 288 | postfuncs = localdata.getVarFlag(task, 'postfuncs', expand=True) |
| 288 | 289 | ||
| 290 | class ErrorCheckHandler(logging.Handler): | ||
| 291 | def __init__(self): | ||
| 292 | self.triggered = False | ||
| 293 | logging.Handler.__init__(self, logging.ERROR) | ||
| 294 | def emit(self, record): | ||
| 295 | self.triggered = True | ||
| 296 | |||
| 289 | # Handle logfiles | 297 | # Handle logfiles |
| 290 | si = file('/dev/null', 'r') | 298 | si = file('/dev/null', 'r') |
| 291 | try: | 299 | try: |
| @@ -311,6 +319,9 @@ def _exec_task(fn, task, d, quieterr): | |||
| 311 | handler.setLevel(logging.DEBUG - 2) | 319 | handler.setLevel(logging.DEBUG - 2) |
| 312 | bblogger.addHandler(handler) | 320 | bblogger.addHandler(handler) |
| 313 | 321 | ||
| 322 | errchk = ErrorCheckHandler() | ||
| 323 | bblogger.addHandler(errchk) | ||
| 324 | |||
| 314 | localdata.setVar('BB_LOGFILE', logfn) | 325 | localdata.setVar('BB_LOGFILE', logfn) |
| 315 | 326 | ||
| 316 | event.fire(TaskStarted(task, localdata), localdata) | 327 | event.fire(TaskStarted(task, localdata), localdata) |
| @@ -322,8 +333,9 @@ def _exec_task(fn, task, d, quieterr): | |||
| 322 | exec_func(func, localdata) | 333 | exec_func(func, localdata) |
| 323 | except FuncFailed as exc: | 334 | except FuncFailed as exc: |
| 324 | if not quieterr: | 335 | if not quieterr: |
| 336 | errprinted = errchk.triggered | ||
| 325 | logger.error(str(exc)) | 337 | logger.error(str(exc)) |
| 326 | event.fire(TaskFailed(task, logfn, localdata), localdata) | 338 | event.fire(TaskFailed(task, logfn, localdata, errprinted), localdata) |
| 327 | return 1 | 339 | return 1 |
| 328 | finally: | 340 | finally: |
| 329 | sys.stdout.flush() | 341 | sys.stdout.flush() |
| @@ -366,7 +378,7 @@ def exec_task(fn, task, d): | |||
| 366 | if not quieterr: | 378 | if not quieterr: |
| 367 | logger.error("Build of %s failed" % (task)) | 379 | logger.error("Build of %s failed" % (task)) |
| 368 | logger.error(format_exc()) | 380 | logger.error(format_exc()) |
| 369 | failedevent = TaskFailed(task, None, d) | 381 | failedevent = TaskFailed(task, None, d, True) |
| 370 | event.fire(failedevent, d) | 382 | event.fire(failedevent, d) |
| 371 | return 1 | 383 | return 1 |
| 372 | 384 | ||
