Merge branch '2022-12-06-update-to-gcc-12-clang-14' into next

- Bring in changes to default CI to using gcc-12.2 and clang-14 for
  building.
This commit is contained in:
Tom Rini 2022-12-06 15:47:59 -05:00
commit b071de9843
13 changed files with 80 additions and 114 deletions

View File

@ -2,7 +2,7 @@ variables:
windows_vm: windows-2019 windows_vm: windows-2019
ubuntu_vm: ubuntu-22.04 ubuntu_vm: ubuntu-22.04
macos_vm: macOS-12 macos_vm: macOS-12
ci_runner_image: trini/u-boot-gitlab-ci-runner:jammy-20221003-17Oct2022 ci_runner_image: trini/u-boot-gitlab-ci-runner:jammy-20221101-22Nov2022
# Add '-u 0' options for Azure pipelines, otherwise we get "permission # Add '-u 0' options for Azure pipelines, otherwise we get "permission
# denied" error when it tries to "useradd -m -u 1001 vsts_azpcontainer", # denied" error when it tries to "useradd -m -u 1001 vsts_azpcontainer",
# since our $(ci_runner_image) user is not root. # since our $(ci_runner_image) user is not root.
@ -204,7 +204,7 @@ stages:
options: $(container_option) options: $(container_option)
steps: steps:
- script: | - script: |
export PATH=/opt/gcc-11.1.0-nolibc/arm-linux-gnueabi/bin:$PATH export PATH=/opt/gcc-12.2.0-nolibc/arm-linux-gnueabi/bin:$PATH
test/nokia_rx51_test.sh test/nokia_rx51_test.sh
- job: pylint - job: pylint
@ -242,7 +242,7 @@ stages:
TEST_PY_BD: "sandbox" TEST_PY_BD: "sandbox"
sandbox_clang: sandbox_clang:
TEST_PY_BD: "sandbox" TEST_PY_BD: "sandbox"
OVERRIDE: "-O clang-13" OVERRIDE: "-O clang-14"
sandbox_nolto: sandbox_nolto:
TEST_PY_BD: "sandbox" TEST_PY_BD: "sandbox"
BUILD_ENV: "NO_LTO=1" BUILD_ENV: "NO_LTO=1"
@ -486,7 +486,7 @@ stages:
OVERRIDE: "-a ASAN" OVERRIDE: "-a ASAN"
sandbox_clang_asan: sandbox_clang_asan:
BUILDMAN: "sandbox" BUILDMAN: "sandbox"
OVERRIDE: "-O clang-13 -a ASAN" OVERRIDE: "-O clang-14 -a ASAN"
samsung_socfpga: samsung_socfpga:
BUILDMAN: "samsung socfpga" BUILDMAN: "samsung socfpga"
sun4i: sun4i:

View File

@ -2,7 +2,7 @@
# Grab our configured image. The source for this is found # Grab our configured image. The source for this is found
# in the u-boot tree at tools/docker/Dockerfile # in the u-boot tree at tools/docker/Dockerfile
image: trini/u-boot-gitlab-ci-runner:jammy-20221003-17Oct2022 image: trini/u-boot-gitlab-ci-runner:jammy-20221101-22Nov2022
# We run some tests in different order, to catch some failures quicker. # We run some tests in different order, to catch some failures quicker.
stages: stages:
@ -225,7 +225,7 @@ Run binman, buildman, dtoc, Kconfig and patman testsuites:
Run tests for Nokia RX-51 (aka N900): Run tests for Nokia RX-51 (aka N900):
stage: testsuites stage: testsuites
script: script:
- export PATH=/opt/gcc-11.1.0-nolibc/arm-linux-gnueabi/bin:$PATH; - export PATH=/opt/gcc-12.2.0-nolibc/arm-linux-gnueabi/bin:$PATH;
test/nokia_rx51_test.sh test/nokia_rx51_test.sh
# Check for any pylint regressions # Check for any pylint regressions
@ -256,7 +256,7 @@ sandbox test.py:
sandbox with clang test.py: sandbox with clang test.py:
variables: variables:
TEST_PY_BD: "sandbox" TEST_PY_BD: "sandbox"
OVERRIDE: "-O clang-13" OVERRIDE: "-O clang-14"
<<: *buildman_and_testpy_dfn <<: *buildman_and_testpy_dfn
sandbox without LTO test.py: sandbox without LTO test.py:

View File

