r300555 - Driver: Better detection of mingw-gcc
Alex L via cfe-commits
cfe-commits at lists.llvm.org
Tue Apr 18 08:02:19 PDT 2017
No problem, thanks for the quick update!
On 18 April 2017 at 15:56, Martell Malone <martellmalone at gmail.com> wrote:
> Yes I do :)
> I updated https://reviews.llvm.org/D15005 with a comment incase anyone
> goes there.
> I also updated https://reviews.llvm.org/D15006 (the correct link) to
> point to the commit revision.
>
> Thanks for pointing that out Alex
>
> On Tue, Apr 18, 2017 at 3:49 PM, Alex L <arphaman at gmail.com> wrote:
>
>> I think you've got the wrong Phabricator link in the commit log.
>>
>> On 18 April 2017 at 15:27, Martell Malone via cfe-commits <
>> cfe-commits at lists.llvm.org> wrote:
>>
>>> Author: martell
>>> Date: Tue Apr 18 09:27:36 2017
>>> New Revision: 300555
>>>
>>> URL: http://llvm.org/viewvc/llvm-project?rev=300555&view=rev
>>> Log:
>>> Driver: Better detection of mingw-gcc
>>>
>>> Stop blindly searching for "gcc.exe" on windows.
>>> Stop assuming "/usr" on unix, fixes cross compiling.
>>>
>>> Reviewers: mati865, yaron.keren
>>>
>>> Subscribers: ismail, rnk
>>>
>>> Differential revision: https://reviews.llvm.org/D15005
>>>
>>> Modified:
>>> cfe/trunk/lib/Driver/ToolChains/MinGW.cpp
>>> cfe/trunk/lib/Driver/ToolChains/MinGW.h
>>>
>>> Modified: cfe/trunk/lib/Driver/ToolChains/MinGW.cpp
>>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Too
>>> lChains/MinGW.cpp?rev=300555&r1=300554&r2=300555&view=diff
>>> ============================================================
>>> ==================
>>> --- cfe/trunk/lib/Driver/ToolChains/MinGW.cpp (original)
>>> +++ cfe/trunk/lib/Driver/ToolChains/MinGW.cpp Tue Apr 18 09:27:36 2017
>>> @@ -285,28 +285,30 @@ void toolchains::MinGW::findGccLibDir()
>>> }
>>> }
>>>
>>> +llvm::ErrorOr<std::string> toolchains::MinGW::findGcc() {
>>> + llvm::SmallVector<llvm::SmallString<32>, 2> Gccs;
>>> + Gccs.emplace_back(getTriple().getArchName());
>>> + Gccs[0] += "-w64-mingw32-gcc";
>>> + Gccs.emplace_back("mingw32-gcc");
>>> + // Please do not add "gcc" here
>>> + for (StringRef CandidateGcc : Gccs)
>>> + if (llvm::ErrorOr<std::string> GPPName =
>>> llvm::sys::findProgramByName(CandidateGcc))
>>> + return GPPName;
>>> + return make_error_code(std::errc::no_such_file_or_directory);
>>> +}
>>> +
>>> toolchains::MinGW::MinGW(const Driver &D, const llvm::Triple &Triple,
>>> const ArgList &Args)
>>> : ToolChain(D, Triple, Args), CudaInstallation(D, Triple, Args) {
>>> getProgramPaths().push_back(getDriver().getInstalledDir());
>>>
>>> -// In Windows there aren't any standard install locations, we search
>>> -// for gcc on the PATH. In Linux the base is always /usr.
>>> -#ifdef LLVM_ON_WIN32
>>> if (getDriver().SysRoot.size())
>>> Base = getDriver().SysRoot;
>>> - else if (llvm::ErrorOr<std::string> GPPName =
>>> - llvm::sys::findProgramByName("gcc"))
>>> + else if (llvm::ErrorOr<std::string> GPPName = findGcc())
>>> Base = llvm::sys::path::parent_path(
>>> llvm::sys::path::parent_path(GPPName.get()));
>>> else
>>> Base = llvm::sys::path::parent_path(getDriver().getInstalledDir());
>>> -#else
>>> - if (getDriver().SysRoot.size())
>>> - Base = getDriver().SysRoot;
>>> - else
>>> - Base = "/usr";
>>> -#endif
>>>
>>> Base += llvm::sys::path::get_separator();
>>> findGccLibDir();
>>>
>>> Modified: cfe/trunk/lib/Driver/ToolChains/MinGW.h
>>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Too
>>> lChains/MinGW.h?rev=300555&r1=300554&r2=300555&view=diff
>>> ============================================================
>>> ==================
>>> --- cfe/trunk/lib/Driver/ToolChains/MinGW.h (original)
>>> +++ cfe/trunk/lib/Driver/ToolChains/MinGW.h Tue Apr 18 09:27:36 2017
>>> @@ -93,6 +93,7 @@ private:
>>> mutable std::unique_ptr<tools::gcc::Preprocessor> Preprocessor;
>>> mutable std::unique_ptr<tools::gcc::Compiler> Compiler;
>>> void findGccLibDir();
>>> + llvm::ErrorOr<std::string> findGcc();
>>> };
>>>
>>> } // end namespace toolchains
>>>
>>>
>>> _______________________________________________
>>> cfe-commits mailing list
>>> cfe-commits at lists.llvm.org
>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
>>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20170418/0184c8b6/attachment-0001.html>
More information about the cfe-commits
mailing list