Kbuild fixes for v6.10
- Fix a Kconfig bug regarding comparisons to 'm' or 'n' - Replace missed $(srctree)/$(src) - Fix unneeded kallsyms step 3 - Remove incorrect "compatible" properties from image nodes in image.fit - Improve gen_kheaders.sh - Fix 'make dt_binding_check' - Clean up unnecessary code -----BEGIN PGP SIGNATURE----- iQJJBAABCgAzFiEEbmPs18K1szRHjPqEPYsBB53g2wYFAmZbSHwVHG1hc2FoaXJv eUBrZXJuZWwub3JnAAoJED2LAQed4NsG/acP/1kxHTDYHmCrcZfxrHVKAg/LHYz+ 73J0yoc+hA6vDgcpLYrpDfg/r4slWIlOAxlu4oBKo7Wn/917GRRW7EYcw+mja7Ps zaLbO2QGDLDp6L+O1c9V3Y7JIbdZvco03iEtsuN7NAisQn3vbo6NTbQV+iGPRR2h k4/2UmwSbcXN1bX5co3jEgsaAYzNhFNVQ3m+LN/UYozodIl/+9tc0vkafw4ejxkd nsiwKW4V30IvxmDs0YkmzJEcAe/UNmBrTGMAqiDUThA1y0FnXHJGODzC5TFV4O0m Pf40uaeWCrzAuaa2KwjzwK83v3PpeMUM7cXGUa4nrxoeQhfb7/ZN+GnSTF9yIEbZ 07T27bVMUqbCrRFCIHOMQLqZ9fLsDYqT/k70fQcXWHNCK74VcoB2XDYZSDW5Sc5B h7NPiD+zkZKNR4lMWJ7WAyoLX/atSnP6465itp5quZRlQMtC6ns/6SCkQ715O+0B akVta9yduLeqlbZQYIsQ9UMEfAc2MI1eGUTtTzEHYfBvkxErvOFgmcRWFV+S5Mxl ZKYue2R9SM/UvSTcQD91eAWbUyu2Z5CjLt87mjuLqu56//HKGYlm/HsANkBEfpYz i8B3hiKqdmTM0w2ajDauQMu3hDjT0UtMTg45N6IaryeMiBErEVsMltDsxsb3F27x kKGIsQMf5RvFGiZ5 =wSXX -----END PGP SIGNATURE----- Merge tag 'kbuild-fixes-v6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild Pull Kbuild fixes from Masahiro Yamada: - Fix a Kconfig bug regarding comparisons to 'm' or 'n' - Replace missed $(srctree)/$(src) - Fix unneeded kallsyms step 3 - Remove incorrect "compatible" properties from image nodes in image.fit - Improve gen_kheaders.sh - Fix 'make dt_binding_check' - Clean up unnecessary code * tag 'kbuild-fixes-v6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: dt-bindings: kbuild: Fix dt_binding_check on unconfigured build kheaders: use `command -v` to test for existence of `cpio` kheaders: explicitly define file modes for archived headers scripts/make_fit: Drop fdt image entry compatible string kbuild: remove a stale comment about cleaning in link-vmlinux.sh kbuild: fix short log for AS in link-vmlinux.sh kbuild: change scripts/mksysmap into sed script kbuild: avoid unneeded kallsyms step 3 kbuild: scripts/gdb: Replace missed $(srctree)/$(src) w/ $(src) kconfig: remove redundant check in expr_join_or() kconfig: fix comparison to constant symbols, 'm', 'n' kconfig: remove unused expr_is_no()
This commit is contained in:
commit
ec9eeb89e6
@ -14,7 +14,12 @@ include/
|
|||||||
arch/$SRCARCH/include/
|
arch/$SRCARCH/include/
|
||||||
"
|
"
|
||||||
|
|
||||||
type cpio > /dev/null
|
if ! command -v cpio >/dev/null; then
|
||||||
|
echo >&2 "***"
|
||||||
|
echo >&2 "*** 'cpio' could not be found."
|
||||||
|
echo >&2 "***"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
# Support incremental builds by skipping archive generation
|
# Support incremental builds by skipping archive generation
|
||||||
# if timestamps of files being archived are not changed.
|
# if timestamps of files being archived are not changed.
|
||||||
@ -84,7 +89,7 @@ find $cpio_dir -type f -print0 |
|
|||||||
|
|
||||||
# Create archive and try to normalize metadata for reproducibility.
|
# Create archive and try to normalize metadata for reproducibility.
|
||||||
tar "${KBUILD_BUILD_TIMESTAMP:+--mtime=$KBUILD_BUILD_TIMESTAMP}" \
|
tar "${KBUILD_BUILD_TIMESTAMP:+--mtime=$KBUILD_BUILD_TIMESTAMP}" \
|
||||||
--owner=0 --group=0 --sort=name --numeric-owner \
|
--owner=0 --group=0 --sort=name --numeric-owner --mode=u=rw,go=r,a+X \
|
||||||
-I $XZ -cf $tarfile -C $cpio_dir/ . > /dev/null
|
-I $XZ -cf $tarfile -C $cpio_dir/ . > /dev/null
|
||||||
|
|
||||||
echo $headers_md5 > kernel/kheaders.md5
|
echo $headers_md5 > kernel/kheaders.md5
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
# *** Also keep .gitignore in sync when changing ***
|
# *** Also keep .gitignore in sync when changing ***
|
||||||
hostprogs-always-$(CONFIG_DTC) += dtc fdtoverlay
|
hostprogs-always-$(CONFIG_DTC) += dtc fdtoverlay
|
||||||
hostprogs-always-$(CHECK_DT_BINDING) += dtc
|
hostprogs-always-$(CHECK_DTBS) += dtc
|
||||||
|
|
||||||
dtc-objs := dtc.o flattree.o fstree.o data.o livetree.o treesource.o \
|
dtc-objs := dtc.o flattree.o fstree.o data.o livetree.o treesource.o \
|
||||||
srcpos.o checks.o util.o
|
srcpos.o checks.o util.o
|
||||||
|
@ -5,7 +5,7 @@ ifdef building_out_of_srctree
|
|||||||
symlinks := $(patsubst $(src)/%,%,$(wildcard $(src)/*.py))
|
symlinks := $(patsubst $(src)/%,%,$(wildcard $(src)/*.py))
|
||||||
|
|
||||||
quiet_cmd_symlink = SYMLINK $@
|
quiet_cmd_symlink = SYMLINK $@
|
||||||
cmd_symlink = ln -fsn $(patsubst $(obj)/%,$(abspath $(srctree))/$(src)/%,$@) $@
|
cmd_symlink = ln -fsn $(patsubst $(obj)/%,$(src)/%,$@) $@
|
||||||
|
|
||||||
always-y += $(symlinks)
|
always-y += $(symlinks)
|
||||||
$(addprefix $(obj)/, $(symlinks)): FORCE
|
$(addprefix $(obj)/, $(symlinks)): FORCE
|
||||||
|
@ -476,7 +476,7 @@ static struct expr *expr_join_or(struct expr *e1, struct expr *e2)
|
|||||||
return expr_alloc_comp(E_UNEQUAL, sym1, &symbol_yes);
|
return expr_alloc_comp(E_UNEQUAL, sym1, &symbol_yes);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (sym1->type == S_BOOLEAN && sym1 == sym2) {
|
if (sym1->type == S_BOOLEAN) {
|
||||||
if ((e1->type == E_NOT && e1->left.expr->type == E_SYMBOL && e2->type == E_SYMBOL) ||
|
if ((e1->type == E_NOT && e1->left.expr->type == E_SYMBOL && e2->type == E_SYMBOL) ||
|
||||||
(e2->type == E_NOT && e2->left.expr->type == E_SYMBOL && e1->type == E_SYMBOL))
|
(e2->type == E_NOT && e2->left.expr->type == E_SYMBOL && e1->type == E_SYMBOL))
|
||||||
return expr_alloc_symbol(&symbol_yes);
|
return expr_alloc_symbol(&symbol_yes);
|
||||||
|
@ -302,11 +302,6 @@ static inline int expr_is_yes(struct expr *e)
|
|||||||
return !e || (e->type == E_SYMBOL && e->left.sym == &symbol_yes);
|
return !e || (e->type == E_SYMBOL && e->left.sym == &symbol_yes);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int expr_is_no(struct expr *e)
|
|
||||||
{
|
|
||||||
return e && (e->type == E_SYMBOL && e->left.sym == &symbol_no);
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -14,6 +14,7 @@
|
|||||||
|
|
||||||
struct symbol symbol_yes = {
|
struct symbol symbol_yes = {
|
||||||
.name = "y",
|
.name = "y",
|
||||||
|
.type = S_TRISTATE,
|
||||||
.curr = { "y", yes },
|
.curr = { "y", yes },
|
||||||
.menus = LIST_HEAD_INIT(symbol_yes.menus),
|
.menus = LIST_HEAD_INIT(symbol_yes.menus),
|
||||||
.flags = SYMBOL_CONST|SYMBOL_VALID,
|
.flags = SYMBOL_CONST|SYMBOL_VALID,
|
||||||
@ -21,6 +22,7 @@ struct symbol symbol_yes = {
|
|||||||
|
|
||||||
struct symbol symbol_mod = {
|
struct symbol symbol_mod = {
|
||||||
.name = "m",
|
.name = "m",
|
||||||
|
.type = S_TRISTATE,
|
||||||
.curr = { "m", mod },
|
.curr = { "m", mod },
|
||||||
.menus = LIST_HEAD_INIT(symbol_mod.menus),
|
.menus = LIST_HEAD_INIT(symbol_mod.menus),
|
||||||
.flags = SYMBOL_CONST|SYMBOL_VALID,
|
.flags = SYMBOL_CONST|SYMBOL_VALID,
|
||||||
@ -28,6 +30,7 @@ struct symbol symbol_mod = {
|
|||||||
|
|
||||||
struct symbol symbol_no = {
|
struct symbol symbol_no = {
|
||||||
.name = "n",
|
.name = "n",
|
||||||
|
.type = S_TRISTATE,
|
||||||
.curr = { "n", no },
|
.curr = { "n", no },
|
||||||
.menus = LIST_HEAD_INIT(symbol_no.menus),
|
.menus = LIST_HEAD_INIT(symbol_no.menus),
|
||||||
.flags = SYMBOL_CONST|SYMBOL_VALID,
|
.flags = SYMBOL_CONST|SYMBOL_VALID,
|
||||||
@ -820,8 +823,7 @@ const char *sym_get_string_value(struct symbol *sym)
|
|||||||
case no:
|
case no:
|
||||||
return "n";
|
return "n";
|
||||||
case mod:
|
case mod:
|
||||||
sym_calc_value(modules_sym);
|
return "m";
|
||||||
return (modules_sym->curr.tri == no) ? "n" : "m";
|
|
||||||
case yes:
|
case yes:
|
||||||
return "y";
|
return "y";
|
||||||
}
|
}
|
||||||
|
@ -179,10 +179,10 @@ kallsyms_step()
|
|||||||
kallsyms_S=${kallsyms_vmlinux}.S
|
kallsyms_S=${kallsyms_vmlinux}.S
|
||||||
|
|
||||||
vmlinux_link ${kallsyms_vmlinux} "${kallsymso_prev}" ${btf_vmlinux_bin_o}
|
vmlinux_link ${kallsyms_vmlinux} "${kallsymso_prev}" ${btf_vmlinux_bin_o}
|
||||||
mksysmap ${kallsyms_vmlinux} ${kallsyms_vmlinux}.syms ${kallsymso_prev}
|
mksysmap ${kallsyms_vmlinux} ${kallsyms_vmlinux}.syms
|
||||||
kallsyms ${kallsyms_vmlinux}.syms ${kallsyms_S}
|
kallsyms ${kallsyms_vmlinux}.syms ${kallsyms_S}
|
||||||
|
|
||||||
info AS ${kallsyms_S}
|
info AS ${kallsymso}
|
||||||
${CC} ${NOSTDINC_FLAGS} ${LINUXINCLUDE} ${KBUILD_CPPFLAGS} \
|
${CC} ${NOSTDINC_FLAGS} ${LINUXINCLUDE} ${KBUILD_CPPFLAGS} \
|
||||||
${KBUILD_AFLAGS} ${KBUILD_AFLAGS_KERNEL} \
|
${KBUILD_AFLAGS} ${KBUILD_AFLAGS_KERNEL} \
|
||||||
-c -o ${kallsymso} ${kallsyms_S}
|
-c -o ${kallsymso} ${kallsyms_S}
|
||||||
@ -193,7 +193,7 @@ kallsyms_step()
|
|||||||
mksysmap()
|
mksysmap()
|
||||||
{
|
{
|
||||||
info NM ${2}
|
info NM ${2}
|
||||||
${CONFIG_SHELL} "${srctree}/scripts/mksysmap" ${1} ${2} ${3}
|
${NM} -n "${1}" | "${srctree}/scripts/mksysmap" > "${2}"
|
||||||
}
|
}
|
||||||
|
|
||||||
sorttable()
|
sorttable()
|
||||||
@ -201,7 +201,6 @@ sorttable()
|
|||||||
${objtree}/scripts/sorttable ${1}
|
${objtree}/scripts/sorttable ${1}
|
||||||
}
|
}
|
||||||
|
|
||||||
# Delete output files in case of error
|
|
||||||
cleanup()
|
cleanup()
|
||||||
{
|
{
|
||||||
rm -f .btf.*
|
rm -f .btf.*
|
||||||
@ -282,7 +281,7 @@ if is_enabled CONFIG_DEBUG_INFO_BTF && is_enabled CONFIG_BPF; then
|
|||||||
${RESOLVE_BTFIDS} vmlinux
|
${RESOLVE_BTFIDS} vmlinux
|
||||||
fi
|
fi
|
||||||
|
|
||||||
mksysmap vmlinux System.map ${kallsymso}
|
mksysmap vmlinux System.map
|
||||||
|
|
||||||
if is_enabled CONFIG_BUILDTIME_TABLE_SORT; then
|
if is_enabled CONFIG_BUILDTIME_TABLE_SORT; then
|
||||||
info SORTTAB vmlinux
|
info SORTTAB vmlinux
|
||||||
|
@ -190,7 +190,7 @@ def output_dtb(fsw, seq, fname, arch, compress):
|
|||||||
Args:
|
Args:
|
||||||
fsw (libfdt.FdtSw): Object to use for writing
|
fsw (libfdt.FdtSw): Object to use for writing
|
||||||
seq (int): Sequence number (1 for first)
|
seq (int): Sequence number (1 for first)
|
||||||
fmame (str): Filename containing the DTB
|
fname (str): Filename containing the DTB
|
||||||
arch: FIT architecture, e.g. 'arm64'
|
arch: FIT architecture, e.g. 'arm64'
|
||||||
compress (str): Compressed algorithm, e.g. 'gzip'
|
compress (str): Compressed algorithm, e.g. 'gzip'
|
||||||
|
|
||||||
@ -211,7 +211,6 @@ def output_dtb(fsw, seq, fname, arch, compress):
|
|||||||
fsw.property_string('type', 'flat_dt')
|
fsw.property_string('type', 'flat_dt')
|
||||||
fsw.property_string('arch', arch)
|
fsw.property_string('arch', arch)
|
||||||
fsw.property_string('compression', compress)
|
fsw.property_string('compression', compress)
|
||||||
fsw.property('compatible', bytes(compat))
|
|
||||||
|
|
||||||
with open(fname, 'rb') as inf:
|
with open(fname, 'rb') as inf:
|
||||||
compressed = compress_data(inf, compress)
|
compressed = compress_data(inf, compress)
|
||||||
|
@ -1,22 +1,16 @@
|
|||||||
#!/bin/sh -x
|
#!/bin/sed -f
|
||||||
# Based on the vmlinux file create the System.map file
|
# SPDX-License-Identifier: GPL-2.0-only
|
||||||
|
#
|
||||||
|
# sed script to filter out symbols that are not needed for System.map,
|
||||||
|
# or not suitable for kallsyms. The input should be 'nm -n <file>'.
|
||||||
|
#
|
||||||
# System.map is used by module-init tools and some debugging
|
# System.map is used by module-init tools and some debugging
|
||||||
# tools to retrieve the actual addresses of symbols in the kernel.
|
# tools to retrieve the actual addresses of symbols in the kernel.
|
||||||
#
|
#
|
||||||
# Usage
|
|
||||||
# mksysmap vmlinux System.map [exclude]
|
|
||||||
|
|
||||||
|
|
||||||
#####
|
|
||||||
# Generate System.map (actual filename passed as second argument)
|
|
||||||
# The following refers to the symbol type as per nm(1).
|
|
||||||
|
|
||||||
# readprofile starts reading symbols when _stext is found, and
|
# readprofile starts reading symbols when _stext is found, and
|
||||||
# continue until it finds a symbol which is not either of 'T', 't',
|
# continue until it finds a symbol which is not either of 'T', 't',
|
||||||
# 'W' or 'w'.
|
# 'W' or 'w'.
|
||||||
#
|
#
|
||||||
|
|
||||||
${NM} -n ${1} | sed >${2} -e "
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# Ignored symbol types
|
# Ignored symbol types
|
||||||
#
|
#
|
||||||
@ -92,13 +86,3 @@ ${NM} -n ${1} | sed >${2} -e "
|
|||||||
# ppc stub
|
# ppc stub
|
||||||
/\.long_branch\./d
|
/\.long_branch\./d
|
||||||
/\.plt_branch\./d
|
/\.plt_branch\./d
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
|
||||||
# Ignored kallsyms symbols
|
|
||||||
#
|
|
||||||
# If the 3rd parameter exists, symbols from it will be omitted from the output.
|
|
||||||
# This makes kallsyms have the identical symbol lists in the step 1 and 2.
|
|
||||||
# Without this, the step2 would get new symbols generated by scripts/kallsyms.c
|
|
||||||
# when CONFIG_KALLSYMS_ALL is enabled. That might require one more pass.
|
|
||||||
$(if [ $# -ge 3 ]; then ${NM} ${3} | sed -n '/ U /!s:.* \([^ ]*\)$:/ \1$/d:p'; fi)
|
|
||||||
"
|
|
||||||
|
Loading…
Reference in New Issue
Block a user