[RFC PATCH 01/10] arch: introduce symbol HAVE_INITJMP

Jerome Forissier jerome.forissier at linaro.org
Fri Feb 14 16:03:45 CET 2025


Hi Heinrich,

On 2/14/25 15:41, Heinrich Schuchardt wrote:
> On 14.02.25 15:00, Jerome Forissier wrote:
>> HAVE_INIJMP will be set by architectures that support initjmp(), a
>> non-standard extension to setjmp()/longjmp() allowing to initialize a
>> jump buffer with a function pointer and a stack pointer. This will be
>> useful to later introduce threads.
> 
> How is initjmp() used in threading?

It's used so that we can longjmp() to a particular function pointer
(rather than to a point previously reached during program execution
as is the case with setjmp()), and with a custom stack. Both things
are needed to spin off a thread.

I will update the description.

> 
> A cover-letter for the series would have been helpful.

It's here [1].

[1] https://lists.denx.de/pipermail/u-boot/2025-February/580550.html

> 
>>
>> Signed-off-by: Jerome Forissier <jerome.forissier at linaro.org>
>> ---
>>   arch/Kconfig | 6 ++++++
>>   1 file changed, 6 insertions(+)
>>
>> diff --git a/arch/Kconfig b/arch/Kconfig
>> index 35b19f9bfdc..8d5b54031b3 100644
>> --- a/arch/Kconfig
>> +++ b/arch/Kconfig
>> @@ -13,6 +13,12 @@ config HAVE_SETJMP
>>       help
>>        The architecture supports setjmp() and longjmp().
>>
>> +config HAVE_INITJMP
>> +    bool
>> +    help
>> +     The architecture supports initjmp(), a non-standard companion to
>> +     setjmp() and longjmp().
> 
> If this required for thread support, I would have expected this to be in
> the help text.
> 
> Best regards
> 
> Heinrich
> 
>> +
>>   config SUPPORT_BIG_ENDIAN
>>       bool
>>
> 


More information about the U-Boot mailing list