1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00

makefiles: avoid building archives when compiling

This commit is contained in:
Leandro Lanzieri 2020-08-10 14:45:39 +02:00
parent e24a64fd64
commit 81cb769cad
No known key found for this signature in database
GPG Key ID: 13559905E2EBEAA5
39 changed files with 58 additions and 157 deletions

View File

@ -17,9 +17,9 @@ DIRS := $(sort $(abspath $(DIRS)))
_MOD := $(shell basename $(CURDIR))
MODULE ?= $(_MOD)
.PHONY: all clean $(DIRS:%=ALL--%) $(DIRS:%=CLEAN--%)
.PHONY: all clean $(DIRS:%=ALL--%) $(DIRS:%=CLEAN--%) $(MODULE).module
all: $(BINDIR)/$(MODULE).a ..nothing
all: $(MODULE).module ..nothing
..nothing:
@:
@ -89,14 +89,12 @@ include $(RIOTMAKE)/tools/fixdep.inc.mk
$(BINDIR)/$(MODULE)/:
$(Q)mkdir -p $@
$(BINDIR)/$(MODULE).a $(OBJ): | $(BINDIR)/$(MODULE)/
# only create the module folder when it's going to hold objects
ifneq (,$(strip $(OBJ)))
$(MODULE).module $(OBJ): | $(BINDIR)/$(MODULE)/
endif
# Build the archive from the output directory to create relative thin archives
# This allows having them valid in and outside of docker
$(BINDIR)/$(MODULE).a: $(OBJ) | $(DIRS:%=ALL--%)
@# Recreate archive to cleanup deleted/non selected source files objects
$(Q)$(RM) $@
$(Q)cd $(@D) && $(AR) $(ARFLAGS) $(@F) $(subst $(@D)/,,$^)
$(MODULE).module: $(OBJ) | $(DIRS:%=ALL--%)
CXXFLAGS = $(filter-out $(CXXUWFLAGS), $(CFLAGS)) $(CXXEXFLAGS)
CCASFLAGS = $(filter-out $(CCASUWFLAGS), $(CFLAGS)) $(CCASEXFLAGS)

View File

