[riot-notifications] [RIOT-OS/RIOT] treewide: model newlib as a FEATURE (#15859)

Francisco notifications at github.com
Tue Jan 26 17:29:52 CET 2021


### Contribution description

This PR models `newlib` as a feature and makes use of `FEATURES_REQUIRED_ANY` to allow requesting any of both `picolibc` and `newlibc` while only having one selected.

This way applications can enforce one of them with `FEATURES_REQUIRED += %`. IMO only applications should enforce this, otherwise, a conflict is likely to arise, `FEATURES_CONFLICT` is added to prevent this.

### Testing procedure

Verify that dependencies are still correct. Some here

```
→ BOARD=samr21-xpro make -C examples/gnrc_minimal/ info-modules | grep lib
picolibc
picolibc_syscalls_default
```
```
→ BOARD=hifive1b make -C examples/gnrc_minimal/ info-modules | grep lib
picolibc
picolibc_syscalls_default
```
```
→ RIOT_CI_BUILD=1 BOARD=hifive1b make -C examples/gnrc_minimal/ info-modules | grep lib
newlib
newlib_nano
newlib_syscalls_fe310
```

```
→ BOARD=nucleo-l011k4 make -C examples/hello-world/ info-modules | grep lib
picolibc
picolibc_syscalls_default
```

```
→ BOARD=nucleo-l011k4 make -C examples/hello-world/ info-modules | grep lib
picolibc
picolibc_syscalls_default
```

```
→ BOARD=samd10-xmini make -C examples/hello-world/ info-modules | grep lib
picolibc
picolibc_syscalls_default
```

```
→ BOARD=stm32f030f4-demo make -C examples/hello-world/ info-modules | grep lib
picolibc
picolibc_syscalls_default
```

```
FEATURES_REQUIRED=newlib BOARD=hifive1b make -C examples/hello-world/ info-modules | grep lib
newlib
newlib_nano
newlib_syscalls_fe310
```

```
BOARD=esp32-wroom-32 make -C examples/gnrc_minimal/ info-modules | grep lib
newlib
newlib_nano
newlib_syscalls_default
```

### Issues/PRs references

Split from #15832

You can view, comment on, or merge this pull request online at:

  https://github.com/RIOT-OS/RIOT/pull/15859

-- Commit Summary --

  * treewide: model newlib as a FEATURE

-- File Changes --

    M boards/nucleo-l011k4/Makefile.dep (1)
    M boards/samd10-xmini/Makefile.dep (1)
    M boards/stm32f030f4-demo/Makefile.dep (1)
    M cpu/arm7_common/Kconfig (1)
    M cpu/arm7_common/Makefile.dep (8)
    M cpu/arm7_common/Makefile.features (4)
    M cpu/cortexm_common/Kconfig (1)
    M cpu/cortexm_common/Makefile.dep (13)
    M cpu/cortexm_common/Makefile.features (4)
    M cpu/esp32/Makefile.dep (5)
    M cpu/esp8266/Makefile.dep (1)
    M cpu/esp_common/Kconfig (1)
    M cpu/esp_common/Makefile.dep (2)
    M cpu/esp_common/Makefile.features (1)
    M cpu/fe310/Kconfig (1)
    M cpu/fe310/Makefile.dep (6)
    M cpu/fe310/Makefile.features (3)
    M cpu/mips32r2_common/Kconfig (1)
    M cpu/mips32r2_common/Makefile.dep (2)
    M cpu/mips32r2_common/Makefile.features (1)
    M cpu/msp430_common/Kconfig (1)
    M cpu/msp430_common/Makefile.features (1)
    M makefiles/features_modules.inc.mk (10)
    M sys/Makefile.dep (4)

-- Patch Links --

https://github.com/RIOT-OS/RIOT/pull/15859.patch
https://github.com/RIOT-OS/RIOT/pull/15859.diff

-- 
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/pull/15859
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.riot-os.org/pipermail/notifications/attachments/20210126/67e9face/attachment.htm>


More information about the notifications mailing list