5d7b673d5f
We use _GNU_SOURCE all over the place, but often times we miss defining it, resulting in broken builds on musl. Rather than fixing every library's and driver's and application's makefile, fix it by simply defining _GNU_SOURCE by default for all builds. Remove all usages of _GNU_SOURCE in source files and makefiles, and also fixup a couple of instances of using __USE_GNU instead of _GNU_SOURCE. Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
118 lines
3.9 KiB
Makefile
118 lines
3.9 KiB
Makefile
# SPDX-License-Identifier: BSD-3-Clause
|
|
# Copyright(c) 2010-2014 Intel Corporation
|
|
|
|
#
|
|
# This .mk is the generic target rte.var.mk ; it includes .mk for
|
|
# the specified machine, architecture, toolchain (compiler) and
|
|
# executive environment.
|
|
#
|
|
|
|
#
|
|
# machine:
|
|
#
|
|
# - can define ARCH variable (overridden by cmdline value)
|
|
# - can define CROSS variable (overridden by cmdline value)
|
|
# - define MACHINE_CFLAGS variable (overridden by cmdline value)
|
|
# - define MACHINE_LDFLAGS variable (overridden by cmdline value)
|
|
# - define MACHINE_ASFLAGS variable (overridden by cmdline value)
|
|
# - can define CPU_CFLAGS variable (overridden by cmdline value) that
|
|
# overrides the one defined in arch.
|
|
# - can define CPU_LDFLAGS variable (overridden by cmdline value) that
|
|
# overrides the one defined in arch.
|
|
# - can define CPU_ASFLAGS variable (overridden by cmdline value) that
|
|
# overrides the one defined in arch.
|
|
#
|
|
ifneq ($(wildcard $(RTE_SDK)/mk/machine/$(RTE_MACHINE)/rte.vars.mk),)
|
|
include $(RTE_SDK)/mk/machine/$(RTE_MACHINE)/rte.vars.mk
|
|
else
|
|
MACHINE_CFLAGS := -march=$(RTE_MACHINE)
|
|
endif
|
|
|
|
#
|
|
# arch:
|
|
#
|
|
# - define ARCH variable (overridden by cmdline or by previous
|
|
# optional define in machine .mk)
|
|
# - define CROSS variable (overridden by cmdline or previous define
|
|
# in machine .mk)
|
|
# - define CPU_CFLAGS variable (overridden by cmdline or previous
|
|
# define in machine .mk)
|
|
# - define CPU_LDFLAGS variable (overridden by cmdline or previous
|
|
# define in machine .mk)
|
|
# - define CPU_ASFLAGS variable (overridden by cmdline or previous
|
|
# define in machine .mk)
|
|
# - may override any previously defined variable
|
|
#
|
|
include $(RTE_SDK)/mk/arch/$(RTE_ARCH)/rte.vars.mk
|
|
|
|
#
|
|
# toolchain:
|
|
#
|
|
# - define CC, LD, AR, AS, ...
|
|
# - define TOOLCHAIN_CFLAGS variable (overridden by cmdline value)
|
|
# - define TOOLCHAIN_LDFLAGS variable (overridden by cmdline value)
|
|
# - define TOOLCHAIN_ASFLAGS variable (overridden by cmdline value)
|
|
# - may override any previously defined variable
|
|
#
|
|
include $(RTE_SDK)/mk/toolchain/$(RTE_TOOLCHAIN)/rte.vars.mk
|
|
|
|
#
|
|
# exec-env:
|
|
#
|
|
# - define EXECENV_CFLAGS variable (overridden by cmdline)
|
|
# - define EXECENV_LDFLAGS variable (overridden by cmdline)
|
|
# - define EXECENV_ASFLAGS variable (overridden by cmdline)
|
|
# - may override any previously defined variable
|
|
#
|
|
include $(RTE_SDK)/mk/exec-env/$(RTE_EXEC_ENV)/rte.vars.mk
|
|
|
|
# Don't set CFLAGS/LDFLAGS flags for kernel module, all flags are
|
|
# provided by Kbuild framework.
|
|
ifeq ($(KERNELRELEASE),)
|
|
|
|
# now that the environment is mostly set up, including the machine type we will
|
|
# be passing to the compiler, set up the specific CPU flags based on that info.
|
|
include $(RTE_SDK)/mk/rte.cpuflags.mk
|
|
|
|
# merge all CFLAGS
|
|
CFLAGS := $(CPU_CFLAGS) $(EXECENV_CFLAGS) $(TOOLCHAIN_CFLAGS) $(MACHINE_CFLAGS)
|
|
CFLAGS += $(TARGET_CFLAGS)
|
|
|
|
# merge all LDFLAGS
|
|
LDFLAGS := $(CPU_LDFLAGS) $(EXECENV_LDFLAGS) $(TOOLCHAIN_LDFLAGS) $(MACHINE_LDFLAGS)
|
|
LDFLAGS += $(TARGET_LDFLAGS)
|
|
|
|
# merge all ASFLAGS
|
|
ASFLAGS := $(CPU_ASFLAGS) $(EXECENV_ASFLAGS) $(TOOLCHAIN_ASFLAGS) $(MACHINE_ASFLAGS)
|
|
ASFLAGS += $(TARGET_ASFLAGS)
|
|
|
|
# add default include and lib paths
|
|
CFLAGS += -I$(RTE_OUTPUT)/include
|
|
LDFLAGS += -L$(RTE_OUTPUT)/lib
|
|
|
|
# always include rte_config.h: the one in $(RTE_OUTPUT)/include is
|
|
# the configuration of SDK when $(BUILDING_RTE_SDK) is true, or the
|
|
# configuration of the application if $(BUILDING_RTE_SDK) is not
|
|
# defined.
|
|
ifeq ($(BUILDING_RTE_SDK),1)
|
|
# building sdk
|
|
CFLAGS += -include $(RTE_OUTPUT)/include/rte_config.h
|
|
else
|
|
# if we are building an external application, include SDK's lib and
|
|
# includes too
|
|
CFLAGS += -I$(RTE_SDK_BIN)/include
|
|
ifneq ($(wildcard $(RTE_OUTPUT)/include/rte_config.h),)
|
|
CFLAGS += -include $(RTE_OUTPUT)/include/rte_config.h
|
|
endif
|
|
CFLAGS += -include $(RTE_SDK_BIN)/include/rte_config.h
|
|
LDFLAGS += -L$(RTE_SDK_BIN)/lib
|
|
endif
|
|
|
|
# always define _GNU_SOURCE
|
|
CFLAGS += -D_GNU_SOURCE
|
|
|
|
export CFLAGS
|
|
export LDFLAGS
|
|
|
|
endif
|