mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2024-12-29 01:02:08 +00:00
Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild.git
This commit is contained in:
commit
c4262cd734
@ -1,6 +1,11 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Configuration heplers
|
||||
|
||||
cmd_merge_fragments = \
|
||||
$(srctree)/scripts/kconfig/merge_config.sh \
|
||||
$4 -m -O $(objtree) $(srctree)/arch/$(SRCARCH)/configs/$2 \
|
||||
$(foreach config,$3,$(srctree)/arch/$(SRCARCH)/configs/$(config).config)
|
||||
|
||||
# Creates 'merged defconfigs'
|
||||
# ---------------------------------------------------------------------------
|
||||
# Usage:
|
||||
@ -8,9 +13,7 @@
|
||||
#
|
||||
# Input config fragments without '.config' suffix
|
||||
define merge_into_defconfig
|
||||
$(Q)$(CONFIG_SHELL) $(srctree)/scripts/kconfig/merge_config.sh \
|
||||
-m -O $(objtree) $(srctree)/arch/$(SRCARCH)/configs/$(1) \
|
||||
$(foreach config,$(2),$(srctree)/arch/$(SRCARCH)/configs/$(config).config)
|
||||
$(call cmd,merge_fragments,$1,$2)
|
||||
+$(Q)$(MAKE) -f $(srctree)/Makefile olddefconfig
|
||||
endef
|
||||
|
||||
@ -22,8 +25,6 @@ endef
|
||||
#
|
||||
# Input config fragments without '.config' suffix
|
||||
define merge_into_defconfig_override
|
||||
$(Q)$(CONFIG_SHELL) $(srctree)/scripts/kconfig/merge_config.sh \
|
||||
-Q -m -O $(objtree) $(srctree)/arch/$(SRCARCH)/configs/$(1) \
|
||||
$(foreach config,$(2),$(srctree)/arch/$(SRCARCH)/configs/$(config).config)
|
||||
$(call cmd,merge_fragments,$1,$2,-Q)
|
||||
+$(Q)$(MAKE) -f $(srctree)/Makefile olddefconfig
|
||||
endef
|
||||
|
@ -105,9 +105,11 @@ configfiles = $(wildcard $(srctree)/kernel/configs/$(1) $(srctree)/arch/$(SRCARC
|
||||
all-config-fragments = $(call configfiles,*.config)
|
||||
config-fragments = $(call configfiles,$@)
|
||||
|
||||
cmd_merge_fragments = $(srctree)/scripts/kconfig/merge_config.sh -m $(KCONFIG_CONFIG) $(config-fragments)
|
||||
|
||||
%.config: $(obj)/conf
|
||||
$(if $(config-fragments),, $(error $@ fragment does not exists on this architecture))
|
||||
$(Q)$(CONFIG_SHELL) $(srctree)/scripts/kconfig/merge_config.sh -m $(KCONFIG_CONFIG) $(config-fragments)
|
||||
$(call cmd,merge_fragments)
|
||||
$(Q)$(MAKE) -f $(srctree)/Makefile olddefconfig
|
||||
|
||||
PHONY += tinyconfig
|
||||
|
@ -5,10 +5,12 @@
|
||||
#
|
||||
# Simple script to generate a deb package for a Linux kernel. All the
|
||||
# complexity of what to do with a kernel after it is installed or removed
|
||||
# is left to other scripts and packages: they can install scripts in the
|
||||
# /etc/kernel/{pre,post}{inst,rm}.d/ directories (or an alternative location
|
||||
# specified in KDEB_HOOKDIR) that will be called on package install and
|
||||
# removal.
|
||||
# is left to other scripts and packages. Scripts can be placed into the
|
||||
# preinst, postinst, prerm and postrm directories in /etc/kernel or
|
||||
# /usr/share/kernel. A different list of search directories can be given
|
||||
# via KDEB_HOOKDIR. Scripts in directories earlier in the list will
|
||||
# override scripts of the same name in later directories. The script will
|
||||
# be called on package installation and removal.
|
||||
|
||||
set -eu
|
||||
|
||||
@ -68,10 +70,8 @@ install_linux_image () {
|
||||
# kernel packages, as well as kernel packages built using make-kpkg.
|
||||
# make-kpkg sets $INITRD to indicate whether an initramfs is wanted, and
|
||||
# so do we; recent versions of dracut and initramfs-tools will obey this.
|
||||
debhookdir=${KDEB_HOOKDIR:-/etc/kernel}
|
||||
debhookdir=${KDEB_HOOKDIR:-/etc/kernel /usr/share/kernel}
|
||||
for script in postinst postrm preinst prerm; do
|
||||
mkdir -p "${pdir}${debhookdir}/${script}.d"
|
||||
|
||||
mkdir -p "${pdir}/DEBIAN"
|
||||
cat <<-EOF > "${pdir}/DEBIAN/${script}"
|
||||
#!/bin/sh
|
||||
@ -84,7 +84,15 @@ install_linux_image () {
|
||||
# Tell initramfs builder whether it's wanted
|
||||
export INITRD=$(if_enabled_echo CONFIG_BLK_DEV_INITRD Yes No)
|
||||
|
||||
test -d ${debhookdir}/${script}.d && run-parts --arg="${KERNELRELEASE}" --arg="/${installed_image_path}" ${debhookdir}/${script}.d
|
||||
# run-parts will error out if one of its directory arguments does not
|
||||
# exist, so filter the list of hook directories accordingly.
|
||||
hookdirs=
|
||||
for dir in ${debhookdir}; do
|
||||
test -d "\$dir/${script}.d" || continue
|
||||
hookdirs="\$hookdirs \$dir/${script}.d"
|
||||
done
|
||||
hookdirs="\${hookdirs# }"
|
||||
test -n "\$hookdirs" && run-parts --arg="${KERNELRELEASE}" --arg="/${installed_image_path}" \$hookdirs
|
||||
exit 0
|
||||
EOF
|
||||
chmod 755 "${pdir}/DEBIAN/${script}"
|
||||
|
@ -49,17 +49,10 @@ mkdir -p "${destdir}"
|
||||
# This caters to host programs that participate in Kbuild. objtool and
|
||||
# resolve_btfids are out of scope.
|
||||
if [ "${CC}" != "${HOSTCC}" ]; then
|
||||
echo "Rebuilding host programs with ${CC}..."
|
||||
|
||||
# This leverages external module building.
|
||||
# - Clear sub_make_done to allow the top-level Makefile to redo sub-make.
|
||||
# - Filter out --no-print-directory to print "Entering directory" logs
|
||||
# when Make changes the working directory.
|
||||
unset sub_make_done
|
||||
MAKEFLAGS=$(echo "${MAKEFLAGS}" | sed s/--no-print-directory//)
|
||||
|
||||
cat <<-'EOF' > "${destdir}/Kbuild"
|
||||
subdir-y := scripts
|
||||
cat "${destdir}/scripts/Makefile" - <<-'EOF' > "${destdir}/scripts/Kbuild"
|
||||
subdir-y += basic
|
||||
hostprogs-always-y += mod/modpost
|
||||
mod/modpost-objs := $(addprefix mod/, modpost.o file2alias.o sumversion.o symsearch.o)
|
||||
EOF
|
||||
|
||||
# HOSTCXX is not overridden. The C++ compiler is used to build:
|
||||
@ -67,20 +60,12 @@ if [ "${CC}" != "${HOSTCC}" ]; then
|
||||
# - GCC plugins, which will not work on the installed system even after
|
||||
# being rebuilt.
|
||||
#
|
||||
# Use the single-target build to avoid the modpost invocation, which
|
||||
# would overwrite Module.symvers.
|
||||
"${MAKE}" HOSTCC="${CC}" KBUILD_OUTPUT=. KBUILD_EXTMOD="${destdir}" scripts/
|
||||
# Clear VPATH and srcroot because the source files reside in the output
|
||||
# directory.
|
||||
# shellcheck disable=SC2016 # $(MAKE), $(CC), and $(build) will be expanded by Make
|
||||
"${MAKE}" run-command KBUILD_RUN_COMMAND='+$(MAKE) HOSTCC=$(CC) VPATH= srcroot=. $(build)='"${destdir}"/scripts
|
||||
|
||||
cat <<-'EOF' > "${destdir}/scripts/Kbuild"
|
||||
subdir-y := basic
|
||||
hostprogs-always-y := mod/modpost
|
||||
mod/modpost-objs := $(addprefix mod/, modpost.o file2alias.o sumversion.o symsearch.o)
|
||||
EOF
|
||||
|
||||
# Run once again to rebuild scripts/basic/ and scripts/mod/modpost.
|
||||
"${MAKE}" HOSTCC="${CC}" KBUILD_OUTPUT=. KBUILD_EXTMOD="${destdir}" scripts/
|
||||
|
||||
rm -f "${destdir}/Kbuild" "${destdir}/scripts/Kbuild"
|
||||
rm -f "${destdir}/scripts/Kbuild"
|
||||
fi
|
||||
|
||||
find "${destdir}" \( -name '.*.cmd' -o -name '*.o' \) -delete
|
||||
|
@ -70,6 +70,13 @@ set_debarch() {
|
||||
debarch=sh4$(if_enabled_echo CONFIG_CPU_BIG_ENDIAN eb)
|
||||
fi
|
||||
;;
|
||||
um)
|
||||
if is_enabled CONFIG_64BIT; then
|
||||
debarch=amd64
|
||||
else
|
||||
debarch=i386
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
if [ -z "$debarch" ]; then
|
||||
debarch=$(dpkg-architecture -qDEB_HOST_ARCH)
|
||||
|
@ -78,7 +78,7 @@ quiet_cmd_hdrtest = HDRTEST $<
|
||||
cmd_hdrtest = \
|
||||
$(CC) $(c_flags) -fsyntax-only -x c /dev/null \
|
||||
$(if $(filter-out $(no-header-test), $*.h), -include $< -include $<); \
|
||||
$(PERL) $(src)/headers_check.pl $(obj) $(SRCARCH) $<; \
|
||||
$(PERL) $(src)/headers_check.pl $(obj) $<; \
|
||||
touch $@
|
||||
|
||||
$(obj)/%.hdrtest: $(obj)/%.h FORCE
|
||||
|
@ -3,9 +3,8 @@
|
||||
#
|
||||
# headers_check.pl execute a number of trivial consistency checks
|
||||
#
|
||||
# Usage: headers_check.pl dir arch [files...]
|
||||
# Usage: headers_check.pl dir [files...]
|
||||
# dir: dir to look for included files
|
||||
# arch: architecture
|
||||
# files: list of files to check
|
||||
#
|
||||
# The script reads the supplied files line by line and:
|
||||
@ -23,7 +22,7 @@ use warnings;
|
||||
use strict;
|
||||
use File::Basename;
|
||||
|
||||
my ($dir, $arch, @files) = @ARGV;
|
||||
my ($dir, @files) = @ARGV;
|
||||
|
||||
my $ret = 0;
|
||||
my $line;
|
||||
|
Loading…
Reference in New Issue
Block a user