2021-06-14 10:30:08 +00:00
# SPDX-License-Identifier: GPL-2.0-only
2017-09-06 11:19:45 +00:00
#
2021-06-14 10:30:08 +00:00
# Copyright (C) 2006-2020 OpenWrt.org
2017-09-06 11:19:45 +00:00
i f d e f C O N F I G _ S T R I P _ K E R N E L _ E X P O R T S
2021-06-14 10:30:08 +00:00
KERNEL_MAKEOPTS_IMAGE += \
2017-09-06 11:19:45 +00:00
EXTRA_LDSFLAGS = " -I $( KERNEL_BUILD_DIR) -include symtab.h "
e n d i f
INITRAMFS_EXTRA_FILES ?= $( GENERIC_PLATFORM_DIR) /image/initramfs-base-files.txt
i f n e q ( , $( KERNEL_CC ) )
KERNEL_MAKEOPTS += CC = " $( KERNEL_CC) "
e n d i f
export HOST_EXTRACFLAGS = -I$( STAGING_DIR_HOST) /include
# defined in quilt.mk
Kernel/Patch : =$( Kernel /Patch /Default )
2019-01-03 11:29:28 +00:00
i f n e q ( , $( findstring .xz ,$ ( LINUX_SOURCE ) ) )
LINUX_CAT:= xzcat
e l s e
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
LINUX_CAT:= $( STAGING_DIR_HOST) /bin/libdeflate-gzip -dc
2019-01-03 11:29:28 +00:00
e n d i f
2017-09-06 11:19:45 +00:00
i f e q ( $( strip $ ( CONFIG_EXTERNAL_KERNEL_TREE ) ) , "" )
ifeq ( $( strip $( CONFIG_KERNEL_GIT_CLONE_URI) ) ,"" )
define Kernel/Prepare/Default
2019-01-03 11:29:28 +00:00
$( LINUX_CAT) $( DL_DIR) /$( LINUX_SOURCE) | $( TAR) -C $( KERNEL_BUILD_DIR) $( TAR_OPTIONS)
2017-09-06 11:19:45 +00:00
$( Kernel/Patch)
$( if $( QUILT) ,touch $( LINUX_DIR) /.quilt_used)
endef
else
define Kernel/Prepare/Default
2019-01-03 11:29:28 +00:00
$( LINUX_CAT) $( DL_DIR) /$( LINUX_SOURCE) | $( TAR) -C $( KERNEL_BUILD_DIR) $( TAR_OPTIONS)
2017-09-06 11:19:45 +00:00
endef
endif
e l s e
define Kernel/Prepare/Default
mkdir -p $( KERNEL_BUILD_DIR)
if [ -d $( LINUX_DIR) ] ; then \
rmdir $( LINUX_DIR) ; \
fi
ln -s $( CONFIG_EXTERNAL_KERNEL_TREE) $( LINUX_DIR)
2021-06-14 10:30:08 +00:00
if [ -d $( LINUX_DIR) /user_headers ] ; then \
rm -rf $( LINUX_DIR) /user_headers; \
fi
2017-09-06 11:19:45 +00:00
endef
e n d i f
i f e q ( $( CONFIG_TARGET_ROOTFS_INITRAMFS ) , y )
2021-06-14 10:30:08 +00:00
ifeq ( $( CONFIG_TARGET_ROOTFS_INITRAMFS_SEPARATE) ,y)
define Kernel/SetInitramfs/PreConfigure
grep -v -e CONFIG_BLK_DEV_INITRD $( LINUX_DIR) /.config.old > $( LINUX_DIR) /.config
echo 'CONFIG_BLK_DEV_INITRD=y' >> $( LINUX_DIR) /.config
echo 'CONFIG_INITRAMFS_SOURCE=""' >> $( LINUX_DIR) /.config
endef
else
2017-09-06 11:19:45 +00:00
ifeq ( $( strip $( CONFIG_EXTERNAL_CPIO) ) ,"" )
define Kernel/SetInitramfs/PreConfigure
grep -v -e INITRAMFS -e CONFIG_RD_ -e CONFIG_BLK_DEV_INITRD $( LINUX_DIR) /.config.old > $( LINUX_DIR) /.config
echo 'CONFIG_BLK_DEV_INITRD=y' >> $( LINUX_DIR) /.config
echo 'CONFIG_INITRAMFS_SOURCE="$(strip $(TARGET_DIR) $(INITRAMFS_EXTRA_FILES))"' >> $( LINUX_DIR) /.config
endef
else
define Kernel/SetInitramfs/PreConfigure
grep -v INITRAMFS $( LINUX_DIR) /.config.old > $( LINUX_DIR) /.config
echo 'CONFIG_INITRAMFS_SOURCE="$(call qstrip,$(CONFIG_EXTERNAL_CPIO))"' >> $( LINUX_DIR) /.config
endef
endif
2021-06-14 10:30:08 +00:00
e n d i f
2017-09-06 11:19:45 +00:00
define Kernel/SetInitramfs
rm -f $( LINUX_DIR) /.config.prev
mv $( LINUX_DIR) /.config $( LINUX_DIR) /.config.old
$( call Kernel/SetInitramfs/PreConfigure)
2024-01-21 15:18:03 +00:00
echo "# CONFIG_INITRAMFS_PRESERVE_MTIME is not set" >> $( LINUX_DIR) /.config
2021-06-14 10:30:08 +00:00
ifneq ( $( CONFIG_TARGET_ROOTFS_INITRAMFS_SEPARATE) ,y)
2017-09-06 11:19:45 +00:00
echo 'CONFIG_INITRAMFS_ROOT_UID=$(shell id -u)' >> $( LINUX_DIR) /.config
echo 'CONFIG_INITRAMFS_ROOT_GID=$(shell id -g)' >> $( LINUX_DIR) /.config
2018-01-15 10:26:41 +00:00
echo " $( if $( CONFIG_TARGET_INITRAMFS_FORCE) ,CONFIG_INITRAMFS_FORCE= y,# CONFIG_INITRAMFS_FORCE is not set ) " >> $( LINUX_DIR) /.config
2021-06-14 10:30:08 +00:00
else
echo "# CONFIG_INITRAMFS_FORCE is not set" >> $( LINUX_DIR) /.config
endif
2017-09-06 11:19:45 +00:00
echo " $( if $( CONFIG_TARGET_INITRAMFS_COMPRESSION_NONE) ,CONFIG_INITRAMFS_COMPRESSION_NONE= y,# CONFIG_INITRAMFS_COMPRESSION_NONE is not set ) " >> $( LINUX_DIR) /.config
echo -e " $( if $( CONFIG_TARGET_INITRAMFS_COMPRESSION_GZIP) ,CONFIG_INITRAMFS_COMPRESSION_GZIP= y\n CONFIG_RD_GZIP= y,# CONFIG_INITRAMFS_COMPRESSION_GZIP is not set\n # CONFIG_RD_GZIP is not set)" >> $(LINUX_DIR)/.config
echo -e " $( if $( CONFIG_TARGET_INITRAMFS_COMPRESSION_BZIP2) ,CONFIG_INITRAMFS_COMPRESSION_BZIP2= y\n CONFIG_RD_BZIP2= y,# CONFIG_INITRAMFS_COMPRESSION_BZIP2 is not set\n # CONFIG_RD_BZIP2 is not set)" >> $(LINUX_DIR)/.config
echo -e " $( if $( CONFIG_TARGET_INITRAMFS_COMPRESSION_LZMA) ,CONFIG_INITRAMFS_COMPRESSION_LZMA= y\n CONFIG_RD_LZMA= y,# CONFIG_INITRAMFS_COMPRESSION_LZMA is not set\n # CONFIG_RD_LZMA is not set)" >> $(LINUX_DIR)/.config
echo -e " $( if $( CONFIG_TARGET_INITRAMFS_COMPRESSION_LZO) ,CONFIG_INITRAMFS_COMPRESSION_LZO= y\n CONFIG_RD_LZO= y,# CONFIG_INITRAMFS_COMPRESSION_LZO is not set\n # CONFIG_RD_LZO is not set)" >> $(LINUX_DIR)/.config
echo -e " $( if $( CONFIG_TARGET_INITRAMFS_COMPRESSION_XZ) ,CONFIG_INITRAMFS_COMPRESSION_XZ= y\n CONFIG_RD_XZ= y,# CONFIG_INITRAMFS_COMPRESSION_XZ is not set\n # CONFIG_RD_XZ is not set)" >> $(LINUX_DIR)/.config
echo -e " $( if $( CONFIG_TARGET_INITRAMFS_COMPRESSION_LZ4) ,CONFIG_INITRAMFS_COMPRESSION_LZ4= y\n CONFIG_RD_LZ4= y,# CONFIG_INITRAMFS_COMPRESSION_LZ4 is not set\n # CONFIG_RD_LZ4 is not set)" >> $(LINUX_DIR)/.config
2021-06-14 10:30:08 +00:00
echo -e " $( if $( CONFIG_TARGET_INITRAMFS_COMPRESSION_ZSTD) ,CONFIG_INITRAMFS_COMPRESSION_ZSTD= y\n CONFIG_RD_ZSTD= y,# CONFIG_INITRAMFS_COMPRESSION_ZSTD is not set\n # CONFIG_RD_ZSTD is not set)" >> $(LINUX_DIR)/.config
2017-09-06 11:19:45 +00:00
endef
e l s e
e n d i f
d e f i n e K e r n e l / S e t N o I n i t r a m f s
mv $( LINUX_DIR) /.config.set $( LINUX_DIR) /.config.old
grep -v INITRAMFS $( LINUX_DIR) /.config.old > $( LINUX_DIR) /.config.set
echo 'CONFIG_INITRAMFS_SOURCE=""' >> $( LINUX_DIR) /.config.set
2018-01-15 10:26:41 +00:00
echo '# CONFIG_INITRAMFS_FORCE is not set' >> $( LINUX_DIR) /.config.set
2024-01-21 15:18:03 +00:00
echo "# CONFIG_INITRAMFS_PRESERVE_MTIME is not set" >> $( LINUX_DIR) /.config.set
2017-09-06 11:19:45 +00:00
e n d e f
d e f i n e K e r n e l / C o n f i g u r e / D e f a u l t
rm -f $( LINUX_DIR) /localversion
$( LINUX_CONF_CMD) > $( LINUX_DIR) /.config.target
# copy CONFIG_KERNEL_* settings over to .config.target
awk '/^(#[[:space:]]+)?CONFIG_KERNEL/{sub("CONFIG_KERNEL_","CONFIG_");print}' $( TOPDIR) /.config >> $( LINUX_DIR) /.config.target
echo "# CONFIG_KALLSYMS_EXTRA_PASS is not set" >> $( LINUX_DIR) /.config.target
echo "# CONFIG_KALLSYMS_ALL is not set" >> $( LINUX_DIR) /.config.target
echo "CONFIG_KALLSYMS_UNCOMPRESSED=y" >> $( LINUX_DIR) /.config.target
$( SCRIPT_DIR) /package-metadata.pl kconfig $( TMP_DIR) /.packageinfo $( TOPDIR) /.config $( KERNEL_PATCHVER) > $( LINUX_DIR) /.config.override
$( SCRIPT_DIR) /kconfig.pl 'm+' '+' $( LINUX_DIR) /.config.target /dev/null $( LINUX_DIR) /.config.override > $( LINUX_DIR) /.config.set
$( call Kernel/SetNoInitramfs)
rm -rf $( KERNEL_BUILD_DIR) /modules
cmp -s $( LINUX_DIR) /.config.set $( LINUX_DIR) /.config.prev || { \
cp $( LINUX_DIR) /.config.set $( LINUX_DIR) /.config; \
cp $( LINUX_DIR) /.config.set $( LINUX_DIR) /.config.prev; \
}
2022-11-19 10:03:18 +00:00
$( _SINGLE) [ -d $( LINUX_DIR) /user_headers ] || $( KERNEL_MAKE) $( if $( findstring uml,$( BOARD) ) ,ARCH= $( ARCH) ) INSTALL_HDR_PATH = $( LINUX_DIR) /user_headers headers_install
2021-06-14 10:30:08 +00:00
grep '=[ym]' $( LINUX_DIR) /.config.set | LC_ALL = C sort | $( MKHASH) md5 > $( LINUX_DIR) /.vermagic
2017-09-06 11:19:45 +00:00
e n d e f
d e f i n e K e r n e l / C o n f i g u r e / I n i t r a m f s
$( call Kernel/SetInitramfs)
e n d e f
d e f i n e K e r n e l / C o m p i l e M o d u l e s / D e f a u l t
rm -f $( LINUX_DIR) /vmlinux $( LINUX_DIR) /System.map
2022-02-12 12:29:20 +00:00
+$( KERNEL_MAKE) olddefconfig
2021-06-14 10:30:08 +00:00
+$( KERNEL_MAKE) $( if $( KERNELNAME) ,$( KERNELNAME) ,all) modules
2022-11-19 10:03:18 +00:00
# If .config did not change, use the previous timestamp to avoid package rebuilds
cmp -s $( LINUX_DIR) /.config $( LINUX_DIR) /.config.modules.save && \
mv $( LINUX_DIR) /.config.modules.save $( LINUX_DIR) /.config; \
$( CP) $( LINUX_DIR) /.config $( LINUX_DIR) /.config.modules.save
2017-09-06 11:19:45 +00:00
e n d e f
OBJCOPY_STRIP = -R .reginfo -R .notes -R .note -R .comment -R .mdebug -R .note.gnu.build-id
# AMD64 shares the location with x86
i f e q ( $( LINUX_KARCH ) , x 8 6 _ 6 4 )
IMAGES_DIR := ../../x86/boot
e n d i f
d e f i n e K e r n e l / C o p y I m a g e
cmp -s $( LINUX_DIR) /vmlinux $( KERNEL_BUILD_DIR) /vmlinux$( 1) .debug || { \
$( KERNEL_CROSS) objcopy -O binary $( OBJCOPY_STRIP) -S $( LINUX_DIR) /vmlinux $( LINUX_KERNEL) $( 1) ; \
$( KERNEL_CROSS) objcopy $( OBJCOPY_STRIP) -S $( LINUX_DIR) /vmlinux $( KERNEL_BUILD_DIR) /vmlinux$( 1) .elf; \
$( CP) $( LINUX_DIR) /vmlinux $( KERNEL_BUILD_DIR) /vmlinux$( 1) .debug; \
$( foreach k, \
$( if $( KERNEL_IMAGES) ,$( KERNEL_IMAGES) ,$( filter-out vmlinux dtbs,$( KERNELNAME) ) ) , \
$( CP) $( LINUX_DIR) /arch/$( LINUX_KARCH) /boot/$( IMAGES_DIR) /$( k) $( KERNEL_BUILD_DIR) /$( k) $( 1) ; \
) \
}
e n d e f
2021-06-14 10:30:08 +00:00
# Always add "modules" so a proper Module.symvers file is written that
# also contains symbols from the kernel modules. Without these symbols
# external packages that depend on exported symbols from kernel modules
# will fail to build.
2017-09-06 11:19:45 +00:00
d e f i n e K e r n e l / C o m p i l e I m a g e / D e f a u l t
rm -f $( TARGET_DIR) /init
2021-06-14 10:30:08 +00:00
+$( KERNEL_MAKE) $( KERNEL_MAKEOPTS_IMAGE) $( if $( KERNELNAME) ,$( KERNELNAME) ,all) modules
2017-09-06 11:19:45 +00:00
$( call Kernel/CopyImage)
e n d e f
2021-06-14 10:30:08 +00:00
# Here as well, always add "modules", see comment above.
2017-09-06 11:19:45 +00:00
i f n e q ( $( CONFIG_TARGET_ROOTFS_INITRAMFS ) , )
d e f i n e K e r n e l / C o m p i l e I m a g e / I n i t r a m f s
$( call Kernel/Configure/Initramfs)
$( CP) $( GENERIC_PLATFORM_DIR) /other-files/init $( TARGET_DIR) /init
2022-11-19 10:03:18 +00:00
$( if $( SOURCE_DATE_EPOCH) ,touch -hcd " @ $( SOURCE_DATE_EPOCH) " $( TARGET_DIR) $( TARGET_DIR) /init)
2017-09-06 11:19:45 +00:00
rm -rf $( KERNEL_BUILD_DIR) /linux-$( LINUX_VERSION) /usr/initramfs_data.cpio*
2021-06-14 10:30:08 +00:00
i f e q ( $( CONFIG_TARGET_ROOTFS_INITRAMFS_SEPARATE ) , y )
2022-11-19 10:03:18 +00:00
i f n e q ( $( qstrip $ ( CONFIG_EXTERNAL_CPIO ) ) , )
2021-06-14 10:30:08 +00:00
$( CP) $( CONFIG_EXTERNAL_CPIO) $( KERNEL_BUILD_DIR) /initrd.cpio
e l s e
2022-11-19 10:03:18 +00:00
( cd $( TARGET_DIR) ; find . | LC_ALL = C sort | $( STAGING_DIR_HOST) /bin/cpio --reproducible -o -H newc -R 0:0 > $( KERNEL_BUILD_DIR) /initrd.cpio )
2021-06-14 10:30:08 +00:00
e n d i f
2022-11-19 10:03:18 +00:00
$( if $( SOURCE_DATE_EPOCH) ,touch -hcd " @ $( SOURCE_DATE_EPOCH) " $( KERNEL_BUILD_DIR) /initrd.cpio)
2021-06-14 10:30:08 +00:00
$( if $( CONFIG_TARGET_INITRAMFS_COMPRESSION_BZIP2) ,bzip2 -9 -c < $( KERNEL_BUILD_DIR) /initrd.cpio > $( KERNEL_BUILD_DIR) /initrd.cpio.bzip2)
2022-11-19 10:03:18 +00:00
$( if $( CONFIG_TARGET_INITRAMFS_COMPRESSION_GZIP) ,gzip -n -f -S .gzip -9n $( KERNEL_BUILD_DIR) /initrd.cpio)
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 $( CONFIG_TARGET_INITRAMFS_COMPRESSION_LZ4) ,$( STAGING_DIR_HOST) /bin/lz4c -l -c1 -fz --favor-decSpeed $( KERNEL_BUILD_DIR) /initrd.cpio)
2021-06-14 10:30:08 +00:00
$( if $( CONFIG_TARGET_INITRAMFS_COMPRESSION_LZMA) ,$( STAGING_DIR_HOST) /bin/lzma e -lc1 -lp2 -pb2 $( KERNEL_BUILD_DIR) /initrd.cpio $( KERNEL_BUILD_DIR) /initrd.cpio.lzma)
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 $( CONFIG_TARGET_INITRAMFS_COMPRESSION_LZO) ,$( STAGING_DIR_HOST) /bin/lzop -9 -f $( KERNEL_BUILD_DIR) /initrd.cpio)
2022-11-19 10:03:18 +00:00
$( if $( CONFIG_TARGET_INITRAMFS_COMPRESSION_XZ) ,$( STAGING_DIR_HOST) /bin/xz -T$( if $( filter 1,$( NPROC) ) ,2,0) -9 -fz --check= crc32 $( KERNEL_BUILD_DIR) /initrd.cpio)
2021-06-14 10:30:08 +00:00
$( if $( CONFIG_TARGET_INITRAMFS_COMPRESSION_ZSTD) ,$( STAGING_DIR_HOST) /bin/zstd -T0 -f -o $( KERNEL_BUILD_DIR) /initrd.cpio.zstd $( KERNEL_BUILD_DIR) /initrd.cpio)
e n d i f
+$( KERNEL_MAKE) $( KERNEL_MAKEOPTS_IMAGE) $( if $( KERNELNAME) ,$( KERNELNAME) ,all) modules
2017-09-06 11:19:45 +00:00
$( call Kernel/CopyImage,-initramfs)
e n d e f
e l s e
d e f i n e K e r n e l / C o m p i l e I m a g e / I n i t r a m f s
e n d e f
e n d i f
d e f i n e K e r n e l / C l e a n / D e f a u l t
rm -f $( KERNEL_BUILD_DIR) /linux-$( LINUX_VERSION) /.configured
rm -f $( LINUX_KERNEL)
$( _SINGLE) $( MAKE) -C $( KERNEL_BUILD_DIR) /linux-$( LINUX_VERSION) clean
e n d e f