Commit 0344223
authored
Make LLD work with clang18 (#379)
Clang [has custom
code](https://github.com/llvm/llvm-project/blob/1193f7d6487d2d94009f8d8d27da3907136482b9/clang/lib/Driver/ToolChains/Darwin.cpp#L358-L360)
to inject the `-platform_version` flag when invoking `lld`. [This takes
effect
](https://github.com/llvm/llvm-project/blob/1193f7d6487d2d94009f8d8d27da3907136482b9/clang/lib/Driver/ToolChain.cpp#L919-L920)when
we pass `-fuse-ld=lld`, which we currently don't do for `lld` because
want to point at the hermetic one. Switch to using `--ld-path` instead,
which is supported since Clang12.
The current structure relies on `sanitize_option` generating 1 option
per input, so I had to add the extra option check in the loop around it.
This is why LLD didn't work for me [when we first added this
support](#286 (comment)).
Kudos to @keith for the analysis above :)
I think we should follow-up soon and make LLD the default; that should
allow a lot of simplification1 parent 192cf04 commit 0344223
1 file changed
+4
-1
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
74 | 74 | | |
75 | 75 | | |
76 | 76 | | |
77 | | - | |
| 77 | + | |
78 | 78 | | |
79 | 79 | | |
80 | 80 | | |
| |||
88 | 88 | | |
89 | 89 | | |
90 | 90 | | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
91 | 94 | | |
92 | 95 | | |
93 | 96 | | |
| |||
0 commit comments