Page MenuHomePhabricator

[clang] [MinGW] Fix paths on Gentoo
Needs ReviewPublic

Authored by maharmstone on Oct 4 2021, 11:18 AM.

Details

Reviewers
mgorny
mstorsjo
Summary

There's code in clang/lib/Driver/ToolChains/Gnu.cpp for Clang to use Gentoo's include and lib paths, but this is missing for mingw, meaning that any C++ programs using the STL will fail to compile.

See https://bugs.gentoo.org/788430

Diff Detail

Event Timeline

maharmstone created this revision.Oct 4 2021, 11:18 AM
maharmstone requested review of this revision.Oct 4 2021, 11:18 AM
mstorsjo added a subscriber: cfe-commits.

(I’ll have a look and comment on the patch later.)

The change looks ok to me, but I think it'd be good to have a testcase for finding these paths (IIRC there are a bunch of simulated sysroots under clang/test/Driver).

The change looks ok to me, but I think it'd be good to have a testcase for finding these paths (IIRC there are a bunch of simulated sysroots under clang/test/Driver).

Seconded. There are already some Gentoo trees there, so it shouldn't be hard to add one more.

Added tests

I can't see that any of the lib paths are tested at all, though I may be missing something.

Looks ok to me - WDYT @mgorny?

Well, I dunno how MinGW works, so can't judge that part. Furthermore, I'm thoroughly confused why this works on top of existing (non-Gentoo?) test tree. Could you explain it a bit more?

Well, I dunno how MinGW works, so can't judge that part. Furthermore, I'm thoroughly confused why this works on top of existing (non-Gentoo?) test tree. Could you explain it a bit more?

It looks like the clang driver just blindly adds these directories to the list of include paths, regardless of whether they exist or not. So with the current test, they don't need to exist (but maybe it would be good to create such empty directories to make the test a bit more correct, in case the driver is modified to not add nonexistent directories blindly).

FYI @maharmstone the test needs to be rebased to fit on top of current git, after rG897c86dec5af2780d443edd852aa5911e2650ec6.