mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
5cc92304df
The `--param=min-pagesize=0` needed since GCC 12 is still needed with GCC 13. This time at least the message is more meaningful: note: source object is likely at address zero This is something that is not expected in a userspace app, but with bare metal MCUs and often flash or memory mapped I/O starting from address zero, this warning prevents legitimate code from compiling.
42 lines
1.4 KiB
Makefile
42 lines
1.4 KiB
Makefile
CC = $(PREFIX)gcc
|
|
CXX = $(PREFIX)g++
|
|
CCAS ?= $(CC)
|
|
ifeq ($(LTO),1)
|
|
AR = $(PREFIX)gcc-ar
|
|
RANLIB = $(PREFIX)gcc-ranlib
|
|
else
|
|
AR = $(PREFIX)ar
|
|
RANLIB = $(PREFIX)ranlib
|
|
endif
|
|
AS = $(PREFIX)as
|
|
NM = $(PREFIX)nm
|
|
LINK = $(PREFIX)gcc
|
|
LINKXX = $(PREFIX)g++
|
|
SIZE = $(PREFIX)size
|
|
_OBJCOPY := $(shell command -v $(PREFIX)objcopy || command -v gobjcopy || command -v objcopy)
|
|
OBJCOPY ?= $(_OBJCOPY)
|
|
ifeq ($(OBJCOPY),)
|
|
$(warning objcopy not found. Hex file will not be created.)
|
|
OBJCOPY = true
|
|
endif
|
|
# Default to the native (g)objdump, helps when using toolchain from docker
|
|
_OBJDUMP := $(or $(shell command -v $(PREFIX)objdump || command -v gobjdump),objdump)
|
|
OBJDUMP ?= $(_OBJDUMP)
|
|
|
|
GCC_VERSION := $(shell command -v $(CC) > /dev/null && $(CC) -dumpversion | cut -d . -f 1)
|
|
|
|
# -fmacro-prefix-map requires GCC 8
|
|
ifneq (8, $(firstword $(shell echo 8 $(GCC_VERSION) | tr ' ' '\n' | sort -n)))
|
|
OPTIONAL_CFLAGS_BLACKLIST += -fmacro-prefix-map=$(RIOTBASE)/=
|
|
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
|
|
ifneq (,$(filter $(GCC_VERSION),12 13))
|
|
CFLAGS += --param=min-pagesize=0
|
|
endif
|