• [gentoo-dev] [PATCH 1/6] toolchain-funcs.eclass: tc-ninja_magic_to_arch

    From Sam James@21:1/5 to All on Fri Jul 21 14:50:01 2023
    Signed-off-by: Sam James <sam@gentoo.org>
    ---
    eclass/toolchain-funcs.eclass | 14 +++++++-------
    1 file changed, 7 insertions(+), 7 deletions(-)

    diff --git a/eclass/toolchain-funcs.eclass b/eclass/toolchain-funcs.eclass index bffbf36f1696c..78ebfe54e41a7 100644
    --- a/eclass/toolchain-funcs.eclass
    +++ b/eclass/toolchain-funcs.eclass
    @@ -666,7 +666,7 @@ tc-has-tls() {
    # Parse information from CBUILD/CHOST/CTARGET rather than
    # use external variables from the profile.
    tc-ninja_magic_to_arch() {
    - ninj() { [[ ${type} == "kern" ]] && echo $1 || echo $2 ; }
    + _tc_echo_kernel_alias() { [[ ${type} == "kern" ]] && echo $1 || echo $2 ; }

    local type=$1
    local host=$2
    @@ -676,16 +676,16 @@ tc-ninja_magic_to_arch() {
    aarch64*) echo arm64;;
    alpha*) echo alpha;;
    arm*) echo arm;;
    - avr*) ninj avr32 avr;;
    - bfin*) ninj blackfin bfin;;
    + avr*) _tc_echo_kernel_alias avr32 avr;;
    + bfin*) _tc_echo_kernel_alias blackfin bfin;;
    c6x*) echo c6x;;
    cris*) echo cris;;
    frv*) echo frv;;
    hexagon*) echo hexagon;
  • From Sam James@21:1/5 to All on Fri Jul 21 14:50:01 2023
    Signed-off-by: Sam James <sam@gentoo.org>
    ---
    profiles/arch/sparc/package.use.mask | 5 +++++
    .../gentoo-kernel/gentoo-kernel-5.15.120.ebuild | 11 +++++++++--
    sys-kernel/gentoo-kernel/gentoo-kernel-6.1.39.ebuild | 12 +++++++++---
    sys-kernel/gentoo-kernel/gentoo-kernel-6.4.4.ebuild | 12 +++++++++---
    4 files changed, 32 insertions(+), 8 deletions(-)

    diff --git a/profiles/arch/sparc/package.use.mask b/profiles/arch/sparc/package.use.mask
    index 666be07eea63a..0d1e5ce3fb0fd 100644
    --- a/profiles/arch/sparc/package.use.mask
    +++ b/profiles/arch/sparc/package.use.mask
    @@ -1,6 +1,11 @@
    # Copyright 1999-2023 Gentoo Authors
    # Distributed under the terms of the GNU General Public License v2

    +# Sam James <sam@gentoo.org> (2023-07-21)
    +# Requires dev-util/pahole.
    +sys-kernel/gentoo-kernel debug
    +sys-kernel/vanilla-kernel debug
    +
    # Sam James <sam@gentoo.org> (2023-06-18)
    # Qt 5 not keyworded here
    app-text/ansifilter gui
    diff --git a/sys-kernel/gentoo-kernel/gentoo-kernel-5.15.120.ebuild b/sys-kernel/gentoo-ke
  • From Sam James@21:1/5 to All on Fri Jul 21 14:50:01 2023
    Signed-off-by: Sam James <sam@gentoo.org>
    ---
    eclass/kernel-install.eclass | 8 +++++++-
    1 file changed, 7 insertions(+), 1 deletion(-)

    diff --git a/eclass/kernel-install.eclass b/eclass/kernel-install.eclass
    index 49aff35dea0d2..6018abd821513 100644
    --- a/eclass/kernel-install.eclass
    +++ b/eclass/kernel-install.eclass
    @@ -1,4 +1,4 @@
    -# Copyright 2020-2022 Gentoo Authors
    +# Copyright 2020-2023 Gentoo Authors
    # Distributed under the terms of the GNU General Public License v2

    # @ECLASS: kernel-install.eclass
    @@ -162,6 +162,12 @@ kernel-install_get_qemu_arch() {
    ppc64)
    echo ppc64
    ;;
    + sparc)
    + echo sparc
    + ;;
    + sparc64)
    + echo sparc64
    + ;;
    riscv)
    echo riscv
    ;;
    --
    2.41.0

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Sam James@21:1/5 to All on Fri Jul 21 14:50:01 2023
    Same as hppa/ppc*.

    Signed-off-by: Sam James <sam@gentoo.org>
    ---
    eclass/dist-kernel-utils.eclass | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/eclass/dist-kernel-utils.eclass b/eclass/dist-kernel-utils.eclass index cb0021f8b3a7e..6668960286699 100644
    --- a/eclass/dist-kernel-utils.eclass
    +++ b/eclass/dist-kernel-utils.eclass
    @@ -77,7 +77,7 @@ dist-kernel_get_image_path() {
    arm)
    echo arch/arm/boot/zImage
    ;;
    - hppa|ppc|ppc64)
    + hppa|ppc|ppc64|sparc)
    # https://www.kernel.org/doc/html/latest/powerpc/bootwrapper.html
    # ./ is required because of ${image_path%/*}
    # substitutions in the code
    --
    2.41.0

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Sam James@21:1/5 to All on Fri Jul 21 14:50:01 2023
    Signed-off-by: Sam James <sam@gentoo.org>
    ---
    virtual/dist-kernel/dist-kernel-5.15.120.ebuild | 2 +-
    virtual/dist-kernel/dist-kernel-6.1.39.ebuild | 2 +-
    virtual/dist-kernel/dist-kernel-6.4.4.ebuild | 2 +-
    3 files changed, 3 insertions(+), 3 deletions(-)

    diff --git a/virtual/dist-kernel/dist-kernel-5.15.120.ebuild b/virtual/dist-kernel/dist-kernel-5.15.120.ebuild
    index 5fe06a3498482..eab6f8597102c 100644
    --- a/virtual/dist-kernel/dist-kernel-5.15.120.ebuild
    +++ b/virtual/dist-kernel/dist-kernel-5.15.120.ebuild
    @@ -9,7 +9,7 @@ SRC_URI=""

    LICENSE=""
    SLOT="0/${PV}"
    -KEYWORDS="amd64 ~arm arm64 ~hppa ~ppc ppc64 x86"
    +KEYWORDS="amd64 ~arm arm64 ~hppa ~ppc ppc64 ~sparc x86"

    RDEPEND="
    || (
    diff --git a/virtual/dist-kernel/dist-kernel-6.1.39.ebuild b/virtual/dist-kernel/dist-kernel-6.1.39.ebuild
    index d3f0fa8764cf5..8012e544096f9 100644
    --- a/virtual/dist-kernel/dist-kernel-6.1.39.ebuild
    +++ b/virtual/dist-kernel/dist-kernel-6.1.39.ebuild
    @@ -9,7 +9,7 @@ SRC_URI=""

    LICENSE=""
    SLOT="0/${PV}"
    -KEYWORDS="~amd64 ~arm
  • From Ulrich Mueller@21:1/5 to All on Fri Jul 21 15:00:01 2023
    On Fri, 21 Jul 2023, Sam James wrote:

    @@ -162,6 +162,12 @@ kernel-install_get_qemu_arch() {
    ppc64)
    echo ppc64
    ;;
    + sparc)
    + echo sparc
    + ;;
    + sparc64)
    + echo sparc64
    + ;;
    riscv)
    echo riscv
    ;;

    Looks like the case patterns are in alphabetical order everywhere else,
    so why not here?

    -----BEGIN PGP SIGNATURE-----

    iQFDBAEBCAAtFiEEtDnZ1O9xIP68rzDbUYgzUIhBXi4FAmS6gPUPHHVsbUBnZW50 b28ub3JnAAoJEFGIM1CIQV4ulTAH/1oz5JAaGY1TlaK48VYg4oe0gTBir95Rm2Ir 4HUMmJN6ug4tU34SJI8NC09IRh/lSQ/PlNnQlC8qoHH9+fUlsA1JrEaQq0ZCyO4A ykH341B2dvRsCBqueWuSHUFelS8SaYnqkFu5ZxX1exxei1BK5gzx1C1+q4s5I7EZ RvyUU/evwAFXwrr2cORs1q4An3nP+FzufkfIS8Za1qgF2Pn6oFkMoyL8FM7HW5ZS izCzMV9o00nU8jiSyWsXYiNhwr/6/hB/uhV9LbXUFaR7iMwkWHtTf+KYmgOdWkp/ /x5m7i19ThzzC9O+96iYlyBcNdSuxHBdjb3J6sSQ0fWlXvSP/yI=
    =pF76
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Sam James@21:1/5 to All on Fri Jul 21 14:50:01 2023
    Unfortunately, we still have a mess wrt dual-bitness arches.

    For sparc, there's arch/sparc, with ARCH=sparc being "whatever the toolchain is",
    ARCH=sparc32 being "give me a 32-bit kernel", and ARCH=sparc64 being "give me
    a 64-bit kernel".

    You do, seemingly, need to actually pass ARCH=sparc64 to guarantee correct results,
    as various kernel Makefiles check for the ARCH value, even though ARCH=sparc will
    pop out a 64-bit kernel.

    (I originally updated toolchain-funcs.eclass's tc-ninja_magic_to_arch, but we later found that doesn't look particularly sturdy.

    Per at the very least 5ba800962a80d4158b73fb91a7779df7b770c750 ("kbuild: update ARCH alias info for sparc")
    upstream, although it seems to go back a fair bit earlier, ARCH=sparc when building
    the kernel means "sparc64" if on a sparc64 host.)

    Signed-off-by: Sam James <sam@gentoo.org>
    ---
    eclass/kernel-build.eclass | 8 ++++++++
    1 file changed, 8 insertions(+)

    diff --git a/eclass/kernel-build.eclass b/eclass/kernel-build.eclass
    index ff615a02d0ebf..276a08a104e0e 100644
    --- a/eclass/kernel-build.eclass
    +++ b/eclass/kernel-build.eclass
    @@ -257,6 +257,14 @@ kernel-build_src_install() {
    local kern_arch=$(tc-arch-kernel)
    local dir_ver=${PV}${KV_LOCALVERSION}
    local kernel_dir=/usr/src/linux-${dir_ver}
    +
    + if use sparc ; then
    + # We don't want tc-arch-kernel's sparc64, even though we do
    + # need to pass ARCH=sparc64 to the build system. It's a quasi-alias
    + # in Kbuild.
    + kern_arch=sparc
    + fi
    +
    dodir "${kernel_dir}/arch/${kern_arch}"
    mv include scripts "${ED}${kernel_dir}/" || die
    mv "arch/${kern_arch}/include" \
    --
    2.41.0

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Sam James@21:1/5 to Ulrich Mueller on Fri Jul 21 15:20:01 2023
    Ulrich Mueller <ulm@gentoo.org> writes:

    [[PGP Signed Part:Undecided]]
    On Fri, 21 Jul 2023, Sam James wrote:

    @@ -162,6 +162,12 @@ kernel-install_get_qemu_arch() {
    ppc64)
    echo ppc64
    ;;
    + sparc)
    + echo sparc
    + ;;
    + sparc64)
    + echo sparc64
    + ;;
    riscv)
    echo riscv
    ;;

    Looks like the case patterns are in alphabetical order everywhere else,
    so why not here?

    It was late and I forgot the alphabet ;)

    I'll fix that locally.


    -----BEGIN PGP SIGNATURE-----

    iOUEARYKAI0WIQQlpruI3Zt2TGtVQcJzhAn1IN+RkAUCZLqFVV8UgAAAAAAuAChp c3N1ZXItZnByQG5vdGF0aW9ucy5vcGVucGdwLmZpZnRoaG9yc2VtYW4ubmV0MjVB NkJCODhERDlCNzY0QzZCNTU0MUMyNzM4NDA5RjUyMERGOTE5MA8cc2FtQGdlbnRv by5vcmcACgkQc4QJ9SDfkZB7rQD+NzLpKpP3tTSFCRYt+7wWdQpKE0szxafHFRMI Vs0KxFsBAOJP/r/W7k0KMRO1lVzJdm6UXIQS6vg6TpxMWQ/DFV0G
    =UgYk
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Ulrich Mueller@21:1/5 to All on Fri Jul 21 17:10:02 2023
    On Fri, 21 Jul 2023, Michał Górny wrote:

    I suppose I originally didn't anticipate this many "matching" arches but perhaps it's time to add something like:

    arm|ppc|ppc64|riscv|sparc|sparc64)
    echo ${ARCH}
    ;;

    Sounds good.

    As a side note, eselect has a table with the (nearly) inverse mapping: https://gitweb.gentoo.org/proj/eselect.git/tree/libs/package-manager.bash.in?h=eselect-1.4.25#n70

    --=-=-Content-Type: application/pgp-signature; name="signature.asc"

    -----BEGIN PGP SIGNATURE-----

    iQFDBAEBCAAtFiEEtDnZ1O9xIP68rzDbUYgzUIhBXi4FAmS6nr8PHHVsbUBnZW50 b28ub3JnAAoJEFGIM1CIQV4u1YwH/0l3wC2F1J+zD8E3JjqvI+UXlgaVic6eJG9v PhNgmsoaxNUcY2rapKppRZtgW0AKxLB9aFQxvcE6xj3I1i3OFkqrhr7wO93ourjh uqwcM1Vuxjc7G0qlY7HbT+cY1X0qwfT94u7Lyd1tK3A9nxVCy+l0lyQjOO39FclR WxJ0TerBnpG7ZHx1nXi4OQ9PMwwZ+Wa0N/84/oS36uBPiY+RIAVz4Q3lqlyiAiLc YJZw7zJy+nGCXF4rjecGP2LKZ/GYx8StIO2cNPy5xg+NmnK/9ZrUip/1gU/axBa+ Rhk0T/F/+3FPllibNRnXImBeDxcqVR+XUrrm7oI0BXwhVmfzCvs=5/Ie
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Micha=C5=82_G=C3=B3rny?=@21:1/5 to Sam James on Fri Jul 21 17:00:02 2023
    On Fri, 2023-07-21 at 13:46 +0100, Sam James wrote:
    Signed-off-by: Sam James <sam@gentoo.org>
    ---
    eclass/kernel-install.eclass | 8 +++++++-
    1 file changed, 7 insertions(+), 1 deletion(-)

    diff --git a/eclass/kernel-install.eclass b/eclass/kernel-install.eclass index 49aff35dea0d2..6018abd821513 100644
    --- a/eclass/kernel-install.eclass
    +++ b/eclass/kernel-install.eclass
    @@ -1,4 +1,4 @@
    -# Copyright 2020-2022 Gentoo Authors
    +# Copyright 2020-2023 Gentoo Authors
    # Distributed under the terms of the GNU General Public License v2

    # @ECLASS: kernel-install.eclass
    @@ -162,6 +162,12 @@ kernel-install_get_qemu_arch() {
    ppc64)
    echo ppc64
    ;;
    + sparc)
    + echo sparc
    + ;;
    + sparc64)
    + echo sparc64
    + ;;
    riscv)
    echo riscv
    ;;

    I suppose I originally didn't anticipate this many "matching" arches but perhaps it's time to add something like:

    arm|ppc|ppc64|riscv|sparc|sparc64)
    echo ${ARCH}
    ;;

    --
    Best regards,
    Michał Górny

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)