[PATCH] D140224: [Driver] Revert D139717 and add -Xparser instead

Davide Italiano via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Dec 22 15:28:46 PST 2022


davide added a comment.

In D140224#4014256 <https://reviews.llvm.org/D140224#4014256>, @MaskRay wrote:

> In D140224#4014243 <https://reviews.llvm.org/D140224#4014243>, @rsundahl wrote:
>
>>> I'll reject [-\Xparser for a while as well. This is a valid amendment to D139717 <https://reviews.llvm.org/D139717> , so I don't think it needs more approval.
>>
>> We have projects that are failing because of -Xlinker and I'm not too excited about walking through every project we have to find more examples. Can we please have a reprieve on deprecating this until every project in the world that uses these flags that have existed for a very long time can have a chance to at least get timely notification? Why is this any different than anything else that gets deprecated?
>
> Thank you for your reply! If there are more issues -Xlinker/-Xparser/-Xcctests, ok, I think I'm fine with a Joined -X, but ideally we can figure out a way to apply that only to Apple platforms.
>
> (FWIW I feel sad when I made valid objection to D139717 <https://reviews.llvm.org/D139717>, but that patch landed very soon after your colleague approved it, leaving me no time to object.
> My other objection included the insufficient commit message `-Xfoo` instead of what's actually used, `internal builds` which seems to hint an internal workaround, where the tests are located)

It's not an internal workaround.

In D140224#4014291 <https://reviews.llvm.org/D140224#4014291>, @MaskRay wrote:

> In D140224#4014246 <https://reviews.llvm.org/D140224#4014246>, @davide wrote:
>
>> In D140224#4014245 <https://reviews.llvm.org/D140224#4014245>, @MaskRay wrote:
>>
>>> In D140224#4014234 <https://reviews.llvm.org/D140224#4014234>, @davide wrote:
>>>
>>>> In D140224#4014230 <https://reviews.llvm.org/D140224#4014230>, @MaskRay wrote:
>>>>
>>>>> In D140224#4014203 <https://reviews.llvm.org/D140224#4014203>, @davide wrote:
>>>>>
>>>>>> @MaskRay Roy hasn't replied. We found other spellings that break (e.g. `-Xcctests` or something). Revert this patch until we find an agreement.
>>>>>
>>>>> D139717 <https://reviews.llvm.org/D139717> (this patch reverts) was pushed when I made valid comments which were ignored. I did not complain for that.
>>>>>
>>>>> I don't mind if you work around `-Xcctests` in a similar way.
>>>>
>>>> Working around 3 cases creates more complexity than it fixes.
>>>> We're also not providing a deprecation path for users. This needs to be discussed more thoroughly. I'll go ahead and revert to the previous status.
>>>>
>>>> Thanks.
>>>
>>> Have you seen https://reviews.llvm.org/D139717#4001712 I have analyzed that such `-X*` has `-Wunused-command-line-argument` warning for many many years.
>>> I'm not sure how is considered insufficient.
>>>
>>> "Working around 3 cases creates more complexity than it fixes." the number isn't that high. By enumerating the misuse, we have a valid path to remove all workarounds as misuses are fixed.
>>> This made some forward progress.
>>
>> You can't just remove options willy-nilly. This is not how drivers work. The warning says "unused", it doesn't say "it goes away".
>> If we want to provide a path forward, we first need to reinstate this, then change the warning, then remove (in 1 year or something).
>> That's how transitions work.
>>
>> HTH.
>
> I almost agree with you, but only for actually-used options which do real work instead of ignored options.
> If it is pure compatibility option, I wish that there is public references instead of pure internal build uses.
> For Joined `-X` I am unsure I want to take your opinion.
>
> Neither sourcegraph nor search/Debian Code Search shows anything about `-Xcctests`.

Debian code search and source graphs aren't the universe. There's a lot of code in the world that doesn't get published for a variety of reasons.
The gain of this change is very little compared to the pain introduced. Let's give people a window where they can transition, then screw them over. not the other way around.

Best,

-

D

> Separate `-Xlinker ` still exists: not removed by this patch. `-Xlinker=` is invalid. Note that many references on a code search website reveal libtool uses instead of compiler driver uses.
> If your internal build uses many `-X*` forms, I am fine with ignoring them. If there are so many that you want to ignore `-X*`, I think I am fine as well, but ideally restricted to Apple platforms (ideally show some external usage examples).




Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D140224/new/

https://reviews.llvm.org/D140224



More information about the cfe-commits mailing list