diff options
author | Wenzong Fan <wenzong.fan@windriver.com> | 2012-07-11 11:28:11 +0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2012-07-11 15:55:25 +0100 |
commit | 6a210e88b73be40c433b350929a1128a39f2080b (patch) | |
tree | 96fa46bed9649aae52f1f5a4714b4306f42bd283 | |
parent | 311550149a107243040040fcc32610f6617793c1 (diff) | |
download | ast2050-yocto-poky-6a210e88b73be40c433b350929a1128a39f2080b.zip ast2050-yocto-poky-6a210e88b73be40c433b350929a1128a39f2080b.tar.gz |
bitbake: bitbake: Abort build if runtime dependency conflict
Currently if there are multiple preferred providers available for
a runtime dependency, bitbake will print an Error message and let
the build go on. Anyways the build should abort while any Errors
occured.
[YOCTO #2734]
(Bitbake rev: 5f81a714f4fca785780bef555b419f0250e5ec1c)
Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-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 bd729df..24cb217 100644 --- a/bitbake/lib/bb/providers.py +++ b/bitbake/lib/bb/providers.py @@ -35,6 +35,8 @@ class NoProvider(bb.BBHandledException): class NoRProvider(bb.BBHandledException): """Exception raised when no provider of a runtime dependency can be found""" +class MultipleRProvider(bb.BBHandledException): + """Exception raised when multiple providers of a runtime dependency can be found""" def findProviders(cfgData, dataCache, pkg_pn = None): """ diff --git a/bitbake/lib/bb/taskdata.py b/bitbake/lib/bb/taskdata.py index 55cdde5..aed3a16 100644 --- a/bitbake/lib/bb/taskdata.py +++ b/bitbake/lib/bb/taskdata.py @@ -482,6 +482,7 @@ class TaskData: providers_list.append(dataCache.pkg_fn[fn]) bb.event.fire(bb.event.MultipleProviders(item, providers_list, runtime=True), cfgData) self.consider_msgs_cache.append(item) + raise bb.providers.MultipleRProvider(item) # run through the list until we find one that we can build for fn in eligible: @@ -580,7 +581,7 @@ class TaskData: try: self.add_rprovider(cfgData, dataCache, target) added = added + 1 - except bb.providers.NoRProvider: + except (bb.providers.NoRProvider, bb.providers.MultipleRProvider): self.remove_runtarget(self.getrun_id(target)) logger.debug(1, "Resolved " + str(added) + " extra dependencies") if added == 0: |