Re: [PATCH 1/2] x86/fred: Fix build with clang

H. Peter Anvin
2024-01-28T19:34:16Z

On 1/27/24 11:46, Li, Xin3 wrote:
>>> diff --git a/arch/x86/entry/entry_64_fred.S
>>> b/arch/x86/entry/entry_64_fred.S index eedf98de7538..5427e0da190d
>>> 100644
>>> --- a/arch/x86/entry/entry_64_fred.S
>>> +++ b/arch/x86/entry/entry_64_fred.S
>>> @@ -43,13 +43,12 @@ SYM_INNER_LABEL(asm_fred_exit_user,
>> SYM_L_GLOBAL)
>>> _ASM_EXTABLE_TYPE(1b, asm_fred_entrypoint_user, EX_TYPE_ERETU)
>>> SYM_CODE_END(asm_fred_entrypoint_user)
>>>
>>> -.fill asm_fred_entrypoint_kernel - ., 1, 0xcc
>>> -
>>> /*
>>> * The new RIP value that FRED event delivery establishes is
>>> * (IA32_FRED_CONFIG & ~FFFH) + 256 for events that occur in
>>> * ring 0, i.e., asm_fred_entrypoint_user + 256.
>>> */
>>> + .fill asm_fred_entrypoint_user + 256 - ., 1, 0xcc
>>> .org asm_fred_entrypoint_user + 256
>>> SYM_CODE_START_NOALIGN(asm_fred_entrypoint_kernel)
>>> FRED_ENTER
>>
>> .fill and .org here are redundant; in fact, there two directives mean exactly the
>> same thing except that .org implicitly subtracts the current offset.
>
> Ah, right, .fill already does the job!
>
> I will remove .org.
>

Incidentally, was there a problem with .org ..., 0xcc?

Not a criticism, I just want to know to better understand current
binutils limitations.

-hpa