buildman: Avoid overwriting existing toolchain entries
authorSimon Glass <sjg@chromium.org>
Thu, 28 Jul 2016 02:33:05 +0000 (20:33 -0600)
committerSimon Glass <sjg@chromium.org>
Mon, 1 Aug 2016 01:37:08 +0000 (19:37 -0600)
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>
tools/buildman/toolchain.py

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