From d2c2fa70a90f07189cd963a0c47203769b904eb4 Mon Sep 17 00:00:00 2001 From: Corentin Labbe Date: Tue, 10 May 2022 13:53:09 +0000 Subject: [PATCH 1/7] build-configs.yaml: Permit to build for sparc64 For testing sparc hardware and qemu, we need to build Linux for sparc64 arch. Signed-off-by: Corentin LABBE Signed-off-by: Guillaume Tucker --- config/core/build-configs.yaml | 9 +++++++++ config/core/rootfs-configs.yaml | 1 + config/docker/gcc-10_sparc64/Dockerfile | 14 ++++++++++++++ kernelci/build.py | 1 + 4 files changed, 25 insertions(+) create mode 100644 config/docker/gcc-10_sparc64/Dockerfile diff --git a/config/core/build-configs.yaml b/config/core/build-configs.yaml index a8678ea35a..5e5e64d551 100644 --- a/config/core/build-configs.yaml +++ b/config/core/build-configs.yaml @@ -296,6 +296,8 @@ build_environments: name: 'x86' mips: &mips_params cross_compile: 'mips-linux-gnu-' + sparc64: &sparc64_params + cross_compile: 'sparc64-buildroot-linux-gnu-' x86_64: &x86_64_params name: 'x86' riscv: &riscv_params @@ -413,6 +415,10 @@ build_configs_defaults: - blocklist: &riscv_kernel_filter kernel: ['v3.', 'v4.4', 'v4.9', 'v4.14'] + sparc64: &sparc64_arch + base_defconfig: 'sparc64_defconfig' + extra_configs: ['allnoconfig'] + x86_64: &x86_64_arch base_defconfig: 'x86_64_defconfig' extra_configs: @@ -484,6 +490,8 @@ arch_defconfigs: &arch_defconfigs filters: - regex: { defconfig: 'defconfig' } - blocklist: *riscv_kernel_filter + sparc64: &sparc64_defconfig + base_defconfig: 'sparc64_defconfig' x86_64: &x86_64_defconfig base_defconfig: 'x86_64_defconfig' filters: @@ -761,6 +769,7 @@ build_configs: x86_64: *x86_64_arch mips: *mips_arch riscv: *riscv_arch + sparc64: *sparc64_arch arc: *arc_arch arm64: <<: *arm64_arch diff --git a/config/core/rootfs-configs.yaml b/config/core/rootfs-configs.yaml index 57550b051a..28a771e19e 100644 --- a/config/core/rootfs-configs.yaml +++ b/config/core/rootfs-configs.yaml @@ -11,6 +11,7 @@ rootfs_configs: - armel - mipsel - riscv + - sparc64 - x86 frags: - baseline diff --git a/config/docker/gcc-10_sparc64/Dockerfile b/config/docker/gcc-10_sparc64/Dockerfile new file mode 100644 index 0000000000..9c85ee3f65 --- /dev/null +++ b/config/docker/gcc-10_sparc64/Dockerfile @@ -0,0 +1,14 @@ +ARG PREFIX=kernelci/ +FROM ${PREFIX}build-base + +RUN apt-get update && apt-get install --no-install-recommends -y \ + gcc-10-sparc64-linux-gnu + +RUN update-alternatives \ + --install /usr/bin/sparc64-linux-gnu-gcc sparc64-linux-gnu-gcc /usr/bin/sparc64-linux-gnu-gcc-10 500 \ + --slave /usr/bin/sparc64-linux-gnu-gcc-ar sparc64-linux-gnu-ar /usr/bin/sparc64-linux-gnu-gcc-ar-10 \ + --slave /usr/bin/sparc64-linux-gnu-gcc-nm sparc64-linux-gnu-nm /usr/bin/sparc64-linux-gnu-gcc-nm-10 \ + --slave /usr/bin/sparc64-linux-gnu-gcc-ranlib sparc64-linux-gnu-ranlib /usr/bin/sparc64-linux-gnu-gcc-ranlib-10 \ + --slave /usr/bin/sparc64-linux-gnu-gcc-gcov sparc64-linux-gnu-gcov /usr/bin/sparc64-linux-gnu-gcov-10 \ + --slave /usr/bin/sparc64-linux-gnu-gcc-gcov-dump sparc64-linux-gnu-gcov-dump /usr/bin/sparc64-linux-gnu-gcov-dump-10 \ + --slave /usr/bin/sparc64-linux-gnu-gcc-gcov-tool sparc64-linux-gnu-gcov-tool /usr/bin/sparc64-linux-gnu-gcov-tool-10 diff --git a/kernelci/build.py b/kernelci/build.py index d5f35d813a..186e0d813f 100644 --- a/kernelci/build.py +++ b/kernelci/build.py @@ -61,6 +61,7 @@ 'i386': {'bzImage'}, 'mips': {'uImage.gz', 'vmlinux.gz.itb', 'vmlinuz'}, 'riscv': {'Image', 'Image.gz'}, + 'sparc64': {'vmlinux'}, 'x86_64': {'bzImage'}, 'x86': {'bzImage'}, } From 0c21e5222b5c28ac0655c3baefbb0a5fe18472fa Mon Sep 17 00:00:00 2001 From: Guillaume Tucker Date: Mon, 1 Aug 2022 17:57:59 +0100 Subject: [PATCH 2/7] kernelci.build: fix kernel image name for sparc64 Fix the make target and kernel image name for sparc64 as the standard name is zImage. Signed-off-by: Guillaume Tucker --- kernelci/build.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/kernelci/build.py b/kernelci/build.py index 186e0d813f..f24c99788c 100644 --- a/kernelci/build.py +++ b/kernelci/build.py @@ -51,6 +51,7 @@ 'i386': 'bzImage', 'x86_64': 'bzImage', 'mips': 'uImage.gz', + 'sparc64': 'zImage', } # Hard-coded binary kernel image names for each CPU architecture @@ -61,7 +62,7 @@ 'i386': {'bzImage'}, 'mips': {'uImage.gz', 'vmlinux.gz.itb', 'vmlinuz'}, 'riscv': {'Image', 'Image.gz'}, - 'sparc64': {'vmlinux'}, + 'sparc64': {'zImage'}, 'x86_64': {'bzImage'}, 'x86': {'bzImage'}, } From c15618174f54b9f6213c2bfdb0fd58ebdcd84abf Mon Sep 17 00:00:00 2001 From: Guillaume Tucker Date: Mon, 1 Aug 2022 18:03:33 +0100 Subject: [PATCH 3/7] build-configs.yaml: fix cross-compile for sparc64 Fix the cross-compile string for sparc64 based on the Debian toolchain. Signed-off-by: Guillaume Tucker --- config/core/build-configs.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/core/build-configs.yaml b/config/core/build-configs.yaml index 5e5e64d551..bff1d1af82 100644 --- a/config/core/build-configs.yaml +++ b/config/core/build-configs.yaml @@ -297,7 +297,7 @@ build_environments: mips: &mips_params cross_compile: 'mips-linux-gnu-' sparc64: &sparc64_params - cross_compile: 'sparc64-buildroot-linux-gnu-' + cross_compile: 'sparc64-linux-gnu-' x86_64: &x86_64_params name: 'x86' riscv: &riscv_params From b9b4ea69f7e153584a30814fcb495996531a1861 Mon Sep 17 00:00:00 2001 From: Guillaume Tucker Date: Wed, 3 Aug 2022 08:30:50 +0200 Subject: [PATCH 4/7] build-configs.yaml: rename sparc64 to sparc Rename the "sparc64" architecture to "sparc" which is the one used in the kernel source tree. The 32/64 choice can be made by building either the sparc32_defconfig or sparc64_defconfig using the same sparc64 toolchain. Signed-off-by: Guillaume Tucker --- config/core/build-configs.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/config/core/build-configs.yaml b/config/core/build-configs.yaml index bff1d1af82..997baa1e2c 100644 --- a/config/core/build-configs.yaml +++ b/config/core/build-configs.yaml @@ -296,7 +296,7 @@ build_environments: name: 'x86' mips: &mips_params cross_compile: 'mips-linux-gnu-' - sparc64: &sparc64_params + sparc: &sparc_params cross_compile: 'sparc64-linux-gnu-' x86_64: &x86_64_params name: 'x86' @@ -415,7 +415,7 @@ build_configs_defaults: - blocklist: &riscv_kernel_filter kernel: ['v3.', 'v4.4', 'v4.9', 'v4.14'] - sparc64: &sparc64_arch + sparc: &sparc_arch base_defconfig: 'sparc64_defconfig' extra_configs: ['allnoconfig'] @@ -490,7 +490,7 @@ arch_defconfigs: &arch_defconfigs filters: - regex: { defconfig: 'defconfig' } - blocklist: *riscv_kernel_filter - sparc64: &sparc64_defconfig + sparc: &sparc_defconfig base_defconfig: 'sparc64_defconfig' x86_64: &x86_64_defconfig base_defconfig: 'x86_64_defconfig' @@ -769,7 +769,7 @@ build_configs: x86_64: *x86_64_arch mips: *mips_arch riscv: *riscv_arch - sparc64: *sparc64_arch + sparc: *sparc_arch arc: *arc_arch arm64: <<: *arm64_arch From a6617b4e64c72dd67e17bcd091bc7f4caa387c1f Mon Sep 17 00:00:00 2001 From: Guillaume Tucker Date: Wed, 3 Aug 2022 08:33:41 +0200 Subject: [PATCH 5/7] config/docker: rename gcc-10_sparc64 to gcc-10_sparc The kernel architecture name for sparc64 is sparc, so rename the sparc64 Docker image to sparc accordingly. Signed-off-by: Guillaume Tucker --- config/docker/{gcc-10_sparc64 => gcc-10_sparc}/Dockerfile | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename config/docker/{gcc-10_sparc64 => gcc-10_sparc}/Dockerfile (100%) diff --git a/config/docker/gcc-10_sparc64/Dockerfile b/config/docker/gcc-10_sparc/Dockerfile similarity index 100% rename from config/docker/gcc-10_sparc64/Dockerfile rename to config/docker/gcc-10_sparc/Dockerfile From 5fc4a284d36023f97f6a3d4e3d25a6e14aeff1d2 Mon Sep 17 00:00:00 2001 From: Guillaume Tucker Date: Wed, 3 Aug 2022 08:42:05 +0200 Subject: [PATCH 6/7] build-configs.yaml: add sparc64_defconfig regex filter Add a regex filter in the defaults for the sparc architecture with sparc64_defconfig to only build this one unless otherwise specified. Signed-off-by: Guillaume Tucker --- config/core/build-configs.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/config/core/build-configs.yaml b/config/core/build-configs.yaml index 997baa1e2c..6fea96fe29 100644 --- a/config/core/build-configs.yaml +++ b/config/core/build-configs.yaml @@ -492,6 +492,8 @@ arch_defconfigs: &arch_defconfigs - blocklist: *riscv_kernel_filter sparc: &sparc_defconfig base_defconfig: 'sparc64_defconfig' + filters: + - regex: { defconfig: 'sparc64_defconfig' } x86_64: &x86_64_defconfig base_defconfig: 'x86_64_defconfig' filters: From 6ee5d2a232a38c0f992b88ad38b68379e7851bf1 Mon Sep 17 00:00:00 2001 From: Guillaume Tucker Date: Wed, 3 Aug 2022 09:14:03 +0200 Subject: [PATCH 7/7] kernelci.build: update kernel image name map with sparc Update the dictionary with the kernel image names to use "sparc" instead of "sparc64" as the arch name. Signed-off-by: Guillaume Tucker --- kernelci/build.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kernelci/build.py b/kernelci/build.py index f24c99788c..9f160529bb 100644 --- a/kernelci/build.py +++ b/kernelci/build.py @@ -51,7 +51,7 @@ 'i386': 'bzImage', 'x86_64': 'bzImage', 'mips': 'uImage.gz', - 'sparc64': 'zImage', + 'sparc': 'zImage', } # Hard-coded binary kernel image names for each CPU architecture @@ -62,7 +62,7 @@ 'i386': {'bzImage'}, 'mips': {'uImage.gz', 'vmlinux.gz.itb', 'vmlinuz'}, 'riscv': {'Image', 'Image.gz'}, - 'sparc64': {'zImage'}, + 'sparc': {'zImage'}, 'x86_64': {'bzImage'}, 'x86': {'bzImage'}, }