diff options
author | Bob Wilson <bob.wilson@apple.com> | 2011-09-20 22:00:38 +0000 |
---|---|---|
committer | Bob Wilson <bob.wilson@apple.com> | 2011-09-20 22:00:38 +0000 |
commit | 3e42bc55db0c3ffba5ee7085529944934be2993d (patch) | |
tree | 9552f7215550fa5f6214a4c88ce73332e14e068d /clang/lib/Driver/ToolChains.cpp | |
parent | 60aa85b672fcf58e340be64c9d01b212855f6ddb (diff) | |
download | bcm5719-llvm-3e42bc55db0c3ffba5ee7085529944934be2993d.tar.gz bcm5719-llvm-3e42bc55db0c3ffba5ee7085529944934be2993d.zip |
For i386 kext fallback to llvm-gcc, search paths for several Darwin versions.
This replaces the hack to read UNAME_RELEASE from the environment when
identifying the OS version on Darwin, and it's more flexible. It's also
horribly ugly, but at least this consolidates the ugliness to touch less of
the code so that it will be easier to rip out later.
llvm-svn: 140187
Diffstat (limited to 'clang/lib/Driver/ToolChains.cpp')
-rw-r--r-- | clang/lib/Driver/ToolChains.cpp | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/clang/lib/Driver/ToolChains.cpp b/clang/lib/Driver/ToolChains.cpp index 5ed9dc89703..92c3ec9539b 100644 --- a/clang/lib/Driver/ToolChains.cpp +++ b/clang/lib/Driver/ToolChains.cpp @@ -276,8 +276,6 @@ Tool &Darwin::SelectTool(const Compilation &C, const JobAction &JA, DarwinClang::DarwinClang(const HostInfo &Host, const llvm::Triple& Triple) : Darwin(Host, Triple) { - std::string UsrPrefix = "llvm-gcc-4.2/"; - getProgramPaths().push_back(getDriver().getInstalledDir()); if (getDriver().getInstalledDir() != getDriver().Dir) getProgramPaths().push_back(getDriver().Dir); @@ -290,16 +288,24 @@ DarwinClang::DarwinClang(const HostInfo &Host, const llvm::Triple& Triple) // For fallback, we need to know how to find the GCC cc1 executables, so we // also add the GCC libexec paths. This is legacy code that can be removed // once fallback is no longer useful. + AddGCCLibexecPath(DarwinVersion[0]); + AddGCCLibexecPath(DarwinVersion[0] - 2); + AddGCCLibexecPath(DarwinVersion[0] - 1); + AddGCCLibexecPath(DarwinVersion[0] + 1); + AddGCCLibexecPath(DarwinVersion[0] + 2); +} + +void DarwinClang::AddGCCLibexecPath(unsigned darwinVersion) { std::string ToolChainDir = "i686-apple-darwin"; - ToolChainDir += llvm::utostr(DarwinVersion[0]); + ToolChainDir += llvm::utostr(darwinVersion); ToolChainDir += "/4.2.1"; std::string Path = getDriver().Dir; - Path += "/../" + UsrPrefix + "libexec/gcc/"; + Path += "/../llvm-gcc-4.2/libexec/gcc/"; Path += ToolChainDir; getProgramPaths().push_back(Path); - Path = "/usr/" + UsrPrefix + "libexec/gcc/"; + Path = "/usr/llvm-gcc-4.2/libexec/gcc/"; Path += ToolChainDir; getProgramPaths().push_back(Path); } |