@ -761,10 +761,10 @@ KBUILD_CFLAGS += $(call cc-disable-warning, maybe-uninitialized)
# change __FILE__ to the relative path from the srctree # change __FILE__ to the relative path from the srctree
KBUILD_CFLAGS += $(call cc-option,-fmacro-prefix-map=$(srctree)/=) KBUILD_CFLAGS += $(call cc-option,-fmacro-prefix-map=$(srctree)/=)
KBUILD_CFLAGS += -g KBUILD_CFLAGS += -gdwarf-4
# $(KBUILD_AFLAGS) sets -g, which causes gcc to pass a suitable -g<format> # $(KBUILD_AFLAGS) sets -g, which causes gcc to pass a suitable -g<format>
# option to the assembler. # option to the assembler.
KBUILD_AFLAGS += -g KBUILD_AFLAGS += -gdwarf-4
# Report stack usage if supported # Report stack usage if supported
# ARC tools based on GCC 7.1 has an issue with stack usage # ARC tools based on GCC 7.1 has an issue with stack usage

View File

@ -207,7 +207,7 @@ ENDPROC(_nonsec_init)
#ifdef CONFIG_SMP_PEN_ADDR #ifdef CONFIG_SMP_PEN_ADDR
/* void __weak smp_waitloop(unsigned previous_address); */ /* void __weak smp_waitloop(unsigned previous_address); */
ENTRY(smp_waitloop) WEAK(smp_waitloop)
wfi wfi
ldr r1, =CONFIG_SMP_PEN_ADDR @ load start address ldr r1, =CONFIG_SMP_PEN_ADDR @ load start address
ldr r1, [r1] ldr r1, [r1]
@ -219,7 +219,6 @@ ENTRY(smp_waitloop)
mov r0, r1 mov r0, r1
b _do_nonsec_entry b _do_nonsec_entry
ENDPROC(smp_waitloop) ENDPROC(smp_waitloop)
.weak smp_waitloop
#endif #endif
.popsection .popsection

View File

