2021-06-14 10:30:08 +00:00
|
|
|
# SPDX-License-Identifier: GPL-2.0-only
|
2017-09-06 11:19:45 +00:00
|
|
|
#
|
2024-11-14 05:14:47 +00:00
|
|
|
# Copyright (C) 2006-2020 LEDE.org
|
2017-09-06 11:19:45 +00:00
|
|
|
|
|
|
|
override TARGET_BUILD=
|
|
|
|
include $(INCLUDE_DIR)/prereq.mk
|
|
|
|
include $(INCLUDE_DIR)/kernel.mk
|
|
|
|
include $(INCLUDE_DIR)/version.mk
|
|
|
|
include $(INCLUDE_DIR)/image-commands.mk
|
|
|
|
|
|
|
|
ifndef IB
|
|
|
|
ifdef CONFIG_TARGET_PER_DEVICE_ROOTFS
|
|
|
|
TARGET_PER_DEVICE_ROOTFS := 1
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
|
2018-04-23 10:50:49 +00:00
|
|
|
include $(INCLUDE_DIR)/feeds.mk
|
|
|
|
include $(INCLUDE_DIR)/rootfs.mk
|
2017-09-06 11:19:45 +00:00
|
|
|
|
|
|
|
override MAKE:=$(_SINGLE)$(SUBMAKE)
|
|
|
|
override NO_TRACE_MAKE:=$(_SINGLE)$(NO_TRACE_MAKE)
|
|
|
|
|
|
|
|
target_params = $(subst +,$(space),$*)
|
|
|
|
param_get = $(patsubst $(1)=%,%,$(filter $(1)=%,$(2)))
|
|
|
|
param_get_default = $(firstword $(call param_get,$(1),$(2)) $(3))
|
|
|
|
param_mangle = $(subst $(space),_,$(strip $(1)))
|
|
|
|
param_unmangle = $(subst _,$(space),$(1))
|
|
|
|
|
2021-06-14 10:30:08 +00:00
|
|
|
mkfs_packages_id = $(shell echo $(sort $(1)) | $(MKHASH) md5 | cut -b1-8)
|
2017-09-06 11:19:45 +00:00
|
|
|
mkfs_target_dir = $(if $(call param_get,pkg,$(1)),$(KDIR)/target-dir-$(call param_get,pkg,$(1)),$(TARGET_DIR))
|
|
|
|
|
|
|
|
KDIR=$(KERNEL_BUILD_DIR)
|
|
|
|
KDIR_TMP=$(KDIR)/tmp
|
|
|
|
DTS_DIR:=$(LINUX_DIR)/arch/$(LINUX_KARCH)/boot/dts
|
|
|
|
|
|
|
|
IMG_PREFIX_EXTRA:=$(if $(EXTRA_IMAGE_NAME),$(call sanitize,$(EXTRA_IMAGE_NAME))-)
|
|
|
|
IMG_PREFIX_VERNUM:=$(if $(CONFIG_VERSION_FILENAMES),$(call sanitize,$(VERSION_NUMBER))-)
|
|
|
|
IMG_PREFIX_VERCODE:=$(if $(CONFIG_VERSION_CODE_FILENAMES),$(call sanitize,$(VERSION_CODE))-)
|
|
|
|
|
|
|
|
IMG_PREFIX:=$(VERSION_DIST_SANITIZED)-$(IMG_PREFIX_VERNUM)$(IMG_PREFIX_VERCODE)$(IMG_PREFIX_EXTRA)$(BOARD)$(if $(SUBTARGET),-$(SUBTARGET))
|
2019-10-19 18:35:16 +00:00
|
|
|
IMG_ROOTFS:=$(IMG_PREFIX)-rootfs
|
|
|
|
IMG_COMBINED:=$(IMG_PREFIX)-combined
|
2021-06-14 10:30:08 +00:00
|
|
|
IMG_PART_SIGNATURE:=$(shell echo $(SOURCE_DATE_EPOCH)$(LINUX_VERMAGIC) | $(MKHASH) md5 | cut -b1-8)
|
2021-06-15 09:58:07 +00:00
|
|
|
IMG_PART_DISKGUID:=$(shell echo $(SOURCE_DATE_EPOCH)$(LINUX_VERMAGIC) | $(MKHASH) md5 | sed -E 's/(.{8})(.{4})(.{4})(.{4})(.{10})../\1-\2-\3-\4-\500/')
|
2017-09-06 11:19:45 +00:00
|
|
|
|
|
|
|
MKFS_DEVTABLE_OPT := -D $(INCLUDE_DIR)/device_table.txt
|
|
|
|
|
|
|
|
ifneq ($(CONFIG_BIG_ENDIAN),)
|
|
|
|
JFFS2OPTS := --big-endian --squash-uids -v
|
|
|
|
else
|
|
|
|
JFFS2OPTS := --little-endian --squash-uids -v
|
|
|
|
endif
|
|
|
|
|
|
|
|
ifeq ($(CONFIG_JFFS2_RTIME),y)
|
|
|
|
JFFS2OPTS += -X rtime
|
|
|
|
endif
|
|
|
|
ifeq ($(CONFIG_JFFS2_ZLIB),y)
|
|
|
|
JFFS2OPTS += -X zlib
|
|
|
|
endif
|
|
|
|
ifeq ($(CONFIG_JFFS2_LZMA),y)
|
|
|
|
JFFS2OPTS += -X lzma --compression-mode=size
|
|
|
|
endif
|
|
|
|
ifneq ($(CONFIG_JFFS2_RTIME),y)
|
|
|
|
JFFS2OPTS += -x rtime
|
|
|
|
endif
|
|
|
|
ifneq ($(CONFIG_JFFS2_ZLIB),y)
|
|
|
|
JFFS2OPTS += -x zlib
|
|
|
|
endif
|
|
|
|
ifneq ($(CONFIG_JFFS2_LZMA),y)
|
|
|
|
JFFS2OPTS += -x lzma
|
|
|
|
endif
|
|
|
|
|
|
|
|
JFFS2OPTS += $(MKFS_DEVTABLE_OPT)
|
|
|
|
|
|
|
|
SQUASHFS_BLOCKSIZE := $(CONFIG_TARGET_SQUASHFS_BLOCK_SIZE)k
|
|
|
|
SQUASHFSOPT := -b $(SQUASHFS_BLOCKSIZE)
|
|
|
|
SQUASHFSOPT += -p '/dev d 755 0 0' -p '/dev/console c 600 0 0 5 1'
|
2021-08-19 14:36:49 +00:00
|
|
|
SQUASHFSOPT += $(if $(CONFIG_SELINUX),-xattrs,-no-xattrs)
|
2017-09-06 11:19:45 +00:00
|
|
|
SQUASHFSCOMP := gzip
|
|
|
|
LZMA_XZ_OPTIONS := -Xpreset 9 -Xe -Xlc 0 -Xlp 2 -Xpb 2
|
|
|
|
ifeq ($(CONFIG_SQUASHFS_XZ),y)
|
|
|
|
ifneq ($(filter arm x86 powerpc sparc,$(LINUX_KARCH)),)
|
|
|
|
BCJ_FILTER:=-Xbcj $(LINUX_KARCH)
|
|
|
|
endif
|
|
|
|
SQUASHFSCOMP := xz $(LZMA_XZ_OPTIONS) $(BCJ_FILTER)
|
|
|
|
endif
|
|
|
|
|
|
|
|
JFFS2_BLOCKSIZE ?= 64k 128k
|
|
|
|
|
|
|
|
fs-types-$(CONFIG_TARGET_ROOTFS_SQUASHFS) += squashfs
|
|
|
|
fs-types-$(CONFIG_TARGET_ROOTFS_JFFS2) += $(addprefix jffs2-,$(JFFS2_BLOCKSIZE))
|
|
|
|
fs-types-$(CONFIG_TARGET_ROOTFS_JFFS2_NAND) += $(addprefix jffs2-nand-,$(NAND_BLOCKSIZE))
|
|
|
|
fs-types-$(CONFIG_TARGET_ROOTFS_EXT4FS) += ext4
|
|
|
|
fs-types-$(CONFIG_TARGET_ROOTFS_UBIFS) += ubifs
|
|
|
|
fs-subtypes-$(CONFIG_TARGET_ROOTFS_JFFS2) += $(addsuffix -raw,$(addprefix jffs2-,$(JFFS2_BLOCKSIZE)))
|
|
|
|
|
|
|
|
TARGET_FILESYSTEMS := $(fs-types-y)
|
|
|
|
|
|
|
|
FS_64K := $(filter-out jffs2-%,$(TARGET_FILESYSTEMS)) jffs2-64k
|
|
|
|
FS_128K := $(filter-out jffs2-%,$(TARGET_FILESYSTEMS)) jffs2-128k
|
|
|
|
FS_256K := $(filter-out jffs2-%,$(TARGET_FILESYSTEMS)) jffs2-256k
|
|
|
|
|
|
|
|
define add_jffs2_mark
|
|
|
|
echo -ne '\xde\xad\xc0\xde' >> $(1)
|
|
|
|
endef
|
|
|
|
|
2019-10-19 18:35:16 +00:00
|
|
|
PROFILE_SANITIZED := $(call tolower,$(subst DEVICE_,,$(subst $(space),-,$(PROFILE))))
|
2017-09-06 11:19:45 +00:00
|
|
|
|
|
|
|
define split_args
|
|
|
|
$(foreach data, \
|
|
|
|
$(subst |,$(space),\
|
|
|
|
$(subst $(space),^,$(1))), \
|
|
|
|
$(call $(2),$(strip $(subst ^,$(space),$(data)))))
|
|
|
|
endef
|
|
|
|
|
|
|
|
define build_cmd
|
|
|
|
$(if $(Build/$(word 1,$(1))),,$(error Missing Build/$(word 1,$(1))))
|
|
|
|
$(call Build/$(word 1,$(1)),$(wordlist 2,$(words $(1)),$(1)))
|
|
|
|
|
|
|
|
endef
|
|
|
|
|
|
|
|
define concat_cmd
|
|
|
|
$(call split_args,$(1),build_cmd)
|
|
|
|
endef
|
|
|
|
|
|
|
|
# pad to 4k, 8k, 16k, 64k, 128k, 256k and add jffs2 end-of-filesystem mark
|
|
|
|
define prepare_generic_squashfs
|
|
|
|
$(STAGING_DIR_HOST)/bin/padjffs2 $(1) 4 8 16 64 128 256
|
|
|
|
endef
|
|
|
|
|
|
|
|
define Image/BuildKernel/Initramfs
|
|
|
|
$(call Image/Build/Initramfs)
|
|
|
|
endef
|
|
|
|
|
|
|
|
define Image/BuildKernel/MkuImage
|
|
|
|
mkimage -A $(ARCH) -O linux -T kernel -C $(1) -a $(2) -e $(3) \
|
2018-04-23 10:50:49 +00:00
|
|
|
-n '$(call toupper,$(ARCH)) $(VERSION_DIST) Linux-$(LINUX_VERSION)' -d $(4) $(5)
|
2017-09-06 11:19:45 +00:00
|
|
|
endef
|
|
|
|
|
|
|
|
ifdef CONFIG_TARGET_IMAGES_GZIP
|
|
|
|
define Image/Gzip
|
|
|
|
rm -f $(1).gz
|
|
|
|
gzip -9n $(1)
|
|
|
|
endef
|
|
|
|
endif
|
|
|
|
|
2019-10-19 18:35:16 +00:00
|
|
|
|
|
|
|
# Disable noisy checks by default as in upstream
|
2023-06-06 12:01:15 +00:00
|
|
|
DTC_WARN_FLAGS := \
|
2020-02-20 18:41:00 +00:00
|
|
|
-Wno-unit_address_vs_reg \
|
|
|
|
-Wno-simple_bus_reg \
|
|
|
|
-Wno-unit_address_format \
|
|
|
|
-Wno-pci_bridge \
|
|
|
|
-Wno-pci_device_bus_num \
|
2021-06-14 10:30:08 +00:00
|
|
|
-Wno-pci_device_reg \
|
|
|
|
-Wno-avoid_unnecessary_addr_size \
|
|
|
|
-Wno-alias_paths \
|
|
|
|
-Wno-graph_child_address \
|
|
|
|
-Wno-graph_port \
|
|
|
|
-Wno-unique_unit_address
|
2019-10-19 18:35:16 +00:00
|
|
|
|
2023-06-06 12:01:15 +00:00
|
|
|
DTC_FLAGS += $(DTC_WARN_FLAGS)
|
|
|
|
DTCO_FLAGS += $(DTC_WARN_FLAGS)
|
|
|
|
|
2019-10-19 18:35:16 +00:00
|
|
|
define Image/pad-to
|
|
|
|
dd if=$(1) of=$(1).new bs=$(2) conv=sync
|
|
|
|
mv $(1).new $(1)
|
|
|
|
endef
|
|
|
|
|
|
|
|
ROOTFS_PARTSIZE=$(shell echo $$(($(CONFIG_TARGET_ROOTFS_PARTSIZE)*1024*1024)))
|
|
|
|
|
|
|
|
define Image/pad-root-squashfs
|
|
|
|
$(call Image/pad-to,$(KDIR)/root.squashfs,$(if $(1),$(1),$(ROOTFS_PARTSIZE)))
|
|
|
|
endef
|
|
|
|
|
2017-09-06 11:19:45 +00:00
|
|
|
# $(1) source dts file
|
|
|
|
# $(2) target dtb file
|
|
|
|
# $(3) extra CPP flags
|
|
|
|
# $(4) extra DTC flags
|
2023-06-06 12:01:15 +00:00
|
|
|
define Image/BuildDTB/sub
|
2017-09-06 11:19:45 +00:00
|
|
|
$(TARGET_CROSS)cpp -nostdinc -x assembler-with-cpp \
|
2022-03-27 19:23:49 +00:00
|
|
|
$(DTS_CPPFLAGS) \
|
2017-09-06 11:19:45 +00:00
|
|
|
-I$(DTS_DIR) \
|
|
|
|
-I$(DTS_DIR)/include \
|
2017-10-24 15:21:06 +00:00
|
|
|
-I$(LINUX_DIR)/include/ \
|
2024-05-10 11:39:07 +00:00
|
|
|
-I$(LINUX_DIR)/scripts/dtc/include-prefixes \
|
2017-09-06 11:19:45 +00:00
|
|
|
-undef -D__DTS__ $(3) \
|
|
|
|
-o $(2).tmp $(1)
|
|
|
|
$(LINUX_DIR)/scripts/dtc/dtc -O dtb \
|
2023-06-06 12:01:15 +00:00
|
|
|
-i$(dir $(1)) $(4) \
|
2021-06-14 10:30:08 +00:00
|
|
|
$(if $(CONFIG_HAS_DT_OVERLAY_SUPPORT),-@) \
|
2017-09-06 11:19:45 +00:00
|
|
|
-o $(2) $(2).tmp
|
|
|
|
$(RM) $(2).tmp
|
|
|
|
endef
|
|
|
|
|
2023-06-06 12:01:15 +00:00
|
|
|
define Image/BuildDTB
|
|
|
|
$(call Image/BuildDTB/sub,$(1),$(2),$(3),$(DTC_FLAGS) $(DEVICE_DTC_FLAGS) $(4))
|
|
|
|
endef
|
|
|
|
|
|
|
|
define Image/BuildDTBO
|
|
|
|
$(call Image/BuildDTB/sub,$(1),$(2),$(3),$(DTCO_FLAGS) $(DEVICE_DTCO_FLAGS) $(4))
|
|
|
|
endef
|
|
|
|
|
2017-09-06 11:19:45 +00:00
|
|
|
define Image/mkfs/jffs2/sub-raw
|
|
|
|
$(STAGING_DIR_HOST)/bin/mkfs.jffs2 \
|
|
|
|
$(2) \
|
|
|
|
-e $(patsubst %k,%KiB,$(1)) \
|
|
|
|
-o $@ -d $(call mkfs_target_dir,$(3)) \
|
|
|
|
-v 2>&1 1>/dev/null | awk '/^.+$$$$/'
|
|
|
|
endef
|
|
|
|
|
|
|
|
define Image/mkfs/jffs2/sub
|
|
|
|
$(call Image/mkfs/jffs2/sub-raw,$(1),--pad $(2),$(3))
|
|
|
|
$(call add_jffs2_mark,$@)
|
|
|
|
endef
|
|
|
|
|
|
|
|
define Image/mkfs/jffs2/template
|
|
|
|
Image/mkfs/jffs2-$(1) = $$(call Image/mkfs/jffs2/sub,$(1),$(JFFS2OPTS),$$(1))
|
|
|
|
Image/mkfs/jffs2-$(1)-raw = $$(call Image/mkfs/jffs2/sub-raw,$(1),$(JFFS2OPTS),$$(1))
|
|
|
|
|
|
|
|
endef
|
|
|
|
|
|
|
|
define Image/mkfs/jffs2-nand/template
|
|
|
|
Image/mkfs/jffs2-nand-$(1) = \
|
|
|
|
$$(call Image/mkfs/jffs2/sub, \
|
|
|
|
$(word 2,$(subst -, ,$(1))), \
|
|
|
|
$(JFFS2OPTS) --no-cleanmarkers --pagesize=$(word 1,$(subst -, ,$(1))),$$(1))
|
|
|
|
|
|
|
|
endef
|
|
|
|
|
|
|
|
$(eval $(foreach S,$(JFFS2_BLOCKSIZE),$(call Image/mkfs/jffs2/template,$(S))))
|
|
|
|
$(eval $(foreach S,$(NAND_BLOCKSIZE),$(call Image/mkfs/jffs2-nand/template,$(S))))
|
|
|
|
|
2021-06-14 10:30:08 +00:00
|
|
|
define Image/mkfs/squashfs-common
|
2017-09-06 11:19:45 +00:00
|
|
|
$(STAGING_DIR_HOST)/bin/mksquashfs4 $(call mkfs_target_dir,$(1)) $@ \
|
|
|
|
-nopad -noappend -root-owned \
|
2022-10-19 13:57:13 +00:00
|
|
|
-comp $(SQUASHFSCOMP) $(SQUASHFSOPT)
|
2017-09-06 11:19:45 +00:00
|
|
|
endef
|
|
|
|
|
2021-06-14 10:30:08 +00:00
|
|
|
ifeq ($(CONFIG_TARGET_ROOTFS_SECURITY_LABELS),y)
|
|
|
|
define Image/mkfs/squashfs
|
|
|
|
echo ". $(call mkfs_target_dir,$(1))/etc/selinux/config" > $@.fakeroot-script
|
|
|
|
echo "$(STAGING_DIR_HOST)/bin/setfiles -r" \
|
|
|
|
"$(call mkfs_target_dir,$(1))" \
|
|
|
|
"$(call mkfs_target_dir,$(1))/etc/selinux/\$${SELINUXTYPE}/contexts/files/file_contexts " \
|
|
|
|
"$(call mkfs_target_dir,$(1))" >> $@.fakeroot-script
|
|
|
|
echo "$(Image/mkfs/squashfs-common)" >> $@.fakeroot-script
|
|
|
|
chmod +x $@.fakeroot-script
|
|
|
|
$(FAKEROOT) "$@.fakeroot-script"
|
|
|
|
endef
|
|
|
|
else
|
|
|
|
define Image/mkfs/squashfs
|
|
|
|
$(call Image/mkfs/squashfs-common,$(1))
|
|
|
|
endef
|
2017-09-06 11:19:45 +00:00
|
|
|
endif
|
|
|
|
|
|
|
|
define Image/mkfs/ubifs
|
|
|
|
$(STAGING_DIR_HOST)/bin/mkfs.ubifs \
|
|
|
|
$(UBIFS_OPTS) $(call param_unmangle,$(call param_get,fs,$(1))) \
|
|
|
|
$(if $(CONFIG_TARGET_UBIFS_FREE_SPACE_FIXUP),--space-fixup) \
|
|
|
|
$(if $(CONFIG_TARGET_UBIFS_COMPRESSION_NONE),--compr=none) \
|
|
|
|
$(if $(CONFIG_TARGET_UBIFS_COMPRESSION_LZO),--compr=lzo) \
|
|
|
|
$(if $(CONFIG_TARGET_UBIFS_COMPRESSION_ZLIB),--compr=zlib) \
|
|
|
|
$(if $(shell echo $(CONFIG_TARGET_UBIFS_JOURNAL_SIZE)),--jrn-size=$(CONFIG_TARGET_UBIFS_JOURNAL_SIZE)) \
|
|
|
|
--squash-uids \
|
|
|
|
-o $@ -d $(call mkfs_target_dir,$(1))
|
|
|
|
endef
|
|
|
|
|
|
|
|
define Image/mkfs/ext4
|
2019-12-13 16:25:54 +00:00
|
|
|
$(STAGING_DIR_HOST)/bin/make_ext4fs -L rootfs \
|
2019-10-19 18:35:16 +00:00
|
|
|
-l $(ROOTFS_PARTSIZE) -b $(CONFIG_TARGET_EXT4_BLOCKSIZE) \
|
2017-09-06 11:19:45 +00:00
|
|
|
$(if $(CONFIG_TARGET_EXT4_RESERVED_PCT),-m $(CONFIG_TARGET_EXT4_RESERVED_PCT)) \
|
|
|
|
$(if $(CONFIG_TARGET_EXT4_JOURNAL),,-J) \
|
|
|
|
$(if $(SOURCE_DATE_EPOCH),-T $(SOURCE_DATE_EPOCH)) \
|
|
|
|
$@ $(call mkfs_target_dir,$(1))/
|
|
|
|
endef
|
|
|
|
|
|
|
|
define Image/Manifest
|
2018-04-23 10:50:49 +00:00
|
|
|
$(call opkg,$(TARGET_DIR_ORIG)) list-installed > \
|
2017-09-06 11:19:45 +00:00
|
|
|
$(BIN_DIR)/$(IMG_PREFIX)$(if $(PROFILE_SANITIZED),-$(PROFILE_SANITIZED)).manifest
|
|
|
|
endef
|
|
|
|
|
2019-10-19 18:35:16 +00:00
|
|
|
define Image/gzip-ext4-padded-squashfs
|
|
|
|
|
|
|
|
define Image/Build/squashfs
|
|
|
|
$(call Image/pad-root-squashfs)
|
|
|
|
endef
|
|
|
|
|
|
|
|
ifneq ($(CONFIG_TARGET_IMAGES_GZIP),)
|
|
|
|
define Image/Build/gzip/ext4
|
|
|
|
$(call Image/Build/gzip,ext4)
|
|
|
|
endef
|
|
|
|
define Image/Build/gzip/squashfs
|
|
|
|
$(call Image/Build/gzip,squashfs)
|
|
|
|
endef
|
|
|
|
endif
|
|
|
|
|
|
|
|
endef
|
|
|
|
|
2017-09-06 11:19:45 +00:00
|
|
|
ifdef CONFIG_TARGET_ROOTFS_TARGZ
|
|
|
|
define Image/Build/targz
|
2019-10-19 18:35:16 +00:00
|
|
|
$(TAR) -cp --numeric-owner --owner=0 --group=0 --mode=a-s --sort=name \
|
2017-09-06 11:19:45 +00:00
|
|
|
$(if $(SOURCE_DATE_EPOCH),--mtime="@$(SOURCE_DATE_EPOCH)") \
|
|
|
|
-C $(TARGET_DIR)/ . | gzip -9n > $(BIN_DIR)/$(IMG_PREFIX)$(if $(PROFILE_SANITIZED),-$(PROFILE_SANITIZED))-rootfs.tar.gz
|
|
|
|
endef
|
|
|
|
endif
|
|
|
|
|
|
|
|
ifdef CONFIG_TARGET_ROOTFS_CPIOGZ
|
|
|
|
define Image/Build/cpiogz
|
2021-06-15 09:58:07 +00:00
|
|
|
( cd $(TARGET_DIR); find . | $(STAGING_DIR_HOST)/bin/cpio -o -H newc -R 0:0 | gzip -9n >$(BIN_DIR)/$(IMG_ROOTFS).cpio.gz )
|
2017-09-06 11:19:45 +00:00
|
|
|
endef
|
|
|
|
endif
|
|
|
|
|
|
|
|
mkfs_packages = $(filter-out @%,$(PACKAGES_$(call param_get,pkg,pkg=$(target_params))))
|
2019-10-19 18:35:16 +00:00
|
|
|
mkfs_packages_add = $(foreach pkg,$(filter-out -%,$(mkfs_packages)),$(pkg)$(call GetABISuffix,$(pkg)))
|
|
|
|
mkfs_packages_remove = $(foreach pkg,$(patsubst -%,%,$(filter -%,$(mkfs_packages))),$(pkg)$(call GetABISuffix,$(pkg)))
|
2017-09-06 11:19:45 +00:00
|
|
|
mkfs_cur_target_dir = $(call mkfs_target_dir,pkg=$(target_params))
|
|
|
|
|
|
|
|
opkg_target = \
|
|
|
|
$(call opkg,$(mkfs_cur_target_dir)) \
|
|
|
|
-f $(mkfs_cur_target_dir).conf
|
|
|
|
|
|
|
|
target-dir-%: FORCE
|
|
|
|
rm -rf $(mkfs_cur_target_dir) $(mkfs_cur_target_dir).opkg
|
|
|
|
$(CP) $(TARGET_DIR_ORIG) $(mkfs_cur_target_dir)
|
|
|
|
-mv $(mkfs_cur_target_dir)/etc/opkg $(mkfs_cur_target_dir).opkg
|
|
|
|
echo 'src default file://$(PACKAGE_DIR_ALL)' > $(mkfs_cur_target_dir).conf
|
|
|
|
$(if $(mkfs_packages_remove), \
|
|
|
|
-$(call opkg,$(mkfs_cur_target_dir)) remove \
|
|
|
|
$(mkfs_packages_remove))
|
|
|
|
$(if $(call opkg_package_files,$(mkfs_packages_add)), \
|
|
|
|
$(opkg_target) update && \
|
|
|
|
$(opkg_target) install \
|
|
|
|
$(call opkg_package_files,$(mkfs_packages_add)))
|
2018-01-15 10:26:41 +00:00
|
|
|
-$(CP) -T $(mkfs_cur_target_dir).opkg/ $(mkfs_cur_target_dir)/etc/opkg/
|
|
|
|
rm -rf $(mkfs_cur_target_dir).opkg $(mkfs_cur_target_dir).conf
|
2018-04-23 10:50:49 +00:00
|
|
|
$(call prepare_rootfs,$(mkfs_cur_target_dir),$(TOPDIR)/files)
|
2017-09-06 11:19:45 +00:00
|
|
|
|
|
|
|
$(KDIR)/root.%: kernel_prepare
|
|
|
|
$(call Image/mkfs/$(word 1,$(target_params)),$(target_params))
|
|
|
|
|
|
|
|
define Device/InitProfile
|
|
|
|
PROFILES := $(PROFILE)
|
2019-10-19 18:35:16 +00:00
|
|
|
DEVICE_TITLE = $$(DEVICE_VENDOR) $$(DEVICE_MODEL)$$(if $$(DEVICE_VARIANT), $$(DEVICE_VARIANT))
|
|
|
|
DEVICE_ALT0_TITLE = $$(DEVICE_ALT0_VENDOR) $$(DEVICE_ALT0_MODEL)$$(if $$(DEVICE_ALT0_VARIANT), $$(DEVICE_ALT0_VARIANT))
|
|
|
|
DEVICE_ALT1_TITLE = $$(DEVICE_ALT1_VENDOR) $$(DEVICE_ALT1_MODEL)$$(if $$(DEVICE_ALT1_VARIANT), $$(DEVICE_ALT1_VARIANT))
|
|
|
|
DEVICE_ALT2_TITLE = $$(DEVICE_ALT2_VENDOR) $$(DEVICE_ALT2_MODEL)$$(if $$(DEVICE_ALT2_VARIANT), $$(DEVICE_ALT2_VARIANT))
|
treewide: sync with upstream (#10750)
* build: fix incomplete initramfs compression options
Requires: tools/lz4, tools/lzop
complete the wiring so that these options work:
* `CONFIG_KERNEL_INITRAMFS_COMPRESSION_LZO`
* `CONFIG_KERNEL_INITRAMFS_COMPRESSION_LZ4`
Signed-off-by: Tony Butler <spudz76@gmail.com>
[remove blocking dependencies for separate ramdisk, fix lzop options]
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* include: sync with upstream
* toolchain/binutils: add support for version 2.40
Release notes:
https://sourceware.org/pipermail/binutils/2023-January/125671.html
Signed-off-by: Linhui Liu <liulinhui36@gmail.com>
* toolchain/gcc: switch to version 12 by default
Also fix build error with gcc 12.
* toolchain/nasm: update to 2.16.01
ChangeLog:
Version 2.16.01
_This is a documentation update release only._
(*) Fix the creation of the table of contents in the HTML version of
the documentation.
Version 2.16
(*) Support for the `rdf' format has been discontinued and all the
RDOFF utilities has been removed.
(*) The `--reproducible' option now leaves the filename field in the
COFF object format blank. This was always rather useless since
it is only 18 characters long; as such debug formats have to
carry their own filename information anyway.
(*) Fix handling of MASM-syntax reserved memory (e.g. `dw ?') when
used in structure definitions.
(*) The preprocessor now supports functions, which can be less
verbose and more convenient than the equivalent code implemented
using directives. See section 4.4.
(*) Fix the handling of `%00' in the preprocessor.
(*) Fix incorrect handling of path names affecting error messages,
dependency generation, and debug format output.
(*) Support for the RDOFF output format and the RDOFF tools have
been removed. The RDOFF tools had already been broken since at
least NASM 2.14. For flat code the ELF output format
recommended; for segmented code the `obj' (OMF) output format.
(*) New facility: preprocessor functions. Preprocessor functions,
which are expanded similarly to single-line macros, can greatly
simplify code that in the past would have required a lengthy
list of directives and intermediate macros. See section 4.4.
(*) Single-line macros can now declare parameters (using a `&&'
prefix) that creates a quoted string, but does _not_ requote an
already quoted string. See section 4.2.1.
(*) Instruction table updated per public information available as of
November 2022.
(*) All warnings in the preprocessor have now been assigned warning
classes. See appendix A.
(*) Fix the invalid use of `RELA'-type relocations instead of `REL'-
type relocations when generating DWARF debug information for the
`elf32' output format.
(*) Fix the handling `at' in `istruc' when the structure contains
local labels. See section 5.9.2.
(*) When assembling with `--reproducible', don't encode the filename
in the COFF header for the `coff', `win32' or `win64' output
formats. The COFF header only has space for an 18-character
filename, which makes this field rather useless in the first
place. Debug output data, if enabled, is not affected.
(*) Fix incorrect size calculation when using MASM syntax for non-
byte reservations (e.g. `dw ?'.)
(*) Allow forcing an instruction in 64-bit mode to have a (possibly
redundant) REX prefix, using the syntax `{rex}' as a prefix.
(*) Add a `{vex}' prefix to enforce VEX (AVX) encoding of an
instruction, either using the 2- or 3-byte VEX prefixes.
(*) The `CPU' directive has been augmented to allow control of
generation of VEX (AVX) versus EVEX (AVX-512) instruction
formats, see section 7.11.
(*) Some recent instructions that previously have been only
available using EVEX encodings are now also encodable using VEX
(AVX) encodings. For backwards compatibility these encodings are
not enabled by default, but can be generated either via an
explicit `{vex}' prefix or by specifying either `CPU LATEVEX' or
`CPU NOEVEX'; see section 7.11.
(*) Document the already existing `%unimacro' directive. See section
4.5.12.
(*) Fix a code range generation bug in the DWARF debug format
(incorrect information in the `DW_AT_high_pc' field) for the ELF
output formats. This bug happened to cancel out with a bug in
older versions of the GNU binutils linker, but breaks with other
linkers and updated or other linkers that expect the spec to be
followed.
(*) Fix segment symbols with addends, e.g. `jmp _TEXT+10h:0' in
output formats that support segment relocations, e.g. the `obj'
format.
(*) Fix various crashes and hangs on invalid input.
Signed-off-by: Linhui Liu <liulinhui36@gmail.com>
* toolchain: musl: Fix symbol loading in gdb
Fix DT_DEBUG handling on MIPS in musl libc.
With this change gdb will load the symbol files for shared libraries on MIPS too.
This patch was taken from this thread: https://www.openwall.com/lists/musl/2022/01/09/4
Signed-off-by: Hauke Mehrtens <hmehrtens@maxlinear.com>
* tools: sync with upstream
* build: fix issues with targets installed via feeds
- fix including modules.mk when a target is being replaced
- fix calling make targets from target/linux
Signed-off-by: Felix Fietkau <nbd@nbd.name>
* package: sync with upstream
Signed-off-by: Tony Butler <spudz76@gmail.com>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Linhui Liu <liulinhui36@gmail.com>
Signed-off-by: Hauke Mehrtens <hmehrtens@maxlinear.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Co-authored-by: Tony Butler <spudz76@gmail.com>
Co-authored-by: Hauke Mehrtens <hmehrtens@maxlinear.com>
Co-authored-by: Felix Fietkau <nbd@nbd.name>
2023-01-25 07:30:35 +00:00
|
|
|
DEVICE_ALT3_TITLE = $$(DEVICE_ALT3_VENDOR) $$(DEVICE_ALT3_MODEL)$$(if $$(DEVICE_ALT3_VARIANT), $$(DEVICE_ALT3_VARIANT))
|
|
|
|
DEVICE_ALT4_TITLE = $$(DEVICE_ALT4_VENDOR) $$(DEVICE_ALT4_MODEL)$$(if $$(DEVICE_ALT4_VARIANT), $$(DEVICE_ALT4_VARIANT))
|
2019-10-19 18:35:16 +00:00
|
|
|
DEVICE_VENDOR :=
|
|
|
|
DEVICE_MODEL :=
|
|
|
|
DEVICE_VARIANT :=
|
|
|
|
DEVICE_ALT0_VENDOR :=
|
|
|
|
DEVICE_ALT0_MODEL :=
|
|
|
|
DEVICE_ALT0_VARIANT :=
|
|
|
|
DEVICE_ALT1_VENDOR :=
|
|
|
|
DEVICE_ALT1_MODEL :=
|
|
|
|
DEVICE_ALT1_VARIANT :=
|
|
|
|
DEVICE_ALT2_VENDOR :=
|
|
|
|
DEVICE_ALT2_MODEL :=
|
|
|
|
DEVICE_ALT2_VARIANT :=
|
treewide: sync with upstream (#10750)
* build: fix incomplete initramfs compression options
Requires: tools/lz4, tools/lzop
complete the wiring so that these options work:
* `CONFIG_KERNEL_INITRAMFS_COMPRESSION_LZO`
* `CONFIG_KERNEL_INITRAMFS_COMPRESSION_LZ4`
Signed-off-by: Tony Butler <spudz76@gmail.com>
[remove blocking dependencies for separate ramdisk, fix lzop options]
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* include: sync with upstream
* toolchain/binutils: add support for version 2.40
Release notes:
https://sourceware.org/pipermail/binutils/2023-January/125671.html
Signed-off-by: Linhui Liu <liulinhui36@gmail.com>
* toolchain/gcc: switch to version 12 by default
Also fix build error with gcc 12.
* toolchain/nasm: update to 2.16.01
ChangeLog:
Version 2.16.01
_This is a documentation update release only._
(*) Fix the creation of the table of contents in the HTML version of
the documentation.
Version 2.16
(*) Support for the `rdf' format has been discontinued and all the
RDOFF utilities has been removed.
(*) The `--reproducible' option now leaves the filename field in the
COFF object format blank. This was always rather useless since
it is only 18 characters long; as such debug formats have to
carry their own filename information anyway.
(*) Fix handling of MASM-syntax reserved memory (e.g. `dw ?') when
used in structure definitions.
(*) The preprocessor now supports functions, which can be less
verbose and more convenient than the equivalent code implemented
using directives. See section 4.4.
(*) Fix the handling of `%00' in the preprocessor.
(*) Fix incorrect handling of path names affecting error messages,
dependency generation, and debug format output.
(*) Support for the RDOFF output format and the RDOFF tools have
been removed. The RDOFF tools had already been broken since at
least NASM 2.14. For flat code the ELF output format
recommended; for segmented code the `obj' (OMF) output format.
(*) New facility: preprocessor functions. Preprocessor functions,
which are expanded similarly to single-line macros, can greatly
simplify code that in the past would have required a lengthy
list of directives and intermediate macros. See section 4.4.
(*) Single-line macros can now declare parameters (using a `&&'
prefix) that creates a quoted string, but does _not_ requote an
already quoted string. See section 4.2.1.
(*) Instruction table updated per public information available as of
November 2022.
(*) All warnings in the preprocessor have now been assigned warning
classes. See appendix A.
(*) Fix the invalid use of `RELA'-type relocations instead of `REL'-
type relocations when generating DWARF debug information for the
`elf32' output format.
(*) Fix the handling `at' in `istruc' when the structure contains
local labels. See section 5.9.2.
(*) When assembling with `--reproducible', don't encode the filename
in the COFF header for the `coff', `win32' or `win64' output
formats. The COFF header only has space for an 18-character
filename, which makes this field rather useless in the first
place. Debug output data, if enabled, is not affected.
(*) Fix incorrect size calculation when using MASM syntax for non-
byte reservations (e.g. `dw ?'.)
(*) Allow forcing an instruction in 64-bit mode to have a (possibly
redundant) REX prefix, using the syntax `{rex}' as a prefix.
(*) Add a `{vex}' prefix to enforce VEX (AVX) encoding of an
instruction, either using the 2- or 3-byte VEX prefixes.
(*) The `CPU' directive has been augmented to allow control of
generation of VEX (AVX) versus EVEX (AVX-512) instruction
formats, see section 7.11.
(*) Some recent instructions that previously have been only
available using EVEX encodings are now also encodable using VEX
(AVX) encodings. For backwards compatibility these encodings are
not enabled by default, but can be generated either via an
explicit `{vex}' prefix or by specifying either `CPU LATEVEX' or
`CPU NOEVEX'; see section 7.11.
(*) Document the already existing `%unimacro' directive. See section
4.5.12.
(*) Fix a code range generation bug in the DWARF debug format
(incorrect information in the `DW_AT_high_pc' field) for the ELF
output formats. This bug happened to cancel out with a bug in
older versions of the GNU binutils linker, but breaks with other
linkers and updated or other linkers that expect the spec to be
followed.
(*) Fix segment symbols with addends, e.g. `jmp _TEXT+10h:0' in
output formats that support segment relocations, e.g. the `obj'
format.
(*) Fix various crashes and hangs on invalid input.
Signed-off-by: Linhui Liu <liulinhui36@gmail.com>
* toolchain: musl: Fix symbol loading in gdb
Fix DT_DEBUG handling on MIPS in musl libc.
With this change gdb will load the symbol files for shared libraries on MIPS too.
This patch was taken from this thread: https://www.openwall.com/lists/musl/2022/01/09/4
Signed-off-by: Hauke Mehrtens <hmehrtens@maxlinear.com>
* tools: sync with upstream
* build: fix issues with targets installed via feeds
- fix including modules.mk when a target is being replaced
- fix calling make targets from target/linux
Signed-off-by: Felix Fietkau <nbd@nbd.name>
* package: sync with upstream
Signed-off-by: Tony Butler <spudz76@gmail.com>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Linhui Liu <liulinhui36@gmail.com>
Signed-off-by: Hauke Mehrtens <hmehrtens@maxlinear.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Co-authored-by: Tony Butler <spudz76@gmail.com>
Co-authored-by: Hauke Mehrtens <hmehrtens@maxlinear.com>
Co-authored-by: Felix Fietkau <nbd@nbd.name>
2023-01-25 07:30:35 +00:00
|
|
|
DEVICE_ALT3_VENDOR :=
|
|
|
|
DEVICE_ALT3_MODEL :=
|
|
|
|
DEVICE_ALT3_VARIANT :=
|
|
|
|
DEVICE_ALT4_VENDOR :=
|
|
|
|
DEVICE_ALT4_MODEL :=
|
|
|
|
DEVICE_ALT4_VARIANT :=
|
2017-09-06 11:19:45 +00:00
|
|
|
DEVICE_PACKAGES :=
|
|
|
|
DEVICE_DESCRIPTION = Build firmware images for $$(DEVICE_TITLE)
|
|
|
|
endef
|
|
|
|
|
|
|
|
define Device/Init
|
|
|
|
DEVICE_NAME := $(1)
|
|
|
|
KERNEL:=
|
|
|
|
KERNEL_INITRAMFS = $$(KERNEL)
|
|
|
|
CMDLINE:=
|
|
|
|
|
|
|
|
IMAGES :=
|
2019-01-03 11:29:28 +00:00
|
|
|
ARTIFACTS :=
|
2021-06-15 09:58:07 +00:00
|
|
|
DEVICE_IMG_PREFIX := $(IMG_PREFIX)-$(1)
|
|
|
|
DEVICE_IMG_NAME = $$(DEVICE_IMG_PREFIX)-$$(1)-$$(2)
|
treewide: sync with upstream (#10750)
* build: fix incomplete initramfs compression options
Requires: tools/lz4, tools/lzop
complete the wiring so that these options work:
* `CONFIG_KERNEL_INITRAMFS_COMPRESSION_LZO`
* `CONFIG_KERNEL_INITRAMFS_COMPRESSION_LZ4`
Signed-off-by: Tony Butler <spudz76@gmail.com>
[remove blocking dependencies for separate ramdisk, fix lzop options]
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* include: sync with upstream
* toolchain/binutils: add support for version 2.40
Release notes:
https://sourceware.org/pipermail/binutils/2023-January/125671.html
Signed-off-by: Linhui Liu <liulinhui36@gmail.com>
* toolchain/gcc: switch to version 12 by default
Also fix build error with gcc 12.
* toolchain/nasm: update to 2.16.01
ChangeLog:
Version 2.16.01
_This is a documentation update release only._
(*) Fix the creation of the table of contents in the HTML version of
the documentation.
Version 2.16
(*) Support for the `rdf' format has been discontinued and all the
RDOFF utilities has been removed.
(*) The `--reproducible' option now leaves the filename field in the
COFF object format blank. This was always rather useless since
it is only 18 characters long; as such debug formats have to
carry their own filename information anyway.
(*) Fix handling of MASM-syntax reserved memory (e.g. `dw ?') when
used in structure definitions.
(*) The preprocessor now supports functions, which can be less
verbose and more convenient than the equivalent code implemented
using directives. See section 4.4.
(*) Fix the handling of `%00' in the preprocessor.
(*) Fix incorrect handling of path names affecting error messages,
dependency generation, and debug format output.
(*) Support for the RDOFF output format and the RDOFF tools have
been removed. The RDOFF tools had already been broken since at
least NASM 2.14. For flat code the ELF output format
recommended; for segmented code the `obj' (OMF) output format.
(*) New facility: preprocessor functions. Preprocessor functions,
which are expanded similarly to single-line macros, can greatly
simplify code that in the past would have required a lengthy
list of directives and intermediate macros. See section 4.4.
(*) Single-line macros can now declare parameters (using a `&&'
prefix) that creates a quoted string, but does _not_ requote an
already quoted string. See section 4.2.1.
(*) Instruction table updated per public information available as of
November 2022.
(*) All warnings in the preprocessor have now been assigned warning
classes. See appendix A.
(*) Fix the invalid use of `RELA'-type relocations instead of `REL'-
type relocations when generating DWARF debug information for the
`elf32' output format.
(*) Fix the handling `at' in `istruc' when the structure contains
local labels. See section 5.9.2.
(*) When assembling with `--reproducible', don't encode the filename
in the COFF header for the `coff', `win32' or `win64' output
formats. The COFF header only has space for an 18-character
filename, which makes this field rather useless in the first
place. Debug output data, if enabled, is not affected.
(*) Fix incorrect size calculation when using MASM syntax for non-
byte reservations (e.g. `dw ?'.)
(*) Allow forcing an instruction in 64-bit mode to have a (possibly
redundant) REX prefix, using the syntax `{rex}' as a prefix.
(*) Add a `{vex}' prefix to enforce VEX (AVX) encoding of an
instruction, either using the 2- or 3-byte VEX prefixes.
(*) The `CPU' directive has been augmented to allow control of
generation of VEX (AVX) versus EVEX (AVX-512) instruction
formats, see section 7.11.
(*) Some recent instructions that previously have been only
available using EVEX encodings are now also encodable using VEX
(AVX) encodings. For backwards compatibility these encodings are
not enabled by default, but can be generated either via an
explicit `{vex}' prefix or by specifying either `CPU LATEVEX' or
`CPU NOEVEX'; see section 7.11.
(*) Document the already existing `%unimacro' directive. See section
4.5.12.
(*) Fix a code range generation bug in the DWARF debug format
(incorrect information in the `DW_AT_high_pc' field) for the ELF
output formats. This bug happened to cancel out with a bug in
older versions of the GNU binutils linker, but breaks with other
linkers and updated or other linkers that expect the spec to be
followed.
(*) Fix segment symbols with addends, e.g. `jmp _TEXT+10h:0' in
output formats that support segment relocations, e.g. the `obj'
format.
(*) Fix various crashes and hangs on invalid input.
Signed-off-by: Linhui Liu <liulinhui36@gmail.com>
* toolchain: musl: Fix symbol loading in gdb
Fix DT_DEBUG handling on MIPS in musl libc.
With this change gdb will load the symbol files for shared libraries on MIPS too.
This patch was taken from this thread: https://www.openwall.com/lists/musl/2022/01/09/4
Signed-off-by: Hauke Mehrtens <hmehrtens@maxlinear.com>
* tools: sync with upstream
* build: fix issues with targets installed via feeds
- fix including modules.mk when a target is being replaced
- fix calling make targets from target/linux
Signed-off-by: Felix Fietkau <nbd@nbd.name>
* package: sync with upstream
Signed-off-by: Tony Butler <spudz76@gmail.com>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Linhui Liu <liulinhui36@gmail.com>
Signed-off-by: Hauke Mehrtens <hmehrtens@maxlinear.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Co-authored-by: Tony Butler <spudz76@gmail.com>
Co-authored-by: Hauke Mehrtens <hmehrtens@maxlinear.com>
Co-authored-by: Felix Fietkau <nbd@nbd.name>
2023-01-25 07:30:35 +00:00
|
|
|
FACTORY_IMG_NAME :=
|
2020-07-02 15:30:56 +00:00
|
|
|
IMAGE_SIZE :=
|
2021-06-15 09:58:07 +00:00
|
|
|
KERNEL_PREFIX = $$(DEVICE_IMG_PREFIX)
|
2017-09-06 11:19:45 +00:00
|
|
|
KERNEL_SUFFIX := -kernel.bin
|
|
|
|
KERNEL_INITRAMFS_SUFFIX = $$(KERNEL_SUFFIX)
|
|
|
|
KERNEL_IMAGE = $$(KERNEL_PREFIX)$$(KERNEL_SUFFIX)
|
2021-06-15 09:58:07 +00:00
|
|
|
KERNEL_INITRAMFS_PREFIX = $$(DEVICE_IMG_PREFIX)-initramfs
|
2017-09-06 11:19:45 +00:00
|
|
|
KERNEL_INITRAMFS_IMAGE = $$(KERNEL_INITRAMFS_PREFIX)$$(KERNEL_INITRAMFS_SUFFIX)
|
|
|
|
KERNEL_INITRAMFS_NAME = $$(KERNEL_NAME)-initramfs
|
|
|
|
KERNEL_INSTALL :=
|
|
|
|
KERNEL_NAME := vmlinux
|
|
|
|
KERNEL_DEPENDS :=
|
|
|
|
KERNEL_SIZE :=
|
|
|
|
|
|
|
|
UBOOTENV_IN_UBI :=
|
|
|
|
KERNEL_IN_UBI :=
|
|
|
|
BLOCKSIZE :=
|
|
|
|
PAGESIZE :=
|
|
|
|
SUBPAGESIZE :=
|
|
|
|
VID_HDR_OFFSET :=
|
|
|
|
UBINIZE_OPTS :=
|
|
|
|
UBINIZE_PARTS :=
|
|
|
|
MKUBIFS_OPTS :=
|
|
|
|
|
|
|
|
FS_OPTIONS/ubifs = $$(MKUBIFS_OPTS)
|
|
|
|
|
|
|
|
DEVICE_DTS :=
|
2018-04-23 10:50:49 +00:00
|
|
|
DEVICE_DTS_CONFIG :=
|
2022-10-19 13:57:13 +00:00
|
|
|
DEVICE_DTS_DELIMITER :=
|
2017-09-06 11:19:45 +00:00
|
|
|
DEVICE_DTS_DIR :=
|
2022-11-19 10:03:18 +00:00
|
|
|
DEVICE_DTS_LOADADDR :=
|
2021-06-14 10:30:08 +00:00
|
|
|
DEVICE_DTS_OVERLAY :=
|
|
|
|
DEVICE_FDT_NUM :=
|
2023-06-06 12:01:15 +00:00
|
|
|
DEVICE_DTC_FLAGS :=
|
|
|
|
DEVICE_DTCO_FLAGS :=
|
2020-02-03 15:45:16 +00:00
|
|
|
SOC :=
|
2017-09-06 11:19:45 +00:00
|
|
|
|
|
|
|
BOARD_NAME :=
|
2021-06-14 10:30:08 +00:00
|
|
|
UIMAGE_MAGIC :=
|
2017-09-06 11:19:45 +00:00
|
|
|
UIMAGE_NAME :=
|
2023-02-08 01:59:27 +00:00
|
|
|
UIMAGE_TIME :=
|
2021-06-15 09:58:07 +00:00
|
|
|
DEVICE_COMPAT_VERSION := 1.0
|
|
|
|
DEVICE_COMPAT_MESSAGE :=
|
2021-06-14 10:30:08 +00:00
|
|
|
SUPPORTED_DEVICES := $(subst _,$(comma),$(1))
|
2017-09-06 11:19:45 +00:00
|
|
|
IMAGE_METADATA :=
|
|
|
|
|
|
|
|
FILESYSTEMS := $(TARGET_FILESYSTEMS)
|
2019-10-19 18:35:16 +00:00
|
|
|
|
|
|
|
UBOOT_PATH := $(STAGING_DIR_IMAGE)/uboot-$(1)
|
|
|
|
|
2021-06-15 09:58:07 +00:00
|
|
|
BROKEN :=
|
2019-10-19 18:35:16 +00:00
|
|
|
DEFAULT :=
|
2017-09-06 11:19:45 +00:00
|
|
|
endef
|
|
|
|
|
|
|
|
DEFAULT_DEVICE_VARS := \
|
2019-10-19 18:35:16 +00:00
|
|
|
DEVICE_NAME KERNEL KERNEL_INITRAMFS KERNEL_INITRAMFS_IMAGE KERNEL_SIZE \
|
|
|
|
CMDLINE UBOOTENV_IN_UBI KERNEL_IN_UBI BLOCKSIZE PAGESIZE SUBPAGESIZE \
|
2023-06-06 12:01:15 +00:00
|
|
|
VID_HDR_OFFSET UBINIZE_OPTS UBINIZE_PARTS MKUBIFS_OPTS DEVICE_DTC_FLAGS \
|
|
|
|
DEVICE_DTCO_FLAGS DEVICE_DTS DEVICE_DTS_CONFIG DEVICE_DTS_DELIMITER \
|
|
|
|
DEVICE_DTS_DIR DEVICE_DTS_OVERLAY DEVICE_DTS_LOADADDR \
|
2022-10-19 13:57:13 +00:00
|
|
|
DEVICE_FDT_NUM DEVICE_IMG_PREFIX SOC BOARD_NAME UIMAGE_MAGIC UIMAGE_NAME \
|
2023-02-08 01:59:27 +00:00
|
|
|
UIMAGE_TIME SUPPORTED_DEVICES IMAGE_METADATA KERNEL_ENTRY KERNEL_LOADADDR \
|
2021-06-15 09:58:07 +00:00
|
|
|
UBOOT_PATH IMAGE_SIZE \
|
treewide: sync with upstream (#10750)
* build: fix incomplete initramfs compression options
Requires: tools/lz4, tools/lzop
complete the wiring so that these options work:
* `CONFIG_KERNEL_INITRAMFS_COMPRESSION_LZO`
* `CONFIG_KERNEL_INITRAMFS_COMPRESSION_LZ4`
Signed-off-by: Tony Butler <spudz76@gmail.com>
[remove blocking dependencies for separate ramdisk, fix lzop options]
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* include: sync with upstream
* toolchain/binutils: add support for version 2.40
Release notes:
https://sourceware.org/pipermail/binutils/2023-January/125671.html
Signed-off-by: Linhui Liu <liulinhui36@gmail.com>
* toolchain/gcc: switch to version 12 by default
Also fix build error with gcc 12.
* toolchain/nasm: update to 2.16.01
ChangeLog:
Version 2.16.01
_This is a documentation update release only._
(*) Fix the creation of the table of contents in the HTML version of
the documentation.
Version 2.16
(*) Support for the `rdf' format has been discontinued and all the
RDOFF utilities has been removed.
(*) The `--reproducible' option now leaves the filename field in the
COFF object format blank. This was always rather useless since
it is only 18 characters long; as such debug formats have to
carry their own filename information anyway.
(*) Fix handling of MASM-syntax reserved memory (e.g. `dw ?') when
used in structure definitions.
(*) The preprocessor now supports functions, which can be less
verbose and more convenient than the equivalent code implemented
using directives. See section 4.4.
(*) Fix the handling of `%00' in the preprocessor.
(*) Fix incorrect handling of path names affecting error messages,
dependency generation, and debug format output.
(*) Support for the RDOFF output format and the RDOFF tools have
been removed. The RDOFF tools had already been broken since at
least NASM 2.14. For flat code the ELF output format
recommended; for segmented code the `obj' (OMF) output format.
(*) New facility: preprocessor functions. Preprocessor functions,
which are expanded similarly to single-line macros, can greatly
simplify code that in the past would have required a lengthy
list of directives and intermediate macros. See section 4.4.
(*) Single-line macros can now declare parameters (using a `&&'
prefix) that creates a quoted string, but does _not_ requote an
already quoted string. See section 4.2.1.
(*) Instruction table updated per public information available as of
November 2022.
(*) All warnings in the preprocessor have now been assigned warning
classes. See appendix A.
(*) Fix the invalid use of `RELA'-type relocations instead of `REL'-
type relocations when generating DWARF debug information for the
`elf32' output format.
(*) Fix the handling `at' in `istruc' when the structure contains
local labels. See section 5.9.2.
(*) When assembling with `--reproducible', don't encode the filename
in the COFF header for the `coff', `win32' or `win64' output
formats. The COFF header only has space for an 18-character
filename, which makes this field rather useless in the first
place. Debug output data, if enabled, is not affected.
(*) Fix incorrect size calculation when using MASM syntax for non-
byte reservations (e.g. `dw ?'.)
(*) Allow forcing an instruction in 64-bit mode to have a (possibly
redundant) REX prefix, using the syntax `{rex}' as a prefix.
(*) Add a `{vex}' prefix to enforce VEX (AVX) encoding of an
instruction, either using the 2- or 3-byte VEX prefixes.
(*) The `CPU' directive has been augmented to allow control of
generation of VEX (AVX) versus EVEX (AVX-512) instruction
formats, see section 7.11.
(*) Some recent instructions that previously have been only
available using EVEX encodings are now also encodable using VEX
(AVX) encodings. For backwards compatibility these encodings are
not enabled by default, but can be generated either via an
explicit `{vex}' prefix or by specifying either `CPU LATEVEX' or
`CPU NOEVEX'; see section 7.11.
(*) Document the already existing `%unimacro' directive. See section
4.5.12.
(*) Fix a code range generation bug in the DWARF debug format
(incorrect information in the `DW_AT_high_pc' field) for the ELF
output formats. This bug happened to cancel out with a bug in
older versions of the GNU binutils linker, but breaks with other
linkers and updated or other linkers that expect the spec to be
followed.
(*) Fix segment symbols with addends, e.g. `jmp _TEXT+10h:0' in
output formats that support segment relocations, e.g. the `obj'
format.
(*) Fix various crashes and hangs on invalid input.
Signed-off-by: Linhui Liu <liulinhui36@gmail.com>
* toolchain: musl: Fix symbol loading in gdb
Fix DT_DEBUG handling on MIPS in musl libc.
With this change gdb will load the symbol files for shared libraries on MIPS too.
This patch was taken from this thread: https://www.openwall.com/lists/musl/2022/01/09/4
Signed-off-by: Hauke Mehrtens <hmehrtens@maxlinear.com>
* tools: sync with upstream
* build: fix issues with targets installed via feeds
- fix including modules.mk when a target is being replaced
- fix calling make targets from target/linux
Signed-off-by: Felix Fietkau <nbd@nbd.name>
* package: sync with upstream
Signed-off-by: Tony Butler <spudz76@gmail.com>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Linhui Liu <liulinhui36@gmail.com>
Signed-off-by: Hauke Mehrtens <hmehrtens@maxlinear.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Co-authored-by: Tony Butler <spudz76@gmail.com>
Co-authored-by: Hauke Mehrtens <hmehrtens@maxlinear.com>
Co-authored-by: Felix Fietkau <nbd@nbd.name>
2023-01-25 07:30:35 +00:00
|
|
|
FACTORY_IMG_NAME FACTORY_SIZE \
|
2021-06-15 09:58:07 +00:00
|
|
|
DEVICE_PACKAGES DEVICE_COMPAT_VERSION DEVICE_COMPAT_MESSAGE \
|
|
|
|
DEVICE_VENDOR DEVICE_MODEL DEVICE_VARIANT \
|
2019-10-19 18:35:16 +00:00
|
|
|
DEVICE_ALT0_VENDOR DEVICE_ALT0_MODEL DEVICE_ALT0_VARIANT \
|
|
|
|
DEVICE_ALT1_VENDOR DEVICE_ALT1_MODEL DEVICE_ALT1_VARIANT \
|
treewide: sync with upstream (#10750)
* build: fix incomplete initramfs compression options
Requires: tools/lz4, tools/lzop
complete the wiring so that these options work:
* `CONFIG_KERNEL_INITRAMFS_COMPRESSION_LZO`
* `CONFIG_KERNEL_INITRAMFS_COMPRESSION_LZ4`
Signed-off-by: Tony Butler <spudz76@gmail.com>
[remove blocking dependencies for separate ramdisk, fix lzop options]
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* include: sync with upstream
* toolchain/binutils: add support for version 2.40
Release notes:
https://sourceware.org/pipermail/binutils/2023-January/125671.html
Signed-off-by: Linhui Liu <liulinhui36@gmail.com>
* toolchain/gcc: switch to version 12 by default
Also fix build error with gcc 12.
* toolchain/nasm: update to 2.16.01
ChangeLog:
Version 2.16.01
_This is a documentation update release only._
(*) Fix the creation of the table of contents in the HTML version of
the documentation.
Version 2.16
(*) Support for the `rdf' format has been discontinued and all the
RDOFF utilities has been removed.
(*) The `--reproducible' option now leaves the filename field in the
COFF object format blank. This was always rather useless since
it is only 18 characters long; as such debug formats have to
carry their own filename information anyway.
(*) Fix handling of MASM-syntax reserved memory (e.g. `dw ?') when
used in structure definitions.
(*) The preprocessor now supports functions, which can be less
verbose and more convenient than the equivalent code implemented
using directives. See section 4.4.
(*) Fix the handling of `%00' in the preprocessor.
(*) Fix incorrect handling of path names affecting error messages,
dependency generation, and debug format output.
(*) Support for the RDOFF output format and the RDOFF tools have
been removed. The RDOFF tools had already been broken since at
least NASM 2.14. For flat code the ELF output format
recommended; for segmented code the `obj' (OMF) output format.
(*) New facility: preprocessor functions. Preprocessor functions,
which are expanded similarly to single-line macros, can greatly
simplify code that in the past would have required a lengthy
list of directives and intermediate macros. See section 4.4.
(*) Single-line macros can now declare parameters (using a `&&'
prefix) that creates a quoted string, but does _not_ requote an
already quoted string. See section 4.2.1.
(*) Instruction table updated per public information available as of
November 2022.
(*) All warnings in the preprocessor have now been assigned warning
classes. See appendix A.
(*) Fix the invalid use of `RELA'-type relocations instead of `REL'-
type relocations when generating DWARF debug information for the
`elf32' output format.
(*) Fix the handling `at' in `istruc' when the structure contains
local labels. See section 5.9.2.
(*) When assembling with `--reproducible', don't encode the filename
in the COFF header for the `coff', `win32' or `win64' output
formats. The COFF header only has space for an 18-character
filename, which makes this field rather useless in the first
place. Debug output data, if enabled, is not affected.
(*) Fix incorrect size calculation when using MASM syntax for non-
byte reservations (e.g. `dw ?'.)
(*) Allow forcing an instruction in 64-bit mode to have a (possibly
redundant) REX prefix, using the syntax `{rex}' as a prefix.
(*) Add a `{vex}' prefix to enforce VEX (AVX) encoding of an
instruction, either using the 2- or 3-byte VEX prefixes.
(*) The `CPU' directive has been augmented to allow control of
generation of VEX (AVX) versus EVEX (AVX-512) instruction
formats, see section 7.11.
(*) Some recent instructions that previously have been only
available using EVEX encodings are now also encodable using VEX
(AVX) encodings. For backwards compatibility these encodings are
not enabled by default, but can be generated either via an
explicit `{vex}' prefix or by specifying either `CPU LATEVEX' or
`CPU NOEVEX'; see section 7.11.
(*) Document the already existing `%unimacro' directive. See section
4.5.12.
(*) Fix a code range generation bug in the DWARF debug format
(incorrect information in the `DW_AT_high_pc' field) for the ELF
output formats. This bug happened to cancel out with a bug in
older versions of the GNU binutils linker, but breaks with other
linkers and updated or other linkers that expect the spec to be
followed.
(*) Fix segment symbols with addends, e.g. `jmp _TEXT+10h:0' in
output formats that support segment relocations, e.g. the `obj'
format.
(*) Fix various crashes and hangs on invalid input.
Signed-off-by: Linhui Liu <liulinhui36@gmail.com>
* toolchain: musl: Fix symbol loading in gdb
Fix DT_DEBUG handling on MIPS in musl libc.
With this change gdb will load the symbol files for shared libraries on MIPS too.
This patch was taken from this thread: https://www.openwall.com/lists/musl/2022/01/09/4
Signed-off-by: Hauke Mehrtens <hmehrtens@maxlinear.com>
* tools: sync with upstream
* build: fix issues with targets installed via feeds
- fix including modules.mk when a target is being replaced
- fix calling make targets from target/linux
Signed-off-by: Felix Fietkau <nbd@nbd.name>
* package: sync with upstream
Signed-off-by: Tony Butler <spudz76@gmail.com>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Linhui Liu <liulinhui36@gmail.com>
Signed-off-by: Hauke Mehrtens <hmehrtens@maxlinear.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Co-authored-by: Tony Butler <spudz76@gmail.com>
Co-authored-by: Hauke Mehrtens <hmehrtens@maxlinear.com>
Co-authored-by: Felix Fietkau <nbd@nbd.name>
2023-01-25 07:30:35 +00:00
|
|
|
DEVICE_ALT2_VENDOR DEVICE_ALT2_MODEL DEVICE_ALT2_VARIANT \
|
|
|
|
DEVICE_ALT3_VENDOR DEVICE_ALT3_MODEL DEVICE_ALT3_VARIANT \
|
|
|
|
DEVICE_ALT4_VENDOR DEVICE_ALT4_MODEL DEVICE_ALT4_VARIANT
|
2017-09-06 11:19:45 +00:00
|
|
|
|
|
|
|
define Device/ExportVar
|
|
|
|
$(1) : $(2):=$$($(2))
|
|
|
|
|
|
|
|
endef
|
|
|
|
define Device/Export
|
|
|
|
$(foreach var,$(DEVICE_VARS) $(DEFAULT_DEVICE_VARS),$(call Device/ExportVar,$(1),$(var)))
|
|
|
|
$(1) : FILESYSTEM:=$(2)
|
|
|
|
endef
|
|
|
|
|
|
|
|
ifdef IB
|
|
|
|
DEVICE_CHECK_PROFILE = $(filter $(1),DEVICE_$(PROFILE) $(PROFILE))
|
|
|
|
else
|
|
|
|
DEVICE_CHECK_PROFILE = $(CONFIG_TARGET_$(if $(CONFIG_TARGET_MULTI_PROFILE),DEVICE_)$(call target_conf,$(BOARD)$(if $(SUBTARGET),_$(SUBTARGET)))_$(1))
|
|
|
|
endif
|
|
|
|
|
|
|
|
DEVICE_EXTRA_PACKAGES = $(call qstrip,$(CONFIG_TARGET_DEVICE_PACKAGES_$(call target_conf,$(BOARD)$(if $(SUBTARGET),_$(SUBTARGET)))_DEVICE_$(1)))
|
|
|
|
|
|
|
|
define merge_packages
|
|
|
|
$(1) :=
|
|
|
|
$(foreach pkg,$(2),
|
|
|
|
$(1) := $$(strip $$(filter-out -$$(patsubst -%,%,$(pkg)) $$(patsubst -%,%,$(pkg)),$$($(1))) $(pkg))
|
|
|
|
)
|
|
|
|
endef
|
|
|
|
|
|
|
|
define Device/Check/Common
|
|
|
|
_PROFILE_SET = $$(strip $$(foreach profile,$$(PROFILES) DEVICE_$(1),$$(call DEVICE_CHECK_PROFILE,$$(profile))))
|
2018-08-23 09:40:23 +00:00
|
|
|
DEVICE_PACKAGES += $$(call extra_packages,$$(DEVICE_PACKAGES))
|
2017-09-06 11:19:45 +00:00
|
|
|
ifdef TARGET_PER_DEVICE_ROOTFS
|
|
|
|
$$(eval $$(call merge_packages,_PACKAGES,$$(DEVICE_PACKAGES) $$(call DEVICE_EXTRA_PACKAGES,$(1))))
|
|
|
|
ROOTFS_ID/$(1) := $$(if $$(_PROFILE_SET),$$(call mkfs_packages_id,$$(_PACKAGES)))
|
|
|
|
PACKAGES_$$(ROOTFS_ID/$(1)) := $$(_PACKAGES)
|
|
|
|
endif
|
|
|
|
endef
|
|
|
|
|
|
|
|
define Device/Check
|
|
|
|
$(Device/Check/Common)
|
|
|
|
KDIR_KERNEL_IMAGE := $(KDIR)/$(1)$$(KERNEL_SUFFIX)
|
|
|
|
_TARGET := $$(if $$(_PROFILE_SET),install-images,install-disabled)
|
|
|
|
ifndef IB
|
|
|
|
_COMPILE_TARGET := $$(if $(CONFIG_IB)$$(_PROFILE_SET),compile,compile-disabled)
|
|
|
|
endif
|
|
|
|
endef
|
|
|
|
|
|
|
|
ifndef IB
|
|
|
|
define Device/Build/initramfs
|
|
|
|
$(call Device/Export,$(KDIR)/tmp/$$(KERNEL_INITRAMFS_IMAGE),$(1))
|
2021-06-14 10:30:08 +00:00
|
|
|
$$(_TARGET): $$(if $$(KERNEL_INITRAMFS),$(BIN_DIR)/$$(KERNEL_INITRAMFS_IMAGE) \
|
|
|
|
$$(if $$(CONFIG_JSON_OVERVIEW_IMAGE_INFO), $(BUILD_DIR)/json_info_files/$$(KERNEL_INITRAMFS_IMAGE).json,))
|
2017-09-06 11:19:45 +00:00
|
|
|
|
|
|
|
$(KDIR)/$$(KERNEL_INITRAMFS_NAME):: image_prepare
|
2021-06-15 09:58:07 +00:00
|
|
|
$(1)-images: $$(if $$(KERNEL_INITRAMFS),$(BIN_DIR)/$$(KERNEL_INITRAMFS_IMAGE))
|
2024-10-31 09:11:03 +00:00
|
|
|
|
|
|
|
.IGNORE: $(BIN_DIR)/$$(KERNEL_INITRAMFS_IMAGE)
|
|
|
|
|
2017-09-06 11:19:45 +00:00
|
|
|
$(BIN_DIR)/$$(KERNEL_INITRAMFS_IMAGE): $(KDIR)/tmp/$$(KERNEL_INITRAMFS_IMAGE)
|
|
|
|
cp $$^ $$@
|
|
|
|
|
|
|
|
$(KDIR)/tmp/$$(KERNEL_INITRAMFS_IMAGE): $(KDIR)/$$(KERNEL_INITRAMFS_NAME) $(CURDIR)/Makefile $$(KERNEL_DEPENDS) image_prepare
|
|
|
|
@rm -f $$@
|
|
|
|
$$(call concat_cmd,$$(KERNEL_INITRAMFS))
|
2021-06-14 10:30:08 +00:00
|
|
|
|
|
|
|
$(call Device/Export,$(BUILD_DIR)/json_info_files/$$(KERNEL_INITRAMFS_IMAGE).json,$(1))
|
|
|
|
|
|
|
|
$(BUILD_DIR)/json_info_files/$$(KERNEL_INITRAMFS_IMAGE).json: $(BIN_DIR)/$$(KERNEL_INITRAMFS_IMAGE)
|
|
|
|
@mkdir -p $$(shell dirname $$@)
|
|
|
|
DEVICE_ID="$(1)" \
|
|
|
|
SOURCE_DATE_EPOCH=$(SOURCE_DATE_EPOCH) \
|
2022-10-19 13:57:13 +00:00
|
|
|
FILE_NAME="$$(notdir $$^)" \
|
|
|
|
FILE_DIR="$(KDIR)/tmp" \
|
|
|
|
FILE_TYPE="kernel" \
|
|
|
|
FILE_FILESYSTEM="initramfs" \
|
2021-06-15 09:58:07 +00:00
|
|
|
DEVICE_IMG_PREFIX="$$(DEVICE_IMG_PREFIX)" \
|
2021-06-14 10:30:08 +00:00
|
|
|
DEVICE_VENDOR="$$(DEVICE_VENDOR)" \
|
|
|
|
DEVICE_MODEL="$$(DEVICE_MODEL)" \
|
|
|
|
DEVICE_VARIANT="$$(DEVICE_VARIANT)" \
|
|
|
|
DEVICE_ALT0_VENDOR="$$(DEVICE_ALT0_VENDOR)" \
|
|
|
|
DEVICE_ALT0_MODEL="$$(DEVICE_ALT0_MODEL)" \
|
|
|
|
DEVICE_ALT0_VARIANT="$$(DEVICE_ALT0_VARIANT)" \
|
|
|
|
DEVICE_ALT1_VENDOR="$$(DEVICE_ALT1_VENDOR)" \
|
|
|
|
DEVICE_ALT1_MODEL="$$(DEVICE_ALT1_MODEL)" \
|
|
|
|
DEVICE_ALT1_VARIANT="$$(DEVICE_ALT1_VARIANT)" \
|
|
|
|
DEVICE_ALT2_VENDOR="$$(DEVICE_ALT2_VENDOR)" \
|
|
|
|
DEVICE_ALT2_MODEL="$$(DEVICE_ALT2_MODEL)" \
|
|
|
|
DEVICE_ALT2_VARIANT="$$(DEVICE_ALT2_VARIANT)" \
|
treewide: sync with upstream (#10750)
* build: fix incomplete initramfs compression options
Requires: tools/lz4, tools/lzop
complete the wiring so that these options work:
* `CONFIG_KERNEL_INITRAMFS_COMPRESSION_LZO`
* `CONFIG_KERNEL_INITRAMFS_COMPRESSION_LZ4`
Signed-off-by: Tony Butler <spudz76@gmail.com>
[remove blocking dependencies for separate ramdisk, fix lzop options]
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* include: sync with upstream
* toolchain/binutils: add support for version 2.40
Release notes:
https://sourceware.org/pipermail/binutils/2023-January/125671.html
Signed-off-by: Linhui Liu <liulinhui36@gmail.com>
* toolchain/gcc: switch to version 12 by default
Also fix build error with gcc 12.
* toolchain/nasm: update to 2.16.01
ChangeLog:
Version 2.16.01
_This is a documentation update release only._
(*) Fix the creation of the table of contents in the HTML version of
the documentation.
Version 2.16
(*) Support for the `rdf' format has been discontinued and all the
RDOFF utilities has been removed.
(*) The `--reproducible' option now leaves the filename field in the
COFF object format blank. This was always rather useless since
it is only 18 characters long; as such debug formats have to
carry their own filename information anyway.
(*) Fix handling of MASM-syntax reserved memory (e.g. `dw ?') when
used in structure definitions.
(*) The preprocessor now supports functions, which can be less
verbose and more convenient than the equivalent code implemented
using directives. See section 4.4.
(*) Fix the handling of `%00' in the preprocessor.
(*) Fix incorrect handling of path names affecting error messages,
dependency generation, and debug format output.
(*) Support for the RDOFF output format and the RDOFF tools have
been removed. The RDOFF tools had already been broken since at
least NASM 2.14. For flat code the ELF output format
recommended; for segmented code the `obj' (OMF) output format.
(*) New facility: preprocessor functions. Preprocessor functions,
which are expanded similarly to single-line macros, can greatly
simplify code that in the past would have required a lengthy
list of directives and intermediate macros. See section 4.4.
(*) Single-line macros can now declare parameters (using a `&&'
prefix) that creates a quoted string, but does _not_ requote an
already quoted string. See section 4.2.1.
(*) Instruction table updated per public information available as of
November 2022.
(*) All warnings in the preprocessor have now been assigned warning
classes. See appendix A.
(*) Fix the invalid use of `RELA'-type relocations instead of `REL'-
type relocations when generating DWARF debug information for the
`elf32' output format.
(*) Fix the handling `at' in `istruc' when the structure contains
local labels. See section 5.9.2.
(*) When assembling with `--reproducible', don't encode the filename
in the COFF header for the `coff', `win32' or `win64' output
formats. The COFF header only has space for an 18-character
filename, which makes this field rather useless in the first
place. Debug output data, if enabled, is not affected.
(*) Fix incorrect size calculation when using MASM syntax for non-
byte reservations (e.g. `dw ?'.)
(*) Allow forcing an instruction in 64-bit mode to have a (possibly
redundant) REX prefix, using the syntax `{rex}' as a prefix.
(*) Add a `{vex}' prefix to enforce VEX (AVX) encoding of an
instruction, either using the 2- or 3-byte VEX prefixes.
(*) The `CPU' directive has been augmented to allow control of
generation of VEX (AVX) versus EVEX (AVX-512) instruction
formats, see section 7.11.
(*) Some recent instructions that previously have been only
available using EVEX encodings are now also encodable using VEX
(AVX) encodings. For backwards compatibility these encodings are
not enabled by default, but can be generated either via an
explicit `{vex}' prefix or by specifying either `CPU LATEVEX' or
`CPU NOEVEX'; see section 7.11.
(*) Document the already existing `%unimacro' directive. See section
4.5.12.
(*) Fix a code range generation bug in the DWARF debug format
(incorrect information in the `DW_AT_high_pc' field) for the ELF
output formats. This bug happened to cancel out with a bug in
older versions of the GNU binutils linker, but breaks with other
linkers and updated or other linkers that expect the spec to be
followed.
(*) Fix segment symbols with addends, e.g. `jmp _TEXT+10h:0' in
output formats that support segment relocations, e.g. the `obj'
format.
(*) Fix various crashes and hangs on invalid input.
Signed-off-by: Linhui Liu <liulinhui36@gmail.com>
* toolchain: musl: Fix symbol loading in gdb
Fix DT_DEBUG handling on MIPS in musl libc.
With this change gdb will load the symbol files for shared libraries on MIPS too.
This patch was taken from this thread: https://www.openwall.com/lists/musl/2022/01/09/4
Signed-off-by: Hauke Mehrtens <hmehrtens@maxlinear.com>
* tools: sync with upstream
* build: fix issues with targets installed via feeds
- fix including modules.mk when a target is being replaced
- fix calling make targets from target/linux
Signed-off-by: Felix Fietkau <nbd@nbd.name>
* package: sync with upstream
Signed-off-by: Tony Butler <spudz76@gmail.com>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Linhui Liu <liulinhui36@gmail.com>
Signed-off-by: Hauke Mehrtens <hmehrtens@maxlinear.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Co-authored-by: Tony Butler <spudz76@gmail.com>
Co-authored-by: Hauke Mehrtens <hmehrtens@maxlinear.com>
Co-authored-by: Felix Fietkau <nbd@nbd.name>
2023-01-25 07:30:35 +00:00
|
|
|
DEVICE_ALT3_VENDOR="$$(DEVICE_ALT3_VENDOR)" \
|
|
|
|
DEVICE_ALT3_MODEL="$$(DEVICE_ALT3_MODEL)" \
|
|
|
|
DEVICE_ALT3_VARIANT="$$(DEVICE_ALT3_VARIANT)" \
|
|
|
|
DEVICE_ALT4_VENDOR="$$(DEVICE_ALT4_VENDOR)" \
|
|
|
|
DEVICE_ALT4_MODEL="$$(DEVICE_ALT4_MODEL)" \
|
|
|
|
DEVICE_ALT4_VARIANT="$$(DEVICE_ALT4_VARIANT)" \
|
2021-06-14 10:30:08 +00:00
|
|
|
DEVICE_TITLE="$$(DEVICE_TITLE)" \
|
|
|
|
DEVICE_PACKAGES="$$(DEVICE_PACKAGES)" \
|
|
|
|
TARGET="$(BOARD)" \
|
|
|
|
SUBTARGET="$(if $(SUBTARGET),$(SUBTARGET),generic)" \
|
|
|
|
VERSION_NUMBER="$(VERSION_NUMBER)" \
|
|
|
|
VERSION_CODE="$(VERSION_CODE)" \
|
|
|
|
SUPPORTED_DEVICES="$$(SUPPORTED_DEVICES)" \
|
|
|
|
$(TOPDIR)/scripts/json_add_image_info.py $$@
|
2017-09-06 11:19:45 +00:00
|
|
|
endef
|
|
|
|
endif
|
|
|
|
|
|
|
|
define Device/Build/compile
|
|
|
|
$$(_COMPILE_TARGET): $(KDIR)/$(1)
|
|
|
|
$(eval $(call Device/Export,$(KDIR)/$(1)))
|
2022-10-19 13:57:13 +00:00
|
|
|
$(KDIR)/$(1): FORCE
|
treewide: sync with upstream (#10658)
* rules: fix broken commitcount on alpine system
To generate commitcount we use grep --max-count. This is not present on
alpine grep and cause wrong generation. Use -m as it's just the short
version of --max-count and more portable.
Fixes: #11200
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
* image-commands.mk: Be consistent in command invocation
Most/all other tools use the staging dir prefix, gzip should as well.
Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
Acked-by: Christian Marangi <ansuelsmth@gmail.com>
* image: fix device profile specific COMPILE targets
Commit a01d23e75 ("image: always rebuild kernel loaders")
is a step in the right direction, but exposed some issues
and regressions in the makefile.
Some of the files made by device specific COMPILE targets
start with an "append" command (i.e. >> instead of > redirection)
and if the file already exists, the target file is the
input to itself before the first recipe-specified input.
Fixes: a01d23e75 ("image: always rebuild kernel loaders")
Fixes: a7fb589e8 ("image: always rebuild kernel loaders")
Signed-off-by: Michael Pratt <mcpratt@pm.me>
* trusted-firmware-a.mk: use correct CPE ID
There are 2 different CPE IDs on the NVD website:
cpe:/a:arm:trusted_firmware-a
cpe:/o:arm:arm_trusted_firmware
The ID as currently used in trusted-firmware-a.mk does not exist. The
CPE ID using the arm_trusted_firmware product name only lists a few
records for versions 2.2 and 2.3 on the NVD site. The CPE ID using the
trusted_firmware-a product name lists many more records, and actually
has a CVE linked to it. Therefore, use the CPE ID using the
trusted_firmware-a product name.
Fixes: 104d60fe94ce ("trusted-firmware-a.mk: add PKG_CPE_ID")
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
* fritz-tools: fritz_tffs_nand: exclude oob code when disabled
Skip unnecessary stuff if checking the oob data is disabled.
Signed-off-by: Andre Heider <a.heider@gmail.com>
* fritz-tools: fritz_tffs_nand: get rid of struct tffs_sectors
This doesn't help and "[0]" gets in the way of bounds checks.
Signed-off-by: Andre Heider <a.heider@gmail.com>
* fritz-tools: fritz_tffs_nand: cache already read sector ids
This speeds up the tool significantly, especially when using the "-a"
argument.
Signed-off-by: Andre Heider <a.heider@gmail.com>
* iproute2: add missing libbpf dependency
This patch adds libbpf to the dependencies of tc-mod-iptables.
The package tc-mod-iptables is missing libbpf as a dependency,
which leads to the build failure described in bug #9491
LIBBPF_FORCE=on set, but couldn't find a usable libbpf
The build dependency is already automatically added because some other
packages from iproute2 depend on libbpf, but bpftools has multiple build
variants. With multiple build variants none gets build by default and
the build system will not build bpftools before iproute2.
Fixes: #9491
Signed-off-by: Kien Truong <duckientruong@gmail.com>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* iproute2: update to 6.0.0
Release Notes:
https://lore.kernel.org/netdev/20221004082610.56b04719@hermes.local/t/
Remove upstreamed patch:
- 010-ipstats-Add-param.h-for-musl.patch
Refreshed:
- 140-keep_libmnl_optional.patch
- 145-keep_libelf_optional.patch
- 150-keep_libcap_optional.patch
- 155-keep_tirpc_optional.patch
- 170-ip_tiny.patch
- 190-fix-nls-rpath-link.patch
- 200-drop_libbsd_dependency.patch
- 300-selinux-configurable.patch
Signed-off-by: Nick Hainke <vincent@systemli.org>
* iproute2: update to 6.1.0
Announcement:
https://lore.kernel.org/netdev/20221214094130.7b11ec2e@hermes.local/T/#t
Refresh patch:
- 170-ip_tiny.patch
Signed-off-by: Nick Hainke <vincent@systemli.org>
* tools/xz: update to 5.2.10
Update to latest version.
Signed-off-by: Nick Hainke <vincent@systemli.org>
* Revert "Revert "tools/upx: remove (#10622)""
This reverts commit d3e16f203a8d238ebcf8d40e7453e8b375248e08.
* kernel: Make use of KERNEL_MAKE
Make use of KERNEL_MAKE in kernel packages were easily possible.
This moves some more code to common places and reduces the number of
lines.
It is defined like this:
KERNEL_MAKE = $(MAKE) $(KERNEL_MAKEOPTS)
KERNEL_MAKEOPTS = -C $(LINUX_DIR) $(KERNEL_MAKE_FLAGS)
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* toolchain: gcc: backport patches to fix build with glibc 2.36
glibc 2.36 changed the definition of enum fsconfig_command, it now
collides with the same definition from sys/mount.h. Remove the include
of linux/fs.h This still compiled with musl too.
This backports a patch which is already in the stable branch of GCC 11
and GCC 12.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* toolchain: glibc: Update to glibc 2.36
This updates to glibc to version 2.36.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* tools/llvm: update to 15.0.6
Release Notes:
https://discourse.llvm.org/t/llvm-15-0-0-release/65099
https://discourse.llvm.org/t/llvm-15-0-1-released/65380
https://discourse.llvm.org/t/llvm-15-0-2-released/65695
https://discourse.llvm.org/t/llvm-15-0-3-released/66036
https://discourse.llvm.org/t/llvm-15-0-4-released/66337
https://discourse.llvm.org/t/llvm-15-0-5-release/66616
https://discourse.llvm.org/t/llvm-15-0-6-released/66899
Remove HOST_BUILD_PARALLEL as it's default now.
Signed-off-by: Linhui Liu <liulinhui36@gmail.com>
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
Signed-off-by: Michael Pratt <mcpratt@pm.me>
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
Signed-off-by: Andre Heider <a.heider@gmail.com>
Signed-off-by: Kien Truong <duckientruong@gmail.com>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: Nick Hainke <vincent@systemli.org>
Signed-off-by: Linhui Liu <liulinhui36@gmail.com>
Co-authored-by: Christian Marangi <ansuelsmth@gmail.com>
Co-authored-by: Olliver Schinagl <oliver@schinagl.nl>
Co-authored-by: Michael Pratt <mcpratt@pm.me>
Co-authored-by: Stijn Tintel <stijn@linux-ipv6.be>
Co-authored-by: Andre Heider <a.heider@gmail.com>
Co-authored-by: Kien Truong <duckientruong@gmail.com>
Co-authored-by: Nick Hainke <vincent@systemli.org>
Co-authored-by: Hauke Mehrtens <hauke@hauke-m.de>
2022-12-22 18:09:34 +00:00
|
|
|
rm -f $(KDIR)/$(1)
|
2017-09-06 11:19:45 +00:00
|
|
|
$$(call concat_cmd,$(COMPILE/$(1)))
|
|
|
|
|
|
|
|
endef
|
|
|
|
|
2018-01-09 06:38:15 +00:00
|
|
|
ifndef IB
|
|
|
|
define Device/Build/dtb
|
|
|
|
ifndef BUILD_DTS_$(1)
|
|
|
|
BUILD_DTS_$(1) := 1
|
|
|
|
$(KDIR)/image-$(1).dtb: FORCE
|
|
|
|
$(call Image/BuildDTB,$(strip $(2))/$(strip $(3)).dts,$$@)
|
|
|
|
|
2024-02-07 23:49:27 +00:00
|
|
|
compile-dtb: $(KDIR)/image-$(1).dtb
|
2018-01-09 06:38:15 +00:00
|
|
|
endif
|
|
|
|
|
2023-06-04 14:57:25 +00:00
|
|
|
endef
|
|
|
|
|
|
|
|
define Device/Build/dtbo
|
2023-06-06 12:01:15 +00:00
|
|
|
ifndef BUILD_DTSO_$(1)
|
|
|
|
BUILD_DTSO_$(1) := 1
|
2023-06-04 14:57:25 +00:00
|
|
|
$(KDIR)/image-$(1).dtbo: FORCE
|
2023-06-06 12:01:15 +00:00
|
|
|
$(call Image/BuildDTBO,$(strip $(2))/$(strip $(3)).dtso,$$@)
|
2023-06-04 14:57:25 +00:00
|
|
|
|
2024-02-07 23:49:27 +00:00
|
|
|
compile-dtb: $(KDIR)/image-$(1).dtbo
|
2023-06-04 14:57:25 +00:00
|
|
|
endif
|
|
|
|
|
2018-01-09 06:38:15 +00:00
|
|
|
endef
|
|
|
|
endif
|
|
|
|
|
2017-09-06 11:19:45 +00:00
|
|
|
define Device/Build/kernel
|
2023-06-04 14:57:25 +00:00
|
|
|
$$(eval $$(foreach dts,$$(DEVICE_DTS), \
|
2018-01-09 06:38:15 +00:00
|
|
|
$$(call Device/Build/dtb,$$(notdir $$(dts)), \
|
|
|
|
$$(if $$(DEVICE_DTS_DIR),$$(DEVICE_DTS_DIR),$$(DTS_DIR)), \
|
|
|
|
$$(dts) \
|
|
|
|
) \
|
|
|
|
))
|
2023-06-04 14:57:25 +00:00
|
|
|
$$(eval $$(foreach dtso,$$(DEVICE_DTS_OVERLAY), \
|
|
|
|
$$(call Device/Build/dtbo,$$(notdir $$(dtso)), \
|
|
|
|
$$(if $$(DEVICE_DTS_DIR),$$(DEVICE_DTS_DIR),$$(DTS_DIR)), \
|
|
|
|
$$(dtso) \
|
|
|
|
) \
|
|
|
|
))
|
2018-01-09 06:38:15 +00:00
|
|
|
|
2017-09-06 11:19:45 +00:00
|
|
|
$(KDIR)/$$(KERNEL_NAME):: image_prepare
|
|
|
|
$$(_TARGET): $$(if $$(KERNEL_INSTALL),$(BIN_DIR)/$$(KERNEL_IMAGE))
|
|
|
|
$(call Device/Export,$$(KDIR_KERNEL_IMAGE),$(1))
|
|
|
|
$(BIN_DIR)/$$(KERNEL_IMAGE): $$(KDIR_KERNEL_IMAGE)
|
|
|
|
cp $$^ $$@
|
|
|
|
ifndef IB
|
|
|
|
ifdef CONFIG_IB
|
|
|
|
install: $$(KDIR_KERNEL_IMAGE)
|
|
|
|
endif
|
|
|
|
$$(KDIR_KERNEL_IMAGE): $(KDIR)/$$(KERNEL_NAME) $(CURDIR)/Makefile $$(KERNEL_DEPENDS) image_prepare
|
|
|
|
@rm -f $$@
|
|
|
|
$$(call concat_cmd,$$(KERNEL))
|
|
|
|
$$(if $$(KERNEL_SIZE),$$(call Build/check-size,$$(KERNEL_SIZE)))
|
|
|
|
endif
|
|
|
|
endef
|
|
|
|
|
|
|
|
define Device/Build/image
|
|
|
|
GZ_SUFFIX := $(if $(filter %dtb %gz,$(2)),,$(if $(and $(findstring ext4,$(1)),$(CONFIG_TARGET_IMAGES_GZIP)),.gz))
|
2020-07-02 15:30:56 +00:00
|
|
|
$$(_TARGET): $(if $(CONFIG_JSON_OVERVIEW_IMAGE_INFO), \
|
2021-06-15 09:58:07 +00:00
|
|
|
$(BUILD_DIR)/json_info_files/$(call DEVICE_IMG_NAME,$(1),$(2)).json, \
|
|
|
|
$(BIN_DIR)/$(call DEVICE_IMG_NAME,$(1),$(2))$$(GZ_SUFFIX))
|
|
|
|
$(eval $(call Device/Export,$(KDIR)/tmp/$(call DEVICE_IMG_NAME,$(1),$(2)),$(1)))
|
|
|
|
$(3)-images: $(BIN_DIR)/$(call DEVICE_IMG_NAME,$(1),$(2))$$(GZ_SUFFIX)
|
2020-07-02 15:30:56 +00:00
|
|
|
|
2017-09-06 11:19:45 +00:00
|
|
|
ROOTFS/$(1)/$(3) := \
|
|
|
|
$(KDIR)/root.$(1)$$(strip \
|
|
|
|
$$(if $$(FS_OPTIONS/$(1)),+fs=$$(call param_mangle,$$(FS_OPTIONS/$(1)))) \
|
|
|
|
)$$(strip \
|
|
|
|
$(if $(TARGET_PER_DEVICE_ROOTFS),+pkg=$$(ROOTFS_ID/$(3))) \
|
|
|
|
)
|
|
|
|
ifndef IB
|
|
|
|
$$(ROOTFS/$(1)/$(3)): $(if $(TARGET_PER_DEVICE_ROOTFS),target-dir-$$(ROOTFS_ID/$(3)))
|
|
|
|
endif
|
2021-06-15 09:58:07 +00:00
|
|
|
$(KDIR)/tmp/$(call DEVICE_IMG_NAME,$(1),$(2)): $$(KDIR_KERNEL_IMAGE) $$(ROOTFS/$(1)/$(3))
|
2017-09-06 11:19:45 +00:00
|
|
|
@rm -f $$@
|
|
|
|
[ -f $$(word 1,$$^) -a -f $$(word 2,$$^) ]
|
|
|
|
$$(call concat_cmd,$(if $(IMAGE/$(2)/$(1)),$(IMAGE/$(2)/$(1)),$(IMAGE/$(2))))
|
|
|
|
|
2021-06-15 09:58:07 +00:00
|
|
|
.IGNORE: $(BIN_DIR)/$(call DEVICE_IMG_NAME,$(1),$(2))
|
2017-09-06 11:19:45 +00:00
|
|
|
|
2021-06-15 09:58:07 +00:00
|
|
|
$(BIN_DIR)/$(call DEVICE_IMG_NAME,$(1),$(2)).gz: $(KDIR)/tmp/$(call DEVICE_IMG_NAME,$(1),$(2))
|
2017-09-06 11:19:45 +00:00
|
|
|
gzip -c -9n $$^ > $$@
|
|
|
|
|
2021-06-15 09:58:07 +00:00
|
|
|
$(BIN_DIR)/$(call DEVICE_IMG_NAME,$(1),$(2)): $(KDIR)/tmp/$(call DEVICE_IMG_NAME,$(1),$(2))
|
2017-09-06 11:19:45 +00:00
|
|
|
cp $$^ $$@
|
2020-07-02 15:30:56 +00:00
|
|
|
|
2021-06-15 09:58:07 +00:00
|
|
|
$(BUILD_DIR)/json_info_files/$(call DEVICE_IMG_NAME,$(1),$(2)).json: $(BIN_DIR)/$(call DEVICE_IMG_NAME,$(1),$(2))$$(GZ_SUFFIX)
|
2020-07-02 15:30:56 +00:00
|
|
|
@mkdir -p $$(shell dirname $$@)
|
|
|
|
DEVICE_ID="$(DEVICE_NAME)" \
|
2021-06-14 10:30:08 +00:00
|
|
|
SOURCE_DATE_EPOCH=$(SOURCE_DATE_EPOCH) \
|
2022-10-19 13:57:13 +00:00
|
|
|
FILE_NAME="$(DEVICE_IMG_NAME)" \
|
|
|
|
FILE_DIR="$(KDIR)/tmp" \
|
|
|
|
FILE_TYPE=$(word 1,$(subst ., ,$(2))) \
|
|
|
|
FILE_FILESYSTEM="$(1)" \
|
2021-06-15 09:58:07 +00:00
|
|
|
DEVICE_IMG_PREFIX="$(DEVICE_IMG_PREFIX)" \
|
2020-07-02 15:30:56 +00:00
|
|
|
DEVICE_VENDOR="$(DEVICE_VENDOR)" \
|
|
|
|
DEVICE_MODEL="$(DEVICE_MODEL)" \
|
|
|
|
DEVICE_VARIANT="$(DEVICE_VARIANT)" \
|
|
|
|
DEVICE_ALT0_VENDOR="$(DEVICE_ALT0_VENDOR)" \
|
|
|
|
DEVICE_ALT0_MODEL="$(DEVICE_ALT0_MODEL)" \
|
|
|
|
DEVICE_ALT0_VARIANT="$(DEVICE_ALT0_VARIANT)" \
|
|
|
|
DEVICE_ALT1_VENDOR="$(DEVICE_ALT1_VENDOR)" \
|
|
|
|
DEVICE_ALT1_MODEL="$(DEVICE_ALT1_MODEL)" \
|
|
|
|
DEVICE_ALT1_VARIANT="$(DEVICE_ALT1_VARIANT)" \
|
|
|
|
DEVICE_ALT2_VENDOR="$(DEVICE_ALT2_VENDOR)" \
|
|
|
|
DEVICE_ALT2_MODEL="$(DEVICE_ALT2_MODEL)" \
|
|
|
|
DEVICE_ALT2_VARIANT="$(DEVICE_ALT2_VARIANT)" \
|
treewide: sync with upstream (#10750)
* build: fix incomplete initramfs compression options
Requires: tools/lz4, tools/lzop
complete the wiring so that these options work:
* `CONFIG_KERNEL_INITRAMFS_COMPRESSION_LZO`
* `CONFIG_KERNEL_INITRAMFS_COMPRESSION_LZ4`
Signed-off-by: Tony Butler <spudz76@gmail.com>
[remove blocking dependencies for separate ramdisk, fix lzop options]
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* include: sync with upstream
* toolchain/binutils: add support for version 2.40
Release notes:
https://sourceware.org/pipermail/binutils/2023-January/125671.html
Signed-off-by: Linhui Liu <liulinhui36@gmail.com>
* toolchain/gcc: switch to version 12 by default
Also fix build error with gcc 12.
* toolchain/nasm: update to 2.16.01
ChangeLog:
Version 2.16.01
_This is a documentation update release only._
(*) Fix the creation of the table of contents in the HTML version of
the documentation.
Version 2.16
(*) Support for the `rdf' format has been discontinued and all the
RDOFF utilities has been removed.
(*) The `--reproducible' option now leaves the filename field in the
COFF object format blank. This was always rather useless since
it is only 18 characters long; as such debug formats have to
carry their own filename information anyway.
(*) Fix handling of MASM-syntax reserved memory (e.g. `dw ?') when
used in structure definitions.
(*) The preprocessor now supports functions, which can be less
verbose and more convenient than the equivalent code implemented
using directives. See section 4.4.
(*) Fix the handling of `%00' in the preprocessor.
(*) Fix incorrect handling of path names affecting error messages,
dependency generation, and debug format output.
(*) Support for the RDOFF output format and the RDOFF tools have
been removed. The RDOFF tools had already been broken since at
least NASM 2.14. For flat code the ELF output format
recommended; for segmented code the `obj' (OMF) output format.
(*) New facility: preprocessor functions. Preprocessor functions,
which are expanded similarly to single-line macros, can greatly
simplify code that in the past would have required a lengthy
list of directives and intermediate macros. See section 4.4.
(*) Single-line macros can now declare parameters (using a `&&'
prefix) that creates a quoted string, but does _not_ requote an
already quoted string. See section 4.2.1.
(*) Instruction table updated per public information available as of
November 2022.
(*) All warnings in the preprocessor have now been assigned warning
classes. See appendix A.
(*) Fix the invalid use of `RELA'-type relocations instead of `REL'-
type relocations when generating DWARF debug information for the
`elf32' output format.
(*) Fix the handling `at' in `istruc' when the structure contains
local labels. See section 5.9.2.
(*) When assembling with `--reproducible', don't encode the filename
in the COFF header for the `coff', `win32' or `win64' output
formats. The COFF header only has space for an 18-character
filename, which makes this field rather useless in the first
place. Debug output data, if enabled, is not affected.
(*) Fix incorrect size calculation when using MASM syntax for non-
byte reservations (e.g. `dw ?'.)
(*) Allow forcing an instruction in 64-bit mode to have a (possibly
redundant) REX prefix, using the syntax `{rex}' as a prefix.
(*) Add a `{vex}' prefix to enforce VEX (AVX) encoding of an
instruction, either using the 2- or 3-byte VEX prefixes.
(*) The `CPU' directive has been augmented to allow control of
generation of VEX (AVX) versus EVEX (AVX-512) instruction
formats, see section 7.11.
(*) Some recent instructions that previously have been only
available using EVEX encodings are now also encodable using VEX
(AVX) encodings. For backwards compatibility these encodings are
not enabled by default, but can be generated either via an
explicit `{vex}' prefix or by specifying either `CPU LATEVEX' or
`CPU NOEVEX'; see section 7.11.
(*) Document the already existing `%unimacro' directive. See section
4.5.12.
(*) Fix a code range generation bug in the DWARF debug format
(incorrect information in the `DW_AT_high_pc' field) for the ELF
output formats. This bug happened to cancel out with a bug in
older versions of the GNU binutils linker, but breaks with other
linkers and updated or other linkers that expect the spec to be
followed.
(*) Fix segment symbols with addends, e.g. `jmp _TEXT+10h:0' in
output formats that support segment relocations, e.g. the `obj'
format.
(*) Fix various crashes and hangs on invalid input.
Signed-off-by: Linhui Liu <liulinhui36@gmail.com>
* toolchain: musl: Fix symbol loading in gdb
Fix DT_DEBUG handling on MIPS in musl libc.
With this change gdb will load the symbol files for shared libraries on MIPS too.
This patch was taken from this thread: https://www.openwall.com/lists/musl/2022/01/09/4
Signed-off-by: Hauke Mehrtens <hmehrtens@maxlinear.com>
* tools: sync with upstream
* build: fix issues with targets installed via feeds
- fix including modules.mk when a target is being replaced
- fix calling make targets from target/linux
Signed-off-by: Felix Fietkau <nbd@nbd.name>
* package: sync with upstream
Signed-off-by: Tony Butler <spudz76@gmail.com>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Linhui Liu <liulinhui36@gmail.com>
Signed-off-by: Hauke Mehrtens <hmehrtens@maxlinear.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Co-authored-by: Tony Butler <spudz76@gmail.com>
Co-authored-by: Hauke Mehrtens <hmehrtens@maxlinear.com>
Co-authored-by: Felix Fietkau <nbd@nbd.name>
2023-01-25 07:30:35 +00:00
|
|
|
DEVICE_ALT3_VENDOR="$(DEVICE_ALT3_VENDOR)" \
|
|
|
|
DEVICE_ALT3_MODEL="$(DEVICE_ALT3_MODEL)" \
|
|
|
|
DEVICE_ALT3_VARIANT="$(DEVICE_ALT3_VARIANT)" \
|
|
|
|
DEVICE_ALT4_VENDOR="$(DEVICE_ALT4_VENDOR)" \
|
|
|
|
DEVICE_ALT4_MODEL="$(DEVICE_ALT4_MODEL)" \
|
|
|
|
DEVICE_ALT4_VARIANT="$(DEVICE_ALT4_VARIANT)" \
|
2020-07-02 15:30:56 +00:00
|
|
|
DEVICE_TITLE="$(DEVICE_TITLE)" \
|
|
|
|
DEVICE_PACKAGES="$(DEVICE_PACKAGES)" \
|
|
|
|
TARGET="$(BOARD)" \
|
|
|
|
SUBTARGET="$(if $(SUBTARGET),$(SUBTARGET),generic)" \
|
|
|
|
VERSION_NUMBER="$(VERSION_NUMBER)" \
|
|
|
|
VERSION_CODE="$(VERSION_CODE)" \
|
|
|
|
SUPPORTED_DEVICES="$(SUPPORTED_DEVICES)" \
|
|
|
|
$(TOPDIR)/scripts/json_add_image_info.py $$@
|
2019-12-13 16:25:54 +00:00
|
|
|
|
2017-09-06 11:19:45 +00:00
|
|
|
endef
|
|
|
|
|
2019-01-03 11:29:28 +00:00
|
|
|
define Device/Build/artifact
|
2022-10-19 13:57:13 +00:00
|
|
|
$$(_TARGET): $(if $(CONFIG_JSON_OVERVIEW_IMAGE_INFO), \
|
|
|
|
$(BUILD_DIR)/json_info_files/$(DEVICE_IMG_PREFIX)-$(1).json, \
|
|
|
|
$(BIN_DIR)/$(DEVICE_IMG_PREFIX)-$(1))
|
2021-06-15 09:58:07 +00:00
|
|
|
$(eval $(call Device/Export,$(KDIR)/tmp/$(DEVICE_IMG_PREFIX)-$(1)))
|
|
|
|
$(KDIR)/tmp/$(DEVICE_IMG_PREFIX)-$(1): $$(KDIR_KERNEL_IMAGE) $(2)-images
|
2019-01-03 11:29:28 +00:00
|
|
|
@rm -f $$@
|
|
|
|
$$(call concat_cmd,$(ARTIFACT/$(1)))
|
|
|
|
|
2021-06-15 09:58:07 +00:00
|
|
|
.IGNORE: $(BIN_DIR)/$(DEVICE_IMG_PREFIX)-$(1)
|
2019-01-03 11:29:28 +00:00
|
|
|
|
2021-06-15 09:58:07 +00:00
|
|
|
$(BIN_DIR)/$(DEVICE_IMG_PREFIX)-$(1): $(KDIR)/tmp/$(DEVICE_IMG_PREFIX)-$(1)
|
2019-01-03 11:29:28 +00:00
|
|
|
cp $$^ $$@
|
|
|
|
|
2022-10-19 13:57:13 +00:00
|
|
|
$(BUILD_DIR)/json_info_files/$(DEVICE_IMG_PREFIX)-$(1).json: $(BIN_DIR)/$(DEVICE_IMG_PREFIX)-$(1)
|
|
|
|
@mkdir -p $$(shell dirname $$@)
|
|
|
|
DEVICE_ID="$(DEVICE_NAME)" \
|
|
|
|
SOURCE_DATE_EPOCH=$(SOURCE_DATE_EPOCH) \
|
|
|
|
FILE_NAME="$(DEVICE_IMG_PREFIX)-$(1)" \
|
|
|
|
FILE_DIR="$(KDIR)/tmp" \
|
|
|
|
FILE_TYPE="$(1)" \
|
|
|
|
DEVICE_IMG_PREFIX="$(DEVICE_IMG_PREFIX)" \
|
|
|
|
DEVICE_VENDOR="$(DEVICE_VENDOR)" \
|
|
|
|
DEVICE_MODEL="$(DEVICE_MODEL)" \
|
|
|
|
DEVICE_VARIANT="$(DEVICE_VARIANT)" \
|
|
|
|
DEVICE_ALT0_VENDOR="$(DEVICE_ALT0_VENDOR)" \
|
|
|
|
DEVICE_ALT0_MODEL="$(DEVICE_ALT0_MODEL)" \
|
|
|
|
DEVICE_ALT0_VARIANT="$(DEVICE_ALT0_VARIANT)" \
|
|
|
|
DEVICE_ALT1_VENDOR="$(DEVICE_ALT1_VENDOR)" \
|
|
|
|
DEVICE_ALT1_MODEL="$(DEVICE_ALT1_MODEL)" \
|
|
|
|
DEVICE_ALT1_VARIANT="$(DEVICE_ALT1_VARIANT)" \
|
|
|
|
DEVICE_ALT2_VENDOR="$(DEVICE_ALT2_VENDOR)" \
|
|
|
|
DEVICE_ALT2_MODEL="$(DEVICE_ALT2_MODEL)" \
|
|
|
|
DEVICE_ALT2_VARIANT="$(DEVICE_ALT2_VARIANT)" \
|
treewide: sync with upstream (#10750)
* build: fix incomplete initramfs compression options
Requires: tools/lz4, tools/lzop
complete the wiring so that these options work:
* `CONFIG_KERNEL_INITRAMFS_COMPRESSION_LZO`
* `CONFIG_KERNEL_INITRAMFS_COMPRESSION_LZ4`
Signed-off-by: Tony Butler <spudz76@gmail.com>
[remove blocking dependencies for separate ramdisk, fix lzop options]
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* include: sync with upstream
* toolchain/binutils: add support for version 2.40
Release notes:
https://sourceware.org/pipermail/binutils/2023-January/125671.html
Signed-off-by: Linhui Liu <liulinhui36@gmail.com>
* toolchain/gcc: switch to version 12 by default
Also fix build error with gcc 12.
* toolchain/nasm: update to 2.16.01
ChangeLog:
Version 2.16.01
_This is a documentation update release only._
(*) Fix the creation of the table of contents in the HTML version of
the documentation.
Version 2.16
(*) Support for the `rdf' format has been discontinued and all the
RDOFF utilities has been removed.
(*) The `--reproducible' option now leaves the filename field in the
COFF object format blank. This was always rather useless since
it is only 18 characters long; as such debug formats have to
carry their own filename information anyway.
(*) Fix handling of MASM-syntax reserved memory (e.g. `dw ?') when
used in structure definitions.
(*) The preprocessor now supports functions, which can be less
verbose and more convenient than the equivalent code implemented
using directives. See section 4.4.
(*) Fix the handling of `%00' in the preprocessor.
(*) Fix incorrect handling of path names affecting error messages,
dependency generation, and debug format output.
(*) Support for the RDOFF output format and the RDOFF tools have
been removed. The RDOFF tools had already been broken since at
least NASM 2.14. For flat code the ELF output format
recommended; for segmented code the `obj' (OMF) output format.
(*) New facility: preprocessor functions. Preprocessor functions,
which are expanded similarly to single-line macros, can greatly
simplify code that in the past would have required a lengthy
list of directives and intermediate macros. See section 4.4.
(*) Single-line macros can now declare parameters (using a `&&'
prefix) that creates a quoted string, but does _not_ requote an
already quoted string. See section 4.2.1.
(*) Instruction table updated per public information available as of
November 2022.
(*) All warnings in the preprocessor have now been assigned warning
classes. See appendix A.
(*) Fix the invalid use of `RELA'-type relocations instead of `REL'-
type relocations when generating DWARF debug information for the
`elf32' output format.
(*) Fix the handling `at' in `istruc' when the structure contains
local labels. See section 5.9.2.
(*) When assembling with `--reproducible', don't encode the filename
in the COFF header for the `coff', `win32' or `win64' output
formats. The COFF header only has space for an 18-character
filename, which makes this field rather useless in the first
place. Debug output data, if enabled, is not affected.
(*) Fix incorrect size calculation when using MASM syntax for non-
byte reservations (e.g. `dw ?'.)
(*) Allow forcing an instruction in 64-bit mode to have a (possibly
redundant) REX prefix, using the syntax `{rex}' as a prefix.
(*) Add a `{vex}' prefix to enforce VEX (AVX) encoding of an
instruction, either using the 2- or 3-byte VEX prefixes.
(*) The `CPU' directive has been augmented to allow control of
generation of VEX (AVX) versus EVEX (AVX-512) instruction
formats, see section 7.11.
(*) Some recent instructions that previously have been only
available using EVEX encodings are now also encodable using VEX
(AVX) encodings. For backwards compatibility these encodings are
not enabled by default, but can be generated either via an
explicit `{vex}' prefix or by specifying either `CPU LATEVEX' or
`CPU NOEVEX'; see section 7.11.
(*) Document the already existing `%unimacro' directive. See section
4.5.12.
(*) Fix a code range generation bug in the DWARF debug format
(incorrect information in the `DW_AT_high_pc' field) for the ELF
output formats. This bug happened to cancel out with a bug in
older versions of the GNU binutils linker, but breaks with other
linkers and updated or other linkers that expect the spec to be
followed.
(*) Fix segment symbols with addends, e.g. `jmp _TEXT+10h:0' in
output formats that support segment relocations, e.g. the `obj'
format.
(*) Fix various crashes and hangs on invalid input.
Signed-off-by: Linhui Liu <liulinhui36@gmail.com>
* toolchain: musl: Fix symbol loading in gdb
Fix DT_DEBUG handling on MIPS in musl libc.
With this change gdb will load the symbol files for shared libraries on MIPS too.
This patch was taken from this thread: https://www.openwall.com/lists/musl/2022/01/09/4
Signed-off-by: Hauke Mehrtens <hmehrtens@maxlinear.com>
* tools: sync with upstream
* build: fix issues with targets installed via feeds
- fix including modules.mk when a target is being replaced
- fix calling make targets from target/linux
Signed-off-by: Felix Fietkau <nbd@nbd.name>
* package: sync with upstream
Signed-off-by: Tony Butler <spudz76@gmail.com>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Linhui Liu <liulinhui36@gmail.com>
Signed-off-by: Hauke Mehrtens <hmehrtens@maxlinear.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Co-authored-by: Tony Butler <spudz76@gmail.com>
Co-authored-by: Hauke Mehrtens <hmehrtens@maxlinear.com>
Co-authored-by: Felix Fietkau <nbd@nbd.name>
2023-01-25 07:30:35 +00:00
|
|
|
DEVICE_ALT3_VENDOR="$(DEVICE_ALT3_VENDOR)" \
|
|
|
|
DEVICE_ALT3_MODEL="$(DEVICE_ALT3_MODEL)" \
|
|
|
|
DEVICE_ALT3_VARIANT="$(DEVICE_ALT3_VARIANT)" \
|
|
|
|
DEVICE_ALT4_VENDOR="$(DEVICE_ALT4_VENDOR)" \
|
|
|
|
DEVICE_ALT4_MODEL="$(DEVICE_ALT4_MODEL)" \
|
|
|
|
DEVICE_ALT4_VARIANT="$(DEVICE_ALT4_VARIANT)" \
|
2022-10-19 13:57:13 +00:00
|
|
|
DEVICE_TITLE="$(DEVICE_TITLE)" \
|
|
|
|
DEVICE_PACKAGES="$(DEVICE_PACKAGES)" \
|
|
|
|
TARGET="$(BOARD)" \
|
|
|
|
SUBTARGET="$(if $(SUBTARGET),$(SUBTARGET),generic)" \
|
|
|
|
VERSION_NUMBER="$(VERSION_NUMBER)" \
|
|
|
|
VERSION_CODE="$(VERSION_CODE)" \
|
|
|
|
SUPPORTED_DEVICES="$(SUPPORTED_DEVICES)" \
|
|
|
|
$(TOPDIR)/scripts/json_add_image_info.py $$@
|
|
|
|
|
2019-01-03 11:29:28 +00:00
|
|
|
endef
|
|
|
|
|
2017-09-06 11:19:45 +00:00
|
|
|
define Device/Build
|
|
|
|
$(if $(CONFIG_TARGET_ROOTFS_INITRAMFS),$(call Device/Build/initramfs,$(1)))
|
|
|
|
$(call Device/Build/kernel,$(1))
|
|
|
|
|
|
|
|
$$(eval $$(foreach compile,$$(COMPILE), \
|
|
|
|
$$(call Device/Build/compile,$$(compile),$(1))))
|
|
|
|
|
|
|
|
$$(eval $$(foreach image,$$(IMAGES), \
|
|
|
|
$$(foreach fs,$$(filter $(TARGET_FILESYSTEMS),$$(FILESYSTEMS)), \
|
|
|
|
$$(call Device/Build/image,$$(fs),$$(image),$(1)))))
|
2019-01-03 11:29:28 +00:00
|
|
|
|
|
|
|
$$(eval $$(foreach artifact,$$(ARTIFACTS), \
|
2021-06-15 09:58:07 +00:00
|
|
|
$$(call Device/Build/artifact,$$(artifact),$(1))))
|
2019-01-03 11:29:28 +00:00
|
|
|
|
2017-09-06 11:19:45 +00:00
|
|
|
endef
|
|
|
|
|
|
|
|
define Device/DumpInfo
|
|
|
|
Target-Profile: DEVICE_$(1)
|
2019-10-19 18:35:16 +00:00
|
|
|
Target-Profile-Name: $(DEVICE_DISPLAY)
|
2017-09-06 11:19:45 +00:00
|
|
|
Target-Profile-Packages: $(DEVICE_PACKAGES)
|
2019-10-19 18:35:16 +00:00
|
|
|
Target-Profile-hasImageMetadata: $(if $(foreach image,$(IMAGES),$(findstring append-metadata,$(IMAGE/$(image)))),1,0)
|
|
|
|
Target-Profile-SupportedDevices: $(SUPPORTED_DEVICES)
|
2021-06-15 09:58:07 +00:00
|
|
|
$(if $(BROKEN),Target-Profile-Broken: $(BROKEN))
|
2019-10-19 18:35:16 +00:00
|
|
|
$(if $(DEFAULT),Target-Profile-Default: $(DEFAULT))
|
2017-09-06 11:19:45 +00:00
|
|
|
Target-Profile-Description:
|
|
|
|
$(DEVICE_DESCRIPTION)
|
2019-10-19 18:35:16 +00:00
|
|
|
$(if $(strip $(DEVICE_ALT0_TITLE)),Alternative device titles:
|
|
|
|
- $(DEVICE_ALT0_TITLE))
|
|
|
|
$(if $(strip $(DEVICE_ALT1_TITLE)),- $(DEVICE_ALT1_TITLE))
|
|
|
|
$(if $(strip $(DEVICE_ALT2_TITLE)),- $(DEVICE_ALT2_TITLE))
|
treewide: sync with upstream (#10750)
* build: fix incomplete initramfs compression options
Requires: tools/lz4, tools/lzop
complete the wiring so that these options work:
* `CONFIG_KERNEL_INITRAMFS_COMPRESSION_LZO`
* `CONFIG_KERNEL_INITRAMFS_COMPRESSION_LZ4`
Signed-off-by: Tony Butler <spudz76@gmail.com>
[remove blocking dependencies for separate ramdisk, fix lzop options]
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* include: sync with upstream
* toolchain/binutils: add support for version 2.40
Release notes:
https://sourceware.org/pipermail/binutils/2023-January/125671.html
Signed-off-by: Linhui Liu <liulinhui36@gmail.com>
* toolchain/gcc: switch to version 12 by default
Also fix build error with gcc 12.
* toolchain/nasm: update to 2.16.01
ChangeLog:
Version 2.16.01
_This is a documentation update release only._
(*) Fix the creation of the table of contents in the HTML version of
the documentation.
Version 2.16
(*) Support for the `rdf' format has been discontinued and all the
RDOFF utilities has been removed.
(*) The `--reproducible' option now leaves the filename field in the
COFF object format blank. This was always rather useless since
it is only 18 characters long; as such debug formats have to
carry their own filename information anyway.
(*) Fix handling of MASM-syntax reserved memory (e.g. `dw ?') when
used in structure definitions.
(*) The preprocessor now supports functions, which can be less
verbose and more convenient than the equivalent code implemented
using directives. See section 4.4.
(*) Fix the handling of `%00' in the preprocessor.
(*) Fix incorrect handling of path names affecting error messages,
dependency generation, and debug format output.
(*) Support for the RDOFF output format and the RDOFF tools have
been removed. The RDOFF tools had already been broken since at
least NASM 2.14. For flat code the ELF output format
recommended; for segmented code the `obj' (OMF) output format.
(*) New facility: preprocessor functions. Preprocessor functions,
which are expanded similarly to single-line macros, can greatly
simplify code that in the past would have required a lengthy
list of directives and intermediate macros. See section 4.4.
(*) Single-line macros can now declare parameters (using a `&&'
prefix) that creates a quoted string, but does _not_ requote an
already quoted string. See section 4.2.1.
(*) Instruction table updated per public information available as of
November 2022.
(*) All warnings in the preprocessor have now been assigned warning
classes. See appendix A.
(*) Fix the invalid use of `RELA'-type relocations instead of `REL'-
type relocations when generating DWARF debug information for the
`elf32' output format.
(*) Fix the handling `at' in `istruc' when the structure contains
local labels. See section 5.9.2.
(*) When assembling with `--reproducible', don't encode the filename
in the COFF header for the `coff', `win32' or `win64' output
formats. The COFF header only has space for an 18-character
filename, which makes this field rather useless in the first
place. Debug output data, if enabled, is not affected.
(*) Fix incorrect size calculation when using MASM syntax for non-
byte reservations (e.g. `dw ?'.)
(*) Allow forcing an instruction in 64-bit mode to have a (possibly
redundant) REX prefix, using the syntax `{rex}' as a prefix.
(*) Add a `{vex}' prefix to enforce VEX (AVX) encoding of an
instruction, either using the 2- or 3-byte VEX prefixes.
(*) The `CPU' directive has been augmented to allow control of
generation of VEX (AVX) versus EVEX (AVX-512) instruction
formats, see section 7.11.
(*) Some recent instructions that previously have been only
available using EVEX encodings are now also encodable using VEX
(AVX) encodings. For backwards compatibility these encodings are
not enabled by default, but can be generated either via an
explicit `{vex}' prefix or by specifying either `CPU LATEVEX' or
`CPU NOEVEX'; see section 7.11.
(*) Document the already existing `%unimacro' directive. See section
4.5.12.
(*) Fix a code range generation bug in the DWARF debug format
(incorrect information in the `DW_AT_high_pc' field) for the ELF
output formats. This bug happened to cancel out with a bug in
older versions of the GNU binutils linker, but breaks with other
linkers and updated or other linkers that expect the spec to be
followed.
(*) Fix segment symbols with addends, e.g. `jmp _TEXT+10h:0' in
output formats that support segment relocations, e.g. the `obj'
format.
(*) Fix various crashes and hangs on invalid input.
Signed-off-by: Linhui Liu <liulinhui36@gmail.com>
* toolchain: musl: Fix symbol loading in gdb
Fix DT_DEBUG handling on MIPS in musl libc.
With this change gdb will load the symbol files for shared libraries on MIPS too.
This patch was taken from this thread: https://www.openwall.com/lists/musl/2022/01/09/4
Signed-off-by: Hauke Mehrtens <hmehrtens@maxlinear.com>
* tools: sync with upstream
* build: fix issues with targets installed via feeds
- fix including modules.mk when a target is being replaced
- fix calling make targets from target/linux
Signed-off-by: Felix Fietkau <nbd@nbd.name>
* package: sync with upstream
Signed-off-by: Tony Butler <spudz76@gmail.com>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Linhui Liu <liulinhui36@gmail.com>
Signed-off-by: Hauke Mehrtens <hmehrtens@maxlinear.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Co-authored-by: Tony Butler <spudz76@gmail.com>
Co-authored-by: Hauke Mehrtens <hmehrtens@maxlinear.com>
Co-authored-by: Felix Fietkau <nbd@nbd.name>
2023-01-25 07:30:35 +00:00
|
|
|
$(if $(strip $(DEVICE_ALT3_TITLE)),- $(DEVICE_ALT3_TITLE))
|
|
|
|
$(if $(strip $(DEVICE_ALT4_TITLE)),- $(DEVICE_ALT4_TITLE))
|
2017-09-06 11:19:45 +00:00
|
|
|
@@
|
|
|
|
|
|
|
|
endef
|
|
|
|
|
|
|
|
define Device/Dump
|
2019-10-19 18:35:16 +00:00
|
|
|
ifneq ($$(strip $$(DEVICE_ALT0_TITLE)),)
|
|
|
|
DEVICE_DISPLAY = $$(DEVICE_ALT0_TITLE) ($$(DEVICE_TITLE))
|
|
|
|
$$(info $$(call Device/DumpInfo,$(1)))
|
|
|
|
endif
|
|
|
|
ifneq ($$(strip $$(DEVICE_ALT1_TITLE)),)
|
|
|
|
DEVICE_DISPLAY = $$(DEVICE_ALT1_TITLE) ($$(DEVICE_TITLE))
|
|
|
|
$$(info $$(call Device/DumpInfo,$(1)))
|
|
|
|
endif
|
|
|
|
ifneq ($$(strip $$(DEVICE_ALT2_TITLE)),)
|
|
|
|
DEVICE_DISPLAY = $$(DEVICE_ALT2_TITLE) ($$(DEVICE_TITLE))
|
|
|
|
$$(info $$(call Device/DumpInfo,$(1)))
|
|
|
|
endif
|
treewide: sync with upstream (#10750)
* build: fix incomplete initramfs compression options
Requires: tools/lz4, tools/lzop
complete the wiring so that these options work:
* `CONFIG_KERNEL_INITRAMFS_COMPRESSION_LZO`
* `CONFIG_KERNEL_INITRAMFS_COMPRESSION_LZ4`
Signed-off-by: Tony Butler <spudz76@gmail.com>
[remove blocking dependencies for separate ramdisk, fix lzop options]
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* include: sync with upstream
* toolchain/binutils: add support for version 2.40
Release notes:
https://sourceware.org/pipermail/binutils/2023-January/125671.html
Signed-off-by: Linhui Liu <liulinhui36@gmail.com>
* toolchain/gcc: switch to version 12 by default
Also fix build error with gcc 12.
* toolchain/nasm: update to 2.16.01
ChangeLog:
Version 2.16.01
_This is a documentation update release only._
(*) Fix the creation of the table of contents in the HTML version of
the documentation.
Version 2.16
(*) Support for the `rdf' format has been discontinued and all the
RDOFF utilities has been removed.
(*) The `--reproducible' option now leaves the filename field in the
COFF object format blank. This was always rather useless since
it is only 18 characters long; as such debug formats have to
carry their own filename information anyway.
(*) Fix handling of MASM-syntax reserved memory (e.g. `dw ?') when
used in structure definitions.
(*) The preprocessor now supports functions, which can be less
verbose and more convenient than the equivalent code implemented
using directives. See section 4.4.
(*) Fix the handling of `%00' in the preprocessor.
(*) Fix incorrect handling of path names affecting error messages,
dependency generation, and debug format output.
(*) Support for the RDOFF output format and the RDOFF tools have
been removed. The RDOFF tools had already been broken since at
least NASM 2.14. For flat code the ELF output format
recommended; for segmented code the `obj' (OMF) output format.
(*) New facility: preprocessor functions. Preprocessor functions,
which are expanded similarly to single-line macros, can greatly
simplify code that in the past would have required a lengthy
list of directives and intermediate macros. See section 4.4.
(*) Single-line macros can now declare parameters (using a `&&'
prefix) that creates a quoted string, but does _not_ requote an
already quoted string. See section 4.2.1.
(*) Instruction table updated per public information available as of
November 2022.
(*) All warnings in the preprocessor have now been assigned warning
classes. See appendix A.
(*) Fix the invalid use of `RELA'-type relocations instead of `REL'-
type relocations when generating DWARF debug information for the
`elf32' output format.
(*) Fix the handling `at' in `istruc' when the structure contains
local labels. See section 5.9.2.
(*) When assembling with `--reproducible', don't encode the filename
in the COFF header for the `coff', `win32' or `win64' output
formats. The COFF header only has space for an 18-character
filename, which makes this field rather useless in the first
place. Debug output data, if enabled, is not affected.
(*) Fix incorrect size calculation when using MASM syntax for non-
byte reservations (e.g. `dw ?'.)
(*) Allow forcing an instruction in 64-bit mode to have a (possibly
redundant) REX prefix, using the syntax `{rex}' as a prefix.
(*) Add a `{vex}' prefix to enforce VEX (AVX) encoding of an
instruction, either using the 2- or 3-byte VEX prefixes.
(*) The `CPU' directive has been augmented to allow control of
generation of VEX (AVX) versus EVEX (AVX-512) instruction
formats, see section 7.11.
(*) Some recent instructions that previously have been only
available using EVEX encodings are now also encodable using VEX
(AVX) encodings. For backwards compatibility these encodings are
not enabled by default, but can be generated either via an
explicit `{vex}' prefix or by specifying either `CPU LATEVEX' or
`CPU NOEVEX'; see section 7.11.
(*) Document the already existing `%unimacro' directive. See section
4.5.12.
(*) Fix a code range generation bug in the DWARF debug format
(incorrect information in the `DW_AT_high_pc' field) for the ELF
output formats. This bug happened to cancel out with a bug in
older versions of the GNU binutils linker, but breaks with other
linkers and updated or other linkers that expect the spec to be
followed.
(*) Fix segment symbols with addends, e.g. `jmp _TEXT+10h:0' in
output formats that support segment relocations, e.g. the `obj'
format.
(*) Fix various crashes and hangs on invalid input.
Signed-off-by: Linhui Liu <liulinhui36@gmail.com>
* toolchain: musl: Fix symbol loading in gdb
Fix DT_DEBUG handling on MIPS in musl libc.
With this change gdb will load the symbol files for shared libraries on MIPS too.
This patch was taken from this thread: https://www.openwall.com/lists/musl/2022/01/09/4
Signed-off-by: Hauke Mehrtens <hmehrtens@maxlinear.com>
* tools: sync with upstream
* build: fix issues with targets installed via feeds
- fix including modules.mk when a target is being replaced
- fix calling make targets from target/linux
Signed-off-by: Felix Fietkau <nbd@nbd.name>
* package: sync with upstream
Signed-off-by: Tony Butler <spudz76@gmail.com>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Linhui Liu <liulinhui36@gmail.com>
Signed-off-by: Hauke Mehrtens <hmehrtens@maxlinear.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Co-authored-by: Tony Butler <spudz76@gmail.com>
Co-authored-by: Hauke Mehrtens <hmehrtens@maxlinear.com>
Co-authored-by: Felix Fietkau <nbd@nbd.name>
2023-01-25 07:30:35 +00:00
|
|
|
ifneq ($$(strip $$(DEVICE_ALT3_TITLE)),)
|
|
|
|
DEVICE_DISPLAY = $$(DEVICE_ALT3_TITLE) ($$(DEVICE_TITLE))
|
|
|
|
$$(info $$(call Device/DumpInfo,$(1)))
|
|
|
|
endif
|
|
|
|
ifneq ($$(strip $$(DEVICE_ALT4_TITLE)),)
|
|
|
|
DEVICE_DISPLAY = $$(DEVICE_ALT4_TITLE) ($$(DEVICE_TITLE))
|
|
|
|
$$(info $$(call Device/DumpInfo,$(1)))
|
|
|
|
endif
|
2019-10-19 18:35:16 +00:00
|
|
|
DEVICE_DISPLAY = $$(DEVICE_TITLE)
|
2017-09-06 11:19:45 +00:00
|
|
|
$$(eval $$(if $$(DEVICE_TITLE),$$(info $$(call Device/DumpInfo,$(1)))))
|
|
|
|
endef
|
|
|
|
|
|
|
|
define Device
|
|
|
|
$(call Device/InitProfile,$(1))
|
|
|
|
$(call Device/Init,$(1))
|
|
|
|
$(call Device/Default,$(1))
|
|
|
|
$(call Device/$(1),$(1))
|
|
|
|
$(call Device/Check,$(1))
|
|
|
|
$(call Device/$(if $(DUMP),Dump,Build),$(1))
|
|
|
|
|
|
|
|
endef
|
|
|
|
|
|
|
|
define BuildImage
|
|
|
|
|
|
|
|
ifneq ($(DUMP),)
|
|
|
|
all: dumpinfo
|
|
|
|
dumpinfo: FORCE
|
|
|
|
@true
|
|
|
|
endif
|
|
|
|
|
|
|
|
download:
|
|
|
|
prepare:
|
|
|
|
compile:
|
2024-02-07 23:49:27 +00:00
|
|
|
compile-dtb:
|
2017-09-06 11:19:45 +00:00
|
|
|
clean:
|
|
|
|
image_prepare:
|
|
|
|
|
|
|
|
ifeq ($(IB),)
|
2024-02-07 23:49:27 +00:00
|
|
|
.PHONY: download prepare compile compile-dtb clean image_prepare kernel_prepare install install-images
|
2017-09-06 11:19:45 +00:00
|
|
|
compile:
|
|
|
|
$(call Build/Compile)
|
|
|
|
|
|
|
|
clean:
|
|
|
|
$(call Build/Clean)
|
|
|
|
|
2024-02-07 23:49:27 +00:00
|
|
|
compile-dtb:
|
|
|
|
image_prepare: compile compile-dtb
|
2017-09-06 11:19:45 +00:00
|
|
|
mkdir -p $(BIN_DIR) $(KDIR)/tmp
|
2020-07-02 15:30:56 +00:00
|
|
|
rm -rf $(BUILD_DIR)/json_info_files
|
2017-09-06 11:19:45 +00:00
|
|
|
$(call Image/Prepare)
|
|
|
|
|
|
|
|
else
|
|
|
|
image_prepare:
|
2022-10-19 13:57:13 +00:00
|
|
|
rm -rf $(KDIR)/tmp
|
2017-09-06 11:19:45 +00:00
|
|
|
mkdir -p $(BIN_DIR) $(KDIR)/tmp
|
|
|
|
endif
|
|
|
|
|
|
|
|
kernel_prepare: image_prepare
|
|
|
|
$(call Image/Build/targz)
|
|
|
|
$(call Image/Build/cpiogz)
|
|
|
|
$(call Image/BuildKernel)
|
|
|
|
$(if $(CONFIG_TARGET_ROOTFS_INITRAMFS),$(if $(IB),,$(call Image/BuildKernel/Initramfs)))
|
|
|
|
$(call Image/InstallKernel)
|
|
|
|
|
|
|
|
$(foreach device,$(TARGET_DEVICES),$(call Device,$(device)))
|
|
|
|
|
|
|
|
install-images: kernel_prepare $(foreach fs,$(filter-out $(if $(UBIFS_OPTS),,ubifs),$(TARGET_FILESYSTEMS) $(fs-subtypes-y)),$(KDIR)/root.$(fs))
|
|
|
|
$(foreach fs,$(TARGET_FILESYSTEMS),
|
|
|
|
$(call Image/Build,$(fs))
|
|
|
|
)
|
|
|
|
|
|
|
|
install: install-images
|
|
|
|
$(call Image/Manifest)
|
|
|
|
|
|
|
|
endef
|