[PATCH rtems-docs] eng: Add ObjectsItem details

Kinsey Moore kinsey.moore at oarcorp.com
Tue Feb 7 15:52:01 UTC 2023


This adds a section on adding ObjectsItems and some details to the
definition regarding multiple inclusions.
---
 eng/build-system.rst | 28 ++++++++++++++++++++++++++++
 eng/req/items.rst    |  8 ++++++--
 2 files changed, 34 insertions(+), 2 deletions(-)

diff --git a/eng/build-system.rst b/eng/build-system.rst
index 6974aa8..22cdd5a 100644
--- a/eng/build-system.rst
+++ b/eng/build-system.rst
@@ -489,3 +489,31 @@ Add a link to the new library item using a relative UID:
    links:
    - role: build-dependency
      uid: libnew
+
+Add an Object
+-------------
+
+Build objects logically separate relatively independent segments of
+functionality (i.e. a device driver, an architecture-dependent feature, etc.).
+Let *new* be the name of the new object.  You can add the new object with:
+
+.. code-block:: none
+
+    $ vi spec/build/cpukit/objnew.yml
+
+Define the attributes of your new object according to
+:ref:`SpecTypeBuildObjectsItemType`.
+
+Edit corresponding group item:
+
+.. code-block:: none
+
+    $ vi spec/build/cpukit/grp.yml
+
+Add a link to the new objects item using a relative UID:
+
+.. code-block:: yaml
+
+   links:
+   - role: build-dependency
+     uid: objnew
diff --git a/eng/req/items.rst b/eng/req/items.rst
index e718605..5210b4c 100644
--- a/eng/req/items.rst
+++ b/eng/req/items.rst
@@ -649,8 +649,12 @@ Build Objects Item Type
 
 This type refines the :ref:`SpecTypeBuildItemType` through the ``build-type``
 attribute if the value is ``objects``. This set of attributes specifies a set
-of object files used to build static libraries or test programs. All explicit
-attributes shall be specified. The explicit attributes for this type are:
+of object files used to build static libraries or test programs. Objects Items
+must not be included on multiple paths through the build dependency graph with
+identical build options. Violating this can cause race conditions in the build
+system due to duplicate installs and multiple instances of build tasks. All
+explicit attributes shall be specified. The explicit attributes for this type
+are:
 
 cflags
     The attribute value shall be a list. Each list element shall be a
-- 
2.30.2



More information about the devel mailing list