1 # SPDX-License-Identifier: BSD-3-Clause
2 # Copyright(c) 2010-2014 Intel Corporation
7 # - define CC, LD, AR, AS, ... (overridden by cmdline value)
8 # - define TOOLCHAIN_CFLAGS variable (overridden by cmdline value)
9 # - define TOOLCHAIN_LDFLAGS variable (overridden by cmdline value)
10 # - define TOOLCHAIN_ASFLAGS variable (overridden by cmdline value)
14 KERNELCC = $(CROSS)gcc
16 # for now, we don't use as but nasm.
21 OBJCOPY = $(CROSS)objcopy
22 OBJDUMP = $(CROSS)objdump
24 READELF = $(CROSS)readelf
27 ifeq ("$(origin CC)", "command line")
38 WERROR_FLAGS := -W -Wall -Wstrict-prototypes -Wmissing-prototypes
39 WERROR_FLAGS += -Wmissing-declarations -Wold-style-definition -Wpointer-arith
40 WERROR_FLAGS += -Wnested-externs -Wcast-qual
41 WERROR_FLAGS += -Wformat-nonliteral -Wformat-security
42 WERROR_FLAGS += -Wundef -Wwrite-strings
44 ifeq ($(RTE_DEVEL_BUILD),y)
45 WERROR_FLAGS += -Werror
49 include $(RTE_SDK)/mk/toolchain/$(RTE_TOOLCHAIN)/rte.toolchain-compat.mk
51 # workaround clang bug with warning "missing field initializer" for "= {0}"
52 WERROR_FLAGS += -Wno-missing-field-initializers
54 # disable packed member unalign warnings
55 ifeq ($(shell test $(CLANG_MAJOR_VERSION) -ge 4 && echo 1), 1)
56 WERROR_FLAGS += -Wno-address-of-packed-member
59 export CC AS AR LD OBJCOPY OBJDUMP STRIP READELF
60 export TOOLCHAIN_CFLAGS TOOLCHAIN_LDFLAGS TOOLCHAIN_ASFLAGS