forked from Imagelibrary/rtems
score: Fix _ISR_Stack_area_end
The _ISR_Stack_area_begin and _ISR_Stack_area_end symbols are in different sections. They must have the same alignment, otherwise the following linker directive could separate them: *(SORT_BY_ALIGNMENT (SORT_BY_NAME (.rtemsstack*))) Update #3799.
This commit is contained in:
@@ -1014,6 +1014,7 @@ librtemscpu_a_SOURCES += score/src/chainnodecount.c
|
||||
librtemscpu_a_SOURCES += score/src/debugisthreaddispatchingallowed.c
|
||||
librtemscpu_a_SOURCES += score/src/interr.c
|
||||
librtemscpu_a_SOURCES += score/src/isr.c
|
||||
librtemscpu_a_SOURCES += score/src/isrstackareaend.c
|
||||
librtemscpu_a_SOURCES += score/src/wkspace.c
|
||||
librtemscpu_a_SOURCES += score/src/wkspaceisunifieddefault.c
|
||||
librtemscpu_a_SOURCES += score/src/wkstringduplicate.c
|
||||
|
||||
@@ -98,11 +98,6 @@ char _ISR_Stack_area_begin[
|
||||
] RTEMS_ALIGNED( CPU_INTERRUPT_STACK_ALIGNMENT )
|
||||
RTEMS_SECTION( ".rtemsstack.interrupt.begin" );
|
||||
|
||||
RTEMS_DEFINE_GLOBAL_SYMBOL_IN_SECTION(
|
||||
_ISR_Stack_area_end,
|
||||
".rtemsstack.interrupt.end"
|
||||
);
|
||||
|
||||
/* Thread stack size configuration */
|
||||
|
||||
#ifndef CONFIGURE_MINIMUM_TASK_STACK_SIZE
|
||||
|
||||
36
cpukit/score/src/isrstackareaend.c
Normal file
36
cpukit/score/src/isrstackareaend.c
Normal file
@@ -0,0 +1,36 @@
|
||||
/* SPDX-License-Identifier: BSD-2-Clause */
|
||||
|
||||
/*
|
||||
* Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#include <rtems/score/isr.h>
|
||||
|
||||
RTEMS_SECTION( ".rtemsstack.interrupt.end" )
|
||||
RTEMS_ALIGNED( CPU_INTERRUPT_STACK_ALIGNMENT )
|
||||
const char _ISR_Stack_area_end[ 0 ];
|
||||
Reference in New Issue
Block a user