commit:     6c01028ceb471bb8c22ac71656e7c07828fc2134
Author:     Alexey Shvetsov <alexxy <AT> gentoo <DOT> org>
AuthorDate: Thu May 21 18:29:32 2020 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu May 21 19:31:50 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6c01028c

kernel-{build,install}.eclass: more ARM support

Signed-off-by: Alexey Shvetsov <alexxy <AT> gentoo.org>
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 eclass/kernel-build.eclass   | 19 +++++++++++++++++--
 eclass/kernel-install.eclass | 12 ++++++++++++
 2 files changed, 29 insertions(+), 2 deletions(-)

diff --git a/eclass/kernel-build.eclass b/eclass/kernel-build.eclass
index ba4b012dc4c..7d674fa9cf4 100644
--- a/eclass/kernel-build.eclass
+++ b/eclass/kernel-build.eclass
@@ -99,9 +99,13 @@ kernel-build_src_compile() {
 # from kernel-install.eclass with the correct paths.
 kernel-build_src_test() {
        debug-print-function ${FUNCNAME} "${@}"
+       local targets=( modules_install )
+       if use arm || use arm64; then
+               targets+=( dtbs_install )
+       fi
 
        emake O="${WORKDIR}"/build "${MAKEARGS[@]}" \
-               INSTALL_MOD_PATH="${T}" modules_install
+               INSTALL_MOD_PATH="${T}" "${targets[@]}"
 
        kernel-install_test "${PV}" \
                "${WORKDIR}/build/$(kernel-install_get_image_path)" \
@@ -117,8 +121,19 @@ kernel-build_src_install() {
 
        # do not use 'make install' as it behaves differently based
        # on what kind of installkernel is installed
+       local targets=( modules_install )
+       if use arm || use arm64; then
+               targets+=( dtbs_install )
+       fi
+
        emake O="${WORKDIR}"/build "${MAKEARGS[@]}" \
-               INSTALL_MOD_PATH="${ED}" modules_install
+               INSTALL_MOD_PATH="${ED}" "${targets[@]}"
+
+       # on arm or arm64 dtbs also needed
+       if (use arm || use arm64); then
+               emake O="${WORKDIR}"/build "${MAKEARGS[@]}" \
+                       INSTALL_PATH="${ED}/boot" dtbs_install
+       fi
 
        # note: we're using mv rather than doins to save space and time
        # install main and arch-specific headers first, and scripts

diff --git a/eclass/kernel-install.eclass b/eclass/kernel-install.eclass
index c26af5c2e88..efccd70608c 100644
--- a/eclass/kernel-install.eclass
+++ b/eclass/kernel-install.eclass
@@ -92,6 +92,12 @@ kernel-install_get_image_path() {
                amd64|x86)
                        echo arch/x86/boot/bzImage
                        ;;
+               arm64)
+                       echo arch/arm64/boot/Image.gz
+                       ;;
+               arm)
+                       echo arch/arm/boot/zImage
+                       ;;
                *)
                        die "${FUNCNAME}: unsupported ARCH=${ARCH}"
                        ;;
@@ -176,6 +182,12 @@ kernel-install_get_qemu_arch() {
                x86)
                        echo i386
                        ;;
+               arm)
+                       echo arm
+                       ;;
+               arm64)
+                       echo aarch64
+                       ;;
                *)
                        die "${FUNCNAME}: unsupported ARCH=${ARCH}"
                        ;;

Reply via email to