diff options
| -rw-r--r-- | bitbake/lib/bb/providers.py | 2 | ||||
| -rw-r--r-- | bitbake/lib/bb/taskdata.py | 3 |
2 files changed, 4 insertions, 1 deletions
diff --git a/bitbake/lib/bb/providers.py b/bitbake/lib/bb/providers.py index bd729df93d..24cb217edf 100644 --- a/bitbake/lib/bb/providers.py +++ b/bitbake/lib/bb/providers.py | |||
| @@ -35,6 +35,8 @@ class NoProvider(bb.BBHandledException): | |||
| 35 | class NoRProvider(bb.BBHandledException): | 35 | class NoRProvider(bb.BBHandledException): |
| 36 | """Exception raised when no provider of a runtime dependency can be found""" | 36 | """Exception raised when no provider of a runtime dependency can be found""" |
| 37 | 37 | ||
| 38 | class MultipleRProvider(bb.BBHandledException): | ||
| 39 | """Exception raised when multiple providers of a runtime dependency can be found""" | ||
| 38 | 40 | ||
| 39 | def findProviders(cfgData, dataCache, pkg_pn = None): | 41 | def findProviders(cfgData, dataCache, pkg_pn = None): |
| 40 | """ | 42 | """ |
diff --git a/bitbake/lib/bb/taskdata.py b/bitbake/lib/bb/taskdata.py index 55cdde553b..aed3a1638d 100644 --- a/bitbake/lib/bb/taskdata.py +++ b/bitbake/lib/bb/taskdata.py | |||
| @@ -482,6 +482,7 @@ class TaskData: | |||
| 482 | providers_list.append(dataCache.pkg_fn[fn]) | 482 | providers_list.append(dataCache.pkg_fn[fn]) |
| 483 | bb.event.fire(bb.event.MultipleProviders(item, providers_list, runtime=True), cfgData) | 483 | bb.event.fire(bb.event.MultipleProviders(item, providers_list, runtime=True), cfgData) |
| 484 | self.consider_msgs_cache.append(item) | 484 | self.consider_msgs_cache.append(item) |
| 485 | raise bb.providers.MultipleRProvider(item) | ||
| 485 | 486 | ||
| 486 | # run through the list until we find one that we can build | 487 | # run through the list until we find one that we can build |
| 487 | for fn in eligible: | 488 | for fn in eligible: |
| @@ -580,7 +581,7 @@ class TaskData: | |||
| 580 | try: | 581 | try: |
| 581 | self.add_rprovider(cfgData, dataCache, target) | 582 | self.add_rprovider(cfgData, dataCache, target) |
| 582 | added = added + 1 | 583 | added = added + 1 |
| 583 | except bb.providers.NoRProvider: | 584 | except (bb.providers.NoRProvider, bb.providers.MultipleRProvider): |
| 584 | self.remove_runtarget(self.getrun_id(target)) | 585 | self.remove_runtarget(self.getrun_id(target)) |
| 585 | logger.debug(1, "Resolved " + str(added) + " extra dependencies") | 586 | logger.debug(1, "Resolved " + str(added) + " extra dependencies") |
| 586 | if added == 0: | 587 | if added == 0: |
