[PATCH] arm64: Work around broken GCC handling of "S" constraint

Robin Murphy robin.murphy at arm.com
Mon Dec 7 13:42:23 EST 2020


On 2020-12-07 17:47, Ard Biesheuvel wrote:
> On Mon, 7 Dec 2020 at 18:41, Marc Zyngier <maz at kernel.org> wrote:
>>
>> On 2020-12-07 17:19, Ard Biesheuvel wrote:
>>> (resend with David's email address fixed)
>>
>> Irk. Thanks for that.
>>
>>>>> +#ifdef CONFIG_CC_HAS_BROKEN_S_CONSTRAINT
>>>>> +#define SYM_CONSTRAINT "i"
>>>>> +#else
>>>>> +#define SYM_CONSTRAINT "S"
>>>>> +#endif
>>>>> +
>>>>
>>>> Could we just check GCC_VERSION here?
>>
>> I guess we could. But I haven't investigated which exact range of
>> compiler is broken (GCC 6.3 seems fixed, but that's the oldest
>> I have apart from the offending 4.9).
>>
> 
> I tried 5.4 on godbolt, and it seems happy. And the failure will be
> obvious, so we can afford to get it slightly wrong and refine it
> later.

FWIW the Linaro 14.11, 15.02 and 15.05 releases of GCC 4.9.3 seem to 
build rc7 without complaint. The only thing older that I have to hand is 
Ubuntu's GCC 4.8.4, which Kbuild chokes on entirely now.

Robin.



More information about the linux-arm-kernel mailing list