@ -36,34 +36,32 @@ _psci_vectors:
b default_psci_vector @ irq b default_psci_vector @ irq
b psci_fiq_enter @ fiq b psci_fiq_enter @ fiq
ENTRY(psci_fiq_enter) WEAK(psci_fiq_enter)
movs pc, lr movs pc, lr
ENDPROC(psci_fiq_enter) ENDPROC(psci_fiq_enter)
.weak psci_fiq_enter
ENTRY(default_psci_vector) WEAK(default_psci_vector)
movs pc, lr movs pc, lr
ENDPROC(default_psci_vector) ENDPROC(default_psci_vector)
.weak default_psci_vector
ENTRY(psci_version) WEAK(psci_version)
ENTRY(psci_cpu_suspend) WEAK(psci_cpu_suspend)
ENTRY(psci_cpu_off) WEAK(psci_cpu_off)
ENTRY(psci_cpu_on) WEAK(psci_cpu_on)
ENTRY(psci_affinity_info) WEAK(psci_affinity_info)
ENTRY(psci_migrate) WEAK(psci_migrate)
ENTRY(psci_migrate_info_type) WEAK(psci_migrate_info_type)
ENTRY(psci_migrate_info_up_cpu) WEAK(psci_migrate_info_up_cpu)
ENTRY(psci_system_off) WEAK(psci_system_off)
ENTRY(psci_system_reset) WEAK(psci_system_reset)
ENTRY(psci_features) WEAK(psci_features)
ENTRY(psci_cpu_freeze) WEAK(psci_cpu_freeze)
ENTRY(psci_cpu_default_suspend) WEAK(psci_cpu_default_suspend)
ENTRY(psci_node_hw_state) WEAK(psci_node_hw_state)
ENTRY(psci_system_suspend) WEAK(psci_system_suspend)
ENTRY(psci_set_suspend_mode) WEAK(psci_set_suspend_mode)
ENTRY(psi_stat_residency) WEAK(psi_stat_residency)
ENTRY(psci_stat_count) WEAK(psci_stat_count)
mov r0, #ARM_PSCI_RET_NI @ Return -1 (Not Implemented) mov r0, #ARM_PSCI_RET_NI @ Return -1 (Not Implemented)
mov pc, lr mov pc, lr
ENDPROC(psci_stat_count) ENDPROC(psci_stat_count)
@ -84,24 +82,6 @@ ENDPROC(psci_cpu_on)
ENDPROC(psci_cpu_off) ENDPROC(psci_cpu_off)
ENDPROC(psci_cpu_suspend) ENDPROC(psci_cpu_suspend)
ENDPROC(psci_version) ENDPROC(psci_version)
.weak psci_version
.weak psci_cpu_suspend
.weak psci_cpu_off
.weak psci_cpu_on
.weak psci_affinity_info
.weak psci_migrate
.weak psci_migrate_info_type
.weak psci_migrate_info_up_cpu
.weak psci_system_off
.weak psci_system_reset
.weak psci_features
.weak psci_cpu_freeze
.weak psci_cpu_default_suspend
.weak psci_node_hw_state
.weak psci_system_suspend
.weak psci_set_suspend_mode
.weak psi_stat_residency
.weak psci_stat_count
_psci_table: _psci_table:
.word ARM_PSCI_FN_CPU_SUSPEND .word ARM_PSCI_FN_CPU_SUSPEND
@ -179,12 +159,11 @@ _smc_psci:
movs pc, lr @ Return to the kernel movs pc, lr @ Return to the kernel
@ Requires dense and single-cluster CPU ID space @ Requires dense and single-cluster CPU ID space
ENTRY(psci_get_cpu_id) WEAK(psci_get_cpu_id)
mrc p15, 0, r0, c0, c0, 5 /* read MPIDR */ mrc p15, 0, r0, c0, c0, 5 /* read MPIDR */
and r0, r0, #0xff /* return CPU ID in cluster */ and r0, r0, #0xff /* return CPU ID in cluster */
bx lr bx lr
ENDPROC(psci_get_cpu_id) ENDPROC(psci_get_cpu_id)
.weak psci_get_cpu_id
/* Imported from Linux kernel */ /* Imported from Linux kernel */
ENTRY(psci_v7_flush_dcache_all) ENTRY(psci_v7_flush_dcache_all)
@ -236,7 +215,7 @@ finished:
bx lr bx lr
ENDPROC(psci_v7_flush_dcache_all) ENDPROC(psci_v7_flush_dcache_all)
ENTRY(psci_disable_smp) WEAK(psci_disable_smp)
mrc p15, 0, r0, c1, c0, 1 @ ACTLR mrc p15, 0, r0, c1, c0, 1 @ ACTLR
bic r0, r0, #(1 << 6) @ Clear SMP bit bic r0, r0, #(1 << 6) @ Clear SMP bit
mcr p15, 0, r0, c1, c0, 1 @ ACTLR mcr p15, 0, r0, c1, c0, 1 @ ACTLR
@ -244,16 +223,14 @@ ENTRY(psci_disable_smp)
dsb dsb
bx lr bx lr
ENDPROC(psci_disable_smp) ENDPROC(psci_disable_smp)
.weak psci_disable_smp
ENTRY(psci_enable_smp) WEAK(psci_enable_smp)
mrc p15, 0, r0, c1, c0, 1 @ ACTLR mrc p15, 0, r0, c1, c0, 1 @ ACTLR
orr r0, r0, #(1 << 6) @ Set SMP bit orr r0, r0, #(1 << 6) @ Set SMP bit
mcr p15, 0, r0, c1, c0, 1 @ ACTLR mcr p15, 0, r0, c1, c0, 1 @ ACTLR
isb isb
bx lr bx lr
ENDPROC(psci_enable_smp) ENDPROC(psci_enable_smp)
.weak psci_enable_smp
ENTRY(psci_cpu_off_common) ENTRY(psci_cpu_off_common)
push {lr} push {lr}
@ -316,15 +293,13 @@ ENTRY(psci_stack_setup)
bx r6 bx r6
ENDPROC(psci_stack_setup) ENDPROC(psci_stack_setup)
ENTRY(psci_arch_init) WEAK(psci_arch_init)
mov pc, lr mov pc, lr
ENDPROC(psci_arch_init) ENDPROC(psci_arch_init)
.weak psci_arch_init
ENTRY(psci_arch_cpu_entry) WEAK(psci_arch_cpu_entry)
mov pc, lr mov pc, lr
ENDPROC(psci_arch_cpu_entry) ENDPROC(psci_arch_cpu_entry)
.weak psci_arch_cpu_entry
ENTRY(psci_cpu_entry) ENTRY(psci_cpu_entry)
bl psci_enable_smp bl psci_enable_smp

View File

@ -151,16 +151,14 @@ ENDPROC(c_runtime_cpu_setup)
* Don't save anything to stack even if compiled with -O0 * Don't save anything to stack even if compiled with -O0
* *
*************************************************************************/ *************************************************************************/
ENTRY(save_boot_params) WEAK(save_boot_params)
b save_boot_params_ret @ back to my caller b save_boot_params_ret @ back to my caller
ENDPROC(save_boot_params) ENDPROC(save_boot_params)
.weak save_boot_params
#ifdef CONFIG_ARMV7_LPAE #ifdef CONFIG_ARMV7_LPAE
ENTRY(switch_to_hypervisor) WEAK(switch_to_hypervisor)
b switch_to_hypervisor_ret b switch_to_hypervisor_ret
ENDPROC(switch_to_hypervisor) ENDPROC(switch_to_hypervisor)
.weak switch_to_hypervisor
#endif #endif
/************************************************************************* /*************************************************************************

View File

@ -12,11 +12,10 @@
/* Default PSCI function, return -1, Not Implemented */ /* Default PSCI function, return -1, Not Implemented */
#define PSCI_DEFAULT(__fn) \ #define PSCI_DEFAULT(__fn) \
ENTRY(__fn); \ WEAK(__fn); \
mov w0, #ARM_PSCI_RET_NI; \ mov w0, #ARM_PSCI_RET_NI; \
ret; \ ret; \
ENDPROC(__fn); \ ENDPROC(__fn); \
.weak __fn
/* PSCI function and ID table definition*/ /* PSCI function and ID table definition*/
#define PSCI_TABLE(__id, __fn) \ #define PSCI_TABLE(__id, __fn) \
@ -207,7 +206,7 @@ handle_smc64:
* used for the return value, while in this PSCI environment, X0 usually holds * used for the return value, while in this PSCI environment, X0 usually holds
* the SMC function identifier, so X0 should be saved by caller function. * the SMC function identifier, so X0 should be saved by caller function.
*/ */
ENTRY(psci_get_cpu_id) WEAK(psci_get_cpu_id)
#ifdef CONFIG_ARMV8_PSCI_CPUS_PER_CLUSTER #ifdef CONFIG_ARMV8_PSCI_CPUS_PER_CLUSTER
mrs x9, MPIDR_EL1 mrs x9, MPIDR_EL1
ubfx x9, x9, #8, #8 ubfx x9, x9, #8, #8
@ -221,7 +220,6 @@ ENTRY(psci_get_cpu_id)
add x0, x10, x9 add x0, x10, x9
ret ret
ENDPROC(psci_get_cpu_id) ENDPROC(psci_get_cpu_id)
.weak psci_get_cpu_id
/* CPU ID input in x0, stack top output in x0*/ /* CPU ID input in x0, stack top output in x0*/
LENTRY(psci_get_cpu_stack_top) LENTRY(psci_get_cpu_stack_top)
@ -261,10 +259,9 @@ handle_sync:
* Override this function if custom error handling is * Override this function if custom error handling is
* needed for asynchronous aborts * needed for asynchronous aborts
*/ */
ENTRY(plat_error_handler) WEAK(plat_error_handler)
ret ret
ENDPROC(plat_error_handler) ENDPROC(plat_error_handler)
.weak plat_error_handler
handle_error: handle_error:
bl psci_get_cpu_id bl psci_get_cpu_id
@ -323,9 +320,8 @@ ENTRY(psci_setup_vectors)
ret ret
ENDPROC(psci_setup_vectors) ENDPROC(psci_setup_vectors)
ENTRY(psci_arch_init) WEAK(psci_arch_init)
ret ret
ENDPROC(psci_arch_init) ENDPROC(psci_arch_init)
.weak psci_arch_init
.popsection .popsection

View File

@ -23,9 +23,8 @@
*/ */
.section .text.relocate_vectors,"ax",%progbits .section .text.relocate_vectors,"ax",%progbits
.weak relocate_vectors
ENTRY(relocate_vectors) WEAK(relocate_vectors)
#ifdef CONFIG_CPU_V7M #ifdef CONFIG_CPU_V7M
/* /*

View File

@ -337,9 +337,6 @@ static void fdt_fixup_liodn_tbl_fman(void *blob,
for (i = 0; i < sz; i++) { for (i = 0; i < sz; i++) {
int off; int off;
if (tbl[i].compat == NULL)
continue;
/* Try the new compatible first. /* Try the new compatible first.
* If the node is missing, try the old. * If the node is missing, try the old.
*/ */

View File

