Re: [PATCH 2/6] x86: bug: prevent gcc distortions

From: Nadav Amit
Date: Fri May 18 2018 - 14:06:49 EST


hpa@xxxxxxxxx wrote:

> On May 18, 2018 11:50:12 AM PDT, Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote:
>> On Fri, May 18, 2018 at 11:34 AM <hpa@xxxxxxxxx> wrote:
>>
>>> On May 18, 2018 11:25:32 AM PDT, Linus Torvalds <
>> torvalds@xxxxxxxxxxxxxxxxxxxx> wrote:
>>
>>> Unfortunately gcc doesn't guarantee that global assembly inlines will
>> appear at the top of the file.
>>
>> Yeah. It really would be better to do the "asm version of -inline".
>>
>> We already do something like that for real *.S files on some
>> architectures
>> (because their assembly really wants it, eg
>>
>> arch/arm/Makefile:
>> KBUILD_AFLAGS +=$(CFLAGS_ABI) $(AFLAGS_ISA) $(arch-y) $(tune-y)
>> -include
>> asm/unified.h -msoft-float
>>
>> but I do want to point out that KBUILD_AFLAGS is *not* used for
>> compiler-generated assembly, only for actual *.S files.
>>
>> Sadly, I don't actually know any way to make gcc call the 'as' phase
>> with
>> particular options. We can use "-Wa,xyzzy" to pass in xyzzy to the
>> assembler, but there is no "-include" option for GNU as afaik.
>>
>> Can you perhaps define a macro symbol for "--defsym"? Probably not.
>>
>> Linus
>
> I looked at this thing a long time ago; it's not there, and the best would probably be to get global asm() working properly in gcc.

I can add a -Wa,[filename.s] switch. It works, but sort of undocumented.