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

[CTF-tracker] List of identified compile time configurations #10566

Open
jia200x opened this issue Dec 6, 2018 · 21 comments
Open

[CTF-tracker] List of identified compile time configurations #10566

jia200x opened this issue Dec 6, 2018 · 21 comments
Assignees
Labels
Community: good first issue This issue is good for newcomers to RIOT to be addressed / implemented Community: Hack'n'ACK candidate This PR is a candidate for review and discussion during one of RIOT's monthly Hack'n'ACK parties Community: help wanted The contributors require help from other members of the community TF: Config Marks issues and PRs related to the work of the Configuration Task Force Type: tracking The issue tracks and organizes the sub-tasks of a larger effort

Comments

@jia200x
Copy link
Member

jia200x commented Dec 6, 2018

Description

This issue is a tracker of the compile time configurations.
After some offline discussions with some RIOT maintainers we came to the conclusion it¡s a good idea to first identify these configurations and tag them with a Doxygen @configurations group. This would give a huge kick start to further work related to compile time configurations.

Here's a list of identified configurations by @miri64 and me. We used lots of grep and scripts, so we politely request to RIOT kernel developers to:

  1. Help identifying which configurations doesn't make sense here (there are some macros that are not configurations, or some others that doesn't make sense to be exposed to the user). If the exposed variable is not a configuration please strike (~foo~) instead of deleting it. Also, add missing configurations
  2. (WIP) When the @configurations label is defined, use this tracker to add it to all configurations.

Identified configurations

boards

cpu

drivers

pkg

sys

sys/net

@jia200x jia200x added the Type: tracking The issue tracks and organizes the sub-tasks of a larger effort label Dec 6, 2018
@miri64
Copy link
Member

miri64 commented Dec 6, 2018

  • sys/posix

I think none of those should be configurable, in the sense we aim to in this issue (exposing them via a config doxygen group):

  • INADDRSZ is always 4 byte. I think the #ifndef exists here in case it is provided by the libc.
  • Dito for IN6ADDRSZ (which is always 16 byte).
  • HAVE_MALLOC_H typically is provided by the build system, so it can rather be seen as a module than a configuration value.

@miri64
Copy link
Member

miri64 commented Dec 6, 2018

  • cpu/cortexm_common

    • SRAM_BASE (cpu/cortexm_common/vectors_cortexm.c:39)

Those are defined unconditionally in the vendor files ;-)

@miri64
Copy link
Member

miri64 commented Dec 6, 2018

(I guess we find occurences of the in many macros in cpu/ ;-))

@miri64 miri64 added the TF: Config Marks issues and PRs related to the work of the Configuration Task Force label Dec 17, 2018
@jia200x
Copy link
Member Author

jia200x commented Dec 17, 2018

(updated with #10617 )

@jia200x
Copy link
Member Author

jia200x commented Dec 17, 2018

I wonder why GNRC_IPV6_STATIC_LLADDR was not listed here :O

@jia200x
Copy link
Member Author

jia200x commented Dec 18, 2018

added LORA configurations to this list. They were not parse by the script

@jia200x
Copy link
Member Author

jia200x commented Dec 18, 2018

@RIOT-OS/maintainers the @config group was already added in #10571. We politely ask request for your help on:

  1. Add missing configurations to this tracker
  2. Strike configurations that doesn't make sense
  3. Pick one or more groups of these tracker and open PRs to add those configuration macros to the @config group. You can base e.g on gnrc_ipv6: add config macros to config doc group #10617.

Thanks you all! ;)

@miri64
Copy link
Member

miri64 commented Dec 18, 2018

I wonder why GNRC_IPV6_STATIC_LLADDR was not listed here :O

Because it is not #ifdef'd but only included over defined(DOXYGEN) (so there is no default value).

@jia200x
Copy link
Member Author

jia200x commented Dec 18, 2018

Because it is not #ifdef'd but only included over defined(DOXYGEN) (so there is no default value).

I see

@miri64
Copy link
Member

miri64 commented Dec 18, 2018

Also please: if you introduce new configuration macros, we would be very happy if you group them under the new config group ;-).

@jia200x
Copy link
Member Author

jia200x commented Dec 18, 2018

should sys/auto_init be configurable? Messing with those PRIOs can break several modules I guess

@jia200x jia200x added Community: Hack'n'ACK candidate This PR is a candidate for review and discussion during one of RIOT's monthly Hack'n'ACK parties Community: help wanted The contributors require help from other members of the community Community: good first issue This issue is good for newcomers to RIOT to be addressed / implemented labels Dec 18, 2018
@miri64
Copy link
Member

miri64 commented Dec 18, 2018

A person configuring that should know what their doing, but it should be configurable ;-).

@kb2ma
Copy link
Member

kb2ma commented Dec 28, 2018

Reviewed gcoap section -- looks good! Added sections for coap and nanocoap in the list above. The items I added are not set up presently for external override (they are just #define, not #ifndef/#define/#endif). However, I'll do that in the PR where I add the config group tags.

@miri64
Copy link
Member

miri64 commented Jan 3, 2019

Not sure this sure this should be configurable. In the end, the one supposed to provide the (human readable) name is the network stack, so increasing or decreasing the length of this makes no sense (or at least implementations very complicated.

@kb2ma
Copy link
Member

kb2ma commented Jan 3, 2019

Thanks for shepherding the CoAP PR's for this, @miri64!

@gschorcht
Copy link
Contributor

When I started to add the compile time configurations of my CPU ports and drivers to the doc group, I was wondering whether it makes sense to structure the config group, for example similar to the existing structure boards, cpu, drivers, kernel ... Try to imagine if all modules configs are arranged directly below the top entry. The list will grow up to something that is not readable anymore.

@miri64
Copy link
Member

miri64 commented Jan 9, 2019

@gschorcht currently we mainly try to collect all existing user configurable macros. This is just the first step in a major rework how configuration will work in the future. How we add substructure to the configuration we'll should also discuss in a later step.

@miri64
Copy link
Member

miri64 commented Apr 17, 2019

Continued a bit further with #11415.

@fjmolinas
Copy link
Contributor

@jia200x @miri64 Should I edit your original message and post #11561 or just post it in a comment?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Community: good first issue This issue is good for newcomers to RIOT to be addressed / implemented Community: Hack'n'ACK candidate This PR is a candidate for review and discussion during one of RIOT's monthly Hack'n'ACK parties Community: help wanted The contributors require help from other members of the community TF: Config Marks issues and PRs related to the work of the Configuration Task Force Type: tracking The issue tracks and organizes the sub-tasks of a larger effort
Projects
None yet
Development

No branches or pull requests

6 participants