[PATCH v7 1/7] eal: add static per-lcore memory allocation facility

Mattias Rönnblom hofors at lysator.liu.se
Thu Oct 10 18:21:29 CEST 2024


On 2024-10-10 15:45, Morten Brørup wrote:
>> From: Mattias Rönnblom [mailto:hofors at lysator.liu.se]
>> Sent: Thursday, 10 October 2024 15.40
>>
>> On 2024-10-10 13:47, Morten Brørup wrote:
>>>> From: Mattias Rönnblom [mailto:hofors at lysator.liu.se]
>>>> Sent: Thursday, 10 October 2024 12.40
>>>>
>>>> On 2024-10-10 00:15, Morten Brørup wrote:
> 
>>>>>    From what I can read on the internet, max_align_t is missing in
>>>> stddef.h in MSVC [1], so try adding this to fix the Windows CI
>>>> compilation failure:
>>>>>
>>>>> #ifdef RTE_TOOLCHAIN_MSVC
>>>>> #include <cstddef>
>>>>> #endif
>>>>
>>>> Please excuse my MSVC ignorance, but will this work in C? Looks like
>>>> C++.
>>>
>>> I have no clue. Just parroting what Microsoft says on the internet.
>>>
>>> You can try it out and see if the CI accepts it.
>>>
>>
>> It wouldn't make sense if that worked, so I'll go for this instead:
>>
>> #ifdef RTE_TOOLCHAIN_MSVC
>> 		/* MSVC <stddef.h> is missing the max_align_t typedef */
> 
> Maybe also add some reference to why "double" is the max aligned type in MSVC.
> 
>> 		align = alignof(double);
>> #else
>> 		align = alignof(max_align_t);
>> #endif
> 
> Even better!
> 
> It's a good workaround, and not an ugly hack like the ones suggested by me.
> 

Still a hack, I would argue.

Maybe this is an issue meson could help solve? Detect the missing 
max_align_t, and then do something appropriate about it. (Not sure 
exactly what that would be.)

>>
>> Thanks for pointing out this issue.
> 
> :-)
> 



More information about the dev mailing list