[U-Boot] [PATCH v8 14/30] efi: Don't build sandbox with __attribute__((ms_abi))

Simon Glass sjg at chromium.org
Fri Jun 22 19:28:48 UTC 2018


Hi Alex,


On 22 June 2018 at 06:11, Alexander Graf <agraf at suse.de> wrote:
> On 06/21/2018 09:45 PM, Simon Glass wrote:
>>
>> Hi Alex,
>>
>> On 21 June 2018 at 03:59, Alexander Graf <agraf at suse.de> wrote:
>>>
>>> On 06/21/2018 04:02 AM, Simon Glass wrote:
>>>>
>>>> Hi Alex,
>>>>
>>>> On 20 June 2018 at 02:56, Alexander Graf <agraf at suse.de> wrote:
>>>>>
>>>>> On 06/20/2018 12:02 AM, Simon Glass wrote:
>>>>>>
>>>>>> Hi Alex,
>>>>>>
>>>>>> On 18 June 2018 at 08:46, Alexander Graf <agraf at suse.de> wrote:
>>>>>>>
>>>>>>> On 06/18/2018 04:08 PM, Simon Glass wrote:
>>>>>>>>
>>>>>>>> There appears to be a bug [1] in gcc when using varargs with this
>>>>>>>> attribute. Disable it for sandbox so that functions which use that
>>>>>>>> can
>>>>>>>> work correctly, such as install_multiple_protocol_interfaces().
>>>>>>>>
>>>>>>>> [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70955
>>>>>>>>
>>>>>>>> Signed-off-by: Simon Glass <sjg at chromium.org>
>>>>>>>
>>>>>>>
>>>>>>> See my patch instead please.
>>>>>>
>>>>>> OK I see it now. Do you know what gcc fixes this problem?
>>>>>
>>>>>
>>>>> The bug you found was really just a gcc bug that hit early gcc6
>>>>> versions.
>>>>> I
>>>>> doubt you're running into it :).
>>>>
>>>> OK, so in fact gcc does not support varargs problems with the ms_abi?
>>>
>>>
>>> Gcc needs to know whether varargs are sysv varargs or ms varargs. And it
>>> differentiates between the two with different variable types for va_list.
>>>
>> Have you seen the builtin_va_list, etc.
>
>
> I think this sentence is missing content?

I thought that builtin_va_list and friends would work regardless of
the calling standard being used. But it looks (from your patch) like
you have to explicitly use __builtin_ms_va_list. Is that right?

Regards,
Simon


More information about the U-Boot mailing list