mirror of
git://git.yoctoproject.org/linux-yocto.git
synced 2026-01-27 12:47:24 +01:00
Kbuild fixes for v6.15
- Add proper pahole version dependency to CONFIG_GENDWARFKSYMS to avoid
module loading errors
- Fix UAPI header tests for the OpenRISC architecture
- Add dependency on the libdw package in Debian and RPM packages
- Disable -Wdefault-const-init-unsafe warnings on Clang
- Make "make clean ARCH=um" also clean the arch/x86/ directory
- Revert the use of -fmacro-prefix-map=, which causes issues with
debugger usability
-----BEGIN PGP SIGNATURE-----
iQJJBAABCgAzFiEEbmPs18K1szRHjPqEPYsBB53g2wYFAmgh4XoVHG1hc2FoaXJv
eUBrZXJuZWwub3JnAAoJED2LAQed4NsGj34P/14KpYOyUZxQvz3uvGCwYUsFpeYT
CKa3s9TxAO9Dxz3dWTGsKNQXM24DXoL94bPvkVhQ1pUP2kugi0KEAmQ21k83hfMe
m/P0BPaSImTn6Cv+N7GyyuX0q+KO31UBhXkf14MCpyq0NQQXJ+7T2OgOWhZenZ6m
PzuSZO0/rNhKQNykl2xPcD3TLBP7BEWRbPxADWgQ/353dpNbxXCYC4lWKaWsUpit
FvLTiUEYRBiP68oZYCCT/26K6+FZMRBicvjowbDMDAXIi3sNeBJo6hWX6GtfHacW
q+f95edikvu0NcJxyNwkjsf7d7a5yuurQsVW0JT8dG1FZlrfuphBTEjomsWRhKtO
+AGTMAG3VbkQ+Z/WUN9FItS/+lGfKpMToZbiKsETJHni0sOJSRB1+MLQ6U0NCSAs
PpjSxm6hHZruZN7nAdhZfB3aWA2EaQYuq4SX+rYDXuSZqvYLuzBC2ZH1P2AmDbp5
wmj76QJ9JEgXsjg9ewr0/aYrx26we+P3q1pUuxpURvg7M9vHUnVR+QstUS+MhCnR
pWUjkNHMuWWz48UmqVx7YxIyURlqkqqG0avZJHLGEwRiTWkG8d+j4R5VwB84+73P
XBAYpfeaiemWdViOq/bYxJHXrKUZX1rhzRDBNq4806JBR26ZWk7GgKW8xE5Rx3qH
iqkH4uo1EHT8ULHW
=Wn5A
-----END PGP SIGNATURE-----
Merge tag 'kbuild-fixes-v6.15' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild
Pull Kbuild fixes from Masahiro Yamada:
- Add proper pahole version dependency to CONFIG_GENDWARFKSYMS to avoid
module loading errors
- Fix UAPI header tests for the OpenRISC architecture
- Add dependency on the libdw package in Debian and RPM packages
- Disable -Wdefault-const-init-unsafe warnings on Clang
- Make "make clean ARCH=um" also clean the arch/x86/ directory
- Revert the use of -fmacro-prefix-map=, which causes issues with
debugger usability
* tag 'kbuild-fixes-v6.15' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
kbuild: fix typos "module.builtin" to "modules.builtin"
Revert "kbuild, rust: use -fremap-path-prefix to make paths relative"
Revert "kbuild: make all file references relative to source root"
kbuild: fix dependency on sorttable
init: remove unused CONFIG_CC_CAN_LINK_STATIC
um: let 'make clean' properly clean underlying SUBARCH as well
kbuild: Disable -Wdefault-const-init-unsafe
kbuild: rpm-pkg: Add (elfutils-devel or libdw-devel) to BuildRequires
kbuild: deb-pkg: Add libdw-dev:native to Build-Depends-Arch
usr/include: openrisc: don't HDRTEST bpf_perf_event.h
kbuild: Require pahole <v1.28 or >v1.29 with GENDWARFKSYMS on X86
This commit is contained in:
commit
088d13246a
|
|
@ -46,6 +46,21 @@ The kernel embeds the building user and host names in
|
|||
`KBUILD_BUILD_USER and KBUILD_BUILD_HOST`_ variables. If you are
|
||||
building from a git commit, you could use its committer address.
|
||||
|
||||
Absolute filenames
|
||||
------------------
|
||||
|
||||
When the kernel is built out-of-tree, debug information may include
|
||||
absolute filenames for the source files. This must be overridden by
|
||||
including the ``-fdebug-prefix-map`` option in the `KCFLAGS`_ variable.
|
||||
|
||||
Depending on the compiler used, the ``__FILE__`` macro may also expand
|
||||
to an absolute filename in an out-of-tree build. Kbuild automatically
|
||||
uses the ``-fmacro-prefix-map`` option to prevent this, if it is
|
||||
supported.
|
||||
|
||||
The Reproducible Builds web site has more information about these
|
||||
`prefix-map options`_.
|
||||
|
||||
Generated files in source packages
|
||||
----------------------------------
|
||||
|
||||
|
|
@ -116,5 +131,7 @@ See ``scripts/setlocalversion`` for details.
|
|||
|
||||
.. _KBUILD_BUILD_TIMESTAMP: kbuild.html#kbuild-build-timestamp
|
||||
.. _KBUILD_BUILD_USER and KBUILD_BUILD_HOST: kbuild.html#kbuild-build-user-kbuild-build-host
|
||||
.. _KCFLAGS: kbuild.html#kcflags
|
||||
.. _prefix-map options: https://reproducible-builds.org/docs/build-path/
|
||||
.. _Reproducible Builds project: https://reproducible-builds.org/
|
||||
.. _SOURCE_DATE_EPOCH: https://reproducible-builds.org/docs/source-date-epoch/
|
||||
|
|
|
|||
3
Makefile
3
Makefile
|
|
@ -1068,8 +1068,7 @@ KBUILD_CFLAGS += -fno-builtin-wcslen
|
|||
|
||||
# change __FILE__ to the relative path to the source directory
|
||||
ifdef building_out_of_srctree
|
||||
KBUILD_CPPFLAGS += $(call cc-option,-ffile-prefix-map=$(srcroot)/=)
|
||||
KBUILD_RUSTFLAGS += --remap-path-prefix=$(srcroot)/=
|
||||
KBUILD_CPPFLAGS += $(call cc-option,-fmacro-prefix-map=$(srcroot)/=)
|
||||
endif
|
||||
|
||||
# include additional Makefiles when needed
|
||||
|
|
|
|||
|
|
@ -154,5 +154,6 @@ MRPROPER_FILES += $(HOST_DIR)/include/generated
|
|||
archclean:
|
||||
@find . \( -name '*.bb' -o -name '*.bbg' -o -name '*.da' \
|
||||
-o -name '*.gcov' \) -type f -print | xargs rm -f
|
||||
$(Q)$(MAKE) -f $(srctree)/Makefile ARCH=$(HEADER_ARCH) clean
|
||||
|
||||
export HEADER_ARCH SUBARCH USER_CFLAGS CFLAGS_NO_HARDENING DEV_NULL_PATH
|
||||
|
|
|
|||
|
|
@ -87,11 +87,6 @@ config CC_CAN_LINK
|
|||
default $(success,$(srctree)/scripts/cc-can-link.sh $(CC) $(CLANG_FLAGS) $(USERCFLAGS) $(USERLDFLAGS) $(m64-flag)) if 64BIT
|
||||
default $(success,$(srctree)/scripts/cc-can-link.sh $(CC) $(CLANG_FLAGS) $(USERCFLAGS) $(USERLDFLAGS) $(m32-flag))
|
||||
|
||||
config CC_CAN_LINK_STATIC
|
||||
bool
|
||||
default $(success,$(srctree)/scripts/cc-can-link.sh $(CC) $(CLANG_FLAGS) $(USERCFLAGS) $(USERLDFLAGS) $(m64-flag) -static) if 64BIT
|
||||
default $(success,$(srctree)/scripts/cc-can-link.sh $(CC) $(CLANG_FLAGS) $(USERCFLAGS) $(USERLDFLAGS) $(m32-flag) -static)
|
||||
|
||||
# Fixed in GCC 14, 13.3, 12.4 and 11.5
|
||||
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113921
|
||||
config GCC_ASM_GOTO_OUTPUT_BROKEN
|
||||
|
|
|
|||
|
|
@ -192,6 +192,11 @@ config GENDWARFKSYMS
|
|||
depends on !DEBUG_INFO_REDUCED && !DEBUG_INFO_SPLIT
|
||||
# Requires ELF object files.
|
||||
depends on !LTO
|
||||
# To avoid conflicts with the discarded __gendwarfksyms_ptr symbols on
|
||||
# X86, requires pahole before commit 47dcb534e253 ("btf_encoder: Stop
|
||||
# indexing symbols for VARs") or after commit 9810758003ce ("btf_encoder:
|
||||
# Verify 0 address DWARF variables are in ELF section").
|
||||
depends on !X86 || !DEBUG_INFO_BTF || PAHOLE_VERSION < 128 || PAHOLE_VERSION > 129
|
||||
help
|
||||
Calculate symbol versions from DWARF debugging information using
|
||||
gendwarfksyms. Requires DEBUG_INFO to be enabled.
|
||||
|
|
|
|||
|
|
@ -37,6 +37,18 @@ KBUILD_CFLAGS += -Wno-gnu
|
|||
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111219
|
||||
KBUILD_CFLAGS += $(call cc-disable-warning, format-overflow-non-kprintf)
|
||||
KBUILD_CFLAGS += $(call cc-disable-warning, format-truncation-non-kprintf)
|
||||
|
||||
# Clang may emit a warning when a const variable, such as the dummy variables
|
||||
# in typecheck(), or const member of an aggregate type are not initialized,
|
||||
# which can result in unexpected behavior. However, in many audited cases of
|
||||
# the "field" variant of the warning, this is intentional because the field is
|
||||
# never used within a particular call path, the field is within a union with
|
||||
# other non-const members, or the containing object is not const so the field
|
||||
# can be modified via memcpy() / memset(). While the variable warning also gets
|
||||
# disabled with this same switch, there should not be too much coverage lost
|
||||
# because -Wuninitialized will still flag when an uninitialized const variable
|
||||
# is used.
|
||||
KBUILD_CFLAGS += $(call cc-disable-warning, default-const-init-unsafe)
|
||||
else
|
||||
|
||||
# gcc inanely warns about local variables called 'main'
|
||||
|
|
|
|||
|
|
@ -94,10 +94,10 @@ $(vmlinux-final): $(RESOLVE_BTFIDS)
|
|||
endif
|
||||
|
||||
ifdef CONFIG_BUILDTIME_TABLE_SORT
|
||||
vmlinux: scripts/sorttable
|
||||
$(vmlinux-final): scripts/sorttable
|
||||
endif
|
||||
|
||||
# module.builtin.ranges
|
||||
# modules.builtin.ranges
|
||||
# ---------------------------------------------------------------------------
|
||||
ifdef CONFIG_BUILTIN_MODULE_RANGES
|
||||
__default: modules.builtin.ranges
|
||||
|
|
|
|||
|
|
@ -73,7 +73,7 @@ vmlinux.o: $(initcalls-lds) vmlinux.a $(KBUILD_VMLINUX_LIBS) FORCE
|
|||
|
||||
targets += vmlinux.o
|
||||
|
||||
# module.builtin.modinfo
|
||||
# modules.builtin.modinfo
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
OBJCOPYFLAGS_modules.builtin.modinfo := -j .modinfo -O binary
|
||||
|
|
@ -82,7 +82,7 @@ targets += modules.builtin.modinfo
|
|||
modules.builtin.modinfo: vmlinux.o FORCE
|
||||
$(call if_changed,objcopy)
|
||||
|
||||
# module.builtin
|
||||
# modules.builtin
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
# The second line aids cases where multiple modules share the same object.
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ Source1: config
|
|||
Source2: diff.patch
|
||||
Provides: kernel-%{KERNELRELEASE}
|
||||
BuildRequires: bc binutils bison dwarves
|
||||
BuildRequires: (elfutils-devel or libdw-devel)
|
||||
BuildRequires: (elfutils-libelf-devel or libelf-devel) flex
|
||||
BuildRequires: gcc make openssl openssl-devel perl python3 rsync
|
||||
|
||||
|
|
|
|||
|
|
@ -210,7 +210,7 @@ Rules-Requires-Root: no
|
|||
Build-Depends: debhelper-compat (= 12)
|
||||
Build-Depends-Arch: bc, bison, flex,
|
||||
gcc-${host_gnu} <!pkg.${sourcename}.nokernelheaders>,
|
||||
kmod, libelf-dev:native,
|
||||
kmod, libdw-dev:native, libelf-dev:native,
|
||||
libssl-dev:native, libssl-dev <!pkg.${sourcename}.nokernelheaders>,
|
||||
python3:native, rsync
|
||||
Homepage: https://www.kernel.org/
|
||||
|
|
|
|||
|
|
@ -59,6 +59,10 @@ ifeq ($(SRCARCH),arc)
|
|||
no-header-test += linux/bpf_perf_event.h
|
||||
endif
|
||||
|
||||
ifeq ($(SRCARCH),openrisc)
|
||||
no-header-test += linux/bpf_perf_event.h
|
||||
endif
|
||||
|
||||
ifeq ($(SRCARCH),powerpc)
|
||||
no-header-test += linux/bpf_perf_event.h
|
||||
endif
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user