Warnings when building sparc/leon3

Sebastian Huber sebastian.huber at embedded-brains.de
Tue Mar 8 06:44:53 UTC 2022


On 07/03/2022 19:19, Joel Sherrill wrote:
> 
> 
> On Mon, Mar 7, 2022 at 11:54 AM Sebastian Huber 
> <sebastian.huber at embedded-brains.de 
> <mailto:sebastian.huber at embedded-brains.de>> wrote:
> 
>     On 07/03/2022 17:48, Joel Sherrill wrote:
>      > This appears to be because
>      > rtems_configuration_get_user_multiprocessing_table() always returns a
>      > non-NULL value when RTEMS_MULTIPROCESSING is defined. This must
>     be a change
>      > versus previous behavior.
>      >
>      > Ryan and I noticed that the specific cases cited here appeared to be
>      > wrapped in ifdef RTEMS_MULTIPROCESSING so didn't need to worry
>     about it.
>      > But something has changed that impacts public facing behavior.
> 
>     I think this is the related ticket:
> 
>     https://devel.rtems.org/ticket/3735
>     <https://devel.rtems.org/ticket/3735>
> 
> 
> OK. But apparently this was used to tell the difference between a
> single node system in MP configuration and a node within an
> MP configuration.  My grep shows some uses are really dereferencing
> the table but others like the one in amba.h:153 to define the clock
> index looks wrong. THere is similar code in leon.h:
> 
> #if defined(RTEMS_MULTIPROCESSING)
>    #define LEON3_CLOCK_INDEX \
>     (rtems_configuration_get_user_multiprocessing_table() ? 
> LEON3_Cpu_Index : 0)


> #else
>    #define LEON3_CLOCK_INDEX 0
> #endif
> 
> That's the type of pattern that needs addressing. That test is
> asking in multiprocessing is configured in the application not
> in the build.

The rtems_configuration_get_user_multiprocessing_table() ? X : Y 
expressions can be simplified to X.

This change needs to be looked at (the comment in the file header makes 
no sense after this change):

commit 7f3c6cee09ee44b627b11de34248aba485c789b3
Author: Joel Sherrill <joel.sherrill at OARcorp.com>
Date:   Tue Dec 4 22:20:55 2007 +0000

     2007-12-04      Joel Sherrill <joel.sherrill at OARcorp.com>

             * amba/amba.c, clock/ckinit.c, console/console.c, 
include/bsp.h,
             startup/bspstart.c, timer/timer.c: Move 
interrupt_stack_size field
             from CPU Table to Configuration Table. Eliminate CPU Table 
from all
             ports. Delete references to CPU Table in all forms.

diff --git a/c/src/lib/libbsp/sparc/leon3/timer/timer.c 
b/c/src/lib/libbsp/sparc/leon3/timer/timer.c
index 9d6f89a593..2c1127a30a 100644
--- a/c/src/lib/libbsp/sparc/leon3/timer/timer.c
+++ b/c/src/lib/libbsp/sparc/leon3/timer/timer.c
@@ -22,12 +22,13 @@

  #include <bsp.h>

-extern rtems_configuration_table Configuration;
-
-#define LEON3_TIMER_INDEX \
-  (Configuration.User_multiprocessing_table ?  \
-         (Configuration.User_multiprocessing_table)->maximum_nodes + \
-         (Configuration.User_multiprocessing_table)->node - 1 : 1)
+#if defined(RTEMS_MULTIPROCESSING)
+  #define LEON3_TIMER_INDEX \
+      (rtems_configuration_get_user_multiprocessing_table() ? : \
+        (rtems_configuration_get_user_multiprocessing_table()->node) - 
1 : 1)
+#else
+  #define LEON3_TIMER_INDEX 0
+#endif

  rtems_boolean Timer_driver_Find_average_overhead;




-- 
embedded brains GmbH
Herr Sebastian HUBER
Dornierstr. 4
82178 Puchheim
Germany
email: sebastian.huber at 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/


More information about the devel mailing list