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:
Sebastian Huber
2020-04-03 09:47:21 +02:00
parent 1483012b38
commit 8e80876bdd
3 changed files with 37 additions and 5 deletions

View File

@@ -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

View File

@@ -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

View 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 ];