@ -17,7 +17,6 @@ CONFIG_DEFAULT_DEVICE_TREE="kirkwood-pogoplug-series-4"
CONFIG_SYS_PROMPT="Pogo_V4> " CONFIG_SYS_PROMPT="Pogo_V4> "
CONFIG_IDENT_STRING="\nPogoplug V4" CONFIG_IDENT_STRING="\nPogoplug V4"
CONFIG_SYS_LOAD_ADDR=0x800000 CONFIG_SYS_LOAD_ADDR=0x800000
CONFIG_LTO=y
CONFIG_DISTRO_DEFAULTS=y CONFIG_DISTRO_DEFAULTS=y
CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0xc8012000 CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0xc8012000

View File

@ -16,7 +16,7 @@ def test_event_dump(u_boot_console):
out = util.run_and_log(cons, ['scripts/event_dump.py', sandbox]) out = util.run_and_log(cons, ['scripts/event_dump.py', sandbox])
expect = '''.*Event type Id Source location expect = '''.*Event type Id Source location
-------------------- ------------------------------ ------------------------------ -------------------- ------------------------------ ------------------------------
EVT_FT_FIXUP bootmeth_vbe_ft_fixup .*vbe_request.c:.* EVT_FT_FIXUP bootmeth_vbe_ft_fixup .*boot/vbe_request.c:.*
EVT_FT_FIXUP bootmeth_vbe_simple_ft_fixup .*vbe_simple_os.c:.* EVT_FT_FIXUP bootmeth_vbe_simple_ft_fixup .*boot/vbe_simple_os.c:.*
EVT_MISC_INIT_F sandbox_misc_init_f .*start.c:''' EVT_MISC_INIT_F sandbox_misc_init_f .*arch/sandbox/cpu/start.c:'''
assert re.match(expect, out, re.MULTILINE) is not None assert re.match(expect, out, re.MULTILINE) is not None

View File

@ -498,7 +498,7 @@ class Toolchains:
if arch == 'aarch64': if arch == 'aarch64':
arch = 'arm64' arch = 'arm64'
base = 'https://www.kernel.org/pub/tools/crosstool/files/bin' base = 'https://www.kernel.org/pub/tools/crosstool/files/bin'
versions = ['11.1.0', '9.2.0', '7.3.0', '6.4.0', '4.9.4'] versions = ['12.2.0', '11.1.0']
links = [] links = []
for version in versions: for version in versions:
url = '%s/%s/%s/' % (base, arch, version) url = '%s/%s/%s/' % (base, arch, version)

View File

