From 099ab00d160be82952d59de6ad7ef18896adb420 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Sun, 5 Apr 2020 10:31:24 +0200 Subject: config: Fix _ISR_Stack_area_end In the previous implementation, the _ISR_Stack_area_begin and _ISR_Stack_area_end symbols were in different sections. If they do not have the same alignment, then the following linker directive could separate them: *(SORT_BY_ALIGNMENT (SORT_BY_NAME (.rtemsstack*))) Do not use different sections and instead define _ISR_Stack_area_end directly. Update #3799. --- cpukit/include/rtems/confdefs/percpu.h | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/cpukit/include/rtems/confdefs/percpu.h b/cpukit/include/rtems/confdefs/percpu.h index 730571b54a..f3a9a4f3e7 100644 --- a/cpukit/include/rtems/confdefs/percpu.h +++ b/cpukit/include/rtems/confdefs/percpu.h @@ -93,14 +93,17 @@ RTEMS_DEFINE_GLOBAL_SYMBOL( CONFIGURE_INTERRUPT_STACK_SIZE ); -char _ISR_Stack_area_begin[ - _CONFIGURE_MAXIMUM_PROCESSORS * CONFIGURE_INTERRUPT_STACK_SIZE -] RTEMS_ALIGNED( CPU_INTERRUPT_STACK_ALIGNMENT ) -RTEMS_SECTION( ".rtemsstack.interrupt.begin" ); +#define _CONFIGURE_INTERRUPT_STACK_AREA_SIZE \ + ( CONFIGURE_INTERRUPT_STACK_SIZE * _CONFIGURE_MAXIMUM_PROCESSORS ) + +char _ISR_Stack_area_begin[ _CONFIGURE_INTERRUPT_STACK_AREA_SIZE ] +RTEMS_ALIGNED( CPU_INTERRUPT_STACK_ALIGNMENT ) +RTEMS_SECTION( ".rtemsstack.interrupt" ); -RTEMS_DEFINE_GLOBAL_SYMBOL_IN_SECTION( +RTEMS_DEFINE_GLOBAL_SYMBOL( _ISR_Stack_area_end, - ".rtemsstack.interrupt.end" + RTEMS_SYMBOL_NAME( _ISR_Stack_area_begin ) + + _CONFIGURE_INTERRUPT_STACK_AREA_SIZE ); /* Thread stack size configuration */ -- cgit v1.2.3