[riot-notifications] [RIOT-OS/RIOT] buildsystem/CI: Use of `BOARD_INSUFFCIENT_MEMORY` becomes a maintainace burdon (#11128)

Marian Buschsieweke notifications at github.com
Thu Mar 7 15:22:44 CET 2019


#### Description
Currently for every test and application the `BOARD_INSUFFICIENT_MEMORY` variable needs to be manually maintained. This makes adding new boards with low RAM/FLASH a nightmare. Also, boards will practically never be removed from `BOARD_INSUFFCIENT_MEMORY`, even though newer toolchains and improvements in code could result in lower RAM/ROM requirements.

Additionally, the `BOARD_INSUFFICIENT_MEMORY` approach reduces compilation test coverage. E.g. a test will not be compiled at all when blacklisted via `BOARD_INSUFFCIENT_MEMORY`, but only the linking stage will fail because of insufficient RAM/flash. Any possible issue that the compilation stage would uncover remain unrevealed. 

#### Brainstorming of Possible Alternatives

1. Let make fail with a custom exit code upon linking stage. The CI can handle treat this return code not as an error
    - Pros:
        - Relatively straight forward
    - Cons:
        - No obvious disadvantages
2. Add a special Make target that overrides link time checks
     - Pros:
        - Relatively straight forward
        - No changes in the CI required except for using that specific target
    - Cons:
        - A really ugly hack
        - A user might not read the doc, notice that the make target "ci_build" magically makes the error go away and will try to flash the result
3. Add something like `RAM_PROVIDED` and `FLASH_PROVIDED` to every MCU, let boards override those in case of bootloaders. Add `RAM_REQUIRED` and `FLASH_REQUIRED` to every test and example
    - Pros:
        - No obvious advantages
    - Cons:
        - A lot of effort to add those to every board
        - A maintenance burden to keep them up to date
        - RAM/flash requirements depend on the toolchain, the CPU/board specific code, the name of the git branch baked into the "hello message" upon boot, and the alignment of the stars

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/RIOT-OS/RIOT/issues/11128
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.riot-os.org/pipermail/notifications/attachments/20190307/384cb2b1/attachment.html>


More information about the notifications mailing list