Arthur Eubanks 578a4716f5 Reland [clang] Canonicalize system headers in dependency file when -canonical-prefixes
Clang was writing paths to the dependency file that don't exist when using a sysroot with symlinks, causing everything to get rebuilt every time. This is reproducible on Linux by creating a symlink to '/', using that as the sysroot, and trying to build something with ninja that includes the C++ stdlib (e.g. a typical build of LLVM).

This fixes https://github.com/ninja-build/ninja/issues/1330 and somewhat matches gcc.

gcc canonicalizes system headers in dependency files under a -f[no-]canonical-system-headers, but it makes more sense to look at -canonical-prefixes.

D37954 was a previous attempt at this.

Fixed use of %T instead of %t in test, causing bots to fail the test on the initial commit.

Reviewed By: hans

Differential Revision: https://reviews.llvm.org/D149187
2023-05-01 12:44:52 -07:00
..
2022-06-07 06:42:35 -07:00
2022-09-08 01:39:06 -07:00
2022-08-31 10:31:45 -07:00
2022-08-04 16:54:19 -07:00
2022-08-05 16:27:17 -07:00
2022-09-20 13:32:40 -07:00
2022-09-15 19:58:42 -07:00
2023-03-09 21:41:58 -05:00
2021-04-27 13:19:17 -07:00
O.c
2023-03-23 13:52:38 -07:00
2022-05-25 06:48:21 -07:00
2021-05-15 10:22:49 -07:00
2022-04-21 19:58:22 +02:00
2023-02-13 17:25:45 +00:00
2022-12-23 15:34:06 +01:00
2023-01-05 20:27:32 +08:00