Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

treewide: model newlib as a FEATURE #15859

Merged
merged 1 commit into from Jan 27, 2021

Conversation

fjmolinas
Copy link
Contributor

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

@fjmolinas fjmolinas added Area: build system Area: Build system Type: cleanup The issue proposes a clean-up / The PR cleans-up parts of the codebase / documentation labels Jan 26, 2021
@fjmolinas
Copy link
Contributor Author

@aabadie if you don't find a typo or other such change, mind triggering the ci?

@fjmolinas fjmolinas added the CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR label Jan 27, 2021
@fjmolinas fjmolinas removed the CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR label Jan 27, 2021
@fjmolinas fjmolinas added the CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR label Jan 27, 2021
@fjmolinas
Copy link
Contributor Author

Forgot to add the symbol

@fjmolinas
Copy link
Contributor Author

All green @aabadie!

Copy link
Contributor

@aabadie aabadie left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very nice and required cleanup ! Thanks @fjmolinas.

I trust your testing and Murdock is all green.

ACK!

@aabadie aabadie merged commit ce97e9d into RIOT-OS:master Jan 27, 2021
@fjmolinas fjmolinas deleted the pr_newlib_feature branch January 27, 2021 09:18
@fjmolinas
Copy link
Contributor Author

Thanks for the review!

fjmolinas added a commit to fjmolinas/RIOT that referenced this pull request Feb 16, 2021
RIOT-OS#15859 exposed a bug in the
handling of FEATURES_REQUIRED_ANY, so RIOT-OS#15935
did not run this test, native is currently failing, so blacklist while this
is still the case
fjmolinas added a commit to fjmolinas/RIOT that referenced this pull request Feb 16, 2021
RIOT-OS#15859 exposed a bug in the
handling of FEATURES_REQUIRED_ANY, so RIOT-OS#15935
did not run this test, native is currently failing, so blacklist while this
is still the case
fjmolinas added a commit to fjmolinas/RIOT that referenced this pull request Feb 16, 2021
RIOT-OS#15859 exposed a bug in the
handling of FEATURES_REQUIRED_ANY, so RIOT-OS#15935
did not run this test, native is currently failing, so blacklist while this
is still the case
fjmolinas added a commit to fjmolinas/RIOT that referenced this pull request Feb 16, 2021
RIOT-OS#15859 exposed a bug in the
handling of FEATURES_REQUIRED_ANY, so RIOT-OS#15935
did not run this test, native is currently failing, so blacklist while this
is still the case
@kaspar030 kaspar030 added this to the Release 2021.04 milestone Apr 23, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area: build system Area: Build system CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR Type: cleanup The issue proposes a clean-up / The PR cleans-up parts of the codebase / documentation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants