[PATCH] build: Add RTEMS_QUALIFIED

Sebastian Huber sebastian.huber at embedded-brains.de
Mon Nov 6 09:27:54 UTC 2023


On 06.11.23 01:14, Chris Johns wrote:
> On 4/11/2023 1:31 am, Sebastian Huber wrote:
>> On 03.11.23 15:08, Joel Sherrill wrote:
>>> On Fri, Nov 3, 2023 at 3:58 AM Sebastian Huber
>>> <sebastian.huber at embedded-brains.de
>>> <mailto:sebastian.huber at embedded-brains.de>> wrote:
>>>
>>>      The goal of the RTEMS pre-qualification activity #3701 is a specified
>>>      and validated subset of RTEMS.  For users of the pre-qualified subset of
>>>      RTEMS it is important to not accidentally use not pre-qualified
>>>      features.  One way to achieve this, is to build only the sources of the
>>>      pre-qualified feature set. This customized build is enabled by the new
>>>      build configuration option RTEMS_QUALIFIED.  If it is enabled, then only
>>>      the pre-qualified subset of RTEMS is built and installed.
>>>
>>>      Building with RTEMS_QUALIFIED enable is currently only supported for the
>>>      sparc/leon3 BSP family.  To support an RTEMS_QUALIFIED enabled build,
>>>      changes in the CPU port and the BSP are required to only use features of
>>>      the pre-qualified feature set.
>>>
>>>
>>> Where is this documented?
>> You mean a documentation of what needs to be done to create pre-qualified BSP? I
>> don't have it available yet. A good place to add this would be the how-to
>> section in the RTEMS Software Engineering manual.
>>
>>> This is a very large patch. Are you assuming that if "not qualified" is
>>> specified,
>>> then it is in the qualified set?
>> No, the logic is reversed. Everything is built by default. Some parts are only
>> enabled if RTEMS_QUALIFIED is not enabled, for example
>> (spec/build/cpukit/objextra.yml):
>>
>> enabled-by:
>>    not: RTEMS_QUALIFIED
> It seems counter intuitive to me. I have no idea about qual work but my limited
> understanding is everything is controlled yet this is the inverse of that and
> anything anyone adds will by default be qualified?

The goal of this patch set is to place each source and header file of 
RTEMS into two buckets, the pre-qualified bucket and the extra bucket. 
For two buckets you need just one option with two values. In the current 
patch it is RTEMS_QUALIFIED enabled or disabled.

Since Joel already brought the FACE profile into play, an alternative 
could be this approach. Lets assume that we pre-qualified the FACE 
profile interfaces of RTEMS. Use RTEMS_EVERYTHING for the I want 
everything profile. Use RTEMS_QUALIFIED for the pre-qualified profile. 
Use RTEMS_FACE_PROFILE for interfaces of the FACE profile.

The objects which are not pre-qualified would use this:

enabled-by: RTEMS_EVERYTHING

The objects which are pre-qualified would use this:

enabled-by:
- RTEMS_EVERYTHING
- RTEMS_QUALIFIED

The objects which are pre-qualified or in the FACE profile would use this:

enabled-by:
- RTEMS_EVERYTHING
- RTEMS_QUALIFIED
- RTEMS_FACE_PROFILE

Of RTEMS_EVERYTHING, RTEMS_QUALIFIED, and RTEMS_FACE_PROFILE exactly one 
option shall be enabled.

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