Chris Johns commented on a discussion: https://gitlab.rtems.org/rtems/rtos/rtems/-/issues/5252#note_122977 Each BSP built has its own environment that defines the settings etc used in the build. Waf supports deriving an environment from the base, adding the specific settings a BSP needs and then queuing the builds. I think the environment is created [here](https://gitlab.rtems.org/rtems/rtos/rtems/-/blob/main/wscript?ref_type=heads#L1528) and it seems items in the environment can be macros of some form expanded and played with [here](https://gitlab.rtems.org/rtems/rtos/rtems/-/blob/main/wscript?ref_type=heads#L120) and other places. You can see the `env` being populated after being created: ```python conf.env["ARCH"] = arch conf.env["ARCH_BSP"] = arch_bsp conf.env["ARCH_FAMILY"] = arch_family conf.env["BSP_BASE"] = bsp_base conf.env["BSP_NAME"] = bsp_name conf.env["BSP_FAMILY"] = family conf.env["DEST_OS"] = "rtems" ``` As an aside `rtems_waf` uses the `waf` provided `derive()` call to get an environment [here](https://gitlab.rtems.org/rtems/tools/rtems_waf/-/blob/main/rtems.py?ref_type=heads#L208). The call in the `rtems.git` `wscript` may currently equate to the same thing but I followed the existing `waf` examples at the time. The BSP build item context is constructed [here](https://gitlab.rtems.org/rtems/rtos/rtems/-/blob/main/wscript?ref_type=heads#L689) and just below is the build context for the library items. The adds the build item to the build queue which I believe is per BSP. If you had a print to show those items and the number of sources you can see the builds for `csb336` bsp: ``` [] bsp item 14 [] library item 8 [] library item 2 [] library item 1 [] library item 19 [] library item 1 [] library item 1101 [] library item 2 [] library item 1 [] library item 32 [] library item 5 [] library item 2 [] library item 15 [] library item 3 [] library item 2 [] library item 2 [] library item 2 [] library item 2 [] library item 3 [] library item 913 [] library item 4 [] library item 11 ``` Only the `csb366` items are in the build queue which makes sense because it is specific the `env` for that BSP. You can see `waf` move through the different environments when the banners of \`Waf: Entering directory..\` and `Waf: Leaving directory...` lines are printed. I suppose to get the `-k` to move across BSPs the fatal error of the BSP build would need to be trapped and passed over. Sorry, I have no idea how to do that. -- View it on GitLab: https://gitlab.rtems.org/rtems/rtos/rtems/-/issues/5252#note_122977 You're receiving this email because of your account on gitlab.rtems.org.
_______________________________________________ bugs mailing list bugs@rtems.org http://lists.rtems.org/mailman/listinfo/bugs