[rtems commit] config: Fix _ISR_Stack_area_end

Sebastian Huber sebh at rtems.org
Wed Apr 8 17:22:59 UTC 2020


Module:    rtems
Branch:    master
Commit:    099ab00d160be82952d59de6ad7ef18896adb420
Changeset: http://git.rtems.org/rtems/commit/?id=099ab00d160be82952d59de6ad7ef18896adb420

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Sun Apr  5 10:31:24 2020 +0200

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 730571b..f3a9a4f 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 */



More information about the vc mailing list