From 8f30d174aad985659217937e703139aa82f13766 Mon Sep 17 00:00:00 2001 From: Marian Buschsieweke Date: Fri, 12 Feb 2021 16:27:09 +0100 Subject: [PATCH 1/7] cpu/arm7_common: move arch specific compiler setup to makefiles/arch This is where it is located for all other platforms, let's have this consistently. --- cpu/arm7_common/Makefile.include | 19 +------------------ makefiles/arch/arm7.inc.mk | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 18 deletions(-) create mode 100644 makefiles/arch/arm7.inc.mk diff --git a/cpu/arm7_common/Makefile.include b/cpu/arm7_common/Makefile.include index 27cb4aee0095..0a1e3ae7edd1 100644 --- a/cpu/arm7_common/Makefile.include +++ b/cpu/arm7_common/Makefile.include @@ -1,20 +1,3 @@ -# Target architecture for the build. Use arm-none-eabi if you are unsure. -TARGET_ARCH_ARM7 ?= arm-none-eabi -TARGET_ARCH ?= $(TARGET_ARCH_ARM7) - INCLUDES += -I$(RIOTBASE)/cpu/arm7_common/include/ -# currently only arm7tdmi-s is supported by RIOT, but allow overriding MCPU -# if someone wants to add support for other ARM7 CPUs -MCPU ?= arm7tdmi-s - -CFLAGS_CPU = -mcpu=$(MCPU) -CFLAGS_LINK = -ffunction-sections -fdata-sections -fno-builtin -fshort-enums -CFLAGS_DBG ?= -ggdb -g3 -CFLAGS_OPT ?= -Os - -CFLAGS += $(CFLAGS_CPU) $(CFLAGS_LINK) $(CFLAGS_DBG) $(CFLAGS_OPT) -ASFLAGS += $(CFLAGS_CPU) $(CFLAGS_DBG) -LINKFLAGS += -T$(RIOTCPU)/$(CPU)/ldscripts/$(CPU).ld -LINKFLAGS += $(CFLAGS_CPU) $(CFLAGS_DBG) $(CFLAGS_OPT) -static -lgcc -nostartfiles -LINKFLAGS += -Wl,--gc-sections +include $(RIOTMAKE)/arch/arm7.inc.mk diff --git a/makefiles/arch/arm7.inc.mk b/makefiles/arch/arm7.inc.mk new file mode 100644 index 000000000000..1af5c45bbfe2 --- /dev/null +++ b/makefiles/arch/arm7.inc.mk @@ -0,0 +1,18 @@ +# Target architecture for the build. Use arm-none-eabi if you are unsure. +TARGET_ARCH_ARM7 ?= arm-none-eabi +TARGET_ARCH ?= $(TARGET_ARCH_ARM7) + +# currently only arm7tdmi-s is supported by RIOT, but allow overriding MCPU +# if someone wants to add support for other ARM7 CPUs +MCPU ?= arm7tdmi-s + +CFLAGS_CPU = -mcpu=$(MCPU) +CFLAGS_LINK = -ffunction-sections -fdata-sections -fno-builtin -fshort-enums +CFLAGS_DBG ?= -ggdb -g3 +CFLAGS_OPT ?= -Os + +CFLAGS += $(CFLAGS_CPU) $(CFLAGS_LINK) $(CFLAGS_DBG) $(CFLAGS_OPT) +ASFLAGS += $(CFLAGS_CPU) $(CFLAGS_DBG) +LINKFLAGS += -T$(RIOTCPU)/$(CPU)/ldscripts/$(CPU).ld +LINKFLAGS += $(CFLAGS_CPU) $(CFLAGS_DBG) $(CFLAGS_OPT) -static -lgcc -nostartfiles +LINKFLAGS += -Wl,--gc-sections From d07950b4e364397cae5bf891589f8649152a82e9 Mon Sep 17 00:00:00 2001 From: Marian Buschsieweke Date: Fri, 12 Feb 2021 17:32:59 +0100 Subject: [PATCH 2/7] cpu/esp*: move arch specific compiler setup to makefiles/arch This is where it is located for all other platforms, let's have this consistently. --- cpu/esp32/Makefile.include | 5 ++--- cpu/esp8266/Makefile.include | 6 ++---- makefiles/arch/esp32.inc.mk | 2 ++ makefiles/arch/esp8266.inc.mk | 2 ++ 4 files changed, 8 insertions(+), 7 deletions(-) create mode 100644 makefiles/arch/esp32.inc.mk create mode 100644 makefiles/arch/esp8266.inc.mk diff --git a/cpu/esp32/Makefile.include b/cpu/esp32/Makefile.include index 3d14468e91b9..2a80f57bf010 100644 --- a/cpu/esp32/Makefile.include +++ b/cpu/esp32/Makefile.include @@ -18,9 +18,6 @@ include $(RIOTCPU)/esp_common/Makefile.include # regular Makefile -TARGET_ARCH_ESP32 ?= xtensa-esp32-elf -TARGET_ARCH ?= $(TARGET_ARCH_ESP32) - PSEUDOMODULES += esp_eth_hw PSEUDOMODULES += esp_gdbstub PSEUDOMODULES += esp_hw_counter @@ -85,3 +82,5 @@ ifneq (,$(filter esp_qemu,$(USEMODULE))) FFLAGS += cp $(RIOTCPU)/$(CPU)/bin/rom_0x3ff90000_0x00010000.bin $(BINDIR)/rom1.bin && FFLAGS += cp $(RIOTCPU)/$(CPU)/bin/rom_0x40000000_0x000c2000.bin $(BINDIR)/rom.bin endif + +include $(RIOTMAKE)/arch/esp32.inc.mk diff --git a/cpu/esp8266/Makefile.include b/cpu/esp8266/Makefile.include index 4c8a32152e70..4487e31eb6e9 100644 --- a/cpu/esp8266/Makefile.include +++ b/cpu/esp8266/Makefile.include @@ -23,10 +23,6 @@ BOOTLOADER_POS = 0x0000 include $(RIOTCPU)/esp_common/Makefile.include # regular Makefile - -TARGET_ARCH_ESP8266 ?= xtensa-esp8266-elf -TARGET_ARCH ?= $(TARGET_ARCH_ESP8266) - PSEUDOMODULES += esp_sw_timer INCLUDES += -I$(RIOTCPU)/$(CPU) @@ -68,3 +64,5 @@ LINKFLAGS += -Tesp8266.peripherals.ld LINKFLAGS += -Wl,-wrap=pp_attach LINKFLAGS += -Wl,-wrap=pm_attach + +include $(RIOTMAKE)/arch/esp8266.inc.mk diff --git a/makefiles/arch/esp32.inc.mk b/makefiles/arch/esp32.inc.mk new file mode 100644 index 000000000000..48a45707549e --- /dev/null +++ b/makefiles/arch/esp32.inc.mk @@ -0,0 +1,2 @@ +TARGET_ARCH_ESP32 ?= xtensa-esp32-elf +TARGET_ARCH ?= $(TARGET_ARCH_ESP32) diff --git a/makefiles/arch/esp8266.inc.mk b/makefiles/arch/esp8266.inc.mk new file mode 100644 index 000000000000..f30a32da32b6 --- /dev/null +++ b/makefiles/arch/esp8266.inc.mk @@ -0,0 +1,2 @@ +TARGET_ARCH_ESP8266 ?= xtensa-esp8266-elf +TARGET_ARCH ?= $(TARGET_ARCH_ESP8266) From 6e49a0cd486bf6b8b5e919526b0f31e3fa1a95e6 Mon Sep 17 00:00:00 2001 From: Marian Buschsieweke Date: Tue, 16 Feb 2021 13:34:56 +0100 Subject: [PATCH 3/7] cpu/esp*: use more explicit CPU arch Use xtensa-lx106 for the ES8266 and xtensa-lx6 for the ESP32, instead of xtensa for both. This is later needed to allow differentiating between those two for the toolchin selection. --- cpu/esp32/Kconfig | 2 +- cpu/esp32/Makefile.features | 1 + cpu/esp32/Makefile.include | 2 -- cpu/esp8266/Kconfig | 2 +- cpu/esp8266/Makefile.features | 2 ++ cpu/esp8266/Makefile.include | 2 -- cpu/esp_common/Kconfig | 11 ++++++++++- cpu/esp_common/Makefile.features | 2 -- 8 files changed, 15 insertions(+), 9 deletions(-) diff --git a/cpu/esp32/Kconfig b/cpu/esp32/Kconfig index 8bee0c55c1d2..46e51216bff1 100644 --- a/cpu/esp32/Kconfig +++ b/cpu/esp32/Kconfig @@ -6,7 +6,7 @@ config CPU_CORE_XTENSA_LX6 bool - select CPU_ARCH_XTENSA + select CPU_ARCH_XTENSA_LX6 config CPU_FAM_ESP32 bool diff --git a/cpu/esp32/Makefile.features b/cpu/esp32/Makefile.features index 455772f86fd6..452e589f50b7 100644 --- a/cpu/esp32/Makefile.features +++ b/cpu/esp32/Makefile.features @@ -1,3 +1,4 @@ +CPU_ARCH = xtensa-lx6 CPU_FAM = esp32 # MCU defined features that are provided independent on board definitions diff --git a/cpu/esp32/Makefile.include b/cpu/esp32/Makefile.include index 2a80f57bf010..4f7aafb758b3 100644 --- a/cpu/esp32/Makefile.include +++ b/cpu/esp32/Makefile.include @@ -82,5 +82,3 @@ ifneq (,$(filter esp_qemu,$(USEMODULE))) FFLAGS += cp $(RIOTCPU)/$(CPU)/bin/rom_0x3ff90000_0x00010000.bin $(BINDIR)/rom1.bin && FFLAGS += cp $(RIOTCPU)/$(CPU)/bin/rom_0x40000000_0x000c2000.bin $(BINDIR)/rom.bin endif - -include $(RIOTMAKE)/arch/esp32.inc.mk diff --git a/cpu/esp8266/Kconfig b/cpu/esp8266/Kconfig index 363945efe93e..4b036171ea9a 100644 --- a/cpu/esp8266/Kconfig +++ b/cpu/esp8266/Kconfig @@ -6,7 +6,7 @@ config CPU_CORE_XTENSA_L106 bool - select CPU_ARCH_XTENSA + select CPU_ARCH_XTENSA_LX106 config CPU_FAM_ESP8266 bool diff --git a/cpu/esp8266/Makefile.features b/cpu/esp8266/Makefile.features index 899fbfa891e6..58dcff38e09d 100644 --- a/cpu/esp8266/Makefile.features +++ b/cpu/esp8266/Makefile.features @@ -1,5 +1,7 @@ +CPU_ARCH = xtensa-lx106 CPU_FAM = esp8266 + # MCU defined features that are provided independent on board definitions include $(RIOTCPU)/esp_common/Makefile.features diff --git a/cpu/esp8266/Makefile.include b/cpu/esp8266/Makefile.include index 4487e31eb6e9..155f57948347 100644 --- a/cpu/esp8266/Makefile.include +++ b/cpu/esp8266/Makefile.include @@ -64,5 +64,3 @@ LINKFLAGS += -Tesp8266.peripherals.ld LINKFLAGS += -Wl,-wrap=pp_attach LINKFLAGS += -Wl,-wrap=pm_attach - -include $(RIOTMAKE)/arch/esp8266.inc.mk diff --git a/cpu/esp_common/Kconfig b/cpu/esp_common/Kconfig index b0dc7df141c9..34b2c681cf90 100644 --- a/cpu/esp_common/Kconfig +++ b/cpu/esp_common/Kconfig @@ -9,6 +9,14 @@ config CPU_ARCH_XTENSA select HAS_ARCH_32BIT select HAS_ARCH_ESP +config CPU_ARCH_XTENSA_LX106 + bool + select CPU_ARCH_XTENSA + +config CPU_ARCH_XTENSA_LX6 + bool + select CPU_ARCH_XTENSA + config CPU_COMMON_ESP bool select HAS_CPP @@ -58,4 +66,5 @@ config HAS_ARCH_ESP ## Common CPU symbols config CPU_ARCH - default "xtensa" if CPU_ARCH_XTENSA + default "xtensa-lx106" if CPU_ARCH_XTENSA_LX106 + default "xtensa-lx6" if CPU_ARCH_XTENSA_LX6 diff --git a/cpu/esp_common/Makefile.features b/cpu/esp_common/Makefile.features index efb55a6e1062..e8a860a2f807 100644 --- a/cpu/esp_common/Makefile.features +++ b/cpu/esp_common/Makefile.features @@ -1,5 +1,3 @@ -CPU_ARCH = xtensa - # MCU defined features that are provided independent on board definitions FEATURES_PROVIDED += arch_32bit From 5b35127cbcf12543452ff7b7d546c6c4e1b22902 Mon Sep 17 00:00:00 2001 From: Marian Buschsieweke Date: Tue, 16 Feb 2021 13:42:16 +0100 Subject: [PATCH 4/7] cpu/riscv_common: Add missing CPU_ARCH declaration --- cpu/riscv_common/Makefile.features | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cpu/riscv_common/Makefile.features b/cpu/riscv_common/Makefile.features index e73b5bdb502a..0cf8dc7a985b 100644 --- a/cpu/riscv_common/Makefile.features +++ b/cpu/riscv_common/Makefile.features @@ -1,3 +1,5 @@ +CPU_ARCH = risc-v + FEATURES_PROVIDED += arch_32bit FEATURES_PROVIDED += arch_riscv FEATURES_PROVIDED += cpp From 1723eab9aa8e20503d8cf58dc2da29402a76cb87 Mon Sep 17 00:00:00 2001 From: Marian Buschsieweke Date: Tue, 16 Feb 2021 13:44:13 +0100 Subject: [PATCH 5/7] cpu/avr8_common: Add missing CPU_ARCH declaration --- cpu/avr8_common/Makefile.features | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cpu/avr8_common/Makefile.features b/cpu/avr8_common/Makefile.features index 1c5acda5cd1d..d7fb8bf78850 100644 --- a/cpu/avr8_common/Makefile.features +++ b/cpu/avr8_common/Makefile.features @@ -1,3 +1,5 @@ +CPU_ARCH = avr8 + FEATURES_PROVIDED += arch_8bit FEATURES_PROVIDED += arch_avr8 FEATURES_PROVIDED += cpp From dcc2deca669f21310a378fe9c965c487a4d9692c Mon Sep 17 00:00:00 2001 From: Marian Buschsieweke Date: Tue, 16 Feb 2021 13:37:10 +0100 Subject: [PATCH 6/7] treewide: clean up includes of makefiles/arch/... Instead of having each CPU family including $(RIOTMAKE)/arch/.inc.mk, just include $(RIOTMAKE)/arch/$(CPU_ARCH).inc.mk at Makefile.include --- Makefile.include | 3 +++ cpu/arm7_common/Makefile.include | 2 -- cpu/avr8_common/Makefile.include | 2 -- cpu/cc2538/Makefile.include | 2 -- cpu/cc26x0_cc13x0/Makefile.include | 1 - cpu/cc26x2_cc13x2/Makefile.include | 1 - cpu/efm32/Makefile.include | 2 -- cpu/kinetis/Makefile.include | 2 -- cpu/lm4f120/Makefile.include | 2 -- cpu/lpc1768/Makefile.include | 2 +- cpu/mips_pic32mx/Makefile.include | 1 - cpu/mips_pic32mz/Makefile.include | 1 - cpu/msp430_common/Makefile.features | 4 ++-- cpu/msp430_common/Makefile.include | 3 --- cpu/native/Makefile.features | 2 ++ cpu/nrf51/Makefile.include | 1 - cpu/nrf52/Makefile.include | 1 - cpu/qn908x/Makefile.include | 2 -- cpu/riscv_common/Makefile.include | 2 -- cpu/sam3/Makefile.include | 1 - cpu/samd21/Makefile.include | 1 - cpu/samd5x/Makefile.include | 1 - cpu/saml1x/Makefile.include | 1 - cpu/saml21/Makefile.include | 1 - cpu/stm32/Makefile.include | 2 -- makefiles/arch/{arm7.inc.mk => armv4t.inc.mk} | 0 makefiles/arch/armv6m.inc.mk | 1 + makefiles/arch/armv7m.inc.mk | 1 + makefiles/arch/armv8m.inc.mk | 1 + makefiles/arch/{atmega.inc.mk => avr8.inc.mk} | 0 makefiles/arch/{mips.inc.mk => mips32r2.inc.mk} | 0 makefiles/arch/{riscv.inc.mk => risc-v.inc.mk} | 0 makefiles/arch/{esp8266.inc.mk => xtensa-lx106.inc.mk} | 0 makefiles/arch/{esp32.inc.mk => xtensa-lx6.inc.mk} | 0 34 files changed, 11 insertions(+), 35 deletions(-) rename makefiles/arch/{arm7.inc.mk => armv4t.inc.mk} (100%) create mode 100644 makefiles/arch/armv6m.inc.mk create mode 100644 makefiles/arch/armv7m.inc.mk create mode 100644 makefiles/arch/armv8m.inc.mk rename makefiles/arch/{atmega.inc.mk => avr8.inc.mk} (100%) rename makefiles/arch/{mips.inc.mk => mips32r2.inc.mk} (100%) rename makefiles/arch/{riscv.inc.mk => risc-v.inc.mk} (100%) rename makefiles/arch/{esp8266.inc.mk => xtensa-lx106.inc.mk} (100%) rename makefiles/arch/{esp32.inc.mk => xtensa-lx6.inc.mk} (100%) diff --git a/Makefile.include b/Makefile.include index 6bd14bd40d39..b5d689098a6a 100644 --- a/Makefile.include +++ b/Makefile.include @@ -394,6 +394,9 @@ include $(BOARDDIR)/Makefile.include INCLUDES += -I$(RIOTCPU)/$(CPU)/include include $(RIOTCPU)/$(CPU)/Makefile.include +# include architecture specific settings, if any +-include $(RIOTMAKE)/arch/$(CPU_ARCH).inc.mk + # Include common serial logic to define TERMPROG, TERMFLAGS variables based on # the content of RIOT_TERMINAL include $(RIOTMAKE)/tools/serial.inc.mk diff --git a/cpu/arm7_common/Makefile.include b/cpu/arm7_common/Makefile.include index 0a1e3ae7edd1..6706e4cf53e5 100644 --- a/cpu/arm7_common/Makefile.include +++ b/cpu/arm7_common/Makefile.include @@ -1,3 +1 @@ INCLUDES += -I$(RIOTBASE)/cpu/arm7_common/include/ - -include $(RIOTMAKE)/arch/arm7.inc.mk diff --git a/cpu/avr8_common/Makefile.include b/cpu/avr8_common/Makefile.include index 73ea0cc84d95..76ccb2e328f7 100644 --- a/cpu/avr8_common/Makefile.include +++ b/cpu/avr8_common/Makefile.include @@ -2,5 +2,3 @@ INCLUDES += -I$(RIOTCPU)/avr8_common/include \ -isystem$(RIOTCPU)/avr8_common/avr_libc_extra/include \ -isystem$(RIOTCPU)/avr8_common/avr_libc_extra/include/vendor - -include $(RIOTMAKE)/arch/atmega.inc.mk diff --git a/cpu/cc2538/Makefile.include b/cpu/cc2538/Makefile.include index 9cf20fdaee1d..d619ceb54f73 100644 --- a/cpu/cc2538/Makefile.include +++ b/cpu/cc2538/Makefile.include @@ -42,5 +42,3 @@ LINKER_SCRIPT ?= cc2538.ld ifneq (,$(filter riotboot,$(FEATURES_USED))) CFLAGS += -DUPDATE_CCA=0 endif - -include $(RIOTMAKE)/arch/cortexm.inc.mk diff --git a/cpu/cc26x0_cc13x0/Makefile.include b/cpu/cc26x0_cc13x0/Makefile.include index 0d7b49ff1cdc..756bc9564103 100644 --- a/cpu/cc26x0_cc13x0/Makefile.include +++ b/cpu/cc26x0_cc13x0/Makefile.include @@ -7,4 +7,3 @@ ROM_LEN ?= 128K RAM_LEN ?= 20K include ${RIOTCPU}/cc26xx_cc13xx/Makefile.include -include $(RIOTMAKE)/arch/cortexm.inc.mk diff --git a/cpu/cc26x2_cc13x2/Makefile.include b/cpu/cc26x2_cc13x2/Makefile.include index f3fc3769caa5..62864998d24c 100644 --- a/cpu/cc26x2_cc13x2/Makefile.include +++ b/cpu/cc26x2_cc13x2/Makefile.include @@ -6,4 +6,3 @@ ROM_LEN ?= 352K RAM_LEN ?= 80K include ${RIOTCPU}/cc26xx_cc13xx/Makefile.include -include $(RIOTMAKE)/arch/cortexm.inc.mk diff --git a/cpu/efm32/Makefile.include b/cpu/efm32/Makefile.include index f6cb1d3d3bd0..adf753364fda 100644 --- a/cpu/efm32/Makefile.include +++ b/cpu/efm32/Makefile.include @@ -26,5 +26,3 @@ ROM_START_ADDR = $(EFM32_FLASH_START) ROM_LEN = $(EFM32_FLASH_SIZE) RAM_START_ADDR = $(EFM32_SRAM_START) RAM_LEN = $(EFM32_SRAM_SIZE) - -include $(RIOTMAKE)/arch/cortexm.inc.mk diff --git a/cpu/kinetis/Makefile.include b/cpu/kinetis/Makefile.include index 19dce224aad9..ac2cb812eddb 100644 --- a/cpu/kinetis/Makefile.include +++ b/cpu/kinetis/Makefile.include @@ -36,5 +36,3 @@ CFLAGS += \ -DKINETIS_SUBFAMILY=$(KINETIS_SUBFAMILY) \ -DKINETIS_ROMSIZE=$(KINETIS_ROMSIZE) \ # - -include $(RIOTMAKE)/arch/cortexm.inc.mk diff --git a/cpu/lm4f120/Makefile.include b/cpu/lm4f120/Makefile.include index 717f1ea64fa6..d3f3cc00c5a3 100644 --- a/cpu/lm4f120/Makefile.include +++ b/cpu/lm4f120/Makefile.include @@ -1,3 +1 @@ -include $(RIOTMAKE)/arch/cortexm.inc.mk - include $(RIOTCPU)/stellaris_common/Makefile.include diff --git a/cpu/lpc1768/Makefile.include b/cpu/lpc1768/Makefile.include index ea1a0f256b72..abfe7d8d9606 100644 --- a/cpu/lpc1768/Makefile.include +++ b/cpu/lpc1768/Makefile.include @@ -1 +1 @@ -include $(RIOTMAKE)/arch/cortexm.inc.mk +# Existence of this file is expected by the build system, even if there is nothing to configure diff --git a/cpu/mips_pic32mx/Makefile.include b/cpu/mips_pic32mx/Makefile.include index d8f4ad06212d..f470c2ea8931 100644 --- a/cpu/mips_pic32mx/Makefile.include +++ b/cpu/mips_pic32mx/Makefile.include @@ -1,7 +1,6 @@ export ROMABLE = 1 include $(RIOTCPU)/mips_pic32_common/Makefile.include -include $(RIOTMAKE)/arch/mips.inc.mk # define build specific options CFLAGS += -march=m4k -DSKIP_COPY_TO_RAM diff --git a/cpu/mips_pic32mz/Makefile.include b/cpu/mips_pic32mz/Makefile.include index dc17e17fc757..33e3b14cb456 100644 --- a/cpu/mips_pic32mz/Makefile.include +++ b/cpu/mips_pic32mz/Makefile.include @@ -1,7 +1,6 @@ export ROMABLE = 1 include $(RIOTCPU)/mips_pic32_common/Makefile.include -include $(RIOTMAKE)/arch/mips.inc.mk # define build specific options CFLAGS += -march=m5101 -mmicromips -DSKIP_COPY_TO_RAM diff --git a/cpu/msp430_common/Makefile.features b/cpu/msp430_common/Makefile.features index a987418df608..dc932b6ff605 100644 --- a/cpu/msp430_common/Makefile.features +++ b/cpu/msp430_common/Makefile.features @@ -1,5 +1,5 @@ -CPU_ARCH = msp430 -CPU_CORE = msp430 +CPU_ARCH := msp430 +CPU_CORE := msp430 FEATURES_PROVIDED += arch_16bit FEATURES_PROVIDED += arch_msp430 diff --git a/cpu/msp430_common/Makefile.include b/cpu/msp430_common/Makefile.include index 5776456f0d19..95f1ff295eca 100644 --- a/cpu/msp430_common/Makefile.include +++ b/cpu/msp430_common/Makefile.include @@ -1,6 +1,3 @@ INCLUDES += -I$(RIOTCPU)/msp430_common/include/ CFLAGS += -DCPU_MODEL_$(call uppercase_and_underscore,$(CPU_MODEL)) - -# include the msp430 common Makefile -include $(RIOTMAKE)/arch/msp430.inc.mk diff --git a/cpu/native/Makefile.features b/cpu/native/Makefile.features index 5761916aca26..2a8cdb83c5ab 100644 --- a/cpu/native/Makefile.features +++ b/cpu/native/Makefile.features @@ -1,3 +1,5 @@ +CPU_ARCH := native + ifeq (FreeBSD,$(OS)) DISABLE_LIBSTDCPP ?= 1 endif diff --git a/cpu/nrf51/Makefile.include b/cpu/nrf51/Makefile.include index 500a78244b9a..215e52141a72 100644 --- a/cpu/nrf51/Makefile.include +++ b/cpu/nrf51/Makefile.include @@ -1,2 +1 @@ include $(RIOTCPU)/nrf5x_common/Makefile.include -include $(RIOTMAKE)/arch/cortexm.inc.mk diff --git a/cpu/nrf52/Makefile.include b/cpu/nrf52/Makefile.include index 1fa7f149cfba..1e5b999cfdf8 100644 --- a/cpu/nrf52/Makefile.include +++ b/cpu/nrf52/Makefile.include @@ -43,4 +43,3 @@ LINKER_SCRIPT ?= cortexm.ld VECTORS_O ?= $(BINDIR)/nrf52_vectors/vectors_$(CPU_MODEL).o include $(RIOTCPU)/nrf5x_common/Makefile.include -include $(RIOTMAKE)/arch/cortexm.inc.mk diff --git a/cpu/qn908x/Makefile.include b/cpu/qn908x/Makefile.include index 07deb3c1a0a2..e4a2918e93dd 100644 --- a/cpu/qn908x/Makefile.include +++ b/cpu/qn908x/Makefile.include @@ -35,5 +35,3 @@ CFLAGS += \ # include path here. PSEUDOMODULES += vendor_% INCLUDES += -I$(RIOTCPU)/$(CPU)/include/vendor - -include $(RIOTMAKE)/arch/cortexm.inc.mk diff --git a/cpu/riscv_common/Makefile.include b/cpu/riscv_common/Makefile.include index 8182f8dfe56f..13a0b9761a16 100644 --- a/cpu/riscv_common/Makefile.include +++ b/cpu/riscv_common/Makefile.include @@ -22,5 +22,3 @@ ifneq (,$(ITIM_START_ADDR)) endif LINKER_SCRIPT ?= riscv.ld - -include $(RIOTMAKE)/arch/riscv.inc.mk diff --git a/cpu/sam3/Makefile.include b/cpu/sam3/Makefile.include index 24f75984d79e..80da259e09f5 100644 --- a/cpu/sam3/Makefile.include +++ b/cpu/sam3/Makefile.include @@ -1,2 +1 @@ include $(RIOTCPU)/sam_common/Makefile.include -include $(RIOTMAKE)/arch/cortexm.inc.mk diff --git a/cpu/samd21/Makefile.include b/cpu/samd21/Makefile.include index cd9969652e3a..79b987e4fdb4 100644 --- a/cpu/samd21/Makefile.include +++ b/cpu/samd21/Makefile.include @@ -25,4 +25,3 @@ endif CFLAGS += -DCPU_COMMON_SAMD21 include $(RIOTCPU)/sam0_common/Makefile.include -include $(RIOTMAKE)/arch/cortexm.inc.mk diff --git a/cpu/samd5x/Makefile.include b/cpu/samd5x/Makefile.include index 0d23d9cde187..ccb01663ae4c 100644 --- a/cpu/samd5x/Makefile.include +++ b/cpu/samd5x/Makefile.include @@ -16,4 +16,3 @@ BACKUP_RAM_ADDR = 0x47000000 BACKUP_RAM_LEN = 0x2000 include $(RIOTCPU)/sam0_common/Makefile.include -include $(RIOTMAKE)/arch/cortexm.inc.mk diff --git a/cpu/saml1x/Makefile.include b/cpu/saml1x/Makefile.include index 3b9e7f20404e..6e26d2130a4c 100644 --- a/cpu/saml1x/Makefile.include +++ b/cpu/saml1x/Makefile.include @@ -8,4 +8,3 @@ endif CFLAGS += -DCPU_COMMON_SAML1X include $(RIOTCPU)/sam0_common/Makefile.include -include $(RIOTMAKE)/arch/cortexm.inc.mk diff --git a/cpu/saml21/Makefile.include b/cpu/saml21/Makefile.include index 1bd1b002dd48..e965453603c2 100644 --- a/cpu/saml21/Makefile.include +++ b/cpu/saml21/Makefile.include @@ -19,4 +19,3 @@ ifneq (,$(filter saml21j18b saml21j18a samr30g18a samr34j18b,$(CPU_MODEL))) endif include $(RIOTCPU)/sam0_common/Makefile.include -include $(RIOTMAKE)/arch/cortexm.inc.mk diff --git a/cpu/stm32/Makefile.include b/cpu/stm32/Makefile.include index 613edb9633a9..a0de775d9946 100644 --- a/cpu/stm32/Makefile.include +++ b/cpu/stm32/Makefile.include @@ -90,5 +90,3 @@ $(STM32IRQS_INCLUDE_FILE): $(STM32FAM_INCLUDE_FILE) # Include clock configuration directory INCLUDES += -I$(RIOTCPU)/stm32/include/clk - -include $(RIOTMAKE)/arch/cortexm.inc.mk diff --git a/makefiles/arch/arm7.inc.mk b/makefiles/arch/armv4t.inc.mk similarity index 100% rename from makefiles/arch/arm7.inc.mk rename to makefiles/arch/armv4t.inc.mk diff --git a/makefiles/arch/armv6m.inc.mk b/makefiles/arch/armv6m.inc.mk new file mode 100644 index 000000000000..ea1a0f256b72 --- /dev/null +++ b/makefiles/arch/armv6m.inc.mk @@ -0,0 +1 @@ +include $(RIOTMAKE)/arch/cortexm.inc.mk diff --git a/makefiles/arch/armv7m.inc.mk b/makefiles/arch/armv7m.inc.mk new file mode 100644 index 000000000000..ea1a0f256b72 --- /dev/null +++ b/makefiles/arch/armv7m.inc.mk @@ -0,0 +1 @@ +include $(RIOTMAKE)/arch/cortexm.inc.mk diff --git a/makefiles/arch/armv8m.inc.mk b/makefiles/arch/armv8m.inc.mk new file mode 100644 index 000000000000..ea1a0f256b72 --- /dev/null +++ b/makefiles/arch/armv8m.inc.mk @@ -0,0 +1 @@ +include $(RIOTMAKE)/arch/cortexm.inc.mk diff --git a/makefiles/arch/atmega.inc.mk b/makefiles/arch/avr8.inc.mk similarity index 100% rename from makefiles/arch/atmega.inc.mk rename to makefiles/arch/avr8.inc.mk diff --git a/makefiles/arch/mips.inc.mk b/makefiles/arch/mips32r2.inc.mk similarity index 100% rename from makefiles/arch/mips.inc.mk rename to makefiles/arch/mips32r2.inc.mk diff --git a/makefiles/arch/riscv.inc.mk b/makefiles/arch/risc-v.inc.mk similarity index 100% rename from makefiles/arch/riscv.inc.mk rename to makefiles/arch/risc-v.inc.mk diff --git a/makefiles/arch/esp8266.inc.mk b/makefiles/arch/xtensa-lx106.inc.mk similarity index 100% rename from makefiles/arch/esp8266.inc.mk rename to makefiles/arch/xtensa-lx106.inc.mk diff --git a/makefiles/arch/esp32.inc.mk b/makefiles/arch/xtensa-lx6.inc.mk similarity index 100% rename from makefiles/arch/esp32.inc.mk rename to makefiles/arch/xtensa-lx6.inc.mk From b468610f99f9d12d434ac0a9b9f674754292af25 Mon Sep 17 00:00:00 2001 From: Marian Buschsieweke Date: Tue, 16 Feb 2021 13:47:56 +0100 Subject: [PATCH 7/7] cpu/*/Makefile.feature: simple expansion for CPU_ARCH Simple expansion is recommended by official documentation [1] for a multitude of reasons over recursive expansion, of which predictable behavior (and, thus, maintainability of Makefiles) and performance are the biggest arguments. [1]: https://www.gnu.org/software/make/manual/html_node/Flavors.html --- cpu/arm7_common/Makefile.features | 4 ++-- cpu/esp32/Makefile.features | 4 ++-- cpu/esp8266/Makefile.features | 4 ++-- cpu/mips32r2_common/Makefile.features | 2 +- cpu/riscv_common/Makefile.features | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/cpu/arm7_common/Makefile.features b/cpu/arm7_common/Makefile.features index bb88c29bc811..eb06ceda3d88 100644 --- a/cpu/arm7_common/Makefile.features +++ b/cpu/arm7_common/Makefile.features @@ -1,5 +1,5 @@ -CPU_ARCH = armv4t -CPU_CORE = arm7tdmi_s +CPU_ARCH := armv4t +CPU_CORE := arm7tdmi_s FEATURES_PROVIDED += arch_32bit FEATURES_PROVIDED += arch_arm diff --git a/cpu/esp32/Makefile.features b/cpu/esp32/Makefile.features index 452e589f50b7..e6b0ce61c6f6 100644 --- a/cpu/esp32/Makefile.features +++ b/cpu/esp32/Makefile.features @@ -1,5 +1,5 @@ -CPU_ARCH = xtensa-lx6 -CPU_FAM = esp32 +CPU_ARCH := xtensa-lx6 +CPU_FAM := esp32 # MCU defined features that are provided independent on board definitions diff --git a/cpu/esp8266/Makefile.features b/cpu/esp8266/Makefile.features index 58dcff38e09d..1f171960d9f5 100644 --- a/cpu/esp8266/Makefile.features +++ b/cpu/esp8266/Makefile.features @@ -1,5 +1,5 @@ -CPU_ARCH = xtensa-lx106 -CPU_FAM = esp8266 +CPU_ARCH := xtensa-lx106 +CPU_FAM := esp8266 # MCU defined features that are provided independent on board definitions diff --git a/cpu/mips32r2_common/Makefile.features b/cpu/mips32r2_common/Makefile.features index 8c33bbbbff05..5603be8e3901 100644 --- a/cpu/mips32r2_common/Makefile.features +++ b/cpu/mips32r2_common/Makefile.features @@ -1,4 +1,4 @@ -CPU_ARCH = mips32r2 +CPU_ARCH := mips32r2 FEATURES_PROVIDED += arch_32bit FEATURES_PROVIDED += arch_mips32r2 diff --git a/cpu/riscv_common/Makefile.features b/cpu/riscv_common/Makefile.features index 0cf8dc7a985b..563a4387f7ec 100644 --- a/cpu/riscv_common/Makefile.features +++ b/cpu/riscv_common/Makefile.features @@ -1,4 +1,4 @@ -CPU_ARCH = risc-v +CPU_ARCH := risc-v FEATURES_PROVIDED += arch_32bit FEATURES_PROVIDED += arch_riscv