mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-20 14:13:16 +00:00
4a9eb94b5f
Linux 5.10.178 includes backported commits that break the compilation of bpf-headers, as the compilation gets confused which assembler to use. Caused by Linux upstream commits just before the .178 tag: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/log/?h=v5.10.178 2023-04-20 kbuild: check CONFIG_AS_IS_LLVM instead of LLVM_IAS 2023-04-20 kbuild: Switch to 'f' variants of integrated assembler flag 2023-04-20 kbuild: check the minimum assembler version in Kconfig Explicitly use LLVM_IAS=1 to fix things. Fixes #12748 Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
115 lines
3.5 KiB
Makefile
115 lines
3.5 KiB
Makefile
#
|
|
# Copyright (C) 2006-2009 OpenWrt.org
|
|
#
|
|
# This is free software, licensed under the GNU General Public License v2.
|
|
# See /LICENSE for more information.
|
|
#
|
|
include $(TOPDIR)/rules.mk
|
|
|
|
override QUILT:=
|
|
override HOST_QUILT:=
|
|
|
|
include $(INCLUDE_DIR)/kernel.mk
|
|
|
|
|
|
PKG_NAME:=linux
|
|
PKG_PATCHVER:=5.10
|
|
# Manually include kernel version and hash from kernel details file
|
|
include $(INCLUDE_DIR)/kernel-$(PKG_PATCHVER)
|
|
|
|
PKG_VERSION:=$(PKG_PATCHVER)$(strip $(LINUX_VERSION-$(PKG_PATCHVER)))
|
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
|
PKG_SOURCE_URL:=$(LINUX_SITE)
|
|
PKG_HASH:=$(LINUX_KERNEL_HASH-$(strip $(PKG_VERSION)))
|
|
PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/bpf-headers/$(PKG_NAME)-$(PKG_VERSION)
|
|
|
|
GENERIC_PLATFORM_DIR := $(CURDIR)/../../../target/linux/generic
|
|
GENERIC_BACKPORT_DIR := $(GENERIC_PLATFORM_DIR)/backport$(if $(wildcard $(GENERIC_PLATFORM_DIR)/backport-$(PKG_PATCHVER)),-$(PKG_PATCHVER))
|
|
GENERIC_PATCH_DIR := $(GENERIC_PLATFORM_DIR)/pending$(if $(wildcard $(GENERIC_PLATFORM_DIR)/pending-$(PKG_PATCHVER)),-$(PKG_PATCHVER))
|
|
GENERIC_HACK_DIR := $(GENERIC_PLATFORM_DIR)/hack$(if $(wildcard $(GENERIC_PLATFORM_DIR)/hack-$(PKG_PATCHVER)),-$(PKG_PATCHVER))
|
|
GENERIC_FILES_DIR := $(foreach dir,$(wildcard $(GENERIC_PLATFORM_DIR)/files $(GENERIC_PLATFORM_DIR)/files-$(PKG_PATCHVER)),"$(dir)")
|
|
PATCH_DIR := $(CURDIR)/patches
|
|
FILES_DIR :=
|
|
|
|
REAL_LINUX_DIR := $(LINUX_DIR)
|
|
LINUX_DIR := $(PKG_BUILD_DIR)
|
|
|
|
include $(INCLUDE_DIR)/bpf.mk
|
|
include $(INCLUDE_DIR)/package.mk
|
|
|
|
define Package/bpf-headers
|
|
SECTION:=kernel
|
|
CATEGORY:=Kernel modules
|
|
TITLE:=eBPF kernel headers
|
|
BUILDONLY:=1
|
|
HIDDEN:=1
|
|
endef
|
|
|
|
PKG_CONFIG_PATH:=
|
|
|
|
export HOST_EXTRACFLAGS=-I$(STAGING_DIR_HOST)/include
|
|
|
|
KERNEL_MAKE := \
|
|
$(MAKE) -C $(PKG_BUILD_DIR) \
|
|
ARCH=$(BPF_KARCH) \
|
|
CROSS_COMPILE=$(BPF_ARCH)-linux- \
|
|
LLVM=1 LLVM_IAS=1 CC="$(CLANG)" LD="$(TARGET_CROSS)ld" \
|
|
HOSTCC="$(HOSTCC)" \
|
|
HOSTCXX="$(HOSTCXX)" \
|
|
HOST_LOADLIBES="-L$(STAGING_DIR_HOST)/lib" \
|
|
KBUILD_HOSTLDLIBS="-L$(STAGING_DIR_HOST)/lib" \
|
|
CONFIG_SHELL="$(BASH)" \
|
|
INSTALL_HDR_PATH="$(PKG_BUILD_DIR)/user_headers"
|
|
|
|
define Build/Patch
|
|
$(Kernel/Patch/Default)
|
|
endef
|
|
|
|
BPF_DOC = $(PKG_BUILD_DIR)/scripts/bpf_helpers_doc.py
|
|
|
|
define Build/Configure/64
|
|
echo 'CONFIG_CPU_MIPS64_R2=y' >> $(PKG_BUILD_DIR)/.config
|
|
echo 'CONFIG_64BIT=y' >> $(PKG_BUILD_DIR)/.config
|
|
endef
|
|
|
|
define Build/Configure
|
|
grep -vE 'CONFIG_(CPU_.*ENDIAN|HZ)' $(PKG_BUILD_DIR)/arch/mips/configs/generic_defconfig > $(PKG_BUILD_DIR)/.config
|
|
echo 'CONFIG_CPU_$(if $(CONFIG_BIG_ENDIAN),BIG,LITTLE)_ENDIAN=y' >> $(PKG_BUILD_DIR)/.config
|
|
$(if $(CONFIG_ARCH_64BIT),$(Build/Configure/64))
|
|
grep CONFIG_HZ $(REAL_LINUX_DIR)/.config >> $(PKG_BUILD_DIR)/.config
|
|
yes '' | $(KERNEL_MAKE) oldconfig
|
|
grep 'CONFIG_HZ=' $(REAL_LINUX_DIR)/.config | \
|
|
cut -d= -f2 | \
|
|
bc -q $(LINUX_DIR)/kernel/time/timeconst.bc \
|
|
> $(LINUX_DIR)/include/generated/timeconst.h
|
|
$(BPF_DOC) --header \
|
|
--file $(LINUX_DIR)/tools/include/uapi/linux/bpf.h \
|
|
> $(PKG_BUILD_DIR)/tools/lib/bpf/bpf_helper_defs.h
|
|
endef
|
|
|
|
define Build/Compile
|
|
$(KERNEL_MAKE) archprepare headers_install
|
|
endef
|
|
|
|
define Build/InstallDev
|
|
mkdir -p $(1)/bpf-headers/arch $(1)/bpf-headers/tools
|
|
$(CP) \
|
|
$(PKG_BUILD_DIR)/arch/$(BPF_KARCH) \
|
|
$(1)/bpf-headers/arch/
|
|
$(CP) \
|
|
$(PKG_BUILD_DIR)/tools/lib \
|
|
$(PKG_BUILD_DIR)/tools/testing \
|
|
$(1)/bpf-headers/tools/
|
|
$(CP) \
|
|
$(PKG_BUILD_DIR)/include \
|
|
$(PKG_BUILD_DIR)/samples \
|
|
$(PKG_BUILD_DIR)/scripts \
|
|
$(PKG_BUILD_DIR)/user_headers \
|
|
$(1)/bpf-headers
|
|
$(CP) \
|
|
$(CURDIR)/files/stdarg.h \
|
|
$(1)/bpf-headers/include
|
|
endef
|
|
|
|
$(eval $(call BuildPackage,bpf-headers))
|