@ -426,12 +426,6 @@ CFLAGS += -DBOARD_$(BOARDDEF)=\"$(BOARD)\" -DRIOT_BOARD=BOARD_$(BOARDDEF)
CFLAGS += -DCPU_$(CPUDEF)=\"$(CPU)\" -DRIOT_CPU=CPU_$(CPUDEF)
CFLAGS += -DMCU_$(MCUDEF)=\"$(MCU)\" -DRIOT_MCU=MCU_$(MCUDEF)
# OSX fails to create empty archives. Provide a wrapper to catch that error.
ifneq (0, $(shell mkdir -p $(BINDIR); $(AR) rc $(BINDIR)/empty-archive.a 2> /dev/null; \
echo $$?; rm -f $(BINDIR)/empty-archive.a 2>&1 > /dev/null))
AR := $(RIOTBASE)/dist/ar-wrapper $(AR)
endif
# Feature test default CFLAGS and LINKFLAGS for the set compiled.
include $(RIOTMAKE)/cflags.inc.mk
@ -452,7 +446,7 @@ endif
APPLICATION_MODULE ?= application_$(APPLICATION)
# the binaries to link
BASELIBS += $(BINDIR)/$(APPLICATION_MODULE).a
BASELIBS += $(APPLICATION_MODULE).module
BASELIBS += $(APPDEPS)
@ -567,11 +561,14 @@ BUILDDEPS += $(APPDEPS)
_BASELIBS_VALUE_BEFORE_USAGE := $(BASELIBS)
# Linker rule
# Only use --start-group when archives are defined
ARCHIVES_GROUP = $(if $(ARCHIVES),$(LINKFLAGPREFIX)--start-group $(ARCHIVES) -lm $(LINKFLAGPREFIX)--end-group, -lm)
$(ELFFILE): FORCE
ifeq ($(BUILDOSXNATIVE),1)
_LINK = $(if $(CPPMIX),$(LINKXX),$(LINK)) $(UNDEF) $$(find $(BASELIBS) -size +8c) $(LINKFLAGS) $(LINKFLAGPREFIX)-no_pie
_LINK = $(if $(CPPMIX),$(LINKXX),$(LINK)) $$(find $(BASELIBS:%.module=$(BINDIR)/%/*.o) 2> /dev/null) $(ARCHIVES_GROUP) $(LINKFLAGS) $(LINKFLAGPREFIX)-no_pie
else
_LINK = $(if $(CPPMIX),$(LINKXX),$(LINK)) $(UNDEF) $(LINKFLAGPREFIX)--start-group $(BASELIBS) -lm $(LINKFLAGPREFIX)--end-group $(LINKFLAGS) $(LINKFLAGPREFIX)-Map=$(BINDIR)/$(APPLICATION).map
_LINK = $(if $(CPPMIX),$(LINKXX),$(LINK)) $$(find $(BASELIBS:%.module=$(BINDIR)/%/*.o) 2> /dev/null) $(ARCHIVES_GROUP) $(LINKFLAGS) $(LINKFLAGPREFIX)-Map=$(BINDIR)/$(APPLICATION).map
endif # BUILDOSXNATIVE
ifeq ($(BUILD_IN_DOCKER),1)
@ -580,20 +577,22 @@ else
ifeq (,$(RIOTNOLINK))
link: ..compiler-check ..build-message $(BUILD_FILES) print-size
else
link: ..compiler-check ..build-message $(BASELIBS)
link: ..compiler-check ..build-message $(BASELIBS) $(ARCHIVES)
endif # RIOTNOLINK
$(ELFFILE): $(BASELIBS)
$(ELFFILE): $(BASELIBS) $(ARCHIVES)
$(Q)$(_LINK) -o $@
$(BINDIR)/$(APPLICATION_MODULE).a: pkg-build $(BUILDDEPS)
.PHONY: $(APPLICATION_MODULE).module
$(APPLICATION_MODULE).module: pkg-build $(BUILDDEPS)
$(Q)DIRS="$(DIRS)" APPLICATION_BLOBS="$(BLOBS)" \
"$(MAKE)" -C $(APPDIR) -f $(RIOTMAKE)/application.inc.mk
$(BINDIR)/$(APPLICATION_MODULE).a: FORCE
$(APPLICATION_MODULE).module: FORCE
# Other modules are built by application.inc.mk and packages building
_SUBMAKE_LIBS = $(filter-out $(BINDIR)/$(APPLICATION_MODULE).a $(APPDEPS), $(BASELIBS))
$(_SUBMAKE_LIBS): $(BINDIR)/$(APPLICATION_MODULE).a pkg-build
_SUBMAKE_LIBS = $(filter-out $(APPLICATION_MODULE).module $(APPDEPS), $(BASELIBS) $(ARCHIVES))
$(_SUBMAKE_LIBS): $(APPLICATION_MODULE).module pkg-build
# 'print-size' triggers a rebuild. Use 'info-buildsize' if you do not need to rebuild.
print-size: $(ELFFILE)
@ -607,50 +606,6 @@ print-size: $(ELFFILE)
endif # BUILD_IN_DOCKER
# Rules to check the correctness of thin archives.
# OS independant relpath as 'realpath --relative-to' is not supported on OSx
relpath = $(shell python3 -c 'import pathlib; print(pathlib.Path("$1").relative_to("$(CURDIR)"))')
# Each ARCHECK file contains all the absolute paths found inside the archive.
BASELIB_ARCHECKS = $(patsubst %.a,%.a-check,$(filter %.a,$(BASELIBS)))
# For each a file, print the absolute paths found inside it
# If "ar t" is called with an absolute path it will print an abs path regardless
# of how the archive is internally
# In case of a malformed archive, ar prints to stderr (and sets an error code).
# Doing `2>&1` is hacky, the correct thing would be to get the exit code.
# The `| %.a` is necessary to be able to check file produced in docker.
%.a-check: %.a
$(Q)$(AR) t $(call relpath,$<) 2>&1 | grep '^/' | '$(LAZYSPONGE)' $(LAZYSPONGE_FLAGS) '$@'
# There's no point on keeping files whose content is later copied to another file
.INTERMEDIATE: $(BASELIB_ARCHECKS)
ARCHIVE_CHECK = $(BINDIR)/$(APPLICATION).archive-check
$(ARCHIVE_CHECK): $(BASELIB_ARCHECKS)
$(Q)cat $^ | '$(LAZYSPONGE)' $(LAZYSPONGE_FLAGS) '$@'
# Rule to check if thin archives are correctly produced, that is, with a correct
# relative path.
ifeq ($(BUILD_IN_DOCKER),1)
archive-check: ..in-docker-container
else
archive-check: $(ARCHIVE_CHECK) FORCE
@if [ -s '$<' ] ; then \
$(COLOR_ECHO) '$(COLOR_RED)Found the following absolute paths in archives' ;\
cat '$<';\
$(COLOR_ECHO) '$(COLOR_RESET)' ;\
exit 1;\
elif [ -f '$<' ] ; then \
$(COLOR_ECHO) '$(COLOR_GREEN)Archives correctly formed$(COLOR_RESET)' ;\
else \
$(COLOR_ECHO) '$(COLOR_RED)Unexpected error (file not found)$(COLOR_RESET)' ;\
exit 1;\
fi
endif # BUILD_IN_DOCKER
# Check given command is available in the path
# check_cmd 'command' 'description'
define check_cmd
@ -680,7 +635,7 @@ endif
@$(COLOR_ECHO)
# The `clean` needs to be serialized before everything else.
all $(BASELIBS) $(BUILDDEPS) ..in-docker-container: | $(CLEAN)
all $(BASELIBS) $(ARCHIVES) $(BUILDDEPS) ..in-docker-container: | $(CLEAN)
.PHONY: pkg-prepare pkg-build pkg-build-%
pkg-prepare:

View File

@ -169,5 +169,3 @@ eval-gprof:
eval-cachegrind:
$(CGANNOTATE) $(shell ls -rt cachegrind.out* | tail -1)
UNDEF += $(BINDIR)/cpu/startup.o

View File

@ -17,5 +17,3 @@ 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
UNDEF += $(BINDIR)/cpu/startup.o

View File

@ -1,7 +1,5 @@
CPU_VARIANT = x0
VECTORS_O = $(BINDIR)/cc26xx_cc13xx/vectors.o
ROM_START_ADDR ?= 0x00000000
RAM_START_ADDR ?= 0x20000000

View File

@ -1,7 +1,5 @@
CPU_VARIANT = x2
VECTORS_O = $(BINDIR)/cc26xx_cc13xx/vectors.o
ROM_START_ADDR ?= 0x00000000
RAM_START_ADDR ?= 0x20000000
ROM_LEN ?= 352K

View File

@ -3,8 +3,5 @@
# as easy as adding the header file only.
EFM32_HEADER = $(wildcard $(RIOTCPU)/efm32/families/efm32gg/include/vendor/$(CPU_MODEL).h)
# vectors.o is provided by 'cpu_$(CPU_FAM)' module and not by 'cpu'
VECTORS_O = $(BINDIR)/cpu_efm32gg/vectors.o
# include vendor device headers
INCLUDES += -I$(RIOTCPU)/efm32/families/efm32gg/include/vendor

View File

@ -3,8 +3,5 @@
# as easy as adding the header file only.
EFM32_HEADER = $(wildcard $(RIOTCPU)/efm32/families/efm32lg/include/vendor/$(CPU_MODEL).h)
# vectors.o is provided by 'cpu_$(CPU_FAM)' module and not by 'cpu'
VECTORS_O = $(BINDIR)/cpu_efm32lg/vectors.o
# include vendor device headers
INCLUDES += -I$(RIOTCPU)/efm32/families/efm32lg/include/vendor

View File

@ -3,8 +3,5 @@
# as easy as adding the header file only.
EFM32_HEADER = $(wildcard $(RIOTCPU)/efm32/families/efm32pg12b/include/vendor/$(CPU_MODEL).h)
# vectors.o is provided by 'cpu_$(CPU_FAM)' module and not by 'cpu'
VECTORS_O = $(BINDIR)/cpu_efm32pg12b/vectors.o
# include vendor device headers
INCLUDES += -I$(RIOTCPU)/efm32/families/efm32pg12b/include/vendor

View File

@ -3,8 +3,5 @@
# as easy as adding the header file only.
EFM32_HEADER = $(wildcard $(RIOTCPU)/efm32/families/efm32pg1b/include/vendor/$(CPU_MODEL).h)
# vectors.o is provided by 'cpu_$(CPU_FAM)' module and not by 'cpu'
VECTORS_O = $(BINDIR)/cpu_efm32pg1b/vectors.o
# include vendor device headers
INCLUDES += -I$(RIOTCPU)/efm32/families/efm32pg1b/include/vendor

View File

@ -3,8 +3,5 @@
# as easy as adding the header file only.
EFM32_HEADER = $(wildcard $(RIOTCPU)/efm32/families/efr32mg12p/include/vendor/$(CPU_MODEL).h)
# vectors.o is provided by 'cpu_$(CPU_FAM)' module and not by 'cpu'
VECTORS_O = $(BINDIR)/cpu_efr32mg12p/vectors.o
# include vendor device headers
INCLUDES += -I$(RIOTCPU)/efm32/families/efr32mg12p/include/vendor

View File

@ -3,8 +3,5 @@
# as easy as adding the header file only.
EFM32_HEADER = $(wildcard $(RIOTCPU)/efm32/families/efr32mg1p/include/vendor/$(CPU_MODEL).h)
# vectors.o is provided by 'cpu_$(CPU_FAM)' module and not by 'cpu'
VECTORS_O = $(BINDIR)/cpu_efr32mg1p/vectors.o
# include vendor device headers
INCLUDES += -I$(RIOTCPU)/efm32/families/efr32mg1p/include/vendor

View File

@ -59,19 +59,19 @@ LINKFLAGS += -T$(RIOTCPU)/$(CPU)/ld/esp32.rom.ld
LINKFLAGS += -T$(RIOTCPU)/$(CPU)/ld/esp32.rom.nanofmt.ld
LINKFLAGS += -nostdlib -lgcc -Wl,-gc-sections
# Baselibs needed when using esp_wifi_any pseudomodule
# Libraries needed when using esp_wifi_any pseudomodule
ifneq (,$(filter esp_wifi_any,$(USEMODULE)))
BASELIBS += -lcore -lrtc -lnet80211 -lpp -lcoexist -lwps -lwpa -lwpa2
BASELIBS += -lphy -lstdc++
ARCHIVES += -lcore -lrtc -lnet80211 -lpp -lcoexist -lwps -lwpa -lwpa2
ARCHIVES += -lphy -lstdc++
endif
# Baselibs needed when using esp_now module
# Libraries needed when using esp_now module
ifneq (,$(filter esp_now,$(USEMODULE)))
BASELIBS += -lespnow -lmesh
ARCHIVES += -lespnow -lmesh
endif
ifneq (,$(filter cpp,$(FEATURES_USED)))
BASELIBS += -lstdc++
ARCHIVES += -lstdc++
endif
# additional flasher configuration for ESP32 QEMU

View File

@ -55,10 +55,10 @@ ifneq (,$(filter esp_gdbstub,$(USEMODULE)))
endif
ifneq (,$(filter esp_now,$(USEMODULE)))
BASELIBS += -lespnow
ARCHIVES += -lespnow
endif
BASELIBS += -lgcc -lwpa -lcore -lnet80211 -lphy -lpp -lstdc++
ARCHIVES += -lgcc -lwpa -lcore -lnet80211 -lphy -lpp -lstdc++
LINKFLAGS += -T$(RIOTCPU)/$(CPU)/ld/esp8266.rom.ld
LINKFLAGS += -T$(RIOTCPU)/$(CPU)/ld/esp8266.riot-os.ld

View File

@ -36,9 +36,6 @@ OPTIONAL_CFLAGS_BLACKLIST += -gz
ASFLAGS += --longcalls --text-section-literals
# thin archives trigger a reboot loop - see #12258, #12035, #12346
ARFLAGS = rcs
CFLAGS_DBG ?= -ggdb -g3
# override default CFLAGS_OPT in case module esp_gdb is enabled
@ -80,7 +77,7 @@ CFLAGS += $(if $(findstring qio,$(FLASH_MODE)),-DFLASH_MODE_QIO=1)
CFLAGS += $(if $(findstring dio,$(FLASH_MODE)),-DFLASH_MODE_DIO=1)
CFLAGS += $(if $(findstring dout,$(FLASH_MODE)),-DFLASH_MODE_DOUT=1)
BASELIBS += -lhal -lg -lc
ARCHIVES += -lhal -lg -lc
LINKFLAGS += $(CFLAGS_OPT) $(CFLAGS_DBG)
LINKFLAGS += -L$(ESP_SDK_DIR)/components/$(CPU)

View File

@ -37,7 +37,4 @@ CFLAGS += \
-DKINETIS_ROMSIZE=$(KINETIS_ROMSIZE) \
#
# add the CPU specific flash configuration field for the linker
UNDEF += $(BINDIR)/cpu/fcfield.o
include $(RIOTMAKE)/arch/cortexm.inc.mk

View File

@ -46,6 +46,8 @@ extern char _sheap; /* start of the heap */
extern char _eheap; /* end of the heap */
char *heap_top = &_sheap + 4;
/* Only need to define these when MIPS newlib is not used */
#ifndef __mips__
/**
* @brief Free resources on NewLib de-initialization, not used for RIOT
*/
@ -97,6 +99,7 @@ void *_sbrk_r(struct _reent *r, ptrdiff_t incr)
irq_restore(state);
return res;
}
#endif /*__mips__*/
/**
* @brief Get the process-ID of the current thread

View File

@ -2,7 +2,5 @@ INCLUDES += -I$(RIOTCPU)/msp430_common/include/
CFLAGS += -DCPU_MODEL_$(call uppercase_and_underscore,$(CPU_MODEL))
UNDEF += $(BINDIR)/msp430_common/startup.o
# include the msp430 common Makefile
include $(RIOTMAKE)/arch/msp430.inc.mk

View File

@ -1,7 +1,10 @@
MODULE = cpu
DIRS += periph
ifneq (,$(filter native_vfs,$(USEMODULE)))
DIRS += vfs
endif
ifeq ($(OS),Darwin)
CFLAGS += -D_XOPEN_SOURCE=600 -D_DARWIN_C_SOURCE

View File

@ -11,10 +11,6 @@ ASFLAGS += $(CFLAGS_CPU) $(CFLAGS_DBG)
LINKFLAGS += $(CFLAGS_CPU) $(CFLAGS_DBG) $(CFLAGS_OPT) -static -lgcc -e reset_handler -Wl,--gc-sections
OFLAGS += -j .text -j .data
# explicitly tell the linker to link the syscalls and startup code.
# without this the interrupt vectors will not be linked correctly!
UNDEF += $(BINDIR)/atmega_common/startup.o
# Use ROM_LEN and RAM_LEN during link
$(if $(ROM_LEN),,$(error ROM_LEN is not defined))
$(if $(RAM_LEN),,$(error RAM_LEN is not defined))

View File

@ -102,13 +102,6 @@ ifneq (,$(filter cmsis-dsp,$(USEPKG)))
endif
endif
# Explicitly tell the linker to link the startup code.
# Without this the interrupt vectors will not be linked correctly!
VECTORS_O ?= $(BINDIR)/cpu/vectors.o
ifeq ($(COMMON_STARTUP),)
UNDEF += $(VECTORS_O)
endif
# CPU depends on the cortex-m common module, so include it:
include $(RIOTCPU)/cortexm_common/Makefile.include

View File

@ -38,6 +38,10 @@ endif
# Forbid common symbols to prevent accidental aliasing.
CFLAGS += -fno-common
# Place data and functions into their own sections. This helps the linker
# garbage collection to remove unused symbols when linking statically.
CFLAGS += -ffunction-sections -fdata-sections
# Compress debug info. This saves approximately 50% of disk usage.
# It has no effect if debugging information is not emitted, so it can be left
# on unconditionally.
@ -61,9 +65,3 @@ endif
# Add the optional flags that are not architecture/toolchain blacklisted
CFLAGS += $(filter-out $(OPTIONAL_CFLAGS_BLACKLIST),$(OPTIONAL_CFLAGS))
# Default ARFLAGS for platforms which do not specify it.
# Note: make by default provides ARFLAGS=rv which we want to override
ifeq ($(origin ARFLAGS),default)
ARFLAGS = rcTs
endif

View File

@ -8,7 +8,6 @@ export DOCKER_MAKECMDGOALS_POSSIBLE = \
scan-build \
scan-build-analyze \
tests-% \
archive-check \
#
export DOCKER_MAKECMDGOALS = $(filter $(DOCKER_MAKECMDGOALS_POSSIBLE),$(MAKECMDGOALS))
@ -28,7 +27,6 @@ export DOCKER_MAKECMDGOALS ?= all
export DOCKER_ENV_VARS += \
APPDIR \
AR \
ARFLAGS \
AS \
ASFLAGS \
BINDIR \

View File

@ -11,4 +11,4 @@ EXTDEFINES = $(addprefix -D,$(call uppercase_and_underscore,$(ED)))
# filter "pseudomodules" from "real modules", but not "no_pseudomodules"
REALMODULES += $(filter-out $(PSEUDOMODULES), $(_ALLMODULES))
REALMODULES += $(filter $(NO_PSEUDOMODULES), $(_ALLMODULES))
BASELIBS += $(REALMODULES:%=$(BINDIR)/%.a)
BASELIBS += $(REALMODULES:%=%.module)

View File

@ -1,7 +1,6 @@
SCANBUILD_ENV_VARS := \
APPDIR \
AR \
ARFLAGS \
AS \
ASFLAGS \
BINDIR \

View File

@ -64,14 +64,13 @@ export CXXUWFLAGS # (Patterns of) flags in CFLAGS that should not be
export CXXEXFLAGS # Additional flags that should be passed to CXX.
export CCASUWFLAGS # (Patterns of) flags in CFLAGS that should not be passed to CCAS.
export CCASEXFLAGS # Additional flags that should be passed to CCAS.
export AR # The command to create the object file archives.
export ARFLAGS # Command-line options to pass to AR, default `rcs`.
export AS # The assembler.
export ASFLAGS # Flags for the assembler.
export LINK # The command used to link the files. Must take the same parameters as GCC, i.e. "ld" won't work.
export NM # The command used to list symbols from objet files
export RANLIB # The command used to generate an index to the contents of an archive
# LINKFLAGS # Flags to supply in the linking step.
export ARCHIVES # List of archives to add in the linking step
export LTOFLAGS # extra CFLAGS for compiling with link time optimization
export OBJCOPY # The command used to create the HEXFILE and BINFILE.
export OFLAGS # The parameter for OBJCOPY, e.g. to strip the debug information.

View File

@ -4,3 +4,4 @@ INCLUDES += -I$(PKGDIRBASE)/ccn-lite/src/ccnl-pkt/include
INCLUDES += -I$(PKGDIRBASE)/ccn-lite/src/ccnl-fwd/include
CFLAGS += -DCCNL_RIOT
ARCHIVES += $(BINDIR)/ccn-lite.a

View File

@ -7,6 +7,7 @@ INCLUDES += -I$(PKG_SOURCE_DIR)/app
INCLUDES += -I$(RIOTPKG)/cryptoauthlib/include
DIRS += $(RIOTPKG)/cryptoauthlib/contrib
ARCHIVES += $(BINDIR)/cryptoauthlib.a
ifneq (,$(filter cryptoauthlib_test,$(USEMODULE)))
INCLUDES += -I$(PKG_TESTINCLDIR)

View File

@ -1,6 +1,9 @@
INCLUDES += -I$(PKGDIRBASE)/jerryscript/jerry-core/include
INCLUDES += -I$(PKGDIRBASE)/jerryscript/jerry-ext/include
ARCHIVES += $(BINDIR)/jerryscript.a $(BINDIR)/jerryscript-ext.a
ARCHIVES += $(BINDIR)/jerryport-minimal.a
# Ensure MCPU is correctly exported to CMake variables when configuring the
# Jerrycript build
$(call target-export-variables,libjerry,MCPU)

View File

@ -8,5 +8,8 @@ INCLUDES += -I$(RIOTBASE)/pkg/micropython/include
INCLUDES += -I$(BINDIR)/pkg/micropython
INCLUDES += -I$(BINDIR)/pkg/micropython/ports/riot
# include archive
ARCHIVES += $(BINDIR)/micropython.a
# The port currently doesn't build with llvm
TOOLCHAINS_BLACKLIST += llvm

View File

@ -25,6 +25,7 @@ CFLAGS += -Wno-pedantic -Wno-unused-parameter -Wno-sign-compare
# Nordic's ble_6lowpan.a is compiled with hard-float
# so set this, otherwise linking fails
CFLAGS_FPU := -mfloat-abi=hard -mfpu=fpv4-sp-d16
ARCHIVES += $(BINDIR)/ble_6lowpan.a
DIRS += $(RIOTBASE)/pkg/nordic_softdevice_ble/src

View File

@ -1,5 +1,4 @@
USEMODULE += openthread_contrib
USEMODULE += mbedcrypto
USEMODULE += openthread_contrib_netdev
USEMODULE += l2util

View File

@ -13,3 +13,6 @@ ifneq (,$(filter cortex-m0% cortex-m3%,$(CPU_CORE)))
# ranlib + LLVM/clang in this package with Cortex-M0 and M3
TOOLCHAINS_BLACKLIST += llvm
endif
ARCHIVES += $(addprefix $(BINDIR)/,$(addsuffix .a,$(filter openthread-%,$(USEMODULE))))
ARCHIVES += $(BINDIR)/mbedcrypto.a

View File

@ -1,5 +1,6 @@
INCLUDES += -I$(PKGDIRBASE)/relic/include
INCLUDES += -I$(BINDIR)/pkg-build/relic/include
ARCHIVES += $(BINDIR)/relic.a
ifneq (,$(filter cortex-m%,$(CPU_CORE)))
# relic package package is not using system includes right now, so

View File

@ -7,9 +7,3 @@ endif
PSEUDOMODULES += tlsf-malloc_newlib
PSEUDOMODULES += tlsf-malloc_native
ifneq (,$(filter tlsf-malloc_newlib,$(USEMODULE)))
UNDEF += $(BINDIR)/tlsf-malloc/newlib.o
else ifneq (,$(filter tlsf-malloc_native,$(BOARD)))
UNDEF += $(BINDIR)/tlsf-malloc/native.o
endif

View File

@ -49,9 +49,6 @@ endif
ifneq (,$(filter cpp11-compat,$(USEMODULE)))
USEMODULE_INCLUDES += $(RIOTBASE)/sys/cpp11-compat/include
# make sure cppsupport.o is linked explicitly because __dso_handle is not
# found if it is hidden away inside a static object.
UNDEF += $(BINDIR)/cpp11-compat/cppsupport.o
endif
ifneq (,$(filter embunit,$(USEMODULE)))
@ -80,14 +77,6 @@ ifneq (,$(filter picolibc,$(USEMODULE)))
include $(RIOTMAKE)/libc/picolibc.mk
endif
ifneq (,$(filter newlib_syscalls_default,$(USEMODULE)))
include $(RIOTBASE)/sys/newlib_syscalls_default/Makefile.include
endif
ifneq (,$(filter picolibc_syscalls_default,$(USEMODULE)))
include $(RIOTBASE)/sys/picolibc_syscalls_default/Makefile.include
endif
ifneq (,$(filter arduino,$(USEMODULE)))
include $(RIOTBASE)/sys/arduino/Makefile.include
endif

View File

@ -1 +0,0 @@
UNDEF += $(BINDIR)/newlib_syscalls_default/syscalls.o

View File

@ -1 +0,0 @@
UNDEF += $(BINDIR)/picolibc_syscalls_default/syscalls.o

View File

@ -24,7 +24,7 @@ FEATURES_BLACKLIST += bootloader_nrfutil
-include $(UNIT_TESTS:%=$(RIOTBASE)/tests/unittests/%/Makefile.include)
DIRS += $(UNIT_TESTS)
BASELIBS += $(UNIT_TESTS:%=$(BINDIR)/%.a)
BASELIBS += $(UNIT_TESTS:%=%.module)
INCLUDES += -I$(RIOTBASE)/tests/unittests/common