@ -2,7 +2,7 @@
# This Dockerfile is used to build an image containing basic stuff to be used # This Dockerfile is used to build an image containing basic stuff to be used
# to build U-Boot and run our test suites. # to build U-Boot and run our test suites.
FROM ubuntu:jammy-20221003 FROM ubuntu:jammy-20221101
MAINTAINER Tom Rini <trini@konsulko.com> MAINTAINER Tom Rini <trini@konsulko.com>
LABEL Description=" This image is for building U-Boot inside a container" LABEL Description=" This image is for building U-Boot inside a container"
@ -12,20 +12,20 @@ ENV DEBIAN_FRONTEND=noninteractive
# Add LLVM repository # Add LLVM repository
RUN apt-get update && apt-get install -y gnupg2 wget xz-utils && rm -rf /var/lib/apt/lists/* RUN apt-get update && apt-get install -y gnupg2 wget xz-utils && rm -rf /var/lib/apt/lists/*
RUN wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - RUN wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add -
RUN echo deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-13 main | tee /etc/apt/sources.list.d/llvm.list RUN echo deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-14 main | tee /etc/apt/sources.list.d/llvm.list
# Manually install the kernel.org "Crosstool" based toolchains for gcc-11.1.0 # Manually install the kernel.org "Crosstool" based toolchains for gcc-12.2.0
RUN wget -O - https://mirrors.edge.kernel.org/pub/tools/crosstool/files/bin/x86_64/11.1.0/x86_64-gcc-11.1.0-nolibc-aarch64-linux.tar.xz | tar -C /opt -xJ RUN wget -O - https://mirrors.edge.kernel.org/pub/tools/crosstool/files/bin/x86_64/12.2.0/x86_64-gcc-12.2.0-nolibc-aarch64-linux.tar.xz | tar -C /opt -xJ
RUN wget -O - https://mirrors.edge.kernel.org/pub/tools/crosstool/files/bin/x86_64/11.1.0/x86_64-gcc-11.1.0-nolibc-arm-linux-gnueabi.tar.xz | tar -C /opt -xJ RUN wget -O - https://mirrors.edge.kernel.org/pub/tools/crosstool/files/bin/x86_64/12.2.0/x86_64-gcc-12.2.0-nolibc-arm-linux-gnueabi.tar.xz | tar -C /opt -xJ
RUN wget -O - https://mirrors.edge.kernel.org/pub/tools/crosstool/files/bin/x86_64/11.1.0/x86_64-gcc-11.1.0-nolibc-i386-linux.tar.xz | tar -C /opt -xJ RUN wget -O - https://mirrors.edge.kernel.org/pub/tools/crosstool/files/bin/x86_64/12.2.0/x86_64-gcc-12.2.0-nolibc-i386-linux.tar.xz | tar -C /opt -xJ
RUN wget -O - https://mirrors.edge.kernel.org/pub/tools/crosstool/files/bin/x86_64/11.1.0/x86_64-gcc-11.1.0-nolibc-m68k-linux.tar.xz | tar -C /opt -xJ RUN wget -O - https://mirrors.edge.kernel.org/pub/tools/crosstool/files/bin/x86_64/12.2.0/x86_64-gcc-12.2.0-nolibc-m68k-linux.tar.xz | tar -C /opt -xJ
RUN wget -O - https://mirrors.edge.kernel.org/pub/tools/crosstool/files/bin/x86_64/11.1.0/x86_64-gcc-11.1.0-nolibc-mips-linux.tar.xz | tar -C /opt -xJ RUN wget -O - https://mirrors.edge.kernel.org/pub/tools/crosstool/files/bin/x86_64/12.2.0/x86_64-gcc-12.2.0-nolibc-mips-linux.tar.xz | tar -C /opt -xJ
RUN wget -O - https://mirrors.edge.kernel.org/pub/tools/crosstool/files/bin/x86_64/11.1.0/x86_64-gcc-11.1.0-nolibc-microblaze-linux.tar.xz | tar -C /opt -xJ RUN wget -O - https://mirrors.edge.kernel.org/pub/tools/crosstool/files/bin/x86_64/12.2.0/x86_64-gcc-12.2.0-nolibc-microblaze-linux.tar.xz | tar -C /opt -xJ
RUN wget -O - https://mirrors.edge.kernel.org/pub/tools/crosstool/files/bin/x86_64/11.1.0/x86_64-gcc-11.1.0-nolibc-nios2-linux.tar.xz | tar -C /opt -xJ RUN wget -O - https://mirrors.edge.kernel.org/pub/tools/crosstool/files/bin/x86_64/12.2.0/x86_64-gcc-12.2.0-nolibc-nios2-linux.tar.xz | tar -C /opt -xJ
RUN wget -O - https://mirrors.edge.kernel.org/pub/tools/crosstool/files/bin/x86_64/11.1.0/x86_64-gcc-11.1.0-nolibc-powerpc-linux.tar.xz | tar -C /opt -xJ RUN wget -O - https://mirrors.edge.kernel.org/pub/tools/crosstool/files/bin/x86_64/12.2.0/x86_64-gcc-12.2.0-nolibc-powerpc-linux.tar.xz | tar -C /opt -xJ
RUN wget -O - https://mirrors.edge.kernel.org/pub/tools/crosstool/files/bin/x86_64/11.1.0/x86_64-gcc-11.1.0-nolibc-riscv64-linux.tar.xz | tar -C /opt -xJ RUN wget -O - https://mirrors.edge.kernel.org/pub/tools/crosstool/files/bin/x86_64/12.2.0/x86_64-gcc-12.2.0-nolibc-riscv64-linux.tar.xz | tar -C /opt -xJ
RUN wget -O - https://mirrors.edge.kernel.org/pub/tools/crosstool/files/bin/x86_64/11.1.0/x86_64-gcc-11.1.0-nolibc-riscv32-linux.tar.xz | tar -C /opt -xJ RUN wget -O - https://mirrors.edge.kernel.org/pub/tools/crosstool/files/bin/x86_64/12.2.0/x86_64-gcc-12.2.0-nolibc-riscv32-linux.tar.xz | tar -C /opt -xJ
RUN wget -O - https://mirrors.edge.kernel.org/pub/tools/crosstool/files/bin/x86_64/11.1.0/x86_64-gcc-11.1.0-nolibc-sh2-linux.tar.xz | tar -C /opt -xJ RUN wget -O - https://mirrors.edge.kernel.org/pub/tools/crosstool/files/bin/x86_64/12.2.0/x86_64-gcc-12.2.0-nolibc-sh2-linux.tar.xz | tar -C /opt -xJ
# Manually install other toolchains # Manually install other toolchains
RUN wget -O - https://github.com/foss-xtensa/toolchain/releases/download/2020.07/x86_64-2020.07-xtensa-dc233c-elf.tar.gz | tar -C /opt -xz RUN wget -O - https://github.com/foss-xtensa/toolchain/releases/download/2020.07/x86_64-2020.07-xtensa-dc233c-elf.tar.gz | tar -C /opt -xz
@ -39,7 +39,7 @@ RUN apt-get update && apt-get install -y \
binutils-dev \ binutils-dev \
bison \ bison \
build-essential \ build-essential \
clang-13 \ clang-14 \
coreutils \ coreutils \
cpio \ cpio \
cppcheck \ cppcheck \
@ -123,15 +123,18 @@ RUN chmod +r /boot/vmlinu*
RUN git clone git://git.savannah.gnu.org/grub.git /tmp/grub && \ RUN git clone git://git.savannah.gnu.org/grub.git /tmp/grub && \
cd /tmp/grub && \ cd /tmp/grub && \
git checkout grub-2.06 && \ git checkout grub-2.06 && \
git config --global user.name "GitLab CI Runner" && \
git config --global user.email trini@konsulko.com && \
git cherry-pick 049efdd72eb7baa7b2bf8884391ee7fe650da5a0 && \
./bootstrap && \ ./bootstrap && \
mkdir -p /opt/grub && \ mkdir -p /opt/grub && \
./configure --target=aarch64 --with-platform=efi \ ./configure --target=aarch64 --with-platform=efi \
CC=gcc \ CC=gcc \
TARGET_CC=/opt/gcc-11.1.0-nolibc/aarch64-linux/bin/aarch64-linux-gcc \ TARGET_CC=/opt/gcc-12.2.0-nolibc/aarch64-linux/bin/aarch64-linux-gcc \
TARGET_OBJCOPY=/opt/gcc-11.1.0-nolibc/aarch64-linux/bin/aarch64-linux-objcopy \ TARGET_OBJCOPY=/opt/gcc-12.2.0-nolibc/aarch64-linux/bin/aarch64-linux-objcopy \
TARGET_STRIP=/opt/gcc-11.1.0-nolibc/aarch64-linux/bin/aarch64-linux-strip \ TARGET_STRIP=/opt/gcc-12.2.0-nolibc/aarch64-linux/bin/aarch64-linux-strip \
TARGET_NM=/opt/gcc-11.1.0-nolibc/aarch64-linux/bin/aarch64-linux-nm \ TARGET_NM=/opt/gcc-12.2.0-nolibc/aarch64-linux/bin/aarch64-linux-nm \
TARGET_RANLIB=/opt/gcc-11.1.0-nolibc/aarch64-linux/bin/aarch64-linux-ranlib && \ TARGET_RANLIB=/opt/gcc-12.2.0-nolibc/aarch64-linux/bin/aarch64-linux-ranlib && \
make && \ make && \
./grub-mkimage -O arm64-efi -o /opt/grub/grubaa64.efi --prefix= -d \ ./grub-mkimage -O arm64-efi -o /opt/grub/grubaa64.efi --prefix= -d \
grub-core cat chain configfile echo efinet ext2 fat halt help linux \ grub-core cat chain configfile echo efinet ext2 fat halt help linux \
@ -141,11 +144,11 @@ RUN git clone git://git.savannah.gnu.org/grub.git /tmp/grub && \
make clean && \ make clean && \
./configure --target=arm --with-platform=efi \ ./configure --target=arm --with-platform=efi \
CC=gcc \ CC=gcc \
TARGET_CC=/opt/gcc-11.1.0-nolibc/arm-linux-gnueabi/bin/arm-linux-gnueabi-gcc \ TARGET_CC=/opt/gcc-12.2.0-nolibc/arm-linux-gnueabi/bin/arm-linux-gnueabi-gcc \
TARGET_OBJCOPY=/opt/gcc-11.1.0-nolibc/arm-linux-gnueabi/bin/arm-linux-gnueabi-objcopy \ TARGET_OBJCOPY=/opt/gcc-12.2.0-nolibc/arm-linux-gnueabi/bin/arm-linux-gnueabi-objcopy \
TARGET_STRIP=/opt/gcc-11.1.0-nolibc/arm-linux-gnueabi/bin/arm-linux-gnueabi-strip \ TARGET_STRIP=/opt/gcc-12.2.0-nolibc/arm-linux-gnueabi/bin/arm-linux-gnueabi-strip \
TARGET_NM=/opt/gcc-11.1.0-nolibc/arm-linux-gnueabi/bin/arm-linux-gnueabi-nm \ TARGET_NM=/opt/gcc-12.2.0-nolibc/arm-linux-gnueabi/bin/arm-linux-gnueabi-nm \
TARGET_RANLIB=/opt/gcc-11.1.0-nolibc/arm-linux-gnueabi/bin/arm-linux-gnueabi-ranlib && \ TARGET_RANLIB=/opt/gcc-12.2.0-nolibc/arm-linux-gnueabi/bin/arm-linux-gnueabi-ranlib && \
make && \ make && \
./grub-mkimage -O arm-efi -o /opt/grub/grubarm.efi --prefix= -d \ ./grub-mkimage -O arm-efi -o /opt/grub/grubarm.efi --prefix= -d \
grub-core cat chain configfile echo efinet ext2 fat halt help linux \ grub-core cat chain configfile echo efinet ext2 fat halt help linux \
@ -155,11 +158,11 @@ RUN git clone git://git.savannah.gnu.org/grub.git /tmp/grub && \
make clean && \ make clean && \
./configure --target=riscv64 --with-platform=efi \ ./configure --target=riscv64 --with-platform=efi \
CC=gcc \ CC=gcc \
TARGET_CC=/opt/gcc-11.1.0-nolibc/riscv64-linux/bin/riscv64-linux-gcc \ TARGET_CC=/opt/gcc-12.2.0-nolibc/riscv64-linux/bin/riscv64-linux-gcc \
TARGET_OBJCOPY=/opt/gcc-11.1.0-nolibc/riscv64-linux/bin/riscv64-linux-objcopy \ TARGET_OBJCOPY=/opt/gcc-12.2.0-nolibc/riscv64-linux/bin/riscv64-linux-objcopy \
TARGET_STRIP=/opt/gcc-11.1.0-nolibc/riscv64-linux/bin/riscv64-linux-strip \ TARGET_STRIP=/opt/gcc-12.2.0-nolibc/riscv64-linux/bin/riscv64-linux-strip \
TARGET_NM=/opt/gcc-11.1.0-nolibc/riscv64-linux/bin/riscv64-linux-nm \ TARGET_NM=/opt/gcc-12.2.0-nolibc/riscv64-linux/bin/riscv64-linux-nm \
TARGET_RANLIB=/opt/gcc-11.1.0-nolibc/riscv64-linux/bin/riscv64-linux-ranlib && \ TARGET_RANLIB=/opt/gcc-12.2.0-nolibc/riscv64-linux/bin/riscv64-linux-ranlib && \
make && \ make && \
./grub-mkimage -O riscv64-efi -o /opt/grub/grubriscv64.efi --prefix= -d \ ./grub-mkimage -O riscv64-efi -o /opt/grub/grubriscv64.efi --prefix= -d \
grub-core cat chain configfile echo efinet ext2 fat halt help linux \ grub-core cat chain configfile echo efinet ext2 fat halt help linux \
@ -215,7 +218,7 @@ USER uboot:uboot
# Create the buildman config file # Create the buildman config file
RUN /bin/echo -e "[toolchain]\nroot = /usr" > ~/.buildman RUN /bin/echo -e "[toolchain]\nroot = /usr" > ~/.buildman
RUN /bin/echo -e "kernelorg = /opt/gcc-11.1.0-nolibc/*" >> ~/.buildman RUN /bin/echo -e "kernelorg = /opt/gcc-12.2.0-nolibc/*" >> ~/.buildman
RUN /bin/echo -e "arc = /opt/arc_gnu_2021.03_prebuilt_uclibc_le_archs_linux_install" >> ~/.buildman RUN /bin/echo -e "arc = /opt/arc_gnu_2021.03_prebuilt_uclibc_le_archs_linux_install" >> ~/.buildman
RUN /bin/echo -e "\n[toolchain-prefix]\nxtensa = /opt/2020.07/xtensa-dc233c-elf/bin/xtensa-dc233c-elf-" >> ~/.buildman; RUN /bin/echo -e "\n[toolchain-prefix]\nxtensa = /opt/2020.07/xtensa-dc233c-elf/bin/xtensa-dc233c-elf-" >> ~/.buildman;
RUN /bin/echo -e "\n[toolchain-alias]\nsh = sh2" >> ~/.buildman RUN /bin/echo -e "\n[toolchain-alias]\nsh = sh2" >> ~/.buildman