forked from RIOT-OS/RIOT
-
Notifications
You must be signed in to change notification settings - Fork 0
/
gnu.inc.mk
41 lines (37 loc) · 1.35 KB
/
gnu.inc.mk
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
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