On Wed, Mar 3, 2021 at 1:40 AM Sebastian Huber <sebastian.hu...@embedded-brains.de> wrote: > > Ensure that CONFIGURE_MAXIMUM_THREAD_LOCAL_STORAGE_SIZE meets the task > storage alignment requirement. > --- > cpukit/doxygen/appl-config.h | 14 +++++++++++--- > cpukit/include/rtems/confdefs/threads.h | 8 +++++++- > 2 files changed, 18 insertions(+), 4 deletions(-) > > diff --git a/cpukit/doxygen/appl-config.h b/cpukit/doxygen/appl-config.h > index 092e02ccca..4b18ac29a7 100644 > --- a/cpukit/doxygen/appl-config.h > +++ b/cpukit/doxygen/appl-config.h > @@ -887,9 +887,17 @@ > * The default value is 0. > * > * @par Value Constraints > - * The value of this configuration option shall be greater than or equal to 0 > - * and less than or equal to <a > - * href="https://en.cppreference.com/w/c/types/limits">SIZE_MAX</a>. > + * @parblock > + * The value of this configuration option shall satisfy all of the following > + * constraints: > + * > + * * It shall be greater than or equal to 0. > + * > + * * It shall be less than or equal to <a > + * href="https://en.cppreference.com/w/c/types/limits">SIZE_MAX</a>. > + * > + * * It shall be an integral multiple of #RTEMS_TASK_STORAGE_ALIGNMENT. > + * @endparblock > * > * @par Notes > * @parblock > diff --git a/cpukit/include/rtems/confdefs/threads.h > b/cpukit/include/rtems/confdefs/threads.h > index 97508068e2..a9c8a271b5 100644 > --- a/cpukit/include/rtems/confdefs/threads.h > +++ b/cpukit/include/rtems/confdefs/threads.h > @@ -138,8 +138,14 @@ typedef union { > > const size_t _Thread_Maximum_name_size = CONFIGURE_MAXIMUM_THREAD_NAME_SIZE; > > +#define _CONFIGURE_ASSERT_TASK_STORAGE_ALIGNMENT( _value ) \ > + ( ( _value ) % RTEMS_TASK_STORAGE_ALIGNMENT == 0 ? ( _value ) : \ > + sizeof( int[ ( _value ) % RTEMS_TASK_STORAGE_ALIGNMENT == 0 ? 1 : -1 ] ) > ) > + The name of this is misleading as it is not an "assert" statement. perhaps ENFORCE instead of ASSERT?
> const size_t _Thread_Maximum_TLS_size = > - CONFIGURE_MAXIMUM_THREAD_LOCAL_STORAGE_SIZE; > + _CONFIGURE_ASSERT_TASK_STORAGE_ALIGNMENT( > + CONFIGURE_MAXIMUM_THREAD_LOCAL_STORAGE_SIZE > + ); > > struct Thread_Configured_control { > Thread_Control Control; > -- > 2.26.2 > > _______________________________________________ > devel mailing list > devel@rtems.org > http://lists.rtems.org/mailman/listinfo/devel _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel