summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2020-04-05 10:31:24 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2020-04-08 19:22:34 +0200
commit099ab00d160be82952d59de6ad7ef18896adb420 (patch)
treec57ab2c47f32feefefe01c505094c332c0725c35
parent3a882e5bc36aef25f67923190162a45ed36459b9 (diff)
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.
-rw-r--r--cpukit/include/rtems/confdefs/percpu.h15
1 files 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 */