mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
makefiles/toolchain: Fix incorrect assumptions on address space layout
GCC 12 gives out of bounds warnings when the resulting address is out of bounds of what GCC assumes to be the valid address space. It seems that by default the address 0x0 is not considered valid (which would be a NULL pointer and typically not mapped in a userspace behind an MMU scenario), but in fact is valid on bare metal hardware. At least on AVR and MSP430 this needs to be set. On many Cortex M MCUs 0x0 is also a valid address (e.g. often the flash is mapped there), but seemingly for them `--param=min-pagesize=0` is already the default. In any case, it won't hurt to set it explicit for them as well.
This commit is contained in:
parent
b123f1071a
commit
b86366e34e
@ -41,10 +41,3 @@ endif
|
||||
OPTIONAL_CFLAGS_BLACKLIST += -Wformat-overflow
|
||||
OPTIONAL_CFLAGS_BLACKLIST += -Wformat-truncation
|
||||
OPTIONAL_CFLAGS_BLACKLIST += -gz
|
||||
|
||||
ifeq ($(TOOLCHAIN),gnu)
|
||||
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105523
|
||||
ifneq ($(findstring 12.,$(shell $(TARGET_ARCH)-gcc --version 2>/dev/null)),)
|
||||
CFLAGS += --param=min-pagesize=0
|
||||
endif
|
||||
endif
|
||||
|
@ -32,3 +32,10 @@ endif
|
||||
|
||||
# We use GDB for debugging
|
||||
include $(RIOTMAKE)/tools/gdb.inc.mk
|
||||
|
||||
# Data address spaces starts at zero for all supported architectures. This fixes
|
||||
# compilation at least on MSP430 and AVR.
|
||||
# See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105523
|
||||
ifeq ($(GCC_VERSION),12)
|
||||
CFLAGS += --param=min-pagesize=0
|
||||
endif
|
||||
|
Loading…
Reference in New Issue
Block a user