Re: waf bsp_defaults appears to be broken

2021-10-04 Thread Christian MAUDERER

Hello Joel,

Am 03.10.21 um 18:06 schrieb Joel Sherrill:

Hi

No BSP was successfully built in the build sweep Friday. All have
failures like this:

$ ./waf bsp_defaults --rtems-bsps=powerpc/psim


I just tested this command and everything seems to work fine. I get a 
default config for the BSP.



There is no top-level group with UID '/grp' in the specification



Maybe something cache related? The whole build specification files are 
parsed and put into a cache as a first step. If that doesn't work 
correctly, it might lead to odd results.



The script fetches the BSP's defaults and then changes settings for
enable tests, etc.


Do you use a fresh checkout or an update from a previous one?

Best regards

Christian



Anyone else see this?

--joel
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel



--

embedded brains GmbH
Herr Christian MAUDERER
Dornierstr. 4
82178 Puchheim
Germany
email: christian.maude...@embedded-brains.de
phone: +49-89-18 94 741 - 18
fax:   +49-89-18 94 741 - 08

Registergericht: Amtsgericht München
Registernummer: HRB 157899
Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler
Unsere Datenschutzerklärung finden Sie hier:
https://embedded-brains.de/datenschutzerklaerung/
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Re: waf bsp_defaults appears to be broken

2021-10-04 Thread Joel Sherrill
On Mon, Oct 4, 2021 at 2:32 AM Christian MAUDERER
 wrote:
>
> Hello Joel,
>
> Am 03.10.21 um 18:06 schrieb Joel Sherrill:
> > Hi
> >
> > No BSP was successfully built in the build sweep Friday. All have
> > failures like this:
> >
> > $ ./waf bsp_defaults --rtems-bsps=powerpc/psim
>
> I just tested this command and everything seems to work fine. I get a
> default config for the BSP.
>
> > There is no top-level group with UID '/grp' in the specification
> >
>
> Maybe something cache related? The whole build specification files are
> parsed and put into a cache as a first step. If that doesn't work
> correctly, it might lead to odd results.

This must be it. I suppose I should delete the build/ subdirectory as part
of setting up for a sweep.

> > The script fetches the BSP's defaults and then changes settings for
> > enable tests, etc.
>
> Do you use a fresh checkout or an update from a previous one?

It's an update to minimize what needs to be done. If the RSB changed, tools
and RTEMS are built. If only RTEMS changed, only RTEMS BSPs are built.
If nothing changed (rare in a week), then nothing is done.

I ended up recloning rtems this time and it seems ok now.

Thanks.

--joel

> Best regards
>
> Christian
>
> >
> > Anyone else see this?
> >
> > --joel
> > ___
> > devel mailing list
> > devel@rtems.org
> > http://lists.rtems.org/mailman/listinfo/devel
> >
>
> --
> 
> embedded brains GmbH
> Herr Christian MAUDERER
> Dornierstr. 4
> 82178 Puchheim
> Germany
> email: christian.maude...@embedded-brains.de
> phone: +49-89-18 94 741 - 18
> fax:   +49-89-18 94 741 - 08
>
> Registergericht: Amtsgericht München
> Registernummer: HRB 157899
> Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler
> Unsere Datenschutzerklärung finden Sie hier:
> https://embedded-brains.de/datenschutzerklaerung/
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Re: waf bsp_defaults appears to be broken

2021-10-04 Thread Christian MAUDERER

Am 04.10.21 um 15:51 schrieb Joel Sherrill:

On Mon, Oct 4, 2021 at 2:32 AM Christian MAUDERER
 wrote:


Hello Joel,

Am 03.10.21 um 18:06 schrieb Joel Sherrill:

Hi

No BSP was successfully built in the build sweep Friday. All have
failures like this:

$ ./waf bsp_defaults --rtems-bsps=powerpc/psim


I just tested this command and everything seems to work fine. I get a
default config for the BSP.


There is no top-level group with UID '/grp' in the specification



Maybe something cache related? The whole build specification files are
parsed and put into a cache as a first step. If that doesn't work
correctly, it might lead to odd results.


This must be it. I suppose I should delete the build/ subdirectory as part
of setting up for a sweep.


If you want to get a clean repository again, you could also use a "git 
clean -dxf". But be very careful with that command. It doesn't ask 
before deleting anything that is not versioned.





