diff options
author | Simon Glass <sjg@chromium.org> | 2014-12-01 17:34:05 -0700 |
---|---|---|
committer | Simon Glass <sjg@chromium.org> | 2015-01-14 21:16:54 -0800 |
commit | 9b83bfdcb0baac4c2f986c600a2a7c2e946ad17c (patch) | |
tree | 2662f4af2f633ee98b95a4ddb11868c97a73a344 | |
parent | cc935295f24580a4cb7c869f489ea99273fb4f92 (diff) | |
download | u-boot-imx-9b83bfdcb0baac4c2f986c600a2a7c2e946ad17c.zip u-boot-imx-9b83bfdcb0baac4c2f986c600a2a7c2e946ad17c.tar.gz u-boot-imx-9b83bfdcb0baac4c2f986c600a2a7c2e946ad17c.tar.bz2 |
buildman: Allow architecture to alias to multiple toolchains
Some archs have need than one alias, so support a list of alises in the
..buildman file.
Signed-off-by: Simon Glass <sjg@chromium.org>
-rw-r--r-- | tools/buildman/README | 5 | ||||
-rw-r--r-- | tools/buildman/test.py | 15 | ||||
-rw-r--r-- | tools/buildman/toolchain.py | 8 |
3 files changed, 23 insertions, 5 deletions
diff --git a/tools/buildman/README b/tools/buildman/README index 865390a..849e6ca 100644 --- a/tools/buildman/README +++ b/tools/buildman/README @@ -701,8 +701,9 @@ a set of (tag, value) pairs. This converts toolchain architecture names to U-Boot names. For example, if an x86 toolchains is called i386-linux-gcc it will not normally be - used for architecture 'x86'. Adding 'x86: i386' to this section will - tell buildman that the i386 toolchain can be used for x86. + used for architecture 'x86'. Adding 'x86: i386 x86_64' to this section + will tell buildman that the i386 and x86_64 toolchains can be used for + the x86 architecture. '[make-flags]' section diff --git a/tools/buildman/test.py b/tools/buildman/test.py index d19f6ea..25be43f 100644 --- a/tools/buildman/test.py +++ b/tools/buildman/test.py @@ -394,5 +394,20 @@ class TestBuild(unittest.TestCase): build.commit_count = 0 self.CheckDirs(build, '') + def testToolchainAliases(self): + self.assertTrue(self.toolchains.Select('arm') != None) + with self.assertRaises(ValueError): + self.toolchains.Select('no-arch') + with self.assertRaises(ValueError): + self.toolchains.Select('x86') + + self.toolchains = toolchain.Toolchains() + self.toolchains.Add('x86_64-linux-gcc', test=False) + self.assertTrue(self.toolchains.Select('x86') != None) + + self.toolchains = toolchain.Toolchains() + self.toolchains.Add('i386-linux-gcc', test=False) + self.assertTrue(self.toolchains.Select('x86') != None) + if __name__ == "__main__": unittest.main() diff --git a/tools/buildman/toolchain.py b/tools/buildman/toolchain.py index cb693f4..ad4df8c 100644 --- a/tools/buildman/toolchain.py +++ b/tools/buildman/toolchain.py @@ -185,9 +185,11 @@ class Toolchains: returns: toolchain object, or None if none found """ - for name, value in bsettings.GetItems('toolchain-alias'): - if arch == name: - arch = value + for tag, value in bsettings.GetItems('toolchain-alias'): + if arch == tag: + for alias in value.split(): + if alias in self.toolchains: + return self.toolchains[alias] if not arch in self.toolchains: raise ValueError, ("No tool chain found for arch '%s'" % arch) |