buildman: Avoid overwriting existing toolchain entries

The current code for setting up the toolchain config always writes the new
paths to an item called 'toolchain'. This means that it will overwrite any
existing toolchain item with the same name. In practice, this means that:

   buildman --fetch-arch all

will fetch all toolchains, but only the path of the final one will be added
to the config. This normally works out OK, since most toolchains are the
same version (e.g. gcc 4.9) and will be found on the same path. But it is
not correct and toolchains for archs which don't use the same version will
not function as expected.

Adjust the code to use a complete glob of the toolchain path.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
This commit is contained in:
Simon Glass 2016-07-27 20:33:05 -06:00
parent 7e92e46e63
commit c8785c5b49

View File

@ -553,6 +553,5 @@ class Toolchains:
if not self.TestSettingsHasPath(dirpath): if not self.TestSettingsHasPath(dirpath):
print ("Adding 'download' to config file '%s'" % print ("Adding 'download' to config file '%s'" %
bsettings.config_fname) bsettings.config_fname)
tools_dir = os.path.dirname(dirpath) bsettings.SetItem('toolchain', 'download', '%s/*/*' % dest)
bsettings.SetItem('toolchain', 'download', '%s/*' % tools_dir)
return 0 return 0