The script fetches the BSP's defaults and then changes settings for
enable tests, etc.


Do you use a fresh checkout or an update from a previous one?


It's an update to minimize what needs to be done. If the RSB changed, tools
and RTEMS are built. If only RTEMS changed, only RTEMS BSPs are built.
If nothing changed (rare in a week), then nothing is done.

I ended up recloning rtems this time and it seems ok now.


If you get the error again, it would be interesting to find out what 
caused it. That sounds like something that shouldn't happen. It seems 
that the wscript uses a simple file modification time to find out 
whether the cache has to be re-generated. So if your system time changed 
backward, that might could lead to such errors.


Best regards

Christian



Thanks.

--joel


Best regards

Christian



Anyone else see this?

--joel
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel



--

embedded brains GmbH
Herr Christian MAUDERER
Dornierstr. 4
82178 Puchheim
Germany
email: christian.maude...@embedded-brains.de
phone: +49-89-18 94 741 - 18
fax:   +49-89-18 94 741 - 08

Registergericht: Amtsgericht München
Registernummer: HRB 157899
Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler
Unsere Datenschutzerklärung finden Sie hier:
https://embedded-brains.de/datenschutzerklaerung/


--

embedded brains GmbH
Herr Christian MAUDERER
Dornierstr. 4
82178 Puchheim
Germany
email: christian.maude...@embedded-brains.de
phone: +49-89-18 94 741 - 18
fax:   +49-89-18 94 741 - 08

Registergericht: Amtsgericht München
Registernummer: HRB 157899
Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler
Unsere Datenschutzerklärung finden Sie hier:
https://embedded-brains.de/datenschutzerklaerung/
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Re: waf bsp_defaults appears to be broken

2021-10-04 Thread Joel Sherrill
On Mon, Oct 4, 2021 at 9:13 AM Christian MAUDERER
 wrote:
>
> Am 04.10.21 um 15:51 schrieb Joel Sherrill:
> > On Mon, Oct 4, 2021 at 2:32 AM Christian MAUDERER
> >  wrote:
> >>
> >> Hello Joel,
> >>
> >> Am 03.10.21 um 18:06 schrieb Joel Sherrill:
> >>> Hi
> >>>
> >>> No BSP was successfully built in the build sweep Friday. All have
> >>> failures like this:
> >>>
> >>> $ ./waf bsp_defaults --rtems-bsps=powerpc/psim
> >>
> >> I just tested this command and everything seems to work fine. I get a
> >> default config for the BSP.
> >>
> >>> There is no top-level group with UID '/grp' in the specification
> >>>
> >>
> >> Maybe something cache related? The whole build specification files are
> >> parsed and put into a cache as a first step. If that doesn't work
> >> correctly, it might lead to odd results.
> >
> > This must be it. I suppose I should delete the build/ subdirectory as part
> > of setting up for a sweep.
>
> If you want to get a clean repository again, you could also use a "git
> clean -dxf". But be very careful with that command. It doesn't ask
> before deleting anything that is not versioned.

That might be ok here because this is a directory only used for the
cron driven build sweeps. Nothing should ever be edited here.

> >>> The script fetches the BSP's defaults and then changes settings for
> >>> enable tests, etc.
> >>
> >> Do you use a fresh checkout or an update from a previous one?
> >
> > It's an update to minimize what needs to be done. If the RSB changed, tools
> > and RTEMS are built. If only RTEMS changed, only RTEMS BSPs are built.
> > If nothing changed (rare in a week), then nothing is done.
> >
> > I ended up recloning rtems this time and it seems ok now.
>
> If you get the error again, it would be interesting to find out what
> caused it. That sounds like something that shouldn't happen. It seems
> that the wscript uses a simple file modification time to find out
> whether the cache has to be re-generated. So if your system time changed
> backward, that might could lead to such errors.

Possible but unlikely. The build sweep for 6 starts at 445pm on Fridays. The
directory should be untouched until the next Friday unless something happens
and I poke around like this morning.

Hopefully removing build/ will help keep things clean.

--joel

