mirror of
https://github.com/torvalds/linux.git
synced 2026-01-24 23:16:46 +00:00
Merge tag 'kbuild-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild
Pull Kbuild updates from Masahiro Yamada: - Remove tristate choice support from Kconfig - Stop using the PROVIDE() directive in the linker script - Reduce the number of links for the combination of CONFIG_KALLSYMS and CONFIG_DEBUG_INFO_BTF - Enable the warning for symbol reference to .exit.* sections by default - Fix warnings in RPM package builds - Improve scripts/make_fit.py to generate a FIT image with separate base DTB and overlays - Improve choice value calculation in Kconfig - Fix conditional prompt behavior in choice in Kconfig - Remove support for the uncommon EMAIL environment variable in Debian package builds - Remove support for the uncommon "name <email>" form for the DEBEMAIL environment variable - Raise the minimum supported GNU Make version to 4.0 - Remove stale code for the absolute kallsyms - Move header files commonly used for host programs to scripts/include/ - Introduce the pacman-pkg target to generate a pacman package used in Arch Linux - Clean up Kconfig * tag 'kbuild-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (65 commits) kbuild: doc: gcc to CC change kallsyms: change sym_entry::percpu_absolute to bool type kallsyms: unify seq and start_pos fields of struct sym_entry kallsyms: add more original symbol type/name in comment lines kallsyms: use \t instead of a tab in printf() kallsyms: avoid repeated calculation of array size for markers kbuild: add script and target to generate pacman package modpost: use generic macros for hash table implementation kbuild: move some helper headers from scripts/kconfig/ to scripts/include/ Makefile: add comment to discourage tools/* addition for kernel builds kbuild: clean up scripts/remove-stale-files kconfig: recursive checks drop file/lineno kbuild: rpm-pkg: introduce a simple changelog section for kernel.spec kallsyms: get rid of code for absolute kallsyms kbuild: Create INSTALL_PATH directory if it does not exist kbuild: Abort make on install failures kconfig: remove 'e1' and 'e2' macros from expression deduplication kconfig: remove SYMBOL_CHOICEVAL flag kconfig: add const qualifiers to several function arguments kconfig: call expr_eliminate_yn() at least once in expr_eliminate_dups() ...
This commit is contained in:
108
scripts/package/PKGBUILD
Normal file
108
scripts/package/PKGBUILD
Normal file
@@ -0,0 +1,108 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
# Maintainer: Thomas Weißschuh <linux@weissschuh.net>
|
||||
# Contributor: Jan Alexander Steffens (heftig) <heftig@archlinux.org>
|
||||
|
||||
pkgbase=${PACMAN_PKGBASE:-linux-upstream}
|
||||
pkgname=("${pkgbase}" "${pkgbase}-api-headers")
|
||||
if grep -q CONFIG_MODULES=y include/config/auto.conf; then
|
||||
pkgname+=("${pkgbase}-headers")
|
||||
fi
|
||||
pkgver="${KERNELRELEASE//-/_}"
|
||||
# The PKGBUILD is evaluated multiple times.
|
||||
# Running scripts/build-version from here would introduce inconsistencies.
|
||||
pkgrel="${KBUILD_REVISION}"
|
||||
pkgdesc='Upstream Linux'
|
||||
url='https://www.kernel.org/'
|
||||
# Enable flexible cross-compilation
|
||||
arch=(${CARCH})
|
||||
license=(GPL-2.0-only)
|
||||
makedepends=(
|
||||
bc
|
||||
bison
|
||||
cpio
|
||||
flex
|
||||
gettext
|
||||
kmod
|
||||
libelf
|
||||
openssl
|
||||
pahole
|
||||
perl
|
||||
python
|
||||
rsync
|
||||
tar
|
||||
)
|
||||
options=(!debug !strip !buildflags !makeflags)
|
||||
|
||||
build() {
|
||||
# MAKEFLAGS from makepkg.conf override the ones inherited from kbuild.
|
||||
# Bypass this override with a custom variable.
|
||||
export MAKEFLAGS="${KBUILD_MAKEFLAGS}"
|
||||
cd "${objtree}"
|
||||
|
||||
${MAKE} KERNELRELEASE="${KERNELRELEASE}" KBUILD_BUILD_VERSION="${pkgrel}"
|
||||
}
|
||||
|
||||
_package() {
|
||||
pkgdesc="The ${pkgdesc} kernel and modules"
|
||||
|
||||
export MAKEFLAGS="${KBUILD_MAKEFLAGS}"
|
||||
cd "${objtree}"
|
||||
local modulesdir="${pkgdir}/usr/${MODLIB}"
|
||||
|
||||
echo "Installing boot image..."
|
||||
# systemd expects to find the kernel here to allow hibernation
|
||||
# https://github.com/systemd/systemd/commit/edda44605f06a41fb86b7ab8128dcf99161d2344
|
||||
install -Dm644 "$(${MAKE} -s image_name)" "${modulesdir}/vmlinuz"
|
||||
|
||||
# Used by mkinitcpio to name the kernel
|
||||
echo "${pkgbase}" > "${modulesdir}/pkgbase"
|
||||
|
||||
echo "Installing modules..."
|
||||
${MAKE} INSTALL_MOD_PATH="${pkgdir}/usr" INSTALL_MOD_STRIP=1 \
|
||||
DEPMOD=true modules_install
|
||||
|
||||
if [ -d "${srctree}/arch/${SRCARCH}/boot/dts" ]; then
|
||||
echo "Installing dtbs..."
|
||||
${MAKE} INSTALL_DTBS_PATH="${modulesdir}/dtb" dtbs_install
|
||||
fi
|
||||
|
||||
# remove build link, will be part of -headers package
|
||||
rm -f "${modulesdir}/build"
|
||||
}
|
||||
|
||||
_package-headers() {
|
||||
pkgdesc="Headers and scripts for building modules for the ${pkgdesc} kernel"
|
||||
|
||||
export MAKEFLAGS="${KBUILD_MAKEFLAGS}"
|
||||
cd "${objtree}"
|
||||
local builddir="${pkgdir}/usr/${MODLIB}/build"
|
||||
|
||||
echo "Installing build files..."
|
||||
"${srctree}/scripts/package/install-extmod-build" "${builddir}"
|
||||
|
||||
echo "Installing System.map and config..."
|
||||
cp System.map "${builddir}/System.map"
|
||||
cp .config "${builddir}/.config"
|
||||
|
||||
echo "Adding symlink..."
|
||||
mkdir -p "${pkgdir}/usr/src"
|
||||
ln -sr "${builddir}" "${pkgdir}/usr/src/${pkgbase}"
|
||||
}
|
||||
|
||||
_package-api-headers() {
|
||||
pkgdesc="Kernel headers sanitized for use in userspace"
|
||||
provides=(linux-api-headers)
|
||||
conflicts=(linux-api-headers)
|
||||
|
||||
export MAKEFLAGS="${KBUILD_MAKEFLAGS}"
|
||||
cd "${objtree}"
|
||||
|
||||
${MAKE} headers_install INSTALL_HDR_PATH="${pkgdir}/usr"
|
||||
}
|
||||
|
||||
for _p in "${pkgname[@]}"; do
|
||||
eval "package_$_p() {
|
||||
$(declare -f "_package${_p#$pkgbase}")
|
||||
_package${_p#$pkgbase}
|
||||
}"
|
||||
done
|
||||
@@ -10,7 +10,7 @@
|
||||
# specified in KDEB_HOOKDIR) that will be called on package install and
|
||||
# removal.
|
||||
|
||||
set -e
|
||||
set -eu
|
||||
|
||||
is_enabled() {
|
||||
grep -q "^$1=y" include/config/auto.conf
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
# Wichert Akkerman <wichert@wiggy.net>.
|
||||
#
|
||||
|
||||
set -e
|
||||
set -eu
|
||||
|
||||
#
|
||||
# Some variables and settings used throughout the script
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
|
||||
set -eu
|
||||
|
||||
diff_patch=$1
|
||||
|
||||
mkdir -p "$(dirname "${diff_patch}")"
|
||||
|
||||
@@ -1,13 +1,10 @@
|
||||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
|
||||
set -e
|
||||
set -eu
|
||||
|
||||
destdir=${1}
|
||||
|
||||
test -n "${srctree}"
|
||||
test -n "${SRCARCH}"
|
||||
|
||||
is_enabled() {
|
||||
grep -q "^$1=y" include/config/auto.conf
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@ The Linux Kernel, the operating system core itself
|
||||
%package headers
|
||||
Summary: Header files for the Linux kernel for use by glibc
|
||||
Group: Development/System
|
||||
Obsoletes: kernel-headers
|
||||
Obsoletes: kernel-headers < %{version}
|
||||
Provides: kernel-headers = %{version}
|
||||
%description headers
|
||||
Kernel-headers includes the C header files that specify the interface
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#
|
||||
# Simple script to generate a debian/ directory for a Linux kernel.
|
||||
|
||||
set -e
|
||||
set -eu
|
||||
|
||||
is_enabled() {
|
||||
grep -q "^$1=y" include/config/auto.conf
|
||||
@@ -19,7 +19,7 @@ if_enabled_echo() {
|
||||
}
|
||||
|
||||
set_debarch() {
|
||||
if [ -n "$KBUILD_DEBARCH" ] ; then
|
||||
if [ "${KBUILD_DEBARCH:+set}" ]; then
|
||||
debarch="$KBUILD_DEBARCH"
|
||||
return
|
||||
fi
|
||||
@@ -125,32 +125,34 @@ gen_source ()
|
||||
rm -rf debian
|
||||
mkdir debian
|
||||
|
||||
email=${DEBEMAIL-$EMAIL}
|
||||
|
||||
# use email string directly if it contains <email>
|
||||
if echo "${email}" | grep -q '<.*>'; then
|
||||
maintainer=${email}
|
||||
user=${KBUILD_BUILD_USER:-$(id -nu)}
|
||||
name=${DEBFULLNAME:-${user}}
|
||||
if [ "${DEBEMAIL:+set}" ]; then
|
||||
email=${DEBEMAIL}
|
||||
else
|
||||
# or construct the maintainer string
|
||||
user=${KBUILD_BUILD_USER-$(id -nu)}
|
||||
name=${DEBFULLNAME-${user}}
|
||||
if [ -z "${email}" ]; then
|
||||
buildhost=${KBUILD_BUILD_HOST-$(hostname -f 2>/dev/null || hostname)}
|
||||
email="${user}@${buildhost}"
|
||||
fi
|
||||
maintainer="${name} <${email}>"
|
||||
buildhost=${KBUILD_BUILD_HOST:-$(hostname -f 2>/dev/null || hostname)}
|
||||
email="${user}@${buildhost}"
|
||||
fi
|
||||
maintainer="${name} <${email}>"
|
||||
|
||||
if [ "$1" = --need-source ]; then
|
||||
gen_source
|
||||
fi
|
||||
while [ $# -gt 0 ]; do
|
||||
case "$1" in
|
||||
--need-source)
|
||||
gen_source
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
break
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Some variables and settings used throughout the script
|
||||
version=$KERNELRELEASE
|
||||
if [ -n "$KDEB_PKGVERSION" ]; then
|
||||
if [ "${KDEB_PKGVERSION:+set}" ]; then
|
||||
packageversion=$KDEB_PKGVERSION
|
||||
else
|
||||
packageversion=$(${srctree}/scripts/setlocalversion --no-local ${srctree})-$($srctree/init/build-version)
|
||||
packageversion=$(${srctree}/scripts/setlocalversion --no-local ${srctree})-$($srctree/scripts/build-version)
|
||||
fi
|
||||
sourcename=${KDEB_SOURCENAME:-linux-upstream}
|
||||
|
||||
@@ -164,7 +166,7 @@ debarch=
|
||||
set_debarch
|
||||
|
||||
# Try to determine distribution
|
||||
if [ -n "$KDEB_CHANGELOG_DIST" ]; then
|
||||
if [ "${KDEB_CHANGELOG_DIST:+set}" ]; then
|
||||
distribution=$KDEB_CHANGELOG_DIST
|
||||
# In some cases lsb_release returns the codename as n/a, which breaks dpkg-parsechangelog
|
||||
elif distribution=$(lsb_release -cs 2>/dev/null) && [ -n "$distribution" ] && [ "$distribution" != "n/a" ]; then
|
||||
|
||||
@@ -9,6 +9,8 @@
|
||||
# Patched for non-x86 by Opencon (L) 2002 <opencon@rio.skydome.net>
|
||||
#
|
||||
|
||||
set -eu
|
||||
|
||||
output=$1
|
||||
|
||||
mkdir -p "$(dirname "${output}")"
|
||||
@@ -24,7 +26,30 @@ fi
|
||||
cat<<EOF
|
||||
%define ARCH ${ARCH}
|
||||
%define KERNELRELEASE ${KERNELRELEASE}
|
||||
%define pkg_release $("${srctree}/init/build-version")
|
||||
%define pkg_release $("${srctree}/scripts/build-version")
|
||||
EOF
|
||||
|
||||
cat "${srctree}/scripts/package/kernel.spec"
|
||||
|
||||
# collect the user's name and email address for the changelog entry
|
||||
if [ "$(command -v git)" ]; then
|
||||
name=$(git config user.name) || true
|
||||
email=$(git config user.email) || true
|
||||
fi
|
||||
|
||||
if [ ! "${name:+set}" ]; then
|
||||
name=${KBUILD_BUILD_USER:-$(id -nu)}
|
||||
fi
|
||||
|
||||
if [ ! "${email:+set}" ]; then
|
||||
buildhost=${KBUILD_BUILD_HOST:-$(hostname -f 2>/dev/null || hostname)}
|
||||
builduser=${KBUILD_BUILD_USER:-$(id -nu)}
|
||||
email="${builduser}@${buildhost}"
|
||||
fi
|
||||
|
||||
cat << EOF
|
||||
|
||||
%changelog
|
||||
* $(LC_ALL=C; date +'%a %b %d %Y') ${name} <${email}>
|
||||
- Custom built Linux kernel.
|
||||
EOF
|
||||
|
||||
Reference in New Issue
Block a user