lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:   Wed, 25 Aug 2021 01:50:24 +0900
From:   Masahiro Yamada <masahiroy@...nel.org>
To:     linux-kbuild@...r.kernel.org
Cc:     Masahiro Yamada <masahiroy@...nel.org>,
        Michal Marek <michal.lkml@...kovi.net>,
        linux-kernel@...r.kernel.org
Subject: [PATCH] scripts: add generic install.sh

Many architectures has a similar install.sh script.

The first half is really generic; ensures the kernel image and the map
file exist, then invokes ~/bin/${INSTALLKERNEL} or /sbin/${INSTALLKERNEL}
if available.

The second half is kind of arch-specific. It just copies the kernel image
and map file to the destination, but the code is slightly different.
(Maybe, this part can be consolidated as well if we want).

This patch factors out the generic part into scripts/install.sh, which
will architectures to drop the duplicated code.

Signed-off-by: Masahiro Yamada <masahiroy@...nel.org>
---

 Makefile           |  8 ++++++++
 scripts/install.sh | 43 +++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 51 insertions(+)
 create mode 100755 scripts/install.sh

diff --git a/Makefile b/Makefile
index 185ce47d6734..725eadc4fcb8 100644
--- a/Makefile
+++ b/Makefile
@@ -1325,6 +1325,14 @@ scripts_unifdef: scripts_basic
 
 install: sub_make_done :=
 
+# Install $(KBUILD_IMAGE) by default.
+# If necessary, override install-image per target.
+install-image = $(KBUILD_IMAGE)
+
+quiet_cmd_install = INSTALL $(INSTALL_PATH)
+      cmd_install = scripts/install.sh $(KERNELRELEASE) $(install-image) \
+			System.map "$(INSTALL_PATH)"
+
 # ---------------------------------------------------------------------------
 # Tools
 
diff --git a/scripts/install.sh b/scripts/install.sh
new file mode 100755
index 000000000000..6ac0e0c0f078
--- /dev/null
+++ b/scripts/install.sh
@@ -0,0 +1,43 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL-2.0-only
+#
+# This file is subject to the terms and conditions of the GNU General Public
+# License.  See the file "COPYING" in the main directory of this archive
+# for more details.
+#
+# Copyright (C) 1995 by Linus Torvalds
+#
+# Adapted from code in arch/i386/boot/Makefile by H. Peter Anvin
+#
+# Arguments:
+#   $1 - kernel version
+#   $2 - kernel image file
+#   $3 - kernel map file
+#   $4 - default install path (blank if root directory)
+
+verify () {
+	if [ ! -f "$1" ]; then
+		echo >&2
+		echo >&2 " *** Missing file: $1"
+		echo >&2 ' *** You need to run "make" before "make install".'
+		echo >&2
+		exit 1
+	fi
+}
+
+# Make sure the files actually exist
+verify "$2"
+verify "$3"
+
+# User/arch may have a custom install script
+
+for script in "~/bin/${INSTALLKERNEL}" "/sbin/${INSTALLKERNEL}" \
+		"arch/${SRCARCH}/install.sh" "arch/${SRCARCH}/boot/install.sh"
+do
+	if [ -x "${script}" ]; then
+		exec "${script}" "$@"
+	fi
+done
+
+echo "No install script found" >&2
+exit 1
-- 
2.30.2

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