diff options
author | Daniel Dunbar <daniel@zuster.org> | 2009-01-13 04:05:40 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2009-01-13 04:05:40 +0000 |
commit | 8af0d3447e3b1bb815b34025f6befd922694bdaf (patch) | |
tree | 82a22e9b7701aee2ccfb0afe1d39b21292db39e8 | |
parent | f343168f1fa2a7d2d26dd405704eab98684a4b03 (diff) | |
download | bcm5719-llvm-8af0d3447e3b1bb815b34025f6befd922694bdaf.tar.gz bcm5719-llvm-8af0d3447e3b1bb815b34025f6befd922694bdaf.zip |
ccc: Allow host to over-ride default arch based on command line
arguments (e.g., -m32 and -m64).
llvm-svn: 62145
-rw-r--r-- | clang/tools/ccc/ccclib/Driver.py | 2 | ||||
-rw-r--r-- | clang/tools/ccc/ccclib/HostInfo.py | 20 |
2 files changed, 15 insertions, 7 deletions
diff --git a/clang/tools/ccc/ccclib/Driver.py b/clang/tools/ccc/ccclib/Driver.py index 1685f0b93a4..46b4541fc41 100644 --- a/clang/tools/ccc/ccclib/Driver.py +++ b/clang/tools/ccc/ccclib/Driver.py @@ -466,7 +466,7 @@ class Driver(object): hasDashM = arg if not archs: - archs.append(args.makeSeparateArg(self.hostInfo.getArchName(), + archs.append(args.makeSeparateArg(self.hostInfo.getArchName(args), self.parser.archOption)) actions = self.buildNormalPipeline(args) diff --git a/clang/tools/ccc/ccclib/HostInfo.py b/clang/tools/ccc/ccclib/HostInfo.py index 12fdfef404a..d976138eec0 100644 --- a/clang/tools/ccc/ccclib/HostInfo.py +++ b/clang/tools/ccc/ccclib/HostInfo.py @@ -8,7 +8,7 @@ class HostInfo(object): def __init__(self, driver): self.driver = driver - def getArchName(self): + def getArchName(self, args): abstract def useDriverDriver(self): @@ -38,7 +38,7 @@ class DarwinHostInfo(HostInfo): return True def getToolChain(self): - return self.getToolChainForArch(self.getArchName()) + return self.getToolChainForArch(self.getArchName(None)) def getToolChainForArch(self, arch): if arch in ('i386', 'x86_64'): @@ -49,19 +49,27 @@ class DarwinHostInfo(HostInfo): return ToolChain.Generic_GCC_ToolChain(self.driver) class DarwinPPCHostInfo(DarwinHostInfo): - def getArchName(self): + def getArchName(self, args): + if args and args.getLastArg(args.parser.m_64Option): + return 'ppc64' return 'ppc' class DarwinPPC_64HostInfo(DarwinHostInfo): - def getArchName(self): + def getArchName(self, args): + if args and args.getLastArg(args.parser.m_32Option): + return 'ppc' return 'ppc64' class DarwinX86HostInfo(DarwinHostInfo): - def getArchName(self): + def getArchName(self, args): + if args and args.getLastArg(args.parser.m_64Option): + return 'x86_64' return 'i386' class DarwinX86_64HostInfo(DarwinHostInfo): - def getArchName(self): + def getArchName(self, args): + if args and args.getLastArg(args.parser.m_32Option): + return 'i386' return 'x86_64' def getDarwinHostInfo(driver): |