diff --git a/Makefile.dep b/Makefile.dep index a8183c5f2f87..ce9cd6baa42e 100644 --- a/Makefile.dep +++ b/Makefile.dep @@ -1071,6 +1071,9 @@ FEATURES_OPTIONAL += periph_pm # always select provided architecture features FEATURES_REQUIRED += $(filter arch_%,$(FEATURES_PROVIDED)) +# don't use idle thread if architecture has needed support +FEATURES_OPTIONAL += no_idle_thread + ifneq (,$(filter ecc_%,$(USEMODULE))) USEMODULE += ecc endif diff --git a/makefiles/defaultmodules.inc.mk b/makefiles/defaultmodules.inc.mk index 18291dfa0633..2eee5cad37c7 100644 --- a/makefiles/defaultmodules.inc.mk +++ b/makefiles/defaultmodules.inc.mk @@ -1,6 +1,4 @@ -DEFAULT_MODULE += board cpu -DEFAULT_MODULE += core core_idle_thread core_init core_msg core_panic -DEFAULT_MODULE += sys +DEFAULT_MODULE += board cpu core core_init core_msg core_panic sys DEFAULT_MODULE += auto_init diff --git a/makefiles/features_modules.inc.mk b/makefiles/features_modules.inc.mk index 3d69156e3547..8a8bcbff7653 100644 --- a/makefiles/features_modules.inc.mk +++ b/makefiles/features_modules.inc.mk @@ -28,3 +28,8 @@ endif # select cortexm_svc pseudomodule if the corresponding feature is used USEMODULE += $(filter cortexm_svc, $(FEATURES_USED)) + +# select core_idle_thread if the feature no_idle_thread is *not* used +ifeq (, $(filter no_idle_thread, $(FEATURES_USED))) + USEMODULE += core_idle_thread +endif