From 78d8a089c8f124ba6f47bb37e2c4a36986f60e23 Mon Sep 17 00:00:00 2001 From: Daniel Dunbar Date: Wed, 1 Apr 2009 23:34:41 +0000 Subject: [PATCH] Driver: Allow -ccc-gcc-name to specify the name/path to use when calling gcc in generic configurations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68260 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/clang/Driver/Driver.h | 3 +++ lib/Driver/Driver.cpp | 7 ++++++- lib/Driver/Tools.cpp | 4 +++- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/include/clang/Driver/Driver.h b/include/clang/Driver/Driver.h index 2843c2b317..8c6c9f33fc 100644 --- a/include/clang/Driver/Driver.h +++ b/include/clang/Driver/Driver.h @@ -78,6 +78,9 @@ public: /// Only print tool bindings, don't build any jobs. bool CCCPrintBindings : 1; + /// Name to use when calling the generic gcc. + std::string CCCGenericGCCName; + private: /// Use the clang compiler where possible. bool CCCUseClang : 1; diff --git a/lib/Driver/Driver.cpp b/lib/Driver/Driver.cpp index b59768d1d0..6cb554a15f 100644 --- a/lib/Driver/Driver.cpp +++ b/lib/Driver/Driver.cpp @@ -44,7 +44,8 @@ Driver::Driver(const char *_Name, const char *_Dir, DefaultImageName(_DefaultImageName), Host(0), CCCIsCXX(false), CCCEcho(false), CCCPrintBindings(false), - CCCUseClang(true), CCCUseClangCXX(false), CCCUseClangCPP(true), + CCCGenericGCCName("gcc"), CCCUseClang(true), CCCUseClangCXX(false), + CCCUseClangCPP(true), SuppressMissingInputWarning(false) { // Only use clang on i386 and x86_64 by default. @@ -137,6 +138,10 @@ Compilation *Driver::BuildCompilation(int argc, const char **argv) { } else if (!strcmp(Opt, "echo")) { CCCEcho = true; + } else if (!strcmp(Opt, "gcc-name")) { + assert(Start+1 < End && "FIXME: -ccc- argument handling."); + CCCGenericGCCName = *++Start; + } else if (!strcmp(Opt, "clang-cxx")) { CCCUseClangCXX = true; } else if (!strcmp(Opt, "no-clang")) { diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp index b8c07cc7a7..ab8caf69da 100644 --- a/lib/Driver/Tools.cpp +++ b/lib/Driver/Tools.cpp @@ -500,8 +500,10 @@ void gcc::Common::ConstructJob(Compilation &C, const JobAction &JA, II.getInputArg().render(Args, CmdArgs); } + const char *GCCName = + getToolChain().getHost().getDriver().CCCGenericGCCName.c_str(); const char *Exec = - Args.MakeArgString(getToolChain().GetProgramPath(C, "gcc").c_str()); + Args.MakeArgString(getToolChain().GetProgramPath(C, GCCName).c_str()); Dest.addCommand(new Command(Exec, CmdArgs)); } -- 2.40.0