> Best regards
>
> Christian
>
> >
> > Thanks.
> >
> > --joel
> >
> >> Best regards
> >>
> >> Christian
> >>
> >>>
> >>> Anyone else see this?
> >>>
> >>> --joel
> >>> ___
> >>> devel mailing list
> >>> devel@rtems.org
> >>> http://lists.rtems.org/mailman/listinfo/devel
> >>>
> >>
> >> --
> >> 
> >> embedded brains GmbH
> >> Herr Christian MAUDERER
> >> Dornierstr. 4
> >> 82178 Puchheim
> >> Germany
> >> email: christian.maude...@embedded-brains.de
> >> phone: +49-89-18 94 741 - 18
> >> fax:   +49-89-18 94 741 - 08
> >>
> >> Registergericht: Amtsgericht München
> >> Registernummer: HRB 157899
> >> Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler
> >> Unsere Datenschutzerklärung finden Sie hier:
> >> https://embedded-brains.de/datenschutzerklaerung/
>
> --
> 
> embedded brains GmbH
> Herr Christian MAUDERER
> Dornierstr. 4
> 82178 Puchheim
> Germany
> email: christian.maude...@embedded-brains.de
> phone: +49-89-18 94 741 - 18
> fax:   +49-89-18 94 741 - 08
>
> Registergericht: Amtsgericht München
> Registernummer: HRB 157899
> Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler
> Unsere Datenschutzerklärung finden Sie hier:
> https://embedded-brains.de/datenschutzerklaerung/
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

[RTEMS 5] Add support for IDLE Thread stack allocator

2021-10-04 Thread Joel Sherrill
Add a stack allocator hook specifically for allocation of IDLE thread stacks.
This allows the user to decide if IDLE thread stacks are statically allocated
or handled by the same custom allocator mechanism as other thread stacks.

Closes #4520.
---
 cpukit/include/rtems/confdefs/percpu.h| 20 +++-
 cpukit/include/rtems/confdefs/wkspace.h   | 13 +++
 cpukit/include/rtems/config.h |  3 +
 cpukit/include/rtems/score/stack.h| 24 +
 cpukit/score/src/stackallocator.c |  3 +
 cpukit/score/src/threadcreateidle.c   | 18 +++-
 testsuites/sptests/spstkalloc03/init.c| 98 +++
 .../sptests/spstkalloc03/spstkalloc03.doc | 19 
 .../sptests/spstkalloc03/spstkalloc03.scn |  2 +
 9 files changed, 192 insertions(+), 8 deletions(-)
 create mode 100644 testsuites/sptests/spstkalloc03/init.c
 create mode 100644 testsuites/sptests/spstkalloc03/spstkalloc03.doc
 create mode 100644 testsuites/sptests/spstkalloc03/spstkalloc03.scn

diff --git a/cpukit/include/rtems/confdefs/percpu.h 
b/cpukit/include/rtems/confdefs/percpu.h
index f3a9a4f3e7..a6ba4fece0 100644
--- a/cpukit/include/rtems/confdefs/percpu.h
+++ b/cpukit/include/rtems/confdefs/percpu.h
@@ -133,11 +133,21 @@ RTEMS_DEFINE_GLOBAL_SYMBOL(
 
 const size_t _Thread_Idle_stack_size = CONFIGURE_IDLE_TASK_STACK_SIZE;
 
-char _Thread_Idle_stacks[
-  _CONFIGURE_MAXIMUM_PROCESSORS
-* ( CONFIGURE_IDLE_TASK_STACK_SIZE + CPU_IDLE_TASK_IS_FP * CONTEXT_FP_SIZE 
)
-] RTEMS_ALIGNED( CPU_INTERRUPT_STACK_ALIGNMENT )
-RTEMS_SECTION( ".rtemsstack.idle" );
+/*
+ * If the user provides a custom idle stack allocator, then we do not need
+ * memory reserved for the stacks but the symbol is still referenced in
+ * threadcreateidle.c. The code path just never uses it. Make it minimal
+ * size to proceed.
+ */
+  char _Thread_Idle_stacks[
+#ifdef CONFIGURE_TASK_STACK_ALLOCATOR_FOR_IDLE
+1
+#else
+_CONFIGURE_MAXIMUM_PROCESSORS
+  * ( CONFIGURE_IDLE_TASK_STACK_SIZE + CPU_IDLE_TASK_IS_FP * 
CONTEXT_FP_SIZE )
+#endif
+  ] RTEMS_ALIGNED( CPU_INTERRUPT_STACK_ALIGNMENT )
+  RTEMS_SECTION( ".rtemsstack.idle" );
 
 #if defined(CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION) && \
   !defined(CONFIGURE_IDLE_TASK_BODY)
diff --git a/cpukit/include/rtems/confdefs/wkspace.h 
b/cpukit/include/rtems/confdefs/wkspace.h
index 484dde20ea..abe4cd50af 100644
--- a/cpukit/include/rtems/confdefs/wkspace.h
+++ b/cpukit/include/rtems/confdefs/wkspace.h
@@ -132,12 +132,14 @@ const uintptr_t _Stack_Space_size = 
_CONFIGURE_STACK_SPACE_SIZE;
 
 #if defined(CONFIGURE_TASK_STACK_ALLOCATOR) \
   && defined(CONFIGURE_TASK_STACK_DEALLOCATOR)
+  /* Custom allocator may or may not use the work space. */
   #ifdef CONFIGURE_TASK_STACK_ALLOCATOR_AVOIDS_WORK_SPACE
 const bool _Stack_Allocator_avoids_workspace = true;
   #else
 const bool _Stack_Allocator_avoids_workspace = false;
   #endif
 
+  /* Custom allocator may or may not need initialization. */
   #ifdef CONFIGURE_TASK_STACK_ALLOCATOR_INIT
 const Stack_Allocator_initialize _Stack_Allocator_initialize =
   CONFIGURE_TASK_STACK_ALLOCATOR_INIT;
@@ -145,11 +147,22 @@ const uintptr_t _Stack_Space_size = 
_CONFIGURE_STACK_SPACE_SIZE;
 const Stack_Allocator_initialize _Stack_Allocator_initialize = NULL;
   #endif
 
+  /* Custom allocator must include allocate and free */
   const Stack_Allocator_allocate _Stack_Allocator_allocate =
 CONFIGURE_TASK_STACK_ALLOCATOR;
 
   const Stack_Allocator_free _Stack_Allocator_free =
 CONFIGURE_TASK_STACK_DEALLOCATOR;
+
+  /* Custom allocator MAY include allocate IDLE thread stacks */
+  #ifdef CONFIGURE_TASK_STACK_ALLOCATOR_FOR_IDLE
+const Stack_Allocator_allocate_for_idle _Stack_Allocator_allocate_for_idle 
=
+  CONFIGURE_TASK_STACK_ALLOCATOR_FOR_IDLE;
+  #else
+const Stack_Allocator_allocate_for_idle _Stack_Allocator_allocate_for_idle 
=
+  NULL;
+  #endif
+
 #elif defined(CONFIGURE_TASK_STACK_ALLOCATOR) \
   || defined(CONFIGURE_TASK_STACK_DEALLOCATOR)
   #error "CONFIGURE_TASK_STACK_ALLOCATOR and CONFIGURE_TASK_STACK_DEALLOCATOR 
must be both defined or both undefined"
diff --git a/cpukit/include/rtems/config.h b/cpukit/include/rtems/config.h
index e82c7abf11..a826581658 100644
--- a/cpukit/include/rtems/config.h
+++ b/cpukit/include/rtems/config.h
@@ -129,6 +129,9 @@ uint32_t rtems_configuration_get_maximum_extensions( void );
 #define rtems_configuration_get_stack_free_hook() \
   (_Stack_Allocator_free)
 
+#define rtems_configuration_get_stack_allocate_for_idle_hook() \
+  (_Stack_Allocator_allocate_for_idle)
+
  /**
   * This macro assists in accessing the field which indicates whether
   * RTEMS is responsible for zeroing the Executive Workspace.
diff --git a/cpukit/include/rtems/score/stack.h 
b/cpukit/include/rtems/score/stack.h
index df1df74867..9c60b4f15e 100644
--- a/cpukit/include/rtems/score/stack.h
+++ b/cpukit/include/rtems/score/stack.h
@@ -81,6 +81,23 @@ typedef void *( *Stack_Al

Re: [PATCH v2 5/6] cpukit: Add signal mapping support

2021-10-04 Thread Sebastian Huber

On 02/10/2021 01:44, Chris Johns wrote:

The fatal extensions have a well defined order (position in the
table). The user has the full control over the initial extensions table.

Is it backwards compatible when this new mode is enabled?


When you enable a new feature you get new behaviour. I am not sure what 
you mean with backward compatible in this case. If you don't enable the 
exception to signal mapping (default), then nothing changes.


--
embedded brains GmbH
Herr Sebastian HUBER
Dornierstr. 4
82178 Puchheim
Germany
email: sebastian.hu...@embedded-brains.de
phone: +49-89-18 94 741 - 16
fax:   +49-89-18 94 741 - 08

Registergericht: Amtsgericht München
Registernummer: HRB 157899
Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler
Unsere Datenschutzerklärung finden Sie hier:
https://embedded-brains.de/datenschutzerklaerung/
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Re: [RTEMS 5] Add support for IDLE Thread stack allocator

2021-10-04 Thread Sebastian Huber

On 04/10/2021 18:11, Joel Sherrill wrote:

Add a stack allocator hook specifically for allocation of IDLE thread stacks.
This allows the user to decide if IDLE thread stacks are statically allocated
or handled by the same custom allocator mechanism as other thread stacks.

Closes #4520.
---
  cpukit/include/rtems/confdefs/percpu.h| 20 +++-
  cpukit/include/rtems/confdefs/wkspace.h   | 13 +++
  cpukit/include/rtems/config.h |  3 +
  cpukit/include/rtems/score/stack.h| 24 +
  cpukit/score/src/stackallocator.c |  3 +
  cpukit/score/src/threadcreateidle.c   | 18 +++-
  testsuites/sptests/spstkalloc03/init.c| 98 +++
  .../sptests/spstkalloc03/spstkalloc03.doc | 19 
  .../sptests/spstkalloc03/spstkalloc03.scn |  2 +
  9 files changed, 192 insertions(+), 8 deletions(-)
  create mode 100644 testsuites/sptests/spstkalloc03/init.c
  create mode 100644 testsuites/sptests/spstkalloc03/spstkalloc03.doc
  create mode 100644 testsuites/sptests/spstkalloc03/spstkalloc03.scn

diff --git a/cpukit/include/rtems/confdefs/percpu.h 
b/cpukit/include/rtems/confdefs/percpu.h
index f3a9a4f3e7..a6ba4fece0 100644
--- a/cpukit/include/rtems/confdefs/percpu.h
+++ b/cpukit/include/rtems/confdefs/percpu.h
@@ -133,11 +133,21 @@ RTEMS_DEFINE_GLOBAL_SYMBOL(
  
  const size_t _Thread_Idle_stack_size = CONFIGURE_IDLE_TASK_STACK_SIZE;
  
-char _Thread_Idle_stacks[

-  _CONFIGURE_MAXIMUM_PROCESSORS
-* ( CONFIGURE_IDLE_TASK_STACK_SIZE + CPU_IDLE_TASK_IS_FP * CONTEXT_FP_SIZE 
)
-] RTEMS_ALIGNED( CPU_INTERRUPT_STACK_ALIGNMENT )
-RTEMS_SECTION( ".rtemsstack.idle" );
+/*
+ * If the user provides a custom idle stack allocator, then we do not need
+ * memory reserved for the stacks but the symbol is still referenced in
+ * threadcreateidle.c. The code path just never uses it. Make it minimal
+ * size to proceed.
+ */
+  char _Thread_Idle_stacks[
+#ifdef CONFIGURE_TASK_STACK_ALLOCATOR_FOR_IDLE


Maybe name the option CONFIGURE_IDLE_TASK_STACK_ALLOCATOR similar to 
CONFIGURE_IDLE_TASK_STACK_SIZE, CONFIGURE_IDLE_TASK_BODY, and 
CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION.



+1


You don't need this, see below.


+#else
+_CONFIGURE_MAXIMUM_PROCESSORS
+  * ( CONFIGURE_IDLE_TASK_STACK_SIZE + CPU_IDLE_TASK_IS_FP * 
CONTEXT_FP_SIZE )
+#endif
+  ] RTEMS_ALIGNED( CPU_INTERRUPT_STACK_ALIGNMENT )
+  RTEMS_SECTION( ".rtemsstack.idle" );
  
  #if defined(CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION) && \

!defined(CONFIGURE_IDLE_TASK_BODY)
diff --git a/cpukit/include/rtems/confdefs/wkspace.h 
b/cpukit/include/rtems/confdefs/wkspace.h
index 484dde20ea..abe4cd50af 100644
--- a/cpukit/include/rtems/confdefs/wkspace.h
+++ b/cpukit/include/rtems/confdefs/wkspace.h
@@ -132,12 +132,14 @@ const uintptr_t _Stack_Space_size = 
_CONFIGURE_STACK_SPACE_SIZE;
  
  #if defined(CONFIGURE_TASK_STACK_ALLOCATOR) \

&& defined(CONFIGURE_TASK_STACK_DEALLOCATOR)
+  /* Custom allocator may or may not use the work space. */
#ifdef CONFIGURE_TASK_STACK_ALLOCATOR_AVOIDS_WORK_SPACE
  const bool _Stack_Allocator_avoids_workspace = true;
#else
  const bool _Stack_Allocator_avoids_workspace = false;
#endif
  
+  /* Custom allocator may or may not need initialization. */

#ifdef CONFIGURE_TASK_STACK_ALLOCATOR_INIT
  const Stack_Allocator_initialize _Stack_Allocator_initialize =
CONFIGURE_TASK_STACK_ALLOCATOR_INIT;
@@ -145,11 +147,22 @@ const uintptr_t _Stack_Space_size = 
_CONFIGURE_STACK_SPACE_SIZE;
  const Stack_Allocator_initialize _Stack_Allocator_initialize = NULL;
#endif
  
+  /* Custom allocator must include allocate and free */

const Stack_Allocator_allocate _Stack_Allocator_allocate =
  CONFIGURE_TASK_STACK_ALLOCATOR;
  
const Stack_Allocator_free _Stack_Allocator_free =

  CONFIGURE_TASK_STACK_DEALLOCATOR;
+
+  /* Custom allocator MAY include allocate IDLE thread stacks */
+  #ifdef CONFIGURE_TASK_STACK_ALLOCATOR_FOR_IDLE
+const Stack_Allocator_allocate_for_idle _Stack_Allocator_allocate_for_idle 
=
+  CONFIGURE_TASK_STACK_ALLOCATOR_FOR_IDLE;
+  #else
+const Stack_Allocator_allocate_for_idle _Stack_Allocator_allocate_for_idle 
=
+  NULL;


Use _Stack_Allocator_allocate_for_idle_default instead of NULL


+  #endif
+
  #elif defined(CONFIGURE_TASK_STACK_ALLOCATOR) \
|| defined(CONFIGURE_TASK_STACK_DEALLOCATOR)
#error "CONFIGURE_TASK_STACK_ALLOCATOR and CONFIGURE_TASK_STACK_DEALLOCATOR must 
be both defined or both undefined"
diff --git a/cpukit/include/rtems/config.h b/cpukit/include/rtems/config.h
index e82c7abf11..a826581658 100644
--- a/cpukit/include/rtems/config.h
+++ b/cpukit/include/rtems/config.h
@@ -129,6 +129,9 @@ uint32_t rtems_configuration_get_maximum_extensions( void );
  #define rtems_configuration_get_stack_free_hook() \
(_Stack_Allocator_free)
  
+#define rtems_configuration_get_stack_allocate_for_idle_hook() \

+  (_Stack_Allocator_allocate_for_idle)
+
   /**

Re: [PATCH v2 2/6] cpukit: Add Exception Manager

2021-10-04 Thread Sebastian Huber

On 01/10/2021 21:39, Kinsey Moore wrote:


Sebastian,

Could you be more specific about which parts of the 
architecture-dependent interface still seem tied to the AArch64 port? I 
thought I had made them sufficiently abstract by relying on 
architecture-specific functions to manipulate and take action on the 
exception frame. The signal mapping code written on top of this should 
work for any architecture that implements those functions and contains 
no reliance on architecture that I can see. The set of exception classes 
in particular includes exceptions that don't exist on AArch64, but were 
added because they're known to be present on SPARC and need to be 
handled. I'm only really familiar with ARM and AArch64, so that could be 
why I'm missing it.


I would provide a new CPU feature flag

#define CPU_HAS_EXCEPTION_TO_SIGNAL_MAPPING TRUE|FALSE

If it is TRUE, then the CPU port shall provide:

/**
 * @retval -1 There is no signal associated with the exception.
 * @retval SIGSEGV, SIGFPE, ...
 */
int _CPU_Exception_frame_get_signal( const CPU_Exception_frame *frame );

RTEMS_NO_RETURN _CPU_Exception_resume( CPU_Exception_frame *frame );

The architecture-independent part just needs to provide a fatal extension:

_Thread_local Thread_Action _Exception_Raise_signal_action;

void _Exception_Raise_signal( source, true, code )
{
  int sig;

  if ( source != RTEMS_FATAL_SOURCE_EXCEPTION ) {
return;
  }

  sig = _CPU_Exception_frame_get_signal( code );

  switch ( sig ) {
case SIGSEGV:
  handler = _Exception_Raise_sigsegv;
  break;
default:
  return;
  }

  _Thread_Prepend_post_switch_action( executing, 
&_Exception_Raise_signal_action, handler );


  _CPU_Exception_resume( code );
}

Using a post-switch extension has the benefit that you don't have to 
call the complicated raise() function in the exception context. It is 
called in thread context.


--
embedded brains GmbH
Herr Sebastian HUBER
Dornierstr. 4
82178 Puchheim
Germany
email: sebastian.hu...@embedded-brains.de
phone: +49-89-18 94 741 - 16
fax:   +49-89-18 94 741 - 08

Registergericht: Amtsgericht München
Registernummer: HRB 157899
Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler
Unsere Datenschutzerklärung finden Sie hier:
https://embedded-brains.de/datenschutzerklaerung/
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Certificate validation issue when trying to build qemu

2021-10-04 Thread Ryan Long
Hi,

I'm trying to build qemu, but I keep getting this error message.

RTEMS Source Builder - Set Builder, 6 (3950b1e2d857)
Build Set: devel/qemu
Build Set: devel/autotools-internal.bset
config: devel/autoconf-2.69-1.cfg
package: autoconf-2.69-x86_64-freebsd13.0-1
download: https://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz -> 
sources/autoconf-2.69.tar.gz
download: https://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz: error: 
https://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz: all 
paths have failed, giving up
Build FAILED
  See error report: rsb-report-autoconf-2.69-x86_64-freebsd13.0-1.txt
error: downloading https://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz: all 
paths have failed, giving up
Build Set: Time 0:00:00.807563
error: downloading https://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz: all 
paths have failed, giving up
Build Set: Time 0:00:00.809688
Build FAILED

I am able to download it with a browser, but wget and curl won't work. Wget 
will work if I use the "-no-check-certificate" flag. Curl doesn't tell me of a 
flag that could bypass this.

Does anyone know why this is failing?

Thanks,
Ryan
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


RE: Certificate validation issue when trying to build qemu

2021-10-04 Thread Ryan Long
Actually, I was only able to download it on my Linux VM. My FreeBSD 13 VM won't 
let me download it from the browser. I was using Firefox for both.

-Original Message-
From: devel  On Behalf Of Ryan Long
Sent: Monday, October 4, 2021 2:40 PM
To: devel@rtems.org
Subject: Certificate validation issue when trying to build qemu

Hi,

I'm trying to build qemu, but I keep getting this error message.

RTEMS Source Builder - Set Builder, 6 (3950b1e2d857) Build Set: devel/qemu 
Build Set: devel/autotools-internal.bset
config: devel/autoconf-2.69-1.cfg
package: autoconf-2.69-x86_64-freebsd13.0-1
download: https://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz -> 
sources/autoconf-2.69.tar.gz
download: https://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz: error: 
https://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz: all 
paths have failed, giving up Build FAILED
  See error report: rsb-report-autoconf-2.69-x86_64-freebsd13.0-1.txt
error: downloading https://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz: all 
paths have failed, giving up Build Set: Time 0:00:00.807563
error: downloading https://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz: all 
paths have failed, giving up Build Set: Time 0:00:00.809688 Build FAILED

I am able to download it with a browser, but wget and curl won't work. Wget 
will work if I use the "-no-check-certificate" flag. Curl doesn't tell me of a 
flag that could bypass this.

Does anyone know why this is failing?

Thanks,
Ryan
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


libbsd: Conditional compilation of tests

2021-10-04 Thread Kinsey Moore
Currently debugger01 is the only user of the test-if-library in libbsd 
and it doesn't seem to work as expected. The configure step that detects 
libdebugger occurs and succeeds as it should for the zynq a9 qemu BSP, 
but debugger01.exe never gets compiled. I found this behavior while 
working on the implementation for libdebugger for AArch64. Is there some 
configuration that I'm missing to actually enable that test? Changing it 
to an unconditional test yields a successfully compiled debugger01.exe.


Perhaps someone that has more familiarity with the waf configure scripts 
can tell me what I'm missing.



Thanks,

Kinsey

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


Re: waf bsp_defaults appears to be broken

2021-10-04 Thread Chris Johns
On 4/10/21 3:06 am, Joel Sherrill wrote:
> No BSP was successfully built in the build sweep Friday. All have
> failures like this:
> 
> $ ./waf bsp_defaults --rtems-bsps=powerpc/psim
> There is no top-level group with UID '/grp' in the specification
> 
> The script fetches the BSP's defaults and then changes settings for
> enable tests, etc.
> 
> Anyone else see this?

I would not use the the bsp_defaults approach to handle BSP testing. The BSP
defaults build target should only be used as a means to find and examine any
options a BSP may have you wish to override. Capturing defaults is counter to
the notion of defaults, ie defaults change?

If you wish to use the defaults then this is all you need:

 $ echo "[powerpc/psim]" > config
 $ ./waf distclean configure build

If you what to build the tests, POSIX API and debug on:

 $ echo "[powerpc/psim]" > config
 $ echo "RTEMS_DEBUG = True" >> config
 $ echo "RTEMS_POSIX_API = True" >> config
 $ echo "BUILD_TESTS = True" >> config
 $ ./waf distclean configure build

In regards to removing build directories and others things in the lengthy thread
attached to the email, user beware. The recommended solution is:

 ./waf distclean

Chris
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


Re: [PATCH v2 5/6] cpukit: Add signal mapping support

2021-10-04 Thread Chris Johns
On 5/10/21 4:29 am, Sebastian Huber wrote:
> On 02/10/2021 01:44, Chris Johns wrote:
>>> The fatal extensions have a well defined order (position in the
>>> table). The user has the full control over the initial extensions table.
>> Is it backwards compatible when this new mode is enabled?
> 
> When you enable a new feature you get new behaviour. I am not sure what you 
> mean
> with backward compatible in this case. If you don't enable the exception to
> signal mapping (default), then nothing changes.

 "The user has the full control over the initial extensions table."

Does this option change that? Is this feature mutually exclusive or additive to
any "current control" a user has?

In other words, it is not clear to me if I can add this option and still
maintain any existing controls I may have.

If it is not and users need to make changes the user code becomes a mess of
version defines. Is that what we want?

Chris
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


Re: [PATCH v2 5/6] cpukit: Add signal mapping support

2021-10-04 Thread Sebastian Huber

On 05/10/2021 03:51, Chris Johns wrote:

On 5/10/21 4:29 am, Sebastian Huber wrote:

On 02/10/2021 01:44, Chris Johns wrote:

The fatal extensions have a well defined order (position in the
table). The user has the full control over the initial extensions table.

Is it backwards compatible when this new mode is enabled?


When you enable a new feature you get new behaviour. I am not sure what you mean
with backward compatible in this case. If you don't enable the exception to
signal mapping (default), then nothing changes.


  "The user has the full control over the initial extensions table."

Does this option change that? Is this feature mutually exclusive or additive to
any "current control" a user has?

In other words, it is not clear to me if I can add this option and still
maintain any existing controls I may have.

If it is not and users need to make changes the user code becomes a mess of
version defines. Is that what we want?


If you add the new option similar to the stack checker option

#ifdef CONFIGURE_STACK_CHECKER_ENABLED
  RTEMS_STACK_CHECKER_EXTENSION,
#endif

then you can either use the application configuration option to enable 
the extension at the recommended position or you can use the extension 
define in your CONFIGURE_INITIAL_EXTENSIONS exactly where you want it.


--
embedded brains GmbH
Herr Sebastian HUBER
Dornierstr. 4
82178 Puchheim
Germany
email: sebastian.hu...@embedded-brains.de
phone: +49-89-18 94 741 - 16
fax:   +49-89-18 94 741 - 08

Registergericht: Amtsgericht München
Registernummer: HRB 157899
Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler
Unsere Datenschutzerklärung finden Sie hier:
https://embedded-brains.de/datenschutzerklaerung/
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel