RIOT-OS / RIOT

RIOT - The friendly OS for IoT
https://riot-os.org
GNU Lesser General Public License v2.1
4.95k stars 1.99k forks source link

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

Open jia200x opened 5 years ago

jia200x commented 5 years ago

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

miri64 commented 5 years ago
  • [ ] sys/posix

    • [ ] INADDRSZ (sys/posix/include/arpa/inet.h:38)
    • [ ] IN6ADDRSZ (sys/posix/include/arpa/inet.h:45)
    • [ ] HAVE_MALLOC_H (sys/posix/pthread/include/pthread.h:29)

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

miri64 commented 5 years ago
  • [ ] cpu/cortexm_common

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

Those are defined unconditionally in the vendor files ;-)

miri64 commented 5 years ago

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

jia200x commented 5 years ago

(updated with #10617 )

jia200x commented 5 years ago

I wonder why GNRC_IPV6_STATIC_LLADDR was not listed here :O

jia200x commented 5 years ago

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

jia200x commented 5 years ago

@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 #10617.

Thanks you all! ;)

miri64 commented 5 years ago

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 commented 5 years ago

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

I see

miri64 commented 5 years ago

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

jia200x commented 5 years ago

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

miri64 commented 5 years ago

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

kb2ma commented 5 years ago

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.

jia200x commented 5 years ago

thanks @kb2ma for the review!

jia200x commented 5 years ago

there are some options missing in loramac. I will add them in a follow-up PR. Unchecked the loramac checkbox to reflect this ;)

miri64 commented 5 years ago

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 commented 5 years ago

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

gschorcht commented 5 years ago

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 commented 5 years ago

@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 commented 5 years ago

Continued a bit further with #11415.

fjmolinas commented 5